Просмотр ответов на вопросы и анализ документов с помощью LangChain и DeepInfra
10 июня 2023 г.Добро пожаловать! Сегодня мы углубимся в концепцию ответов на вопросы в анализе документов. В частности, мы рассматриваем, как такой инструмент, как LangChain может улучшить этот процесс. Ответы на вопросы (QA) в анализе документов — это искусство и наука извлечения точной информации из набора документов в ответ на конкретный запрос. С развитием ИИ и обработки естественного языка (NLP) этот процесс становится все более автоматизированным, надежным и эффективным. Вот где в игру вступает LangChain.
LangChain при интеграции с DeepInfra становится мощным инструментом для анализа документов. DeepInfra предоставляет набор больших языковых моделей (LLM), которые можно использовать для различных приложений ИИ, с LangChain, обеспечивающим инфраструктуру для соединения этих моделей в конвейер, адаптированный к конкретным потребностям. Вы можете найти обширный список LLM для использования с LangChain на AIModels.fyi. Эта платформа позволяет искать, фильтровать и сортировать модели ИИ, упрощая поиск подходящей модели для вашего проекта ИИ. Например, вы можете использовать gpt-neo-125M, dolly-v2-12b или flan-t5 в зависимости от ваших конкретных потребностей.
Настройка DeepInfra с LangChain
Теперь давайте настроим экосистему DeepInfra в LangChain. Эта настройка включает в себя ряд шагов, таких как установка ключа API среды, создание экземпляра DeepInfra, настройка шаблона приглашения для вопроса и ответа и, наконец, запуск LLMChain. Для непосвященных LLMChain — это, по сути, цепочка LLM настроена определенным образом для достижения конкретной задачи.
Настройка ключа API среды
Во-первых, обязательно получите ключ API от DeepInfra. Вам нужно будет войти и получить новый токен. Если вы новичок в DeepInfra, вам будет приятно узнать, что вам предоставляется 1 час бесплатного бессерверного вычисления на графическом процессоре для тестирования различных моделей.
Получив ключ API, вы можете установить его в своей среде:
from getpass import getpass
import os
DEEPINFRA_API_TOKEN = getpass()
os.environ["DEEPINFRA_API_TOKEN"] = DEEPINFRA_API_TOKEN
Создание экземпляра DeepInfra
Затем создайте экземпляр DeepInfra, используя выбранную вами модель. В данном случае мы используем модель «databricks/dolly-v2-12b».< /p>
from langchain.llms import DeepInfra
llm = DeepInfra(model_id="databricks/dolly-v2-12b")
llm.model_kwargs = {'temperature': 0.7, 'repetition_penalty': 1.2, 'max_new_tokens': 250, 'top_p': 0.9}
Создание шаблона подсказки
Чтобы упростить процесс ответа на вопрос, мы создадим шаблон подсказки для вопроса и ответа. Это обеспечивает структурированный подход к нашим запросам.
from langchain import PromptTemplate
template = """Question: {question}nAnswer: Let's think step by step."""
prompt = PromptTemplate(template=template, input_variables=["question"])
Запуск и запуск LLMChain
Наконец, мы можем инициировать LLMChain и запустить его:
from langchain import LLMChain
llm_chain = LLMChain(prompt=prompt, llm=llm)
# Provide a question and run the LLMChain
question = "Can penguins reach the North pole?"
llm_chain.run(question)
Эта настройка предоставит вам LLMChain, готовый к анализу документов и задачам ответов на вопросы.
Подробное объяснение процесса анализа документов и ответов на вопросы
LangChain и DeepInfra упрощают анализ документов и ответы на вопросы. Чтобы лучше проиллюстрировать, как работает этот процесс, давайте углубимся в подробное объяснение.
Загрузка документов
Первый шаг в этом путешествии — загрузка документов. Вы можете использовать TextLoader
, предоставленный LangChain:
from langchain.document_loaders import TextLoader
loader = TextLoader('../state_of_the_union.txt')
Создание индекса
После загрузки документов создайте индекс для ваших данных. Этот индекс используется для эффективного извлечения релевантных документов по запросу, тем самым экономя ваше время и ресурсы. В LangChain это можно сделать с помощью VectorstoreIndexCreator
:
from langchain.indexes import VectorstoreIndexCreator
index = VectorstoreIndexCreator().from_loaders([loader])
Запрос вашего индекса
Наконец, запросите свой индекс, чтобы получить соответствующие документы. Допустим, вы хотите узнать, что президент сказал об определенном человеке. Вы можете сделать:
query = "What did the president say about Ketanji Brown Jackson"
index.query(query, llm=llm)
Вы также можете использовать query_with_sources
, чтобы вернуть задействованные источники:
query = "What did the president say about Ketanji Brown Jackson"
index.query_with_sources(query, llm=llm)
Дополнительные функции и расширенное использование
LangChain также предоставляет расширенные функции, такие как ответы на вопросы с источниками, где языковая модель цитирует документы, использованные для создания ответа. Вот как вы можете начать:
from langchain.chains.qa_with_sources import load_qa_with_sources_chain
chain = load_qa_with_sources_chain(llm, chain_type="stuff")
chain({"input_documents": docs, "question": query}, return_only_outputs=True)
Заключение
LangChain при интеграции с DeepInfra предоставляет универсальный и мощный инструмент для ответов на вопросы при анализе документов. Он позволяет эффективно использовать модели ИИ, легко создавать рабочие процессы и упрощает процесс понимания и извлечения информации из ваших документов. Мы рекомендуем вам изучить LangChain и DeepInfra и использовать их возможности в своих приложениях. Удачных экспериментов!
Подпишитесь или следите за мной в Twitter, чтобы получать больше подобных материалов!
:::информация Также опубликовано здесь.
:::
Оригинал