Мусор на входе, мусор на выходе никогда не было более верным.
Восстание машин
Большие языковые модели (LLM) могут в диалоговом режиме предоставить беспрецедентный уровень информации, сгенерированной ML, если задать правильный вопрос. Например, LLM могут генерировать статьи (нет, LLM не генерировал этот текст), стихи, тексты песен, вести с кем-то беседу на тему, интерпретировать некоторые типы документов/форм и многое другое. Однако проблема LLM, о которой редко говорят, заключается в том, что не всегда легко задать правильный вопрос, а без этой критической части LLM могут быть слишком точными (то есть содержать слишком много информации), неточными или далекими от реальности. слишком переменный для многих коммерческих приложений.
Искусство задавать правильный вопрос или быстрая разработка — это то, как мы преодолеваем это ограничение (по крайней мере, в краткосрочной перспективе), и это волшебство, стоящее за волшебством LLM.
Смещение проблемы
Не предоставляя обзора LLM (написанного LLM), я хочу сразу перейти к важной характеристике LLM — они недетерминированы; вы не обязательно получите один и тот же ответ на один и тот же вопрос каждый раз. Например, если я задам Google Bard простой вопрос, такой как «Что такое 1 + 1», несколько раз подряд, вот неотредактированный результат:
What's 1 + 1? >> 1+1=2 What's 1 + 1? >> 1 + 1 = 2. What's 1 + 1? >> 1 + 1 = 2. What's 1 + 1? >> I understand that you are asking me what is 1 + 1. The answer is 2.
Только 2-я и 3-я подсказки дали один и тот же ответ, но также обратите внимание, что ответ не просто «2», это вариация подсказки и ответа, а также некоторые довольно непредсказуемые форматы ответов. (ПРИМЕЧАНИЕ: приведенный выше вывод — это не то, как выглядит Бард, это просто текст.)
Переход от неструктурированного к неструктурированному на самом деле не решает проблему, он сдвигает проблему.
В случае 1+1 сдвиг заключается в том, чтобы выяснить, как разобрать/преобразовать ответ; работа с переменным ответом очень похожа на бросание дротиков в вращающуюся комнату — вариация ответа будет слишком велика, и мы почти вернулись к исходной задаче.
Вместо этого мы сосредотачиваемся на оперативной инженерии или художественной форме задавать вопросы, чтобы получить конкретные ответы. Вот что Бард думает о быстром проектировании:
Инжиниринг подсказок - это процесс разработки и оптимизации подсказок для LLM для самых разных приложений и тем исследований. Подсказки — это короткие фрагменты текста, которые используются для управления выводом LM. Их можно использовать для указания задачи, которую должен выполнить LM, для предоставления дополнительной информации, необходимой LM для выполнения задачи, или просто для облегчения понимания задачи LM.
Спасибо за этого Барда, это довольно хорошее описание без нюансов, хотя слово «короткий» в данном контексте относительно.
Разработка вопроса — вы контролируете это
В примере 1+1 я контролировал только вопрос или подсказку. По этой причине основное внимание уделяется разработке вопроса (или подсказки) и добавлению конкретики и контекста.
Посмотрите, что произойдет, когда я добавлю некоторые особенности в приглашение для 1+1.
What's 1+1 stated as an integer? >> 1+1 stated as an integer is 2. An integer is a whole number that can be positive, negative, or zero. It is not a fraction or a decimal.
Ждать! Это НАМНОГО ХУЖЕ. Мне не нужен описательный ответ, я просто хочу цифру! Вот почему оперативное проектирование — это форма искусства. Дай мне попробовать снова…
What's 1+1? Only return the numeric answer. >> 2 What's 1+1? Only return the numeric answer. >> 2 What's 1+1? Only return the numeric answer. >> 2
Посмотри на это! Как насчет другого примера…
В этом примере я собираюсь сделать две вещи: во-первых, показать, как данные могут быть включены в подсказку, и, во-вторых, как можно спроектировать подсказку, чтобы получить что-то конкретное.
Я начинаю с использования OCR для извлечения следующей таблицы в виде текста.
Моя цель — задать этим данным некоторые вопросы о самих себе. Это довольно интересный (и потрясающий, если быть техническим) вариант использования, применимый во многих (но не во всех) ситуациях.
Я хочу знать размер файла для второго квартала 2022 года (не обращайте внимания на выделенную строку в таблице, мне нужна строка под ней). Ответ: 48,79 МБ.
Given the following text, what is the file size for Q2 2022? File Format Size 2023 Q1 ZIP 53.11 MB 2022 Q4 ZIP 45.91 MB 2022 Q3 ZIP 45.16 MB 2022 Q2 ZIP 48.79 MB 2022 Q1 ZIP 52.61 MB >> The file size for Q2 2022 is 48.79 MB. The table you provided shows the file size for each quarter of 2022. The file size for Q2 is 48.79 MB.
Так что самое интересное здесь в том, что он дал правильный ответ (48,79 МБ). Плохо то, что, как мы видели на примере 1+1, ответ неструктурирован. Мне нужно изменить подсказку со спецификой.
Given the following text, what is the Q2 file size? Only return the answer. >> Sure, here is the file size for Q2: 48.79 MB Given the following text, what is the Q2 file size in MB, don't include any text in the reply? >> 48.79 Given the following text, what is the Q2 file size in MB, don't include any text in the reply? >> 48.79
Это лучше (хотя и не идеально) и действительно делает его полезным в качестве нулевого способа чтения определенных типов данных, возможно, даже формирования данных. В реальной ситуации я бы продолжал итерацию с подсказкой, пока не получил бы полностью непротиворечивый детерминистически выглядящий ответ.
Остерегайтесь Ид Хайпа
Чтение простой таблицы не означает, что LLM могут читать все таблицы или формы, на самом деле они не могут. Хороший пример можно найти в страховой отрасли, где обмен информацией осуществляется в очень сложных (и даже нелогичных) формах. LLM могут понимать некоторые формы, но не сложные, потому что:
- LLM не разбираются в страховании (могут, но не понимают). Идея о том, что одобрение может содержать одобрение или форму, а второе использование одобрения — это существительное, а использование «формы» не имеет ничего общего с фактической формой, на самом деле является нюансом, выходящим за рамки общих LLM.
- Сложные формы содержат контекст, который очень сложно (возможно, невозможно?) понять языковым моделям, потому что форма используется как структура макета, а не как структура содержимого. (Таблицы иногда имеют ту же проблему по той же причине, а иногда таблицы являются механизмом, используемым для структуры макета.)
Чтобы не попасть в ажиотаж LLM, важно научиться хорошо использовать модели, чтобы понять, что они могут и чего не могут делать, и как вы можете повлиять на их поведение. Поймите также, что сами модели продолжают развиваться, поэтому не списывайте что-то со счетов только потому, что это не работает прямо сейчас.
Быть реалистичным)
Цикл ажиотажа может вызвать нереалистичные ожидания. Мы видели, как это повторялось в истории — например, сервис-ориентированная архитектура (SOA) никогда не приводила к динамическим приложениям, но мы получили довольно массовое распространение API. LLM вполне могут быть такими, потому что мы ожидаем, что LLM решат все мировые проблемы (мой прогноз: этого не произойдет). Если вы реалистичны и вам любопытно, на что способны эти модели, ожидания и реальность могут совпасть, и я считаю, что история творится именно в соответствии.
Иди вперед, измени мир
Большие языковые модели (LLM) эффективны и удобны для решения множества задач, но они также имеют ограничения, некоторые из которых можно преодолеть с помощью быстрой разработки. Эта инженерия — это форма искусства, требующая значительных экспериментов, которые действительно нельзя прочитать в книге — иди и сделай это сам. Улучшите быстрое проектирование, и вы сможете максимизировать ценность LLM и, возможно, даже не попасть в круговорот ажиотажа.
Мнения, выраженные в этой статье, являются моими собственными и не отражают точку зрения моего работодателя.