Strategy/projects/files/sdr/sdr_claude_haiku_migration_guide.md
+

sdr_claude_haiku_migration_guide

SDR: Migration от llama-3.1-8b-instant → claude-haiku-4-5

Создано: 2026-03-10 (Феанор, worker ночь)
Статус: ГОТОВО К ИСПОЛНЕНИЮ — нужен только ANTHROPIC_API_KEY от Даниила


Проблема

Метрика llama-3.1-8b-instant (текущий) Ожидается от claude-haiku
Accuracy (benchmark_1) 64.9% overall ~75-80%
Citation accuracy 0% (9/9 ошибок) ~50-70%
Rate limits 500K TPD (часто 429) Нет таких лимитов
Hallucinations Высокие (нет цитат) Низкие
Стоимость Бесплатно (Groq) $0.80/1M in, $3.20/1M out

Текущая модель делает 0/9 правильных ответов на citation-вопросы в benchmark.
Ключевая задача SDR — точное цитирование источников. Это критический блокер качества.


Что нужно сделать (последовательность)

Шаг 1: Получить ANTHROPIC_API_KEY (from Даниил)

Ключ нужно добавить в /root/config/.env:

ANTHROPIC_API_KEY=sk-ant-api03-...

Без export (systemd EnvironmentFile не поддерживает).

Шаг 2: Обновить .env.benchmark в sdr_repo

# Текущий:
CLOUD_API_KEY=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
CLOUD_BASE_URL=https://api.groq.com/openai/v1
CLOUD_MODEL_NAME=llama-3.1-8b-instant

# После миграции:
CLOUD_API_KEY=${ANTHROPIC_API_KEY}  # или вставить напрямую
CLOUD_BASE_URL=https://api.anthropic.com/v1
CLOUD_MODEL_NAME=claude-haiku-4-5-20251001
STRUCTURED_OUTPUT_METHOD=json_mode  # важно! Anthropic не поддерживает json_schema

# Лимиты токенов (claude-haiku дешевле = можно поднять):
RESEARCH_MAX_TOKENS=8000
COMPRESSION_MAX_TOKENS=3000
FINAL_REPORT_MAX_TOKENS=10000
MAX_MICRO_RESEARCHERS=5
MICRO_RESEARCHER_BATCH_SIZE=3

Критически важно: STRUCTURED_OUTPUT_METHOD=json_mode
- Groq поддерживает json_mode, Anthropic — тоже json_mode, но НЕ json_schema
- Текущий дефолт в конфиге: json_schema — это сломает structured output с Anthropic

Шаг 3: Верификация

cd /root/sdr_repo

# Быстрый smoke test (1-2 мин)
set -a; source .env.benchmark; set +a
python3 -c "
from openai import OpenAI
client = OpenAI(base_url='$CLOUD_BASE_URL', api_key='$CLOUD_API_KEY')
r = client.chat.completions.create(
    model='$CLOUD_MODEL_NAME',
    messages=[{'role': 'user', 'content': 'Say OK'}],
    max_tokens=10
)
print(r.choices[0].message.content)
"

# Если OK: запустить pipeline
python3 -m open_deep_research.run \
  --topic "operator splitting in machine learning" \
  --output /tmp/test_report.md

Шаг 4: Запустить benchmark (опционально, ~15-20 мин)

cd /root/sdr_repo
uv run python -m eval.main run-all \
  --benchmark data/benchmarks/benchmark_1.yaml \
  --model sber-ai-lab/deep-research-haiku-v1 \
  --output data/eval/results/benchmark_1/haiku_v1/

Оценка стоимости

Типичный SDR прогон (operator splitting topic):
- ~5100 токенов итого (llama-8b benchmark)
- При 10 прогонах/день: 51K токенов
- Стоимость: 51K × ($0.80 + $3.20)/2 ÷ 1000 ≈ $0.10/день

Это очень дешево. Даже при 50 прогонах/день = $0.50/день.


Потенциальные риски

Риск Вероятность Митигация
json_schema не работает → structured output ломается Высокая Всегда использовать json_mode
Rate limit у Anthropic Низкая У Tier 1 API 50 req/min
Haiku галлюцинирует на специфических темах Средняя Тест после миграции
Стоимость растёт неожиданно Низкая Мониторить worker_stats.json

Rollback

Если что-то сломалось — вернуть исходный .env.benchmark:

git -C /root/sdr_repo checkout .env.benchmark

(если файл в git) или вручную вернуть Groq настройки.


Следующий шаг после миграции

После успешной верификации — предложить Дан. merge eval→main в sdr_repo.
Eval ветка содержит все фиксы для pipeline, которые уже верифицированы 09.03.


Феанор, 2026-03-10 06:15 MSK (auto, worker ночь)
Статус задачи: READY. Исполнение: как только Даниил даст ANTHROPIC_API_KEY

Choose icon