O que é o LangChain?
O LangChain é uma estrutura de código aberto para criar aplicações baseadas em grandes modelos de linguagem (LLMs). Os LLMs são grandes modelos de aprendizado profundo pré-treinados em grandes quantidades de dados que podem gerar respostas às consultas do usuário, por exemplo, responder perguntas ou criar imagens a partir de prompts baseados em texto. O LangChain fornece ferramentas e abstrações para melhorar a personalização, a precisão e a relevância das informações que os modelos geram. Por exemplo, os desenvolvedores podem usar componentes do LangChain para criar novas correntes de prompts ou personalizar modelos existentes. O LangChain também inclui componentes que permitem que os LLMs acessem novos conjuntos de dados sem retreinamento.
Por que o LangChain é importante?
Os LLMs se destacam em responder aos prompts em um contexto geral, mas têm dificuldade em um domínio específico no qual nunca foram treinados. Os prompts são consultas que as pessoas usam para buscar respostas de um LLM. Por exemplo, um LLM pode fornecer uma resposta sobre quanto custa um computador fornecendo uma estimativa. No entanto, ele não pode listar o preço de um modelo de computador específico que sua empresa vende.
Para fazer isso, os engenheiros de machine learning devem integrar o LLM às fontes de dados internas da organização e aplicar a engenharia de prompts, uma prática em que um cientista de dados refina as entradas para um modelo generativo com uma estrutura e um contexto específicos.
O LangChain simplifica as etapas intermediárias para desenvolver essas aplicações responsivas a dados, tornando a engenharia de prompts mais eficiente. Ele foi projetado para desenvolver diversas aplicações baseadas em modelos de linguagem com mais facilidade, incluindo chatbots, respostas a perguntas, geração de conteúdo, resumos e muito mais.
As seções a seguir descrevem os benefícios do LangChain.
Reutilizar modelos de linguagem
Com o LangChain, as organizações podem reutilizar LLMs para aplicações específicas de domínio sem retreinamento ou ajuste detalhado. As equipes de desenvolvimento podem criar aplicações complexas que fazem referência a informações proprietárias para aumentar as respostas do modelo. Por exemplo, você pode usar o LangChain para criar aplicações que leem dados de documentos internos armazenados e os resumem em respostas conversacionais. Você pode criar um fluxo de trabalho de Geração Aumentada de Recuperação (RAG) que introduz novas informações no modelo de linguagem durante a solicitação. A implementação de fluxos de trabalho sensíveis ao contexto, como o RAG, reduz a alucinação do modelo e melhora a precisão da resposta.
Simplificar o desenvolvimento de IA
O LangChain simplifica o desenvolvimento de inteligência artificial (IA) ao abstrair a complexidade das integrações de fontes de dados e ao refinar os prompts. Os desenvolvedores podem personalizar sequências para criar aplicações complexas rapidamente. Em vez de programar a lógica de negócios, as equipes de software podem modificar modelos e bibliotecas que o LangChain fornece para reduzir o tempo de desenvolvimento.
Suporte ao desenvolvedor
O LangChain fornece aos desenvolvedores de IA ferramentas para conectar modelos de linguagem com fontes de dados externas. É de código aberto e recebe suporte de uma comunidade ativa. As organizações podem usar o LangChain gratuitamente e receber suporte de outros desenvolvedores proficientes na estrutura.
Como funciona o LangChain?
Com o LangChain, os desenvolvedores podem adaptar um modelo de linguagem de forma flexível a contextos de negócios específicos, designando as etapas necessárias para produzir o resultado desejado.
Correntes
As correntes são o princípio fundamental que contém vários componentes de IA no LangChain para fornecer respostas sensíveis ao contexto. Uma corrente é uma série de ações automatizadas desde a consulta do usuário até a saída do modelo. Por exemplo, os desenvolvedores podem usar uma corrente para:
- Estabelecer conexão com diferentes fontes de dados.
- Gerar conteúdo exclusivo.
- Traduzir vários idiomas.
- Responder às perguntas dos usuários.
Links
As correntes são compostas por elos. Cada ação que os desenvolvedores agrupam para formar uma sequência encadeada é chamada de elo. Com os elos, os desenvolvedores podem dividir tarefas complexas em várias tarefas menores. São exemplos de elos:
- Formatar a entrada do usuário.
- Enviar uma consulta para um LLM.
- Recuperar dados do armazenamento em nuvem.
- Traduzir de um idioma para outro.
Na estrutura do LangChain, um elo aceita a entrada do usuário e a passa para as bibliotecas do LangChain para processamento. O LangChain também permite a reordenação de elos para criar diferentes fluxos de trabalho de IA.
Visão geral
Para usar o LangChain, os desenvolvedores instalam a estrutura em Python com o seguinte comando:
pip install langchain
Em seguida, os desenvolvedores usam os blocos de construção da corrente ou a LangChain Expression Language (LCEL) para compor correntes com comandos de programação simples. A função chain() passa os argumentos de um link para as bibliotecas. O comando execute() recupera os resultados. Os desenvolvedores podem passar o resultado do elo atual para o elo seguinte ou retorná-lo como saída final.
Abaixo está um exemplo de uma função de corrente de chatbots que retorna detalhes do produto em vários idiomas.
chain([
retrieve_data_from_product_database().
send_data_to_language_model().
format_output_in_a_list().
translate_output_in_target_language()
])
Quais são os principais componentes do LangChain?
Usando o LangChain, as equipes de software podem criar sistemas de modelos de linguagem sensíveis ao contexto com os seguintes módulos.
Interface LLM
O LangChain fornece APIs com as quais os desenvolvedores podem se conectar e consultar LLMs a partir de seu código. Os desenvolvedores podem interagir com modelos públicos e proprietários, como GPT, Bard e PaLM, com o LangChain, fazendo chamadas de API simples em vez de escrever códigos complexos.
Modelos de prompt
Os modelos de prompt são estruturas pré-criadas que os desenvolvedores usam para formatar consultas de forma consistente e precisa para modelos de IA. Os desenvolvedores podem criar um modelo de prompt para aplicações de chatbot, aprender pouco ou fornecer instruções específicas para os modelos de linguagem. Além disso, eles podem reutilizar os modelos em diferentes aplicações e modelos de linguagem.
Atendentes
Os desenvolvedores usam ferramentas e bibliotecas que o LangChain fornece para compor e personalizar correntes existentes para aplicações complexas. Um atendente é uma corrente especial que faz com que o modelo de linguagem decida a melhor sequência em resposta a uma consulta. Ao usar um atendente, os desenvolvedores fornecem a opinião do usuário, as ferramentas disponíveis e as possíveis etapas intermediárias para alcançar os resultados desejados. Em seguida, o modelo de linguagem retorna uma sequência viável de ações que a aplicação pode realizar.
Módulos de recuperação
O LangChain permite a arquitetura de sistemas RAG com várias ferramentas para transformar, armazenar, pesquisar e recuperar informações que refinam as respostas do modelo de linguagem. Os desenvolvedores podem criar representações semânticas de informações com incorporações de palavras e armazená-las em bancos de dados de vetores locais ou na nuvem.
Memória
Algumas aplicações de modelo de linguagem conversacional refinam suas respostas com informações recuperadas de interações anteriores. O LangChain permite que os desenvolvedores incluam recursos de memória em seus sistemas. Ele suporta:
- Sistemas de memória simples que lembram as conversas mais recentes.
- Estruturas de memória complexas que analisam mensagens históricas para retornar os resultados mais relevantes.
Retornos de chamada
Os retornos de chamada são códigos que os desenvolvedores colocam em suas aplicações para registrar, monitorar e transmitir eventos específicos nas operações do LangChain. Por exemplo, os desenvolvedores podem rastrear quando uma corrente foi chamada pela primeira vez e os erros encontrados nos retornos de chamada.
Como a AWS pode ajudar com seus requisitos de LangChain?
Usando o Amazon Bedrock, o Amazon Kendra, o Amazon SageMaker JumpStart, o LangChain e seus LLMs, você pode criar aplicações de inteligência artificial generativa (IA generativa) de alta precisão com base em dados empresariais. LangChain é a interface que une esses componentes:
- O Amazon Bedrock é um serviço gerenciado com o qual as organizações podem criar e implantar aplicações de IA generativa. Você pode usar o Amazon Bedrock para configurar um modelo geracional, que você acessa a partir do LangChain.
- O Amazon Kendra é um serviço baseado em machine learning (ML) que ajuda as organizações a realizar pesquisas internas. Você pode conectar o Amazon Kendra ao LangChain, que usa dados de bancos de dados proprietários para refinar as saídas do modelo de linguagem.
- O Amazon SageMaker Jumpstart é um hub de ML que fornece algoritmos pré-criados e modelos de base que os desenvolvedores podem implantar rapidamente. Você pode hospedar modelos de base no SageMaker Jumpstart e solicitá-los a partir do LangChain.
Comece a usar o LangChain na AWS criando uma conta hoje mesmo.
Próximas etapas na AWS
Obtenha acesso instantâneo ao nível gratuito da AWS.