🤖 LLaMA 3.2 3B Персонализированная Модель
Персонализированная модель на основе LLaMA 3.2 3B Instruct, обученная на диалогах Telegram с использованием LoRA (Low-Rank Adaptation) на TPU v3-8.
📊 Результаты обучения
Метрика | 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
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
💾 Использование
Быстрый старт
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 для инференса
🎓 Цитирование
@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.
Модель создана в образовательных целях для демонстрации персонализации LLM на русском языке.
Inference Providers
NEW
This model isn't deployed by any Inference Provider.
🙋
Ask for provider support
Model tree for Aze4ka/projectme
Base model
meta-llama/Llama-3.2-3B-Instruct