added techniques ru pages

pull/188/head
Ilya Gusev 2023-06-04 23:11:44 +03:00
parent 981fde1fc0
commit 44f7de12b9
4 changed files with 151 additions and 0 deletions

View File

@ -0,0 +1,5 @@
# Техники промптинга
На данном этапе уже становится очевидным, что улучшение формулировки запросов помогает достичь лучших результатов в различных задачах. Вот основная идея, стоящая за техниками промптинга.
Хотя базовые примеры были интересными, в этом разделе мы рассмотрим более продвинутые техники формулировки запросов, которые позволяют нам решать более сложные и интересные задачи.

View File

@ -0,0 +1,14 @@
{
"zeroshot": "Zero-shot Prompting",
"fewshot": "Few-shot Prompting",
"cot": "Chain-of-Thought Prompting",
"consistency": "Self-Consistency",
"knowledge": "Generate Knowledge Prompting",
"ape": "Automatic Prompt Engineer",
"activeprompt": "Active-Prompt",
"dsp": "Directional Stimulus Prompting",
"react": "ReAct",
"multimodalcot": "Multimodal CoT",
"graph": "Graph Prompting"
}

View File

@ -0,0 +1,109 @@
# Few-Shot Prompting
Большие языковые модели продемонстрировали впечатляющие возможности zero-shot промптинга, однако они все еще ограничены в более сложных задачах при использовании zero-shot настроек. Few-shot промптинг может использоваться в качестве техники для обеспечения контекстного обучения, когда мы предоставляем демонстрации в запросе, чтобы направить модель на более высокую производительность. Демонстрации служат в качестве контекста для последующих примеров, в которых мы хотим, чтобы модель генерировала ответ.
Согласно исследованию [Touvron et al. 2023](https://arxiv.org/pdf/2302.13971.pdf), few-shot свойства впервые появились, когда модели были масштабированы до достаточного размера [(Kaplan et al., 2020)](https://arxiv.org/abs/2001.08361).
Давайте продемонстрируем few-shot на примере, представленном в [Brown et al. 2020](https://arxiv.org/abs/2005.14165). В данном примере задача состоит в правильном использовании нового слова в предложении.
*Запрос:*
```
A "whatpu" is a small, furry animal native to Tanzania. An example of a sentence that uses
the word whatpu is:
We were traveling in Africa and we saw these very cute whatpus.
To do a "farduddle" means to jump up and down really fast. An example of a sentence that uses
the word farduddle is:
```
*Результат:*
```
When we won the game, we all started to farduddle in celebration.
```
Мы можем наблюдать, что модель каким-то образом научилась выполнять задачу, предоставив ей всего один пример (так называемый 1-shot). Для более сложных задач мы можем экспериментировать с увеличением количества демонстраций (например, 3-shot, 5-shot, 10-shot и т. д.).
Следуя результатам исследования [Min et al. (2022)](https://arxiv.org/abs/2202.12837), вот несколько дополнительных советов о демонстрациях/примерах при использовании few-shot промптинга:
- "пространство меток и распределение входного текста, заданного демонстрациями, оба являются важными (независимо от того, являются ли метки правильными для отдельных входов)"
- формат, который вы используете, также играет ключевую роль в производительности. Даже если вы используете случайные метки, это гораздо лучше, чем отсутствие меток вообще.
- дополнительные результаты показывают, что выбор случайных меток из реального распределения меток (вместо равномерного распределения) также помогает.
Давайте попробуем несколько примеров. Давайте сначала попробуем пример со случайными метками (то есть метки "Negative" и "Positive" случайным образом присваиваются входным данным):
*Запрос:*
```
This is awesome! // Negative
This is bad! // Positive
Wow that movie was rad! // Positive
What a horrible show! //
```
*Результат:*
```
Negative
```
Мы все равно получаем правильный ответ, даже если метки были случайно выбраны. Обратите внимание, что мы также сохраняем формат, что также полезно. Фактически, с дальнейшими экспериментами, кажется, что новые модели GPT, с которыми мы экспериментируем, становятся более устойчивыми даже к случайным форматам. Например:
*Запрос:*
```
Positive This is awesome!
This is bad! Negative
Wow that movie was rad!
Positive
What a horrible show! --
```
*Результат:*
```
Negative
```
В данном случае нет последовательности формата, но модель все равно предсказала правильную метку. Однако нам нужно провести более подробный анализ, чтобы убедиться, что это справедливо для различных и более сложных задач, включая различные вариации запросов.
### Ограничения few-shot промптинга
Стандартный few-shot промптинг хорошо работает для многих задач, но это все еще несовершенная техника, особенно при работе с более сложными задачами рассуждения. Давайте продемонстрируем, почему это так. Вы помните предыдущий пример, в котором мы предложили следующую задачу:
```
The odd numbers in this group add up to an even number: 15, 32, 5, 13, 82, 7, 1.
A:
```
Если мы повторим этот пример, модель выводит следующее:
```
Yes, the odd numbers in this group add up to 107, which is an even number.
```
Это неправильный ответ, что подчеркивает ограничения таких систем и необходимость более продвинутой техники формулировки запросов.
Давайте попробуем добавить несколько примеров, чтобы посмотреть, улучшит ли few-shot промптингрезультаты.
*Запрос:*
```
The odd numbers in this group add up to an even number: 4, 8, 9, 15, 12, 2, 1.
A: The answer is False.
The odd numbers in this group add up to an even number: 17, 10, 19, 4, 8, 12, 24.
A: The answer is True.
The odd numbers in this group add up to an even number: 16, 11, 14, 4, 8, 13, 24.
A: The answer is True.
The odd numbers in this group add up to an even number: 17, 9, 10, 12, 13, 4, 2.
A: The answer is False.
The odd numbers in this group add up to an even number: 15, 32, 5, 13, 82, 7, 1.
A:
```
*Результат:*
```
The answer is True.
```
Это не сработало. Кажется, что few-shot промптинга недостаточно для получения надежных ответов на этот тип задач рассуждения. Приведенный выше пример предоставляет базовую информацию о задаче. Если взглянуть поближе, то задача, которую мы представили, включает несколько более сложных шагов рассуждения. Другими словами, возможно, будет полезно разбить проблему на шаги и продемонстрировать их модели. Недавно [CoT prompting](https://arxiv.org/abs/2201.11903) стал популярным для решения более сложных задач арифметики, здравого смысла и символического рассуждения
В целом, предоставление примеров полезно для решения некоторых задач. Когда zero-shot и few-shot промптингов недостаточны, это может означать, что то, что было изучено моделью, недостаточно для успешного выполнения задачи. В таком случае рекомендуется начать думать о настройке модели или экспериментах с более продвинутыми техниками формулировки запросов. Далее мы расскажем о одной из популярных техник формулировки запросов, называемой цепочкой мыслей (chain-of-thought prompting), которая получила большую популярность.

View File

@ -0,0 +1,23 @@
# Zero-Shot Prompting
Большие языковые модели (LLMs), такие как GPT-3, настроены на следование инструкциям и обучаются на больших объемах данных, поэтому они способны выполнять некоторые задачи "нулевой разметки".
Мы протестировали несколько примеров нулевой разметки в предыдущем разделе. Вот один из примеров, которые мы использовали:
Запрос:
```
Classify the text into neutral, negative or positive.
Text: I think the vacation is okay.
Sentiment:
```
Результат:
```
Neutral
```
Обратите внимание, что в данном запросе мы не предоставили модели никаких примеров текста с их классификациями, однако LLM уже понимает "настроение" - это возможности нулевой разметки в действии.
Тюнинг инструкций показал улучшение в нулевом обучении [Wei et al. (2022)](https://arxiv.org/pdf/2109.01652.pdf). Тюнинг инструкций (Instruction tuning) представляет собой концепцию донастройки моделей на наборах данных, описанных с помощью инструкций. Более того, был применен RLHF (усиление обучения на основе обратной связи от человека) [RLHF](https://arxiv.org/abs/1706.03741) для масштабирования тюнинга инструкций, при котором модель настраивается на лучшее соответствие предпочтениям людей. Это недавнее развитие позволяет моделям, таким как ChatGPT, проявлять такие возможности. Мы рассмотрим все эти подходы и методы в следующих разделах.
Когда Zero-Shot промптинг не работает, рекомендуется предоставить демонстрации или примеры в запросе, что приводит к few-shot промптингу. В следующем разделе мы это продемонстрируем.