ChatGPT только для моих вещей

Jan 22 2023
ChatGPT — это круто, но мне не нужны ответы со всего интернета. Я действительно просто хочу, чтобы он давал ответы о моих вещах.

ChatGPT — это круто, но мне не нужны ответы со всего интернета. Я действительно просто хочу, чтобы он давал ответы о моих вещах. Я не люблю, когда он выдумывает вещи, которые кажутся реальными, но на самом деле не существуют. Есть ли что-нибудь подобное?

Ребята из LangChain в сотрудничестве с Zahid Khawaja недавно выпустили демо, которое делает именно это. Они умело объединили семантический поиск со специальными подсказками для GPT-3, которые имитируют пользовательский интерфейс ChatGPT, но ответы привязаны только к ответам на вопросы о собственной технической документации LangChain.

Вы можете проверить их запись в блоге здесь .

Семантический поиск

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

Люди уже некоторое время занимаются семантическим поиском, используя такие модели, как BERT, для преобразования документов в векторы встраивания. Семантический поиск может выдавать предложения или абзацы, которые, скорее всего, содержат ответ, который ищет пользователь, но не дает полного ответа на вопрос. Часть того, что так волнует людей в ChatGPT, заключается в том, что он дает более естественно звучащий ответ на вопрос.

Модель большого языка (LLM)

Большая языковая модель делает нечто иное, чем семантический поиск. Он принимает подсказку и выдает ответ на основе этой подсказки. Подсказка может быть вопросом, но может также включать в себя больше инструкций, чем просто вопрос. Итак, если я отправлю большой языковой модели набор инструкций, в зависимости от этих инструкций я могу получить очень разное поведение. Эту же модель можно использовать для подведения итогов технической статьи, ответов на вопросы или перевода с английского на немецкий.

С умной подсказкой LangChain подчиняет GPT-3 своей воле. Подсказка, которую LangChain использует в своей демонстрации, показана здесь:

You are an AI assistant for the open source library LangChain. The documentation is located at https://langchain.readthedocs.io.
You are given the following extracted parts of a long document and a question. Provide a conversational answer with a hyperlink to the documentation.
You should only use hyperlinks that are explicitly listed as a source in the context. Do NOT make up a hyperlink that is not listed.
If the question includes a request for code, provide a code block directly from the documentation.
If you don't know the answer, just say "Hmm, I'm not sure." Don't try to make up an answer.
If the question is not about LangChain, politely inform them that you are tuned to only answer questions about LangChain.
Question: {question}
=========
{context}
=========
Answer in Markdown:

Если вы не знаете ответа, просто скажите: «Хм, я не уверен». Не пытайтесь составить ответ.

Это еще больше снижает вероятность ложноположительных результатов, которые людям не нравятся в ChatGPT.

Вопрос пользователя будет размещен там, где отображается { вопрос } в этой подсказке. Результаты семантического поиска будут включены в { контекст }. Конструкция этой подсказки указывает GPT-3 предоставлять только ответы, полученные из контекста. Эти ответы всегда будут иметь ссылки, выбранные из контекста. Наконец, ответ отформатирован в формате Markdown, чтобы разработчики могли красиво отобразить ответ в своем приложении.

Семантический поиск сделал часть работы, отыскав только те разделы технической документации, которые имеют отношение к рассматриваемому вопросу. Затем GPT-3 заканчивает работу ответом в разговорном стиле, который явно ограничен предоставленным контекстом. Вот как LangChain может предоставить возможности ChatGPT, но ограничивает возможности, чтобы говорить только о своих документах.

Последующие вопросы

Важной и отличительной чертой ChatGPT является возможность задавать уточняющие вопросы. Память истории чата учитывается при создании следующего ответа. Последующий вопрос доставляется в этом приложении с еще одной умной подсказкой. Разработчики отправляют историю чата и новый вопрос в GPT-3 и предлагают LLM сгенерировать новый отдельный вопрос. Этот новый единственный вопрос затем проходит через процесс, который мы описали ранее. Приглашение для этого запроса выглядит так:

Given the following conversation and a follow up question, rephrase 
the follow up question to be a standalone question. You should assume 
that the question is related to LangChain.

Дальнейшее рассмотрение

В целом, это отличная демонстрация, которая показывает, как люди могут достичь наилучшего результата, предоставляя возможности, которые люди любят в ChatGPT, ограничивая область действия определенным набором документов. Этот подход может быть применен ко многим вариантам использования в корпоративной среде. Есть одна проблема, связанная с дизайном приложения, когда я думаю об этом в корпоративном контексте. Каждый вопрос, который мои клиенты задают о моем продукте, вместе с соответствующей информацией о моем продукте отправляется третьей стороне, в данном случае OpenAI.

На фундаментальном уровне это просто не кажется хорошей идеей, чтобы кто-то еще имел этот набор данных со всеми вопросами моих клиентов о моем продукте. Злоумышленник потенциально может добыть эти данные, чтобы воспользоваться моими слабостями. Потенциальным решением является размещение LLM с полностью открытым исходным кодом (например, Flan-T5 или GPT-2) в вашем собственном частном облаке. Затем на каждом этапе диаграммы, где мы вызываем LLM, мы вызываем наш собственный частный экземпляр этого LLM. Этот подход означает, что у вас должно быть достаточно технических ресурсов для размещения большой модели в вашей облачной инфраструктуре, но при этом вы можете быть уверены, что не отправляете данные своей компании в эфир.

Заключение

Сочетание семантического поиска и LLM открывает большие перспективы для многих бизнес-приложений. Платформа, разработанная LangChain, упростит создание таких приложений. Так что держите эту библиотеку на своем радаре.