Введение
Что такое автоматическое подсказывание цепочки мыслей в больших языковых моделях? В этом блоге мы разобьем этот вопрос на небольшие части, начиная с определения подсказывания цепочки мыслей (Chain of Thought, CoT) и заканчивая преимуществами и разработкой Auto CoT. В конце мы обсудим LLM API от Novita AI как ключевую часть применения Auto CoT. Оставайтесь с нами, чтобы изучить мощный Auto CoT!
Что такое CoT-промптинг?
Подсказывание цепочки мыслей (Chain-of-Thought, CoT) — это техника, используемая для улучшения способностей больших языковых моделей (LLM) к рассуждению. LLM, такие как GPT-3, показывают впечатляющие результаты в различных задачах, включая ответы на вопросы, генерацию текста и решение проблем.
Однако во многих сложных задачах рассуждения LLM могут испытывать трудности с предоставлением полного и связного пошагового решения. CoT-промптинг направлен на решение этой проблемы, побуждая языковую модель генерировать «цепочку мыслей» — последовательность промежуточных шагов рассуждения, ведущих к окончательному ответу.
Основная идея CoT-промптинга — заставить языковую модель явно обдумывать проблему, а не просто давать прямой ответ. Обычно это делается путем включения в промпт фразы вроде «Давайте подумаем об этом пошагово» или «Объясните свои рассуждения» вместе с входным вопросом или проблемой. CoT-промптинг может привести к более точным и объяснимым результатам, особенно для сложных многошаговых задач.

Зачем нам нужен Auto CoT?
Ключевая проблема в том, что существуют два основных подхода к подсказыванию цепочки мыслей (CoT), и оба имеют существенные недостатки.
Ограничения Zero-Shot-CoT
В этом подходе вы просто задаете языковой модели (LM) вопрос и просите её «думать пошагово», чтобы прийти к ответу. Преимущество в том, что это очень просто в использовании — не нужно предоставлять никакой дополнительной информации или примеров. Однако большой недостаток в том, что пошаговые рассуждения LM часто могут быть ошибочными или содержать ошибки. Поэтому окончательный ответ может быть ненадёжным.
Ограничения Manual-CoT
Этот подход включает ручное создание подробных примеров для LM, показывающих, как разбить проблему на логические шаги и прийти к правильному ответу. Предоставляя эти тщательно проработанные примеры, LM может затем использовать эти знания для лучшего решения новых вопросов. Преимущество в том, что рассуждения LM становятся более надёжными и точными, когда она может ссылаться на ручные примеры. Но главный недостаток — создание таких подробных примеров чрезвычайно трудоёмко и требует больших усилий и опыта человека. Это совсем не масштабируемо.

Преодоление ограничений с помощью Auto-CoT
Итак, резюмируя: Zero-Shot-CoT прост, но ненадёжен, а Manual-CoT более надёжен, но очень трудоёмок. Это ключевая проблема, которую авторы пытаются решить с помощью предложенного подхода «Auto-CoT».
Основная идея Auto-CoT, поддерживаемая некоторыми учёными, заключается в автоматической генерации примеров-демонстраций, которые может использовать LM, без необходимости ручного труда человека. Это потенциально может объединить преимущества обоих существующих подходов — надёжное рассуждение, но в более масштабируемом виде.
Как разрабатывали Auto CoT?
В этом разделе мы подробно рассмотрим статью «Automatic Chain of Thought Prompting in Large Language Models» авторов Zhuosheng Zhang, Aston Zhang, Mu Li и Alex Smola, опубликованную в 2022 году. Если вас не интересуют детали исследования, можете перейти к следующему разделу.

