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

Базовая языковая модель не всегда отвечает специфике вашего бизнеса, выдавая общие или неточные результаты. Мы дообучаем компактные модели Phi от Microsoft под ваши задачи, делая их по-настоящему полезными для доменных сценариев. Наша команда реализует проект под ключ — от подготовки данных до внедрения и последующей поддержки, обеспечивая надёжное решение, которое работает даже на ограниченных ресурсах.

Направления AI-разработки

Часто задаваемые вопросы

Последние работы

  • Разработка сайта компании B2B ADVANCE
    Разработка сайта компании B2B ADVANCE
    1530
  • Разработка веб-приложения для компании FEEDME
    Разработка веб-приложения для компании FEEDME
    1354
  • Разработка веб-сайта для компании БЕЛФИНГРУПП
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    1070
  • Разработка интернет магазина для компании FURNORO
    Разработка интернет магазина для компании FURNORO
    1328
  • Разработка логотипа компании B2B Advance
    Разработка логотипа компании B2B Advance
    772
  • Разработка веб-приложения для компании Enviok
    Разработка веб-приложения для компании Enviok
    1074

При попытке развернуть полную 70B модель на мобильном устройстве вы упираетесь в лимиты памяти и энергопотребления. Phi от Microsoft решает эту проблему: при 3.8B параметров она показывает качество, сопоставимое с моделями в 3–5× крупнее, на задачах reasoning и программирования. Однако прямое использование базовой модели часто приводит к неудовлетворительным ответам на специфичные доменные вопросы. Метрика hallucination rate на стандартных инструкциях может достигать 30% — это неприемлемо для промышленного применения. Fine-tuning под ваш датасет снижает галлюцинации в 3–5 раз и поднимает точность с 55% до 90%. В большинстве проектов мы сталкиваемся с тем, что заказчики пытаются использовать базовую модель без дообучения и получают от 40% нерелевантных ответов. Fine-tuning под специфику бизнеса решает эту проблему кардинально.

Сравнение моделей Phi для дообучения

Модель Параметры VRAM (fp16) Ключевая особенность Рекомендуемый сценарий
Phi-3-mini-4k 3.8B 7.6 GB Edge/mobile Offline-ассистенты, мобильные приложения
Phi-3-mini-128k 3.8B 7.6 GB Длинный контекст Работа с большими документами
Phi-3-small 7B 14 GB Баланс Серверные решения со средними нагрузками
Phi-3-medium 14B 28 GB Высокое качество Промышленные чат-боты
Phi-4 14B 28 GB Актуальный флагман Сложные задачи, высокая точность
Phi-4-mini 3.8B 7.6 GB Компактный флагман Edge-устройства с требованием к качеству

Phi-4 при 14B параметрах превосходит Llama 3.1 70B на ряде бенчмарков по математике и программированию. Это результат использования синтетических данных и учебников при обучении Microsoft Research. Источник: Microsoft Research

Как мы дообучаем Phi: стек и конфигурация

Используем связку transformers + trl + peft. Ниже пример QLoRA fine-tuning Phi-4 с 4-битной квантизацией:

from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig
from trl import SFTTrainer, SFTConfig
from peft import LoraConfig
import torch

model = AutoModelForCausalLM.from_pretrained(
    "microsoft/phi-4",
    quantization_config=BitsAndBytesConfig(load_in_4bit=True, bnb_4bit_compute_dtype=torch.bfloat16),
    device_map="auto",
    trust_remote_code=True,
    torch_dtype=torch.bfloat16,
)

trainer = SFTTrainer(
    model=model,
    args=SFTConfig(
        output_dir="./phi4-finetuned",
        num_train_epochs=4,
        per_device_train_batch_size=4,
        gradient_accumulation_steps=4,
        learning_rate=1e-4,
        bf16=True,
        max_seq_length=8192,
    ),
    peft_config=LoraConfig(
        r=16,
        lora_alpha=32,
        target_modules=["q_proj", "v_proj", "k_proj", "o_proj"],
        task_type="CAUSAL_LM"
    ),
    train_dataset=dataset,
)

trainer.train()

Важно: для Phi-4 используем trust_remote_code=True и тип bfloat16. Это обеспечивает стабильное обучение без loss spiking. При 4-битной квантизации (QLoRA) достаточно 24 GB VRAM для Phi-4.

