diff --git a/pages/techniques/prompt_chaining.ru.mdx b/pages/techniques/prompt_chaining.ru.mdx index c6ddc4f..483c6df 100644 --- a/pages/techniques/prompt_chaining.ru.mdx +++ b/pages/techniques/prompt_chaining.ru.mdx @@ -1,3 +1,85 @@ -# Prompt Chaining +# Создание цепочек промптов -This page needs a translation! Feel free to contribute a translation by clicking the `Edit this page` button on the right side. \ No newline at end of file +import {Screenshot} from 'components/screenshot' +import PC1 from '../../img/prompt_chaining/prompt-chaining-1.png' + +## Введение в Создание цепочек промптов + +Для повышения надежности и производительности LLM, одним из важных приемов промпт-инжиниринга является разбиение задачи на подзадачи. После того как эти подзадачи определены, для LLM предлогаются подзадачи, а затем ее ответ используется в качестве входных данных для другого запроса. Это то, что называется Создание цепочек промптов, когда задача разбивается на подзадачи с целью создания цепочки операций промптов. + +Создание цепочек промтов полезно для решения сложных задач, которые LLM может с трудом решить, если будет предложен очень большой промпт. При создание цепочки промптов, цепочки промптов выполняют преобразования или дополнительные процессы над сгенерированными ответами, прежде чем достичь конечного желаемой формы. + +Помимо повышения производительности, цепочки промптов помогают повысить прозрачность вашего применения LLM, повышает управляемость и надежность. Это означает, что вы можете гораздо проще отлаживать проблемы с ответами модели, а также анализировать и улучшать производительность на различных этапах, которые нуждаются в улучшении. + +Цепочка промптов особенно полезна при создании диалоговых помощников на базе LLM и улучшении персонализации и пользовательского опыта ваших приложений. + +## Случаи использования Создания цепочек промптов + +### Создание цепочек промптов для контроля качества документа + +Цепочки промптов могут использоваться в различных сценариях, которые могут включать несколько операций или преобразований. Например, один из распространенных вариантов использования LLM предполагает ответы на вопросы о большом текстовом документе. + +Вам поможет, если вы создадите два разных промпта, где первый промпт отвечает за извлечение соответствующих цитат для ответа на вопрос, а второй промпт принимает в качестве входных данных цитаты и исходный документ для ответа на заданный вопрос. Другими словами, вы создадите две разных промпта для выполнения ответа на вопрос о документе. + +Первый промпт ниже извлекает соответствующие цитаты из документа, заданного в вопросе. Обратите внимание, что для простоты мы добавили заполнитель для документа `{{document}}`. Чтобы протестировать подсказку, вы можете скопировать и вставить статью из Википедии, например, эту страницу, посвященную [технике подсказок](https://ru.wikipedia.org/wiki/%D0%A2%D0%B5%D1%85%D0%BD%D0%B8%D0%BA%D0%B0_%D0%BF%D0%BE%D0%B4%D1%81%D0%BA%D0%B0%D0%B7%D0%BE%D0%BA). Из-за более большого контекста, используемого для этой задачи, мы используем модель `gpt-4-1106-preview` от OpenAI. Вы можете использовать промты с длинным контекстом с другими LLM, такими как Claude. + +Prompt 1: +``` +You are a helpful assistant. Your task is to help answer a question given a document. The first step is to extract quotes relevant to the question from the document, delimited by ####. Please output the list of quotes using . Respond with "No relevant quotes found!" if no relevant quotes were found. + + +#### +{{document}} +#### +``` + +Вот скриншот всего промпта, включая вопрос, который передается с использованием роли `пользователя`. + + + +Output of Prompt 1: +``` + +- Chain-of-thought (CoT) prompting[27] +- Generated knowledge prompting[37] +- Least-to-most prompting[38] +- Self-consistency decoding[39] +- Complexity-based prompting[41] +- Self-refine[42] +- Tree-of-thought prompting[43] +- Maieutic prompting[45] +- Directional-stimulus prompting[46] +- Textual inversion and embeddings[59] +- Using gradient descent to search for prompts[61][62][63][64] +- Prompt injection[65][66][67] + +``` + +Цитаты, возвращенные в первом промпте, теперь можно использовать в качестве входных данных для второго промпта ниже. Обратите внимание, что вы можете еще немного очистить цитаты, то есть удалить цитаты. Эти цитаты можно удалить или использовать как часть другой подсказки в цепочке, но пока мы это проигнорируем. + +Затем второй промпт берет соответствующие цитаты, извлеченные с помощью промпта 1, и готовит ответ на вопрос с учетом документа и извлеченных цитат. Второй промпт может быть следующим: + +Output of Prompt 2: + +``` +The prompting techniques mentioned in the document include: + +1. Chain-of-thought (CoT) prompting[27] +2. Generated knowledge prompting[37] +3. Least-to-most prompting[38] +4. Self-consistency decoding[39] +5. Complexity-based prompting[41] +6. Self-refine[42] +7. Tree-of-thought prompting[43] +8. Maieutic prompting[45] +9. Directional-stimulus prompting[46] +10. Textual inversion and embeddings[59] +11. Using gradient descent to search for prompts[61][62][63][64] +12. Prompt injection[65][66][67] + +Each of these techniques employs unique strategies to enhance or specify the interactions with large language models to produce the desired outcomes. +``` + +Как видите, упрощение и создание цепочек промптов — это полезный подход к промптам, когда ответы необходимо подвергнуть нескольким операциям или преобразованиям. В качестве упражнения вы можете создать промпт, который удаляет цитаты (например, [27]) из ответа, прежде чем отправлять его в качестве окончательного ответа пользователю вашего приложения. + +В этой [документации](https://docs.anthropic.com/claude/docs/prompt-chaining) вы также можете найти дополнительные примеры цепочек подсказок, в которых используется Claude LLM. Наш пример вдохновлен и заимствован из их примеров.