Модуль V·Статья III·~3 мин чтения

Fine-tuning и применение LLM в специализированных областях

Трансформеры и большие языковые модели

Превратить статью в подкаст

Выберите голоса, формат и длину — AI запишет аудио

Fine-tuning и применение LLM в специализированных областях

Универсальные LLM сильны в широком диапазоне задач, но для специализированных областей — медицины, права, финансов, кода — требуется адаптация. Fine-tuning и RAG позволяют создавать доменные эксперты без обучения с нуля.

Методы адаптации LLM

Full Fine-tuning: обновляем все параметры модели на доменных данных. GPT-3 (175B): стоимость fine-tuning ~$100K. Риск «катастрофического забывания» (catastrophic forgetting) — модель теряет общие знания. Оправдано только при очень специализированных задачах с большим датасетом.

LoRA (Low-Rank Adaptation, Hu et al., 2021): Дообавляем к каждой матрице весов W low-rank обновление: W' = W + BA, где B ∈ ℝ^{d×r}, A ∈ ℝ^{r×k}, r ≪ min(d,k). Обучаем только B и A (0.01–1% параметров). Инициализация: B=0, A~N — сначала нет изменений. При инференсе: W' = W + BA — просто складываем. Качество сравнимо с full fine-tuning при r=8–64.

QLoRA (Dettmers et al., 2023): LoRA + 4-bit NormalFloat quantization базовой модели. Позволяет fine-tune LLaMA-65B на одной GPU A100 (80GB). «Killer feature» для академических лабораторий.

Adapter layers: Добавляем небольшие «адаптерные» слои между существующими. Freezing все остальные. Менее популярны, чем LoRA.

Retrieval-Augmented Generation (RAG)

Проблема: LLM не знает доменной информации, устаревшей или конфиденциальной. Hallucinations для специфических фактов.

RAG architecture:

  1. Indexing: разбить документы на чанки (256–512 токенов), создать embeddings через text-embedding-ada-002 или локальные модели (BAAI/bge-en), сохранить в vector database (Chroma, Faiss, Pinecone, Qdrant).

  2. Retrieval: для запроса q: embedding(q) → similarity search в vector DB → top-k (k=3–10) релевантных чанков.

  3. Generation: LLM генерирует ответ, используя найденные фрагменты как контекст. Промпт: «На основе следующего контекста ответь на вопрос. Контекст: [чанки]. Вопрос: [q]».

Оценка RAG: RAGAS метрики: Faithfulness (ответ соответствует контексту), Answer Relevancy (ответ на вопрос), Context Precision (релевантность найденных чанков), Context Recall (нашли ли нужное).

Продвинутые RAG стратегии: HyDE (Hypothetical Document Embeddings): LLM генерирует гипотетический ответ → встраиваем его (не запрос) → более точный retrieval. Reranking: после retrieval, cross-encoder переоценивает релевантность. Self-RAG: модель сама решает, нужен ли retrieval.

Специализированные LLM

Медицина: Med-PaLM 2 (Google, 2023): PaLM 2 fine-tuned на медицинских текстах + RLHF от врачей-специалистов. Тест USMLE (врачебный экзамен США): Med-PaLM 2 = 85% (уровень эксперта). Ограничения: не одобрен FDA, галлюцинации в медицинских фактах опасны.

Юриспруденция: LegalBERT, SaulLM-7B: Предобученные или fine-tuned на юридических корпусах (Canlii, US court decisions, contracts). Лучше стандартных моделей для Named Entity Recognition в контрактах, классификации исков, суммаризации решений.

Финансы: BloombergGPT (50B, 2023): обучен на 363B финансовых токенов (Bloomberg News, SEC filings, финансовые отчёты) + 345B общих. Лучше GPT-4 на финансовых NLP-задачах (sentiment, NER, QA), но хуже на общих.

Код: GitHub Copilot, CodeLlama: Copilot (Codex-based): 40–55% строк принимается программистами. +55% производительности для опытных (Brynjolfsson, 2023). CodeLlama-34B: SOTA на HumanEval (Python coding benchmark) среди open-source.

Оценка LLM

Стандартные бенчмарки: MMLU (57 академических задач): GPT-4 = 86%, LLaMA-3-8B = 68%. HumanEval (code): GPT-4 = 67%, CodeLlama-34B = 55%. MT-Bench: разговорное качество, GPT-4-судья.

Живые бенчмарки (Chatbot Arena): Пользователи сравнивают ответы двух анонимных моделей. ELO рейтинг. Труднее «переоптимизировать» под бенчмарк.

Проблема data contamination: тестовые данные могли попасть в обучение → завышенные результаты. LiveBench: регулярно обновляемые задачи из недавних событий.

Численный пример

Fine-tune LLaMA-3-8B через QLoRA на юридическом датасете (50K договоров):

  • Rank r=16, alpha=32, target modules=q_proj, v_proj
  • Trainable params: 16.7M (0.21% от 8B)
  • Обучение: 3 эпохи × 50K примеров, A100 40GB, ~6 часов
  • Val loss: 1.82 → 1.31 (28% снижение)
  • NER в договорах (extraсция сторон, дат, сумм): F1 = 0.91 vs 0.74 для базовой LLaMA-3-8B (zero-shot)
  • RAG поверх базы договоров: F1 = 0.86 (хуже fine-tune, но не нужна переобучение)

Вывод: для специализированных NER задач с данными → fine-tune. Для QA по конкретным документам → RAG.

Задание: Постройте RAG-систему для научных статей (используйте arXiv abstracts в своей области). (1) Скачайте 1000 статей (API arXiv). (2) Разбейте на чанки (chunk_size=512, overlap=50). Создайте embeddings (sentence-transformers). Сохраните в Chroma. (3) Реализуйте RAG: для 20 вопросов о содержании статей — retrieval + GPT-3.5 ответ. (4) Оцените: RAGAS Faithfulness и Context Precision. (5) Сравните с прямым GPT-3.5 (без RAG) — как улучшается точность на фактических вопросах?

§ Акт · что дальше