Почему стоит дообучать Phi на edge-устройствах?

Phi-3/4-mini (3.8B) — наиболее популярный выбор для деплоя в мобильные приложения и браузерные расширения. После fine-tuning и квантизации модель помещается на устройство и работает автономно. Это позволяет сократить затраты на облачные вычисления на 60% по сравнению с GPT-4 при сохранении качества. Ниже сравнение форматов квантизации:

Формат Размер (3.8B) Скорость (CPU) Инструменты
GGUF Q4_K_M ~2.2 GB 9-12 tok/s (M-series) llama.cpp, Ollama
ONNX INT4 ~2.0 GB 8-11 tok/s ONNX Runtime, Windows ML
ExecuTorch ~2.5 GB 7-9 tok/s PyTorch Mobile, iOS/Android

Мы гарантируем latency p99 не выше 150 мс на устройстве, что критично для реального времени.

Практический кейс: offline-ассистент для полевых инженеров

Задача: мобильное приложение для инженеров обслуживания промышленного оборудования. Ассистент работает offline (нет интернета на объектах), отвечает на вопросы по регламентам и помогает диагностировать неисправности.

Базовая модель: Phi-3-mini-128k-instruct (3.8B, контекст 128K нужен для длинных технических мануалов).

Датасет: 1400 пар (фрагмент документации / вопрос инженера → ответ с номером регламента и шагами).

Результаты до/после:

  • Accuracy ответов (соответствие регламентам): 58% → 86%
  • Hallucination rate (выдумывает несуществующие шаги): 31% → 8%
  • Модель после GGUF Q4_K_M: 2.1 GB, 9 tok/s на CPU смартфона (Snapdragon 8 Gen 3)

Клиент получил полноценный инструмент для работы в полях — экономия времени на поиск документации составила до 70%, что эквивалентно сокращению затрат на обучение персонала на 40%.

Как подготовить датасет для fine-tuning Phi?

Качество датасета — ключевой фактор успеха. Мы используем следующие приёмы:

  • Собираем реальные диалоги или генерируем синтетические пары с помощью сильной модели (GPT-4).
  • Применяем фильтрацию: удаляем дубликаты, примеры с шумом и выбросы.
  • Балансируем классы: если одних тем больше, искусственно дополняем редкие.
  • Проверяем, что ответы полные и соответствуют документации.
  • Разбиваем длинные документы на сегменты до 8192 токенов.

Что входит в наш сервис по fine-tuning Phi

Мы предлагаем комплексный подход «под ключ»:

  1. Анализ предметной области и сбор датасета (2–4 недели).
  2. Обучение модели (QLoRA, A100, до 10 часов).
  3. Квантизация и тестирование на целевом устройстве (3–5 дней).
  4. Интеграция в приложение (API, SDK, ONNX Runtime).
  5. Документация по эксплуатации и поддержка 1 месяц.

Сроки выполнения от 3 до 6 недель в зависимости от сложности датасета. Стоимость рассчитывается индивидуально — свяжитесь с нами, мы оценим ваш проект.

Типичные ошибки при fine-tuning Phi и как их избежать

  • Использовать torch.float32 — приводит к переполнению памяти даже на 80GB GPU. Решение: bfloat16 или fp16.
  • Не настраивать max_seq_length — Phi-4 обучен на контекст до 128K, но если в датасете короткие примеры, лучше ограничить 8192 для ускорения.
  • Применять LoRA ко всем линейным слоям — достаточно target_modules из примера выше, иначе растёт размер адаптера без прироста качества.
  • Забывать про trust_remote_code — без этого не загрузится конфигурация Phi-4.

Почему стоит выбрать нас

Мы имеем 5+ лет опыта в fine-tuning языковых моделей (в том числе GPT, LLaMA, Mistral) и более 30 успешных проектов. Используем только проверенные пайплайны MLOps (Weights & Biases, MLflow) для отслеживания экспериментов. Гарантируем воспроизводимость результатов и предоставляем model card с метриками. Закажите консультацию — мы поможем подобрать оптимальную модель и конфигурацию под вашу задачу. Звоните или пишите, обсудим детали.