Предложенный подход
Чтобы преодолеть ограничения существующих CoT-подходов, авторы предлагают парадигму «Auto-CoT», которая автоматически конструирует демонстрации для CoT-промптинга.
Ключевые шаги:
- Использование LLM с промптом «Давайте думать пошагово» для генерации цепочек рассуждений для демонстрационных вопросов.
- Признавая, что сгенерированные цепочки рассуждений могут содержать ошибки, авторы делают акцент на обеспечении разнообразия выбранных демонстрационных вопросов.
- Авторы разрабатывают двухэтапный подход для автоматического построения демонстраций:
a. Разделение вопросов набора данных на кластеры на основе схожести.
b. Выбор репрезентативного вопроса из каждого кластера и генерация его цепочки рассуждений с помощью Zero-Shot-CoT.
Оценка
Авторы оценивают подход Auto-CoT с использованием GPT-3 на десяти эталонных задачах рассуждения, включая арифметику, здравый смысл и символическое рассуждение. Они сравнивают производительность с парадигмами Zero-Shot-CoT и Manual-CoT.
Ключевые результаты
Результаты показывают, что подход Auto-CoT consistently соответствуют или превосходят производительность парадигмы Manual-CoT, которая требует ручного создания демонстраций. Это демонстрирует, что LLM могут выполнять эффективное CoT-рассуждение без необходимости ручных усилий.
Как работает Auto CoT?
Ключевая идея Auto-CoT — автоматически генерировать демонстрационные примеры, которые языковая модель (LM) может использовать для подсказывания цепочки мыслей (CoT), вместо того чтобы полагаться на созданные вручную демонстрации.
Вот как работает подход Auto-CoT, шаг за шагом:
Шаг 1 Кластеризация вопросов:
- Первый шаг — взять набор тестовых вопросов (вопросы, на которых будет оцениваться LM, а также существующие вопросы из стандартных эталонных наборов данных) и сгруппировать их в несколько кластеров на основе их схожести.
- Эта кластеризация помогает гарантировать, что демонстрационные вопросы охватывают разнообразные типы проблем, а не слишком похожи.
Шаг 2 Генерация демонстраций:
- Для каждого кластера вопросов Auto-CoT выбирает репрезентативный вопрос из этого кластера.
- Затем он использует промпт «Давайте думать пошагово», чтобы попросить LM сгенерировать цепочку рассуждений для этого репрезентативного вопроса.
- Эта цепочка рассуждений, состоящая из промежуточных шагов и окончательного ответа, становится демонстрационным примером для этого кластера.
Шаг 3 Промптинг LM:
- При оценке LM на новом тестовом вопросе Auto-CoT предоставляет LM набор автоматически сгенерированных демонстрационных примеров.
- Затем LM может использовать эти демонстрации для руководства собственным пошаговым процессом рассуждения, чтобы прийти к ответу на тестовый вопрос.

Как я могу использовать Auto CoT?
Требования:
- Python версии 3.8 или новее
Установка:
- Установите необходимые пакеты PyTorch и torchtext, используя указанные версии и URL PyPI:
pip install torch==1.8.2+cu111 torchtext==0.9.2 -fhttps://download.pytorch.org/whl/lts/1.8/torch_lts.html - Установите остальные зависимости, выполнив
pip install -r requirements.txt
Наборы данных:
Загрузите наборы данных из следующих репозиториев GitHub:
- https://github.com/kojima-takeshi188/zero_shot_cot/tree/main/dataset
- https://github.com/kojima-takeshi188/zero_shot_cot/tree/main/log
Быстрый старт:
Смотрите ноутбук try_cot.ipynb для быстрого старта.
Инструкции:
Создание демонстраций (Demos):
- Выполните следующую команду для создания демонстраций для задачи «multiarith»:
python run_demo.py --task multiarith --pred_file log/multiarith_zero_shot_cot.log --demo_save_dir demos/multiarith
Запуск инференса (Inference):
- Выполните следующую команду для запуска инференса на наборе данных «multiarith»:
python run_inference.py --dataset multiarith --demo_path demos/multiarith --output_dir experiment/multiarith
Цитирование Auto-CoT:
Если вы используете Auto-CoT в своей работе, пожалуйста, цитируйте следующую статью:
@inproceedings{zhang2023automatic,
title={Automatic Chain of Thought Prompting in Large Language Models},
author={Zhang, Zhuosheng and Zhang, Aston and Li, Mu and Smola, Alex},
booktitle={The Eleventh International Conference on Learning Representations (ICLR 2023)},
year={2023}
}

LLM API как ключевая часть применения Auto-CoT
Каковы преимущества комбинирования Auto-CoT с LLM API?
- Доступ к мощным языковым моделям:
- Auto-CoT полагается на возможности больших языковых моделей для генерации пошаговых цепочек рассуждений и получения точных результатов.
- Интегрируя LLM API, исследователи и разработчики могут использовать новейшие и самые мощные языковые модели, такие как GPT-3, Megatron-LLM или InstructGPT, для работы системы Auto-CoT.
2. Гибкость и настройка:
- Разные языковые модели могут иметь различные сильные стороны, предвзятости и возможности. Интеграция LLM API позволяет пользователям экспериментировать с различными моделями и сравнивать их производительность для конкретных задач и приложений.
- Эта гибкость позволяет исследователям донастраивать и настраивать языковые модели под свои нужды, повышая общую эффективность системы Auto-CoT.
3. Масштабируемость и развёртывание:
- LLM API часто предоставляют масштабируемую и надёжную инфраструктуру для обслуживания и развёртывания языковых моделей, позволяя системам Auto-CoT справляться с увеличенными рабочими нагрузками и обслуживать более широкую базу пользователей.
- Используя возможности масштабирования LLM API, исследователи и разработчики могут легче развёртывать и поддерживать систему Auto-CoT в производственных средах.
4. Постоянные улучшения моделей:
- Языковые модели быстро развиваются, и новые улучшенные версии выпускаются часто. Интеграция LLM API позволяет системам Auto-CoT получать выгоду от этих достижений и оставаться в курсе последних возможностей языковых моделей.
- Это гарантирует, что система Auto-CoT может продолжать предоставлять высококачественные результаты и сохранять конкурентоспособность по мере развития области языковых моделей.
Как интегрировать LLM API в мой проект?
Novita AI предоставляет пользователям LLM API с множеством моделей для вызова, включая недавно выпущенные llama-3–8b и llama-3–70b. Вы можете попробовать различные модели и сравнить их производительность на нашей Playground бесплатно перед интеграцией нашего LLM API.

Кроме того, для удовлетворения индивидуальных потребностей вы можете настроить ключевые параметры, такие как temperature (контролирует случайность и исследовательский характер вывода модели), top_p (альтернатива сэмплированию с температурой, называемая nucleus-сэмплингом, где модель рассматривает результаты токенов с вероятностной массой top_p), presence_penalty (поощряет модель генерировать текст, отличный от того, что она генерировала ранее) и maximum tokens (устанавливает максимальную длину генерируемого вывода модели), чтобы оптимизировать выводы модели для ваших конкретных требований приложения. Такой уровень настройки позволяет вам полностью объединить возможности LLM с вашими системами Auto-CoT.

Вы можете посетить наш сайт для получения дополнительной информации о LLM API, включая инструкции по коду для интеграции, цены и другие функции.

Заключение
В этом блоге мы рассмотрели концепцию подсказывания цепочки мыслей (CoT) и необходимость автоматизированного подхода под названием Auto-CoT. В то время как существующие методы CoT имеют ограничения, подход Auto-CoT направлен на автоматическую генерацию демонстрационных примеров для направления языковых моделей в пошаговом рассуждении, без необходимости ручного труда. Мы обсудили ключевые шаги Auto-CoT, включая кластеризацию вопросов и генерацию демонстраций. Наконец, мы подчеркнули, как интеграция LLM API может предоставить мощные и гибкие языковые модели для работы системы Auto-CoT, что приводит к улучшению производительности, масштабируемости и постоянным улучшениям моделей. В целом, Auto-CoT представляет собой захватывающее развитие в улучшении способностей больших языковых моделей к рассуждению.
Novita AI — универсальная платформа для безграничного творчества, предоставляющая доступ к более чем 100 API. От генерации изображений и обработки языка до улучшения аудио и манипуляции видео, недорогая оплата по мере использования, она освобождает вас от забот по обслуживанию GPU, пока вы создаёте свои собственные продукты. Попробуйте бесплатно.
