Дообучение (Fine-Tuning) языковой модели Command R (Cohere)
Command R и Command R+ — языковые модели Cohere, специализированные для RAG-задач, работы с инструментами и корпоративного использования. Cohere предоставляет управляемый fine-tuning через собственный API и платформу. Ключевое отличие Command R от большинства LLM — оптимизация под RAG-сценарии «из коробки»: модель обучена на грамотной цитации источников и снижении галлюцинаций при работе с документами.
Семейство Command R
| Модель | Параметры | Контекст | Ключевая особенность |
|---|---|---|---|
| Command R | 35B | 128K | RAG, цитирование |
| Command R+ | 104B | 128K | Сложные задачи, reasoning |
| Command R7B | 7B | 128K | Быстрый, дешёвый |
| Command A | — | 256K | Последнее поколение |
Cohere также предоставляет открытые веса Command R через Hugging Face (CohereForAI/c4ai-command-r-v01), что позволяет self-hosted fine-tuning.
Fine-tuning через Cohere API
import cohere
co = cohere.Client(api_key="...")
# Создание датасета
dataset = co.datasets.create(
name="legal-analysis-dataset",
type="chat-finetune-input",
data=open("train.jsonl", "rb"),
eval_data=open("val.jsonl", "rb"),
)
# Запуск fine-tuning
ft = co.finetuning.create_finetune(
request=cohere.finetuning.CreateFinetune(
name="command-r-legal",
model="command-r-plus",
settings=cohere.finetuning.Settings(
base_model=cohere.finetuning.BaseModel(
base_type=cohere.finetuning.BaseType.BASE_TYPE_CHAT,
name="command-r-plus-04-2024",
),
dataset_id=dataset.dataset.id,
train_epochs=5,
learning_rate=0.001,
),
)
)
Формат данных: Chat с Preamble
Command R использует особый chat-формат с поддержкой системного промпта (preamble), документов для RAG и истории диалога:
{
"messages": [
{
"role": "System",
"message": "Ты — юридический ассистент. Всегда ссылайся на конкретные статьи закона."
},
{
"role": "User",
"message": "Каков срок исковой давности по договору купли-продажи недвижимости?"
},
{
"role": "Chatbot",
"message": "Срок исковой давности по договору купли-продажи недвижимости составляет **3 года** (ст. 196 ГК РФ). Для ничтожных сделок — также 3 года с момента, когда лицо узнало или должно было узнать о нарушении (ст. 181 ГК РФ)..."
}
]
}
RAG-специфика: fine-tuning с документами
Уникальная возможность Command R — обучение с документами в контексте. Это позволяет дообучить модель под конкретный стиль цитирования и уровень детализации при работе с корпоративными документами:
{
"messages": [...],
"documents": [
{
"title": "Регламент обработки претензий",
"snippet": "3.4. Срок рассмотрения претензии — не более 30 календарных дней..."
}
]
}
При таком подходе модель обучается не просто генерировать ответ, но и правильно извлекать релевантные фрагменты из переданных документов.
Практический кейс: юридический ассистент для корпоративного права
Задача: ассистент для юридического департамента крупной компании — анализ договоров, ответы по внутренним регламентам, работа с нормативной базой.
Датасет: 2800 примеров (вопрос + релевантный фрагмент документа → ответ со ссылкой на источник). Данные из реальных запросов юристов к базе знаний.
Критичный показатель: faithfulness — доля ответов, полностью основанных на переданных документах без выдумывания.
Результаты:
- Faithfulness (RAGAS): 0.71 → 0.93
- Answer relevancy: 0.78 → 0.91
- Citation accuracy (ссылки на правильные источники): 64% → 89%
- Hallucination rate: 18% → 4%
Self-hosted вариант через открытые веса
Для on-premise деплоя Command R через Hugging Face:
from transformers import AutoTokenizer, AutoModelForCausalLM
from peft import LoraConfig, get_peft_model
model = AutoModelForCausalLM.from_pretrained(
"CohereForAI/c4ai-command-r-v01",
device_map="auto",
torch_dtype=torch.bfloat16,
)
# Command R использует специфический tokenizer с Cohere chat template
tokenizer = AutoTokenizer.from_pretrained("CohereForAI/c4ai-command-r-v01")
lora_config = LoraConfig(
r=16,
target_modules=["q_proj", "v_proj", "k_proj", "o_proj"],
task_type="CAUSAL_LM"
)
model = get_peft_model(model, lora_config)
Сравнение managed vs self-hosted
| Параметр | Cohere API Fine-tuning | Self-hosted (открытые веса) |
|---|---|---|
| Инфраструктура | Managed | Нужен кластер GPU |
| Контроль весов | Нет | Да |
| On-premise | Нет | Да |
| RAG-цитирование | Нативное | Нативное (те же веса) |
| Стоимость при высоком объёме | Выше | Ниже |
Сроки
- Подготовка датасета с документами: 3–6 недель
- Обучение (Cohere API): 2–5 дней (managed)
- Обучение (self-hosted, 35B, QLoRA): 12–36 часов
- Тестирование RAG-качества: 1–2 недели
- Итого: 6–10 недель







