Дотонування мовних моделей Phi (Microsoft)
Phi — сім'я компактних мовних моделей від Microsoft Research, оптимізована за принципом "якість даних важливіша за кількість параметрів". Phi-3 та Phi-4 показують результати, порівнянні з моделями в 3–5 разів більшими, на завданнях reasoning та програмування. Це робить їх привабливими для edge-розгортання, мобільних додатків і сценаріїв з обмеженими обчислювальними ресурсами.
Лінійка моделей Phi
| Модель | Параметри | VRAM (fp16) | Ключова особливість |
|---|---|---|---|
| Phi-3-mini-4k | 3.8B | 7.6 ГБ | Edge/мобільні |
| Phi-3-mini-128k | 3.8B | 7.6 ГБ | Довгий контекст |
| Phi-3-small | 7B | 14 ГБ | Рівновага |
| Phi-3-medium | 14B | 28 ГБ | Висока якість |
| Phi-4 | 14B | 28 ГБ | Поточний флагман |
| Phi-4-mini | 3.8B | 7.6 ГБ | Компактний флагман |
Phi-4 з 14B параметрами перевищує Llama 3.1 70B за кількома бенчмарками з математики та програмування — результат високої якості тренувальних даних (синтетичні дані, підручники).
LoRA дотонування Phi-4 через Transformers + TRL
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()
Специфіка: дотонування для edge та мобільних пристроїв
Phi-3/4-mini (3.8B) — найпопулярніший вибір для розгортання в мобільні додатки та розширення браузера. Після дотонування та квантизації:
- GGUF Q4_K_M: ~2.2 ГБ, працює на CPU (MacBook M-series: ~12 tok/s)
- ONNX INT4: використовується в ONNX Runtime для Windows/Android
- ExecuTorch: розгортання на iPhone/Android через PyTorch Mobile
Microsoft надає версії ONNX Phi через microsoft/Phi-3-mini-4k-instruct-onnx, спрощуючи інтеграцію в .NET та Windows-додатки.
Практичний випадок: offline-помічник для польових інженерів
Завдання: мобільний додаток для інженерів технічного обслуговування промислового обладнання. Помічник працює offline (немає інтернету на об'єктах), відповідає на запитання про регламенти обслуговування та допомагає діагностувати несправності.
Базова модель: Phi-3-mini-128k-instruct (3.8B, контекст 128K необхідний для довгих технічних посібників).
Набір даних: 1400 пар (фрагмент документації / запитання інженера → відповідь із номером регламенту та кроками).
Результат:
- Точність відповідей (відповідність регламентам): 58% → 86%
- Рівень галюцинацій (придумує неіснуючі кроки): 31% → 8%
- Модель після GGUF Q4_K_M: 2.1 ГБ, 9 tok/s на CPU смартфона (Snapdragon 8 Gen 3)
Строки
- Підготовка набору даних: 2–4 тижні
- Тренування (Phi-4 14B, QLoRA, A100): 4–10 годин
- Квантизація та тестування на пристрої: 3–5 днів
- Усього: 3–6 тижнів







