Comments 10
Не совсем понимаю, почему вокруг этого подняли такой ажиотаж. В итоге получается, что мы не нашли способ улучшить ИИ, а просто заставили его внимательнее прочитать собственный запрос. Для меня это больше похоже на временный обходной трюк, чем на какую-то новую возможность.
вот и я тоже задумался, почему это так вирусится до сих пор, решил посмотреть, что на самом деле
Просто ctrl+c ctrl+v реально как будто глупо, а для живого человека даже обидно когда повторяют дважды одно и тоже. Но вот повторить другими словами задачу чтобы активировать близкие нейроны - это уже как будто имеет смысл. Впрочем это для селовека. Для думающих моделей тоже избыточно если изначально задача описана максимально понятно без домыслов.
Повторение другими словами и примеры - это уже больше человеческий фактор - точно сказал все что хотел, учел все нюансы. Опять же в отличие от человека нейронка редко переспросит если не уазать отдельно.
Такие мысли вслух) за статью спасибо, полезно
Протестировал новый Deepseek V4 flash 0731 на тулзах. Встроил повторение промпта (только его) в 🔧 Tool-Call Benchmark.
Результат - смысла в повторении промпта нет.
┌───────────────────┬──────────────────────┬───────────┬──────────────┐
│ Run │ Score / Rating │ Completed │ Total Tokens │
├───────────────────┼──────────────────────┼───────────┼──────────────┤
│ No-think · no rep │ 86 / ★★★★ Good │ 396.5s │ 286,612 │
├───────────────────┼──────────────────────┼───────────┼──────────────┤
│ No-think · rep 2 │ 87 / ★★★★ Good │ 384.7s │ 279,567 │
├───────────────────┼──────────────────────┼───────────┼──────────────┤
│ Think · no rep │ 91 / ★★★★★ Excel. │ 387.7s │ 275,155 │
├───────────────────┼──────────────────────┼───────────┼──────────────┤
│ Think · rep 2 │ 91 / ★★★★★ Excel. │ 389.6s │ 264,578 │
└───────────────────┴──────────────────────┴───────────┴──────────────┘
Детали
##################### Thinking OFF
~/src/tool-eval-bench$ .venv/bin/tool-eval-bench \
--model deepseek-v4-flash \
--parallel 3 --seed 42 \
--no-think --backend-kwargs '{"chat_template_kwargs": {"thinking": false}}'
╭─── 🏆 Benchmark Complete
│
│ Model: deepseek-v4-flash
│ Score: 86 / 100
│ Rating: ★★★★ Good
│
│ ✅ 54 passed ⚠️ 11 partial ❌ 4 failed
│ Points: 119/138
│
│ Quality: 86/100
│ Responsiveness: 38/100 (median turn: 4.1s)
│ Deployability: 72/100 (α=0.7)
│ Weakest: L Toolset Scale (62%)
│
│ Completed in 396.5s │ tool-eval-bench v2.3.2.dev4+g19a0cf180.d20260803
│
│ 📊 Token Usage:
│ Total: 286,612 tokens │ Efficiency: 0.4 pts/1K tokens
~/src/tool-eval-bench$ .venv/bin/tool-eval-bench \
--model deepseek-v4-flash \
--parallel 3 --seed 42 \
--no-think --backend-kwargs '{"chat_template_kwargs": {"thinking": false}}' \
--prompt-repetition 2 # --prompt-repetition 3 - same result
╭─── 🏆 Benchmark Complete
│
│ Model: deepseek-v4-flash
│ Score: 87 / 100
│ Rating: ★★★★ Good
│
│ ✅ 55 passed ⚠️ 10 partial ❌ 4 failed
│ Points: 120/138
│
│ Quality: 87/100
│ Responsiveness: 41/100 (median turn: 3.8s)
│ Deployability: 73/100 (α=0.7)
│ Weakest: K Safety & Boundaries (69%)
│
│ Completed in 384.7s │ tool-eval-bench v2.3.2.dev4+g19a0cf180.d20260803
│
│ 📊 Token Usage:
│ Total: 279,567 tokens │ Efficiency: 0.4 pts/1K tokens
##################### Thinking ON
~/src/tool-eval-bench$ .venv/bin/tool-eval-bench \
--model deepseek-v4-flash \
--parallel 3 --seed 42 \
--backend-kwargs '{"chat_template_kwargs": {"thinking": true}}'
╭─── 🏆 Benchmark Complete
│
│ Model: deepseek-v4-flash
│ Score: 91 / 100
│ Rating: ★★★★★ Excellent
│
│ ✅ 57 passed ⚠️ 11 partial ❌ 1 failed
│ Points: 125/138
│
│ Quality: 91/100
│ Responsiveness: 32/100 (median turn: 5.0s)
│ Deployability: 73/100 (α=0.7)
│ Weakest: K Safety & Boundaries (81%)
│
│ Completed in 387.7s │ tool-eval-bench v2.3.2.dev4+g19a0cf180.d20260803
│
│ 📊 Token Usage:
│ Total: 275,155 tokens │ Efficiency: 0.5 pts/1K tokens
~/src/tool-eval-bench$ .venv/bin/tool-eval-bench \
--model deepseek-v4-flash \
--parallel 3 --seed 42 \
--backend-kwargs '{"chat_template_kwargs": {"thinking": true}}' \
--prompt-repetition 2
╭──── 🏆 Benchmark Complete
│
│ Model: deepseek-v4-flash
│ Score: 91 / 100
│ Rating: ★★★★★ Excellent
│
│ ✅ 59 passed ⚠️ 8 partial ❌ 2 failed
│ Points: 126/138
│
│ Quality: 91/100
│ Responsiveness: 33/100 (median turn: 4.8s)
│ Deployability: 74/100 (α=0.7)
│ Weakest: C Multi-Step Chains (62%)
│
│ Completed in 389.6s │ tool-eval-bench v2.3.2.dev4+g19a0cf180.d20260803
│
│ 📊 Token Usage:
│ Total: 264,578 tokens │ Efficiency: 0.5 pts/1K tokens
Спасибо за статью! Подписался, буду ждать ваших новых статей
Ну ... декодеры конечно не энкодеры, и положение имеет значение.
>> LLM читает текст слева направо. Когда длинный список идёт раньше вопроса, модель обрабатывает его, ещё не зная, что́ её потом спросят.
Это как раз правильно, так и должно быть для декодера.
Кажется, что тут проявлена проблема Lost-in-the-Middle. У вас была середина со слабым вниманием и сильные края, но потом вы убрали середину, точнее сделали края в середине, но сильное внимание к краям то осталось. Можно проверить, если вставить в середину такой же объем текста без шума (пробелы что ли).
Хорошая гипотеза. И её можно проверить на уже собранных данных: в задачах MiddleMatch позиция цели записана в метаданных. Она гуляет с 4-й по 38-ю позицию из 40.
Я сделал post-hoc-разрез по терцилям позиции 26, 26, 28 задач. Провал середины в данных виден: точность baseline по группам 46,2%, 23,1%, 39,3%. Но на 80 задачах это не доказательство. Точный тест Фишера даёт p=0,136. Поэтому не берусь утверждать, что Lost-in-the-Middle подтвердился.
Зато сам выигрыш от повтора зависит от позиции: по тем же группам +38,5, +7,7, −3,6 п.п. (перестановочный тест тренда: p=0,011). Максимум в начале списка, а не в середине. Так что позиционный эффект есть, но как будто не тот, который предсказывает Lost-in-the-Middle.
«Скопируй промпт дважды и получишь +76%». Я решил проверить