Дотонування мовної моделі Command R (Cohere)
Command R та Command R+ — мовні моделі від Cohere, спеціалізовані для завдань RAG, використання інструментів та корпоративних додатків. Cohere надає керований дотонування через власний 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 дотонування.
Дотонування через 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"),
)
# Запустити дотонування
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-специфіка: дотонування з документами
Унікальна можливість Command R — тренування з документами в контексті. Це дозволяє дотонувати модель для конкретного стилю цитування та рівня деталізації при роботі з корпоративними документами:
{
"messages": [...],
"documents": [
{
"title": "Регламент обробки претензій",
"snippet": "3.4. Строк розгляду претензії — не більше 30 календарних днів..."
}
]
}
При такому підході модель навчається не просто генерувати відповідь, а правильно видаляти релевантні фрагменти з наданих документів.
Практичний випадок: юридичний помічник для корпоративного права
Завдання: помічник для юридичного відділу великої компанії — аналіз договорів, відповіді на питання про внутрішні регламенти, робота з нормативною базою.
Набір даних: 2800 прикладів (питання + релевантний фрагмент документу → відповідь зі ссилкою на джерело). Дані з реальних запитів юристів до бази знань.
Критичний показник: faithfulness — частка відповідей, повністю заснованих на наданих документах без галюцинацій.
Результати:
- Faithfulness (RAGAS): 0.71 → 0.93
- Релевантність відповідей: 0.78 → 0.91
- Точність цитування (посилання на правильні джерела): 64% → 89%
- Рівень галюцинацій: 18% → 4%
Self-Hosted варіант через відкриті ваги
Для розгортання на місці 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)
Порівняння керованого та self-hosted
| Параметр | Дотонування Cohere API | Self-Hosted (відкриті ваги) |
|---|---|---|
| Інфраструктура | Керована | Потрібен GPU кластер |
| Контроль ваг | Ні | Так |
| На місці | Ні | Так |
| RAG цитування | Вроджене | Вроджене (ті ж ваги) |
| Вартість при великому обсязі | Вища | Нижча |
Строки
- Підготовка набору даних з документами: 3–6 тижнів
- Тренування (Cohere API): 2–5 днів (керовано)
- Тренування (self-hosted, 35B, QLoRA): 12–36 годин
- Тестування RAG-якості: 1–2 тижні
- Усього: 6–10 тижнів







