projectme / README.md
Aze4ka's picture
Upload README.md with huggingface_hub
8d7a5ca verified
---
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 на русском языке.*