Как создавать специализированные модели для ваших задач в Aidagolova Desktop
LoRA (Low-Rank Adaptation) — это метод эффективной настройки больших языковых моделей. Вместо переобучения всей модели (миллиарды параметров) LoRA добавляет небольшие адаптеры — всего тысячи или десятки тысяч параметров, которые «прикрепляются» к базовой модели.
Один базовый LLM (например, Qwen2.5-0.5B) может использоваться для разных задач — достаточно загрузить нужный адаптер. Не нужно хранить несколько полных моделей.
Aidagolova поддерживает обучение на данных в формате JSONL — каждая строка файла содержит один JSON-объект.
{"messages": [
{"role": "system", "content": "Ты — финансовый аналитик."},
{"role": "user", "content": "Какой доходность у ОФЗ?"},
{"role": "assistant", "content": "ОФЗ — облигации федерального займа..."}
]}
{"messages": [
{"role": "user", "content": "Объясни разницу между акцией и облигацией"},
{"role": "assistant", "content": "Акция — это доля в компании..."}
]}
| Параметр | Значение |
|---|---|
| Формат | JSONL (одна строка = один диалог) |
| Поля в сообщении | role: system, user, assistantcontent: текст сообщения |
| Рекомендуемый размер | 500–10 000 примеров для fine-tuning |
| Максимальная длина | 2048 токенов на один пример |
| Кодировка | UTF-8 |
В левом меню Aidagolova Desktop выберите пункт Training.
Выберите модель из списка. Рекомендуемые модели для обучения адаптеров:
Qwen/Qwen2.5-0.5B — быстрое обучение, меньше VRAMQwen/Qwen2.5-1.5B — лучше качество, больше памятиQwen/Qwen2.5-3B — высокое качество, требует 8GB VRAM| Параметр | По умолчанию | Описание |
|---|---|---|
| adapter_name | не задан | Название адаптера (латиница, без пробелов) |
| dataset_path | не задан | Путь к файлу JSONL с данными |
| rank (r) | 8 | Ранг адаптера. Чем больше — тем больше параметров адаптера, тем точнее, но дольше обучение. Диапазон: 4–64 |
| alpha | 16 | Коэффициент масштабирования. Обычно 2× rank |
| epochs | 3 | Количество эпох. 1–5 достаточно для большинства задач |
| batch_size | 4 | Размер батча. Больше = быстрее, но требует больше VRAM |
| learning_rate | 3e-4 | Скорость обучения. 1e-4 — 5e-4 типичный диапазон |
| cutoff_len | 512 | Максимальная длина последовательности в токенах |
| target_modules | q_proj, v_proj | Какие слои модели затрагивает адаптер |
| lora_dropout | 0.05 | Dropout для LoRA слоёв |
Нажмите кнопку ▶ Start Training.
Обучение требует GPU с CUDA и минимум 6GB VRAM для модели 0.5B. Для 3B модели нужно 12GB+ VRAM. Обучение на CPU не поддерживается.
Статус обучения отображается в реальном времени:
Training Status:
Running: ✓
Epoch: 2 / 3
Step: 150 / 500
Loss: 0.542
ETA: ~25 minutes
После завершения обучения адаптер автоматически появится в списке Adapters в Aidagolova Desktop.
При отправке сообщения можно указать какой адаптер использовать: @имя_адаптера. Если не указать — используется последний загруженный.
Python-скрипт для конвертации CSV в JSONL:
import json
with open("my_data.csv", "r") as f:
lines = f.readlines()[1:] # пропустить заголовок
with open("training_data.jsonl", "w") as out:
for line in lines:
parts = line.strip().split("|")
if len(parts) >= 2:
record = {
"messages": [
{"role": "system", "content": "Ты — ассистент."},
{"role": "user", "content": parts[0].strip()},
{"role": "assistant", "content": parts[1].strip()}
]
}
out.write(json.dumps(record, ensure_ascii=False) + "\n")
Обученные адаптеры сохраняются в:
~/.local/share/aidagolova/adapters/
Каждый адаптер — отдельная папка с файлами adapter_config.json и adapter_model.safetensors.
| Проблема | Решение |
|---|---|
| CUDA out of memory | Уменьшите batch_size до 2 или 1 |
| Loss не уменьшается | Проверьте качество данных, увеличьте learning_rate |
| Адаптер не загружается | Проверьте что базовая модель та же что при обучении |
| RuntimeError: expected | Обновите драйверы NVIDIA до последней версии |