Aze4ka commited on
Commit
8d7a5ca
·
verified ·
1 Parent(s): d951c30

Upload README.md with huggingface_hub

Browse files
Files changed (1) hide show
  1. README.md +160 -0
README.md ADDED
@@ -0,0 +1,160 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ language:
3
+ - ru
4
+ - en
5
+ library_name: transformers
6
+ pipeline_tag: text-generation
7
+ license: llama3.2
8
+ base_model: meta-llama/Llama-3.2-3B-Instruct
9
+ tags:
10
+ - llama-3.2
11
+ - personalization
12
+ - russian
13
+ - telegram
14
+ - lora
15
+ - tpu
16
+ - conversational-ai
17
+ - fine-tuned
18
+ model_type: llama
19
+ datasets:
20
+ - custom_telegram_dialogs
21
+ ---
22
+
23
+ # 🤖 LLaMA 3.2 3B Персонализированная Модель
24
+
25
+ Персонализированная модель на основе **LLaMA 3.2 3B Instruct**, обученная на диалогах Telegram с использованием **LoRA (Low-Rank Adaptation)** на **TPU v3-8**.
26
+
27
+ ## 📊 Результаты обучения
28
+
29
+ ![Training Metrics](training_metrics.png)
30
+
31
+ | Метрика | Training | Validation |
32
+ |---------|----------|------------|
33
+ | **Loss** | 2.3811 | 2.2514 |
34
+ | **Perplexity** | 10.82 | 9.50 |
35
+
36
+ - ⏱️ **Время обучения**: ~8.1 часов на TPU v3-8
37
+ - 🔄 **Всего шагов**: 8,012 (1 эпоха)
38
+ - 📈 **Отличная генерализация**: validation loss ниже training loss
39
+
40
+ ## 🔧 Конфигурация LoRA
41
+
42
+ ```yaml
43
+ LoRA Configuration:
44
+ rank: 16
45
+ alpha: 32
46
+ dropout: 0.1
47
+ target_modules:
48
+ - q_proj
49
+ - k_proj
50
+ - v_proj
51
+ - o_proj
52
+ - gate_proj
53
+ - up_proj
54
+ ```
55
+
56
+ ## 🎯 Особенности модели
57
+
58
+ - 🗣️ **Персонализация**: Обучена имитировать стиль общения конкретного пользователя
59
+ - 🇷🇺 **Русский язык**: Оптимизирована для русскоязычных диалогов
60
+ - 💬 **Telegram-стиль**: Адаптирована под неформальное общение в мессенджерах
61
+ - ⚡ **Эффективность**: Использует LoRA для быстрого fine-tuning
62
+
63
+ ## 💾 Использование
64
+
65
+ ### Быстрый старт
66
+
67
+ ```python
68
+ from transformers import AutoTokenizer, AutoModelForCausalLM
69
+ from peft import PeftModel
70
+ import torch
71
+
72
+ # Загрузка базовой модели
73
+ base_model_name = "meta-llama/Llama-3.2-3B-Instruct"
74
+ model = AutoModelForCausalLM.from_pretrained(
75
+ base_model_name,
76
+ torch_dtype=torch.bfloat16,
77
+ device_map="auto"
78
+ )
79
+
80
+ # Загрузка LoRA адаптера
81
+ model = PeftModel.from_pretrained(model, "Aze4ka/projectme")
82
+
83
+ # Загрузка токенизатора
84
+ tokenizer = AutoTokenizer.from_pretrained("Aze4ka/projectme")
85
+
86
+ # Функция генерации ответа
87
+ def generate_response(prompt, max_new_tokens=100, temperature=0.7):
88
+ # Форматирование в стиле LLaMA 3.2
89
+ 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"
90
+
91
+ inputs = tokenizer(formatted_prompt, return_tensors="pt")
92
+
93
+ with torch.no_grad():
94
+ outputs = model.generate(
95
+ **inputs,
96
+ max_new_tokens=max_new_tokens,
97
+ temperature=temperature,
98
+ top_p=0.9,
99
+ do_sample=True,
100
+ pad_token_id=tokenizer.pad_token_id,
101
+ eos_token_id=tokenizer.eos_token_id
102
+ )
103
+
104
+ response = tokenizer.decode(outputs[0][inputs['input_ids'].shape[1]:], skip_special_tokens=True)
105
+ return response.strip()
106
+
107
+ # Пример использования
108
+ response = generate_response("Привет! Как дела?")
109
+ print(response)
110
+ ```
111
+
112
+ ### Примеры диалогов
113
+
114
+ **Пользователь**: Привет! Как дела?
115
+ **Модель**: Привет! Дела отлично, спасибо! А у тебя как?
116
+
117
+ **Пользователь**: Что думаешь о машинном обучении?
118
+ **Модель**: ML — это невероятно! Постоянно развивается, столько возможностей...
119
+
120
+ ## 🛠️ Технические детали
121
+
122
+ - **Базовая модель**: `meta-llama/Llama-3.2-3B-Instruct`
123
+ - **Метод обучения**: LoRA (Low-Rank Adaptation)
124
+ - **Платформа**: TPU v3-8 на Kaggle
125
+ - **Фреймворк**: PyTorch + torch_xla
126
+ - **Библиотеки**: transformers, peft, wandb
127
+
128
+ ## 📈 Процесс обучения
129
+
130
+ - 📊 **Логирование**: Wandb с метриками каждые 10 шагов
131
+ - 🔄 **Валидация**: Каждые 1000 шагов
132
+ - 💾 **Checkpoint'ы**: Автоматическое сохранение
133
+ - ⚡ **Оптимизация**: AdamW с cosine scheduler
134
+
135
+ ## ⚡ Рекомендации по использованию
136
+
137
+ - **Temperature**: 0.7 для сбалансированности
138
+ - **Max tokens**: 100-150 для коротких ответов
139
+ - **Top-p**: 0.9 для разнообразия
140
+ - **Batch size**: 1-4 для инференса
141
+
142
+ ## 🎓 Цитирование
143
+
144
+ ```bibtex
145
+ @misc{llama32-personalized-2025,
146
+ title={LLaMA 3.2 3B Персонализированная модель},
147
+ author={Aze4ka},
148
+ year={2025},
149
+ publisher={HuggingFace},
150
+ url={https://huggingface.co/Aze4ka/projectme}
151
+ }
152
+ ```
153
+
154
+ ## 📄 Лицензия
155
+
156
+ Эта модель лицензирована в соответствии с [LLaMA 3.2 Community License](https://github.com/meta-llama/llama-models/blob/main/models/llama3_2/LICENSE).
157
+
158
+ ---
159
+
160
+ *Модель создана в образовательных целях для демонстрации персонализации LLM на русском языке.*