Поучаствовал в душной дискуссии в комментах у Игоря Котенкова (@seeallochnaya) о том, какие проблемы есть у Custom Chain of Though про который пишу выше.
Что я понял, пока думал над аргументами за и против своей точки зрения:
Чтобы было проще и нагляднее – вот контекст в памяти модели в момент выполнения третьего шага в цепочке из 4 шагов:
Общие инструкции
Инструкция к шагу 1
Инструкция к шагу 2
Инструкция к шагу 3
Инструкция к шагу 4
Данные, с которыми работаем
(дальше, то что модель уже сгенерировала, это тоже попадает в контекст)
Результат шага 1
Результат шага 2
Резуль...(генеририуем тут)
1. Инструкции для других шагов в контексте, а значит, отвлекают модель от шага 3 👎
2. При этом, при генерации каждого нового токена, "карты внимания" нейронки пересчитываются (и че?)
3. => Если
инструкция2 не важна для шага 3, то модель почти не будет обращать на нее внимания, когда генерирует результат3. это важно – модель в динамике меняет фокус внимания
4. А если
инструкция2 важна для шага 3, то модель будет обращать на нее внимание и выполнит шаг3 лучше, чем если бы не знала контекстане баг, а фича
То же самое применимо не только к инструкциям, но и к результатам предыдущих шагов – если в них есть полезный контекст для нашего шага – результат будет лучше. И наоборот 🤷♂️
———
Это ответ на вопрос из предыдущего поста. Теперь понятно, почему перевод как второй шаг в цепочке качественнее, чем если сделать его в отдельном чате – у модели есть контекст про изначальную задачу и данные, а хороший перевод должен учитывает контекст.
Но у механизма пересчета "карт внимания" есть проблемы – про них следующий пост.