На трубе с GPT-3

Использование GPT-3 для навигации в лондонском метро

Я провел несколько простых экспериментов с GPT-3, включая сравнение его производительности с чат-ботом Rasa и использование его для генерации команд git. Благодаря этому опыту и десяткам приложений GPT-3, опубликованных другими, я пришел к выводу, что замечательная способность GPT-3 решать широкий круг проблем. Однако я не видел, чтобы GPT-3 решала какие-либо пространственные задачи, поэтому я спросил себя, насколько хорошо GPT-3 сможет решить проблему пространственной навигации?

Я подумал, что навигация по системе метро будет хорошей проверкой пространственных способностей GPT-3, потому что поездки в сети метро можно четко описать в тексте. Я выбрал лондонское метро, ​​в частности, потому что:

  1. Подполье широко представлено в Интернете, поэтому у GPT-3 есть все шансы получить достаточно подробностей о Подполье в своем учебном корпусе.
  2. Топология Underground достаточно сложна, чтобы предоставить сложные тестовые примеры. Напротив, метро в моем родном городе Торонто имеет только 3 полноценные линии, так что это не представляет особой проблемы.

Код для реализации возможности навигации GPT-3

Я создал простую обвязку Python для выполнения GPT-3 из командной строки в своей предыдущей статье об использовании GPT-3 для перевода английских операторов в команды git. Для упражнения Подземная навигация я улучшил эту обвязку следующим образом:

  • перемещение определений подсказок в файл конфигурации
  • чтение обучающих примеров из файла CSV, а не их жесткое кодирование в файле Python. Примеры включали как поездки по одной линии, так и поездки, требующие пересадок между двумя линиями.
  • добавление переключателя ко всем тестовым случаям, которые будут вводиться либо интерактивно из командной строки, либо считываться из CSV-файла

Эти изменения сделали процесс тестирования более эффективным и позволили мне повторить ряд обучающих примеров.

Быстрый инжиниринг — карьера будущего

Мне очень нравится подкаст Machine Learning Street Talk, и в недавнем эпизоде ведущие описали разработку подсказок для GPT-3 или навыки, необходимые для правильной формулировки подсказок для GPT-3. так вы получите желаемые результаты. Мне пришлось значительно отточить свои быстрые инженерные навыки для вызова лондонского метро. В моих предыдущих экспериментах с GPT-3 (генерация команд git и ответы на вопросы о фильмах) мне не нужно было сильно беспокоиться о том, как я формулирую примеры — это просто работало.

Однако для задачи навигации в лондонском метро мне пришлось немного подправить примеры, чтобы получить даже скромные результаты. Я экспериментировал с включением станции после всех названий станций и опусканием начальной станции в разделе ответов примера (например, Круговая линия до Слоан-сквер, а не Круговая линия от Кэннон-стрит до Слоан-сквер), прежде чем остановиться на формат, который я использовал в экспериментах.

В дополнение к поездкам по одной линии я также включил примеры поездок по нескольким линиям:

Тестирование способности GPT-3 ориентироваться

Тестируя GPT-3 с простыми (одна линия, передача не требуется) вариантами использования, я получил смешанные результаты — в следующей выборке из 16 поездок GPT-3 был:

  • правильно: 68%
  • неверно: 32 % (совершенно неверно 13 %; близко, но все же неверно 19 %)

При тестировании с набором тестовых случаев, включающих многолинейные поездки, результаты были намного хуже. В следующей выборке из 7 рейсов ОПГ-3 было:

правильно: 14%

неверно: 86% (57% полностью неверно; 29% близко, но все же неверно)

Выводы

В моих предыдущих приложениях GPT-3 (для реализации простого чат-бота по викторинам и для генерации git-команд из английского текста) мне удавалось получать отличные результаты с минимальными усилиями. До сих пор мои попытки заставить GPT-3 решить простую пространственную задачу — навигацию по сети метро — дали в лучшем случае смешанные результаты. GPT-3 нормально справляется с однолинейными отключениями, но не может обрабатывать многолинейные отключения. Возможно, что даже почтенный лондонский метрополитен не был представлен достаточным количеством текста в учебном корпусе GPT-3, чтобы предоставить достаточно примеров для GPT-3, чтобы получить сигнал для многолинейных поездок. Также возможно, что более тонкий инжиниринг подсказок даст лучшие результаты для сложных поездок. Я рад выйти из этого упражнения с более быстрыми инженерными навыками и более надежной обвязкой Python для приложений GPT-3, но в настоящее время я не буду полагаться на GPT-3, когда мне нужно перемещаться в метро.

Ресурсы

Репо, содержащее код, описанный в этой статье, находится здесь: https://github.com/ryanmark1867/tube_assistant.

  • Примечание. для запуска кода вам потребуется доступ к бета-версии GPT-3 и обновление значения параметра gpt_key в файле конфигурации gpt_assistant_config.yml с помощью собственного секретного ключа из https ://beta.openai.com/developer-quickstart

Вот видеоверсия этой статьи: https://www.youtube.com/watch?v=790PiTSqi4Y

Еще истории про GPT-3: