Дообучение (Fine-Tuning) языковой модели Qwen (Alibaba)

Проектируем и внедряем системы искусственного интеллекта: от прототипа до production-ready решения. Наша команда объединяет экспертизу в машинном обучении, дата-инжиниринге и MLOps, чтобы AI работал не в лаборатории, а в реальном бизнесе.
Показано 1 из 1 услугВсе 1566 услуг
Дообучение (Fine-Tuning) языковой модели Qwen (Alibaba)
Сложная
от 1 недели до 3 месяцев
Часто задаваемые вопросы
Направления AI-разработки
Этапы разработки AI-решения
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1218
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1161
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    853
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1047
  • image_logo-advance_0.png
    Разработка логотипа компании B2B Advance
    561
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    825

Дообучение (Fine-Tuning) языковой модели Qwen (Alibaba)

Qwen — семейство открытых языковых моделей Alibaba Cloud, выпускаемых под лицензией Apache 2.0 (базовые версии) и Tongyi Qianwen License (крупные версии). Семейство Qwen2.5 включает модели от 0.5B до 72B параметров, а также специализированные версии: Qwen2.5-Coder (программирование), Qwen2.5-Math (математика), Qwen-VL (мультимодальная). По бенчмаркам MMLU и HumanEval Qwen2.5-72B конкурирует с Llama 3.1 70B.

Модельный ряд Qwen2.5 для fine-tuning

Модель Параметры VRAM (bf16) Особенность
Qwen2.5-0.5B 0.5B 1 GB Edge/IoT
Qwen2.5-1.5B 1.5B 3 GB Мобильные
Qwen2.5-7B 7B 14 GB Основная рабочая лошадка
Qwen2.5-14B 14B 28 GB Баланс качества/ресурсов
Qwen2.5-32B 32B 64 GB Высокое качество
Qwen2.5-72B 72B 144 GB State-of-the-art открытых
Qwen2.5-Coder-32B 32B 64 GB Код, SQL, алгоритмы

Преимущества Qwen для специфических задач

Многоязычность: Qwen обучен на данных с существенной долей китайского, английского и ещё 27 языков. Русский язык представлен значительно лучше, чем в ряде западных моделей, что важно при работе с русскоязычными корпусами.

Длинный контекст: Qwen2.5 поддерживает до 128K токенов контекста. При fine-tuning задач с длинными документами (договоры, научные статьи, нормативные акты) это критическое преимущество.

Qwen2.5-Coder: специализированная версия, превосходящая по HumanEval большинство открытых моделей того же размера. При дообучении на корпоративной кодовой базе даёт лучший старт, чем дообучение общей модели.

Fine-tuning через LLaMA-Factory

LLaMA-Factory — наиболее удобный инструмент для fine-tuning Qwen, поддерживающий весь спектр методов (Full, LoRA, QLoRA, DoRA) с единым конфигурационным форматом:

# config.yaml
model_name_or_path: Qwen/Qwen2.5-7B-Instruct
method: lora
dataset: my_dataset
template: qwen
finetuning_type: lora
lora_rank: 16
lora_alpha: 32
lora_target: q_proj,v_proj
output_dir: ./qwen25-7b-finetuned
num_train_epochs: 3
per_device_train_batch_size: 4
gradient_accumulation_steps: 4
learning_rate: 2.0e-4
lr_scheduler_type: cosine
warmup_ratio: 0.1
bf16: true
llamafactory-cli train config.yaml

Альтернативно — использование swift от ModelScope (Alibaba):

swift sft \
  --model_type qwen2_5_7b_instruct \
  --dataset my_dataset \
  --train_type lora \
  --output_dir ./output

Формат данных: Qwen Chat Template

Qwen2.5 использует специфический chat template с тегами <|im_start|> и <|im_end|>:

<|im_start|>system
Ты — ассистент для анализа финансовой отчётности.<|im_end|>
<|im_start|>user
Рассчитай EBITDA по данным: выручка 850M, COGS 420M, OpEx 180M, DA 45M<|im_end|>
<|im_start|>assistant
EBITDA = Выручка - COGS - OpEx + DA = 850 - 420 - 180 + 45 = **295M**<|im_end|>

При использовании transformers напрямую применяем tokenizer.apply_chat_template() для корректного форматирования.

Практический кейс: финансовый анализ на Qwen2.5-14B

Задача: автоматический анализ квартальных отчётов компаний (МСФО), извлечение ключевых показателей, расчёт финансовых коэффициентов, флаги аномалий.

Датасет: 1800 примеров: входные данные из отчётности → структурированный анализ (JSON + текстовое резюме на русском).

Обучение: Qwen2.5-14B Instruct, QLoRA (r=32, alpha=64), 4 эпохи, 2×A100 40GB, 6 часов.

Результаты:

  • Корректность расчёта коэффициентов: 71% → 94%
  • Точность флагов аномалий (F1): 0.67 → 0.88
  • Качество текстового резюме (human eval, 1–5): 3.1 → 4.4
  • Токенов на запрос (avg): без изменений (~1800)

Деплой дообученной Qwen через vLLM

from vllm import LLM, SamplingParams

llm = LLM(
    model="./qwen25-14b-merged",
    dtype="bfloat16",
    tensor_parallel_size=2,  # 2 GPU
    max_model_len=32768,
    gpu_memory_utilization=0.9
)

sampling_params = SamplingParams(temperature=0.1, max_tokens=2048)
outputs = llm.generate(prompts, sampling_params)

vLLM обеспечивает continuous batching и PagedAttention, что при batch размере 16 даёт throughput ~240 tok/s на 2×A100.

Сроки

  • Подготовка датасета: 2–5 недель
  • Обучение (7B, QLoRA): 3–8 часов
  • Обучение (72B, QLoRA, 4×A100): 24–72 часа
  • Итерации и оценка: 1–2 недели
  • Итого: 4–8 недель