Всё, что нужно знать об автоматическом подсказывании цепочки мыслей в больших языковых моделях

Всё, что нужно знать об автоматическом подсказывании цепочки мыслей в больших языковых моделях

Введение

Что такое автоматическое подсказывание цепочки мыслей в больших языковых моделях? В этом блоге мы разобьем этот вопрос на небольшие части, начиная с определения подсказывания цепочки мыслей (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-промптинга.

Ключевые шаги:

  1. Использование LLM с промптом «Давайте думать пошагово» для генерации цепочек рассуждений для демонстрационных вопросов.
  2. Признавая, что сгенерированные цепочки рассуждений могут содержать ошибки, авторы делают акцент на обеспечении разнообразия выбранных демонстрационных вопросов.
  3. Авторы разрабатывают двухэтапный подход для автоматического построения демонстраций:
    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:

Быстрый старт:

Смотрите ноутбук 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?

  1. Доступ к мощным языковым моделям:
  • 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, пока вы создаёте свои собственные продукты. Попробуйте бесплатно.