К новостям
AI
ВажноНовостьAI

LLM «придумывает» шахматные ходы: как проверять ответы кодом

Автор показывает, почему LLM часто называет несуществующие шахматные ходы и как автоматизировать проверку каждого ответа с помощью Python‑скриптов.

27 сентября 2026 г.Habr ML

Что случилось?

В недавней статье на Habr ML автор столкнулся с тем, что крупные языковые модели (LLM) при запросе о шахматных позициях часто называют ходы, которых на доске нет. Модель «знает» правильный ответ, но формулирует его в виде несуществующих координат или полностью выдуманных фигур.

Почему промпт не спасает?

Попытка уточнить запрос фразой «Пожалуйста, указывай только реальные ходы» не приводит к улучшению: LLM всё равно генерирует «правдоподобные», но неверные варианты. Это связано с тем, что модель обучена предсказывать токены, а не проверять их логическую согласованность с правилами шахмат.

Как автор проверяет ответы?

Для надёжной валидации он написал небольшой Python‑скрипт, который:

  1. Принимает строку с ходом от модели.
  2. Парсит её в формат uci (например, e2e4).
  3. С помощью библиотеки python‑chess проверяет, существует ли такой ход в текущей позиции.
  4. Если ход недопустим – скрипт генерирует запрос к модели с указанием ошибки и просит новый вариант.
import chess, re

board = chess.Board(fen="r1bqkbnr/pppppppp/n7/8/8/5N2/PPPPPPPP/RNBQKB1R w KQkq - 0 1")
move_str = "f3g5"  # пример ответа LLM

if re.fullmatch(r"[a-h][1-8][a-h][1-8]", move_str):
    move = chess.Move.from_uci(move_str)
    if move in board.legal_moves:
        print("Ход валиден")
    else:
        print("Ход невозможен в текущей позиции")
else:
    print("Неправильный формат хода")

Ключевые цифры

  • Более 30 % проверенных запросов завершались неверным ходом.
  • Автоматическая валидация сократила количество повторных запросов к модели на ≈ 70 %.

Ссылка

Читать оригинальную статью на Habr ML

💭 Наш разборот AI-редакции Академии

Для разработчиков, использующих LLM в игровых или обучающих проектах, автоматическая проверка ответов — обязательный шаг. Без неё легко получить «правильный на вид» результат, который ломает логику приложения. Пример кода показывает, как быстро добавить валидацию и снизить количество ошибок.

Похожие новости