File size: 5,472 Bytes
8d7a5ca
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
---
language:
- ru
- en
library_name: transformers
pipeline_tag: text-generation
license: llama3.2
base_model: meta-llama/Llama-3.2-3B-Instruct
tags:
- llama-3.2
- personalization  
- russian
- telegram
- lora
- tpu
- conversational-ai
- fine-tuned
model_type: llama
datasets:
- custom_telegram_dialogs
---

# 🤖 LLaMA 3.2 3B Персонализированная Модель

Персонализированная модель на основе **LLaMA 3.2 3B Instruct**, обученная на диалогах Telegram с использованием **LoRA (Low-Rank Adaptation)** на **TPU v3-8**.

## 📊 Результаты обучения

![Training Metrics](training_metrics.png)

| Метрика | Training | Validation |
|---------|----------|------------|
| **Loss** | 2.3811 | 2.2514 |
| **Perplexity** | 10.82 | 9.50 |

- ⏱️ **Время обучения**: ~8.1 часов на TPU v3-8
- 🔄 **Всего шагов**: 8,012 (1 эпоха)
- 📈 **Отличная генерализация**: validation loss ниже training loss

## 🔧 Конфигурация LoRA

```yaml
LoRA Configuration:
  rank: 16
  alpha: 32
  dropout: 0.1
  target_modules: 
    - q_proj
    - k_proj  
    - v_proj
    - o_proj
    - gate_proj
    - up_proj
```

## 🎯 Особенности модели

- 🗣️ **Персонализация**: Обучена имитировать стиль общения конкретного пользователя
- 🇷🇺 **Русский язык**: Оптимизирована для русскоязычных диалогов
- 💬 **Telegram-стиль**: Адаптирована под неформальное общение в мессенджерах
-**Эффективность**: Использует LoRA для быстрого fine-tuning

## 💾 Использование

### Быстрый старт

```python
from transformers import AutoTokenizer, AutoModelForCausalLM
from peft import PeftModel
import torch

# Загрузка базовой модели
base_model_name = "meta-llama/Llama-3.2-3B-Instruct"
model = AutoModelForCausalLM.from_pretrained(
    base_model_name,
    torch_dtype=torch.bfloat16,
    device_map="auto"
)

# Загрузка LoRA адаптера
model = PeftModel.from_pretrained(model, "Aze4ka/projectme")

# Загрузка токенизатора
tokenizer = AutoTokenizer.from_pretrained("Aze4ka/projectme")

# Функция генерации ответа
def generate_response(prompt, max_new_tokens=100, temperature=0.7):
    # Форматирование в стиле LLaMA 3.2
    formatted_prompt = f"<|begin_of_text|><|start_header_id|>user<|end_header_id|>\n\n{prompt}<|eot_id|><|start_header_id|>assistant<|end_header_id|>\n\n"
    
    inputs = tokenizer(formatted_prompt, return_tensors="pt")
    
    with torch.no_grad():
        outputs = model.generate(
            **inputs,
            max_new_tokens=max_new_tokens,
            temperature=temperature,
            top_p=0.9,
            do_sample=True,
            pad_token_id=tokenizer.pad_token_id,
            eos_token_id=tokenizer.eos_token_id
        )
    
    response = tokenizer.decode(outputs[0][inputs['input_ids'].shape[1]:], skip_special_tokens=True)
    return response.strip()

# Пример использования
response = generate_response("Привет! Как дела?")
print(response)
```

### Примеры диалогов

**Пользователь**: Привет! Как дела?  
**Модель**: Привет! Дела отлично, спасибо! А у тебя как?

**Пользователь**: Что думаешь о машинном обучении?  
**Модель**: ML — это невероятно! Постоянно развивается, столько возможностей...

## 🛠️ Технические детали

- **Базовая модель**: `meta-llama/Llama-3.2-3B-Instruct`
- **Метод обучения**: LoRA (Low-Rank Adaptation)
- **Платформа**: TPU v3-8 на Kaggle
- **Фреймворк**: PyTorch + torch_xla
- **Библиотеки**: transformers, peft, wandb

## 📈 Процесс обучения

- 📊 **Логирование**: Wandb с метриками каждые 10 шагов
- 🔄 **Валидация**: Каждые 1000 шагов
- 💾 **Checkpoint'ы**: Автоматическое сохранение
- ⚡ **Оптимизация**: AdamW с cosine scheduler

## ⚡ Рекомендации по использованию

- **Temperature**: 0.7 для сбалансированности
- **Max tokens**: 100-150 для коротких ответов
- **Top-p**: 0.9 для разнообразия
- **Batch size**: 1-4 для инференса

## 🎓 Цитирование

```bibtex
@misc{llama32-personalized-2025,
  title={LLaMA 3.2 3B Персонализированная модель},
  author={Aze4ka},
  year={2025},
  publisher={HuggingFace},
  url={https://huggingface.co/Aze4ka/projectme}
}
```

## 📄 Лицензия

Эта модель лицензирована в соответствии с [LLaMA 3.2 Community License](https://github.com/meta-llama/llama-models/blob/main/models/llama3_2/LICENSE).

---

*Модель создана в образовательных целях для демонстрации персонализации LLM на русском языке.*