Memória para IAs, Personalização, Banco de Dados de Vetores Tudo Num Simples Fluxograma!

Se a citação sobre vender pás durante uma corrida de ouro faz sentido para você, vai curtir uma pitada de conhecimento sobre o que tem acontecido no mundo da inteligência artificial nos últimos meses.

fluxograma

Resistência

Uma boa parte das pessoas que se interessam por publicações como estas são as que apresentam uma genuína curiosidade sobre o assunto. Outra parte significativa, no entanto, pode ter se interessado no passado, mas logo achou algum ponto que criou uma resistência em seguir entendendo mais sobre o assunto.

Esse dogmatismo surge com discursos como:

  • "Isso só copia o que já existe."
  • "Não dá pra fazer nada complexo, ele tem um limite."
  • "Muito caro!"

Se é o seu caso, é possível que mude de opinião com este artigo e dê mais uma chance para integrar essa tecnologia no seu dia a dia. Se é um entusiasta no assunto, talvez passe a entender logo de uma vez como algumas aplicações estão lidando com esses impedimentos ao fazer uso dos bancos de dados em vetores.

IA num contexto não tão distante

Acredito que, num futuro não tão distante, vamos estar com um contexto completamente diferente sobre inteligência artificial. Esse assunto não estará vinculado com a keyword "chatgpt" e tão pouco continuará sendo o tópico quente da vez.

A OpenAI, no entanto, mostrou para o mundo as possibilidades dessa tecnologia.

Então, se antes o concorrente estava preocupado em como acrescentar mais opções de perguntas em seu chatbot, hoje ele está procurando vincular uma IA com seus dados para atender os clientes de forma extremamente personalizada.

Banco de dados de vetores

noticias

Todos abaixo são bancos de dados em vetor seguidos de seus valuation, todos em abril deste ano (2023):

Pinecone - US$750 milhões Chroma - US$75 milhões Weaviate - US$200 milhões

Isso volta ao ponto inicial. Você não precisa criar o próximo modelo de linguagem artificial para fazer parte dessa tecnologia, pode muito bem entender como ela funciona e fornecer ideias ou soluções em automatizações simples, ou sob a visão de um investidor começar a entender como as empresas do seu portfólio contribuem para esse ecossistema.

Os investidores das empresas listadas a cima certamente entenderam isso. Mas afinal, o que um banco de dados tem a ver com IAs?

Como funciona o processo?

Em resumo, uma IA funciona comparando o seu input, ou pergunta, com outros documentos de um banco de dados. Para fazer essa comparação, ela converte a sua pergunta de texto para vetor e busca o outro vetor em seu banco que mais se parece com a pergunta.

Sabendo disso, fica mais fácil entender como poderíamos personalizar para que as respostas retornem apenas o que realmente representa a nossa marca, nossa opinião e até mesmo documentos internos de uma empresa que só um grupo restrito de pessoas deveria ter acesso.

Numa conversa com o chat-gpt seguimos este escopo:

promptsimples

Observe que é um escopo "enxuto". O modelo de linguagem simplesmente recebe nossa pergunta, faz a própria filtragem em cima de seus próprios dados e devolve uma resposta.

Usando um banco de dados de vetores com a LLM

A proposta de usar o próprio banco de dados envolve um processo um pouco maior, que se resume no seguinte fluxograma:

promptsimples

Fluxo utilizando um banco de dados em vetores e uma framework para LLMs

Se tudo o que queremos usar de contexto para as respostas da IA estiver dentro de um PDF, fica impossível de colocar tudo num documento só do vetor, pois existe uma restrição em número de tokens permitidos pelos modelos.

Assim, usamos algumas funções de frameworks para LLMs, como a Langchain, para dividir o texto em pedaços que serão enviados para o banco logo após serem "embedados" (transformados em vetor).

LLM = Large Language Models - Modelos de Linguagem Gigantes (ex.: GPT3)

Com o uso dos dados armazenados no banco, ocorre agora um processo diferente ao enviar uma mensagem para a nossa aplicação.

Agora será buscado no banco o pedaço do texto que tem mais contexto com a mensagem recebida. Esse pedaço é incluído junto com a sua mensagem para a LLM.

Assim a IA não vai buscar dados aleatórios da internet para te responder, mas sim usar um documento previsível para basear seus dados.

Esse simples fluxo já abre portas para uma infinidade de ideias, inclusive para dar memória ao "robô", já que cada instância de conversa também pode ser armazenada no banco.

O processo não se limita a um único modelo de linguagem, inclusive já podemos rodar uma linguagem de uso comercial localmente, com tamanho de 4.52GB (Mosaic mpt-instruct).

promptsimples

Um comparativo listado no GPT4ALL classifica o text-davinci-003 (o primeiro LLM que usávamos na estreia do chatgpt) tendo uma nota média de 75,7. Já o Mosaic mpt-instruct ficou com nota 65.6.

Particularmente, para a maior parte dos projetos eu não acho que esteja valendo a pena migrar para uma linguagem deste tipo, por enquanto, pelo custo enorme em processamento. Mas só de ver um modelo de linguagem completo conseguir caber num pendrive já é algo para se empolgar.

Além da possibilidade de treinar seu próprio modelo de linguagem como uma opção para dispensar um custo maior com a API da OpenAI no longo prazo.

Conclusão

Dessa forma, resolvemos a personalização, evitamos cópias ou respostas incoerentes, tiramos uma boa parte da limitação em tokens e entendemos como já temos acesso a vários modelos de linguagem.

Se ainda não entendeu as possibilidades por trás dessas funcionalidades, procure por "autogpt". Conseguindo ignorar os milhões de clickbaits, propagandas enganosas e declarações sobre o fim do mundo por conta dessas IAs, chegará em alguns resultados sobre uma inteligência que realiza... tarefas.

promptsimples

Mas não como o chatgpt que conclui uma tarefa básica de "resuma meu TCC". Essas IAs autônomas conseguem escrever um código mais complexo por completo, salvar no seu computador cada arquivo, realizar testes e até acionar outros chamados "agentes" para discutir entre eles sobre o resultado final da tarefa.

Como desenvolvedor e um entusiasta de empreendedorismo, é muito satisfatório ver como está se desenhando essa área. Acredito que esteja saindo de um laboratório secreto para um parquinho de diversões para criadores.

Me empolga sentir parte de um momento em que frameworks, bibliotecas e até novas linguagens estão sendo construídas para servir de apoio para ferramentas que farão parte do nosso dia a dia daqui algum tempo.

leonardogrig,

Sinceramente eu fico muito feliz mesmo de ter lido esse post, nas últimas duas semanas fiquei pesquisando extensivamente para entender melhor os bancos de dados de vetores, langchain, etc.

Agora vendo o seu post, eu vi que entendi certo hahaha.

Eu nem vou entrar no mérito da importância dos bancos de vetores, porque seu post explicou tudo.

Só queria adicionar que eu acredito que quem vai estar na frente é quem souber utilizar o langchain da maneira de realmente extrair as respostas corretas e tarefas complexas.

Novamente, agradeço muito pelo post.

Muito interessante o artigo, mas sinto que poderias se aprofundar mais em alguns tópicos.

Como os Banco de Dados Vetoriais, como funcionam ou casos de uso concretos.

Ou treinamento de IA para criar um próprio ChatGPT.

Essa questão da "Memória da IA", é realmente algo bem massa, não vejo conteúdos sobre isso. Acho que estamos numa etapa que temos que ser os primeiros a criar ou trazer esses conteúdos. No máximo, isso está em pesquisas científicas ou empresas muito nichadas.

Que artigo sensacional! Eu como sou um entusiasta de IA, brilho os olhos ao aprender sobre todas essas tecnologias utilizadas por trás e os avanços que elas trarão e como podemos se contextualizar, ser melhores nisso e fazer parte disso. Muito obrigado pelo baita artigo @leonardogrig!!