Artigo
· Jun. 17 5min de leitura

LangChain – Libertando o potencial total das LLMs

image

Olá Comunidade

Nesse artigo, vou introduzir minha aplicação irisChatGPT construída no LangChain Framework.

Primeiramente, vamos ter uma breve visão geral desse framework.

O mundo inteiro está falando sobre o ChatGPT e como as Large Language Models (LLMs - Grandes modelos de linguagem) se tornaram tão poderosas e tem performado além das expectativas, oferecendo conversas quase humanas. Isso é só o começo de como isso pode ser aplicado em qualquer empresa e qualquer domínio!

A questão mais importante que permanece é como aplicar esse poder para dados específicos de domínio e comportamento de respostas específicas de cenário às necessidades da empresa.

LangChain fornece uma resposta estruturada e efetiva a esse problema nas suas mãos! O LangChain é a tecnologia que pode ajudar a descobrir o imenso potencial das LLMs para construir aplicações surpreendentes ao proporcionar uma camad de abstração ao redor das LLMs e usá-las de maneira fácil e eficaz. O LangChain é uma framework que permite desenvolvimento fácil e rápido de aplicações que usam Grandes Modelos de Linguagem, por exemplo, GPT-3.

Essa framework, no entanto, introduz possibilidades adicionais, por exemplo, a de usar facilmente fontes de dados externos, como a Wikipedia para ampliar as capacidades oferecidas pelo modelo. Eu tenho certeza que vocês todos provavelmente já tentaram usar o Chat-GPT e descobriram que ele falha em responder sobre eventos que ocorreram após uma certa data. Nesse caso, uma pesquisa na Wikipedia poderia ajudar o GPT a responder mais perguntas.


Estrutura do LangChain

Essa framework é organizada em seis módulos. Cada um permite que você gerencie um aspecto diferente da interação com LLM. Vamos ver quais são esses módulos.

  • Modelos: Permite que você instancie e use três tipos diferentes de modelos de linguagem, que são:
    • Large Language Models (LLMs): esses modelos fundacionais de machine learning que são capazes de entender lingugem natural. Eles aceitam stringes na entradas e geram strings na saída.
    • Chat Models: modelos alimentados por LLM, mas especializados para conversar com o usuário. Você pode ler mais aqui.
    • Text Embedding Models: esses modelos são usados para projetar dados textuais em um espaço geométrico. Esses modelos recebem uma entrada de texto e retornam uma lista de números, a  incorporação do texto.
  • Prompts: O prompt é como nós interagimos com o modelo para tentar obter uma saída dele. Saber como escrever  um prompt efetivo é de suma importância. Esse módulo da framework nos permite gerenciar prompts melhores. Por exemplo, podemos criar templates (modelos) que podemos reutilizar.
  • Indexes: Os melhores modelos frequentemente são aqueles que são combinados com uma parte dos seus dados textuais, para adicionar contexto ou explicar algo ao modelo. Esse módulo nos ajuda a fazer exatamente isso.
  • Chains: Muitas vezes, para resolver tarefas, uma só chamada a API para um LLM não é suficiente. Esse mídulo permite que outras ferramentas sejam integradas. Por exemplo, uma chamada pode ser uma cadeia composta com o propósito de buscar informações da Wikipedia e retornar essa informação como entrada ao modelo. Esse módulo permite que muitas ferramentas sejam concatenadas com o objetivo de resolver tarefas complexas.
  • Memory: Esse módulo permite que criemos um estado persistente dentre chamadas a um modelo. Ser capaz de usar um modelo que se recorda do que foi dito no passado com certeza vai melhorar nossa aplicação.
  • Agents: Um agente é um LLM que faz uma decisão, toma uma ação, faz uma observação sobre o que foi feito e continua nessa maneira até completar sua tarefa. Esse módulo fornece um conjunto de agentes que podem ser usados.

Agora vamos observar melhor os detalhes e ver como implementar códigos aproveitando os diferentes módulos.

Como funciona o LangChain
 

Passo 1 :
Usuário envia a questão ao LangChain

Passo 2 :
LangChain envia a questão ao Embedding Model (modelo de incorporação)


Passo 3 :
Embedding model convertse o texto em vetores, já que o texto é armazenado como vectors (vetores) na base de dados e retorna ao LangChain 

Passo 4 :
LangChain envia esses vectores à base de dados de vetores (existem várias bases de dados de vetores, estamos usando a chroma na nossa aplicação).


Passo 5 :
A base de dados de vetores retorna os vetores Top K Approximately Nearest Neighbors (KNN) (Top K vizinhos aproximadamente mais perto)


Passo 6 :
LangChain envoa a questão com os vetores KNN para o Large Language Models (LLMs) (Estamos usando OpenAI na nossa aplicação)

Passo 7 :
LLM retorna a resposta ao LangChain

Passo 8 :
Langchain retorna a resposta ao usuário


Sobre a Aplicação

A aplicação irisChatGPT nivela a funcionalidade de uma das mais usadas frameworks LangChain construídas em torno de Large Language Models (LLMs). LangChain é uma framework que permite o desenvolvimento rápido e fácil de aplicações que usam grandes modelos de linguagem. A aplicação é construída usando ObjectScript com a ajuda da funcionalidade intersystems Embedded Python. Ela também contem a aplicação web Streamlit, que é um framework de Python open-source (código aberto) feito para criar apps bonitos para aprendizado de máquina e ciências de dados.

 

Recursos

Abaixo está a lista de recursos junto com as fotos da tela relacionadas.

 

Referência Intersystems ObjectScript ChatGPT Embutida

 

Competição InterSystems Grand Prix 2023 ChatGPT Embutido

 

ChatGPT com servidor FHIR







Responder questões sobre uma base de dados Cache usando SQLDatabaseChain
 

 

Create your own chatGPT model and chat with it
 

OpenAI ChatGPT
 

Pesquisa Wikipedia 
 

Pesquisa na internet usando a ferramenta de pesquisa geral DuckDuckGo (DDG)
 

Gerar código Python usando a funcionalidade Python REPL LangChain functionality

 

 

Aplicação Web Streamlit  ONLINE DEMO     

Referência Objectscript
 
Competição Grand Prix 2023


ChatGPT Pessoal

OpenAI ChatGPT
 

 

Obrigado!

Discussão (0)1
Entre ou crie uma conta para continuar