--- 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 на русском языке.*