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

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

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

Training Metrics

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

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for Aze4ka/projectme

Adapter
(408)
this model