Não se trata apenas de IA: software complementar para a construção de soluções de IA

Não se trata apenas de IA: software complementar para a construção de soluções de IA

Os LLMs estão na moda, mas há um ecossistema emergente em torno deles que abre as portas para novas maneiras de construir soluções de IA.

Imagem em destaque

Dizer que a IA virou o mundo de cabeça para baixo é nada menos que um eufemismo. Para o bem ou para o mal, o lançamento do ChatGPT abriu as comportas para um público mais amplo. Hoje em dia, você encontra pessoas falando sobre IA da mesma forma que as encontraria falando sobre política, seus hobbies ou suas últimas tendências. Sim, sim, todos nós sabemos que a IA é mais do que PNL e transformadores generativos, mas não podemos negar que ChatGPT (e Bard e Bing) é o aplicativo matador de IA aos olhos dos usuários.

OpenAI abriu GPT-4 para sua API para todos os usuários, Meta lançou Llama2 sob um dos mais abrangentes licenças não muito abertas, mas ainda muito flexíveis no mercadoo Huggingface está vendo mais usuários do que nunca, e a Microsoft está fazendo tudo ao seu alcance para posicionar o Azure como o uma verdadeira solução para aplicativos de IA. E isso é apenas a ponta do iceberg. Estamos vivendo em uma época repleta de oportunidades para empresas estabelecidas e startups mexerem com a IA e integrá-la aos seus produtos.

Mas por onde começar? A IA generativa não é uma caixa mágica. Não é como se ele pudesse se transformar em um aplicativo totalmente funcional (ainda!). Você também não pode descartar um script curto fazendo uma chamada de API para um servidor para gerar algo e encerrar o dia. Isso poderia ter funcionado alguns anos atrás, quando os chatbots podiam ser marcados como “aplicativos complementares”. E mesmo assim, a maioria desses aplicativos precisava ter um certo nível de complexidade para adicionar contexto, memória e outros fatores para tornar uma conversa viável.

Hoje vamos falar sobre software complementar, soluções que têm crescido a partir da mania da IA ​​e que podem ajudar todos, desde desenvolvedores seniores até entusiastas sem código, a construir soluções de IA que atendam às suas necessidades e aos seus projetos. Mas antes de pularmos de cabeça, deveríamos falar sobre um número-chave chamado Jerônimo Bruner.

Psicologia Narrativa como Estrutura para IA

Embora a natureza deste artigo seja explorar e compreender quais ferramentas temos à nossa disposição para construir melhores soluções de IA, achamos importante começar pensando em como vamos usar essas ferramentas.

Para ser franco, a IA não é uma solução por si só. Você precisa ter um objetivo claro do que deseja alcançar e, mais importante, precisa ter uma pilha de tecnologia capaz de gerenciar o escopo e a intenção do seu projeto.

Então, o que a psicologia tem a ver com IA? Muito, na verdade. Por um lado, laboratórios de IA como o OpenAI usam princípios de psicologia comportamental para ensinar suas máquinas; aprendizagem por reforço é uma tecnologia aplicada que deve muito ao enorme trabalho de BF Skinner.

Mas hoje não vamos falar sobre os princípios do behaviorismo. Isso seria um tópico em si. Não. Hoje vamos falar sobre psicologia cognitiva, um campo que muito deve à ciência da computação e que, por sua vez, tem muito a nos ensinar em termos de processamento de informações de novas maneiras.

Durante a primeira metade do século 20, a psicologia concentrou-se na observação e análise de comportamentos. Havia pouco interesse no que estava acontecendo dentro da mente. Primeiro, porque a psicologia estava a tentar distanciar-se da filosofia e da sua abordagem à mente e, segundo, porque não tínhamos as ferramentas para medir a forma como o cérebro processa a informação.

Assim, a psicologia recorreu à ciência da computação e à teoria da informação em busca de soluções. Assim como um algoritmo modela um processo sem transmitir com precisão como uma CPU lida com as informações, os psicólogos criaram modelos que explicavam como a mente funciona sem ter que explicar o que estava acontecendo em termos de células cerebrais.

De certa forma, foi uma solução fantástica para o problema que atormentava a psicologia americana, mas veio à custa de preconceitos que assolam o campo até hoje. Algoritmos e modelos tendem a favorecer processos lineares e lógicos e, para melhor ou para pior, humanos não são racionais; portanto, os modelos tendem a falhar quando levamos em conta comportamentos e ideias complexas.

Jerome Bruner é um dos psicólogos cognitivos que se sentiu desiludido com os resultados nada ideais que a área estava obtendo e, em resposta, publicou na década de 1970 um livro fantástico chamado Mentes reais, mundos possíveis. Nele, ele estabeleceria as bases para uma nova teoria da mente baseada na linguagem e na narrativa.

Suas ideias nos encorajam a pensar criticamente sobre como a IA também deveria funcionar. Graças a estes novos modelos de linguagem, assistimos ao surgimento de agentes autónomos como o BabyAGI – software de computador com uma aparência de “diálogo interno” em conjunto com memória de curto e longo prazo. A IA pode planejar, priorizar, executar e avaliar.

Sim, as instruções subjacentes ainda são zeros e uns – afinal, é um programa de computador – mas poderíamos dizer algo semelhante sobre a atividade cerebral. Afinal, o que está por trás dos nossos pensamentos senão a atividade elétrica em nossos cérebros (pelo menos em parte)?

Deveria a IA confiar puramente em algoritmos e padrões de dados, ou deveria também “compreender” histórias e contextos? Um exemplo notável é a IA nos cuidados de saúde, onde a compreensão da história de fundo de um paciente – composta por escolhas de estilo de vida, história familiar e práticas culturais – é tão crítica para diagnósticos conclusivos como a interpretação de dados médicos.

Bruner também defende a flexibilidade cognitiva, implicando mundos – ou realidades – possíveis que podem ser moldados através de mudanças nos nossos modelos mentais. Portanto, ao trabalhar com IA, essa flexibilidade sugere o emprego de múltiplas técnicas de modelagem que atendem a diversos cenários, em vez de aderir rigidamente a uma abordagem única para todos.

Consideremos a previsão meteorológica: Embora geralmente utilizemos modelos de regressão baseados em dados históricos para prever condições futuras, poderemos precisar de modelos diferentes que priorizem imagens de satélite em tempo real em detrimento de registos históricos obsoletos durante situações adversas como ciclones ou inundações.

Além disso, Bruner apresenta a tolerância à ambiguidade como um atributo humano intrínseco – um lembrete para trabalharmos com IA para projetar esses sistemas para serem resilientes contra fluxos de dados incertos, em vez de apenas fluxos precisos.

Os veículos autónomos ilustram perfeitamente este princípio: embora a condução em condições meteorológicas claras possa ser gerida por sensores precisos e bases de dados de mapas, navegar nas manhãs de nevoeiro exige maior tolerância a informações visuais ambíguas – uma estratégia totalmente alternativa!

Por último, mas não menos importante, a forma como os factores culturais influenciam a cognição proporciona uma visão fascinante, convidando-nos a criar ferramentas de IA mais culturalmente sensíveis. Empresas como o Google já começaram a abraçar esta ideia; seu software de tradução agora considera as gírias informais juntamente com as regras linguísticas oficiais ao interpretar idiomas.

Mas as soluções que funcionam como seres humanos não seriam menos lógicas, menos precisas e mais propensas a erros? Bem, sim, mas isso é um recurso, não um bug. Muitas empresas têm a ganhar com a implementação de agentes humanos complexos como parte do serviço; por exemplo, um artista que usa IA generativa para criar imagens de inspiração pode ser inspirado por um “erro”.

Pense quantas vezes você foi surpreendido pela engenhosidade de alguém – por exemplo, como as crianças criam histórias e arte fantásticas porque são menos propensas a serem oprimidas pelo bom senso. Não usaríamos uma IA alucinante para fazer investimentos de alto risco, mas um escritor que procura alguém com quem trocar ideias não poderia pedir nada melhor.

Então, com essas ideias em mente, vamos falar sobre ferramentas e como elas podem nos ajudar a criar agentes semelhantes aos humanos.

Langchain

Poderíamos escrever um milhão de artigos sobre Langchain, e não seria suficiente nem mesmo arranhar a superfície desta estrutura extremamente poderosa. Para citar seus local na rede Internet: “LangChain é uma estrutura para desenvolvimento de aplicativos alimentados por modelos de linguagem.”

Se construir um aplicativo baseado em IA do zero equivale a construir um prédio com tijolos e concreto, usar langchain é como montar um prédio usando blocos de Lego. E embora essa analogia possa parecer um pouco restritiva no início, não se esqueça de que as pessoas conseguiram construir a Estrela da Morte com Legos.

Deixando de lado as comparações tolas, Langchain apresenta uma arquitetura modular, apresentando diferentes módulos, cada um projetado para uma funcionalidade específica. Por exemplo, o módulo Models integra vários modelos e tipos de linguagem, atuando como espinha dorsal para qualquer aplicação baseada em Langchain. Um exemplo prático seria a integração de um modelo “BERT” que fornece compreensão semântica para um Chatbot desenvolvido em Langchain.

Outro exemplo, o módulo Prompts, concentra-se no gerenciamento e otimização de prompts, melhorando assim a relevância e a precisão do resultado. Por exemplo, se estivéssemos desenvolvendo um aplicativo de assistente pessoal, o ajuste fino dos prompts poderia potencialmente melhorar suas habilidades de conversação, fornecendo respostas personalizadas ao usuário.

Repassar cada módulo levaria muito tempo, por isso recomendamos recursos como o oficial Documentação Langchain e Tutoriais Langchain. Esses guias práticos estão repletos de exemplos que fornecem informações valiosas sobre como trabalhar com Langchain e construir aplicativos baseados em IA desde o início.

Em vez disso, vamos nos concentrar em como ferramentas como o Langchain podem ser implementadas. Como alguns de vocês já devem ter imaginado, Langchain funciona adicionando uma camada de abstração. Por exemplo, em vez de fazer chamadas diretas de API para um modelo de linguagem, Langchain cuida desse incômodo para nós.

Isso nos leva ao primeiro benefício. Como não estamos trabalhando diretamente com chamadas de API ou bibliotecas para uma solução LLM específica, é relativamente fácil mudar de provedor de IA (ou misturar e combinar com facilidade). Se fizermos nosso trabalho corretamente, mudar entre LLMs será tão fácil quanto mudar uma única linha de código.

Isso lhe dá uma enorme flexibilidade e controle sobre seu projeto. Os prestadores de serviços por vezes alteram as suas políticas sem se preocuparem muito com o impacto que isso poderá ter nos seus clientes – caso em questão, o Desastre da API do Reddit. Se você estiver vinculado a um único fornecedor, ficará mais vulnerável a mudanças repentinas que podem afetar seu produto. Langchain ajuda você a manter sua base de código o mais reutilizável e preparada para o futuro possível.

O poder do Langchain vai além de seus módulos principais, graças às suas extensas integrações com vários provedores de modelos de linguagem, provedores de modelos de incorporação de texto, carregadores de documentos e divisores de texto, entre outros. Por exemplo, Langchain não só possui um sistema modular e integrações extensas, mas também uma ampla gama de aplicações do mundo real, desde o desenvolvimento de agentes autônomos que tomam decisões com base em circunstâncias em evolução até a criação de assistentes pessoais que recordam interações.

O pipeline do Langchain é baseado na ideia de construir cadeias de ações. Por exemplo, se emularmos um agente autônomo, poderíamos projetar vários elos para construir a cadeia, tais como:

  • Um módulo que recebe a entrada do usuário e a classifica e, com base nessa classificação, envia a entrada para um “cérebro” especializado
  • Uma série de módulos especializados para cada área; por exemplo, modelos treinados de forma personalizada para cada área do nosso negócio para servir como chatbots para os usuários
  • Um módulo que, a partir da solicitação do usuário, cria uma série de etapas para atingir seu objetivo
  • Um módulo que prioriza qual passo dar primeiro
  • Um módulo que pode pesquisar na web e raspar páginas da web para fornecer resultados mais precisos
  • Um módulo que, com base nas diferentes respostas de cada etapa, constrói uma resposta final

Observe que o que estamos fazendo aqui é uma extensão do que Bruner nos diz sobre a cognição humana. Em termos humanos, estamos apenas criando “vozes interiores” que lidam com diferentes tarefas – assim como você “fala consigo mesmo” quando está analisando algo ou como algumas pessoas falam consigo mesmas quando estão pensando.

Um caso de uso que consideramos particularmente notável é a capacidade do Langchain de consultar dados tabulares. Imagine uma aplicação onde um usuário pode pedir para encontrar em um banco de dados de uma empresa todos os funcionários que ingressaram nos últimos 6 meses e moram em uma determinada cidade. Aproveitando o Langchain, é possível conseguir isso usando modelos de linguagem para interagir e extrair insights de dados estruturados.

Langchain é uma ferramenta versátil com vasto potencial para aplicação em vários domínios. O início do aprendizado de Langchain pode parecer assustador, mas equipado com os recursos certos e uma curiosidade insaciável, você estará no caminho certo. O lado positivo é que Langchain suporta Python e Javascript, então não é como se você tivesse que aprender uma nova linguagem do zero.

Pinecone como solução de IA

O que é pinha? Pinecone é um banco de dados vetorial gerenciado projetado para aplicações de aprendizado de máquina. É basicamente como dar uma bela atualização às nossas soluções LLM – como passar de uma bicicleta para um carro esportivo totalmente carregado.

Agora, se você não tem ideia do que é Pinecone, não se preocupe; você não está sozinho. Muitos acham isso tão desconcertante quanto as palavras cruzadas que vemos em nossos jornais matinais. Mas estamos aqui para resolver esses problemas de confusão.

Pinecone é um banco de dados vetorial projetado especificamente para aplicações de aprendizado de máquina. Para simplificar, os bancos de dados vetoriais são um tipo de software projetado para lidar com dados pesados ​​e multidimensionais, frequentemente encontrados em aplicativos de IA e aprendizado de máquina.

Imagine que você está comprando online um novo par de tênis e o site sugere itens com base em suas pesquisas e preferências. Esse é basicamente um recurso de IA conhecido remotamente como “mecanismo de recomendação”. Esses mecanismos extraem toneladas de dados para sugerir itens relevantes. Agora, isso é muito trabalho pesado em termos de dados! É aí que nossa estrela principal, Pinecone, entra em ação. Ele indexa dados de alta dimensão com mais eficiência, fazendo com que plataformas de IA como o “mecanismo de recomendação” funcionem com mais eficiência. Legal, certo?

Tecendo uma camada mais técnica, a Pinecone utiliza estruturas de dados conhecidas como “Espaços Vetoriais”. Visualize um vasto cosmos onde cada estrela é um ponto de dados. Algumas dessas estrelas são vizinhas próximas, enquanto outras são galáxias distantes, muito, muito distantes. A proximidade entre as estrelas determina sua relação ou semelhança.

Pinecone ajuda a encontrar esses vizinhos de forma eficiente e precisa. Essa capacidade forma a espinha dorsal dos algoritmos em sistemas de recomendação, mecanismos de pesquisa, personalização e detecção de anomalias, onde os relacionamentos entre pontos de dados são o pão com manteiga.

Lembra daquela vez que você procurou um vídeo de gato e caiu na toca do coelho com vídeos de animais fofinhos pela próxima hora? Esse é um exemplo típico de sistema de recomendação de IA em funcionamento, habilitado por mecanismos como o Pinecone.

Nosso primeiro truque para aproveitar o Pinecone é abandonar as soluções tradicionais de banco de dados e adotar pesquisas por similaridade. Pinecone usa incorporação vetorial, o que nos permite recuperar itens com base em sua semelhança relacional, em vez de correspondências exatas. Isso significa que nossas soluções LLM podem compreender o contexto como nunca antes.

Vamos pintar um quadro aqui. Imagine ter que encontrar um par de sapatos azuis em um guarda-roupa enorme. Os métodos tradicionais nos obrigariam a verificar cada sapato. Não com pinha! Serviria todos os sapatos azuis que temos em segundos.

Agora, a seguir, vamos falar sobre a escalabilidade que o Pinecone oferece. Sabemos que dimensionar os recursos de aprendizado de máquina pode ser uma tarefa difícil. O Pinecone, no entanto, permite-nos escalar horizontalmente facilmente, tornando possível lidar com grandes volumes de dados sem sacrificar a velocidade ou a eficiência.

Além disso, a Pinecone coloca uma enorme quantidade de poder em nossas mãos com processamento em tempo real. Assim, em vez de esperar pelos resultados até que o sistema processe nosso lote habitual de dados (como assistir a uma temporada inteira em uma noite), obtemos resultados rápidos e em tempo real (como transmitir ao vivo um jogo esportivo emocionante).

Por último, a facilidade de uso do Pinecone não deve ser subestimada. Afinal, queremos gastar o nosso tempo em ideias inovadoras e não em resolver problemas de implementação. Com sua abordagem de serviço gerenciado, a Pinecone elimina a complexidade da equação. Tão fácil quanto uma torta, certo?

Em Atos de Significado, Bruner explica que os humanos são contadores de histórias naturais. Em vez de nos lembrarmos de coisas como uma imagem perfeita, lembramos de fragmentos de informação e os ligamos com os mesmos princípios que os autores usam para escrever histórias. Essas histórias, por sua vez, são fortemente influenciadas pelas ideias e conceitos compartilhados por uma comunidade.

Então, o que isso significa para a nossa IA? Simples. Digamos que você goste de videogame e assista vídeos sobre o assunto no YouTube. Agora, um sistema de recomendação simples continuaria lançando conteúdo de videogame para você sem parar. Mas e se o sistema detectar que você gosta de um tipo específico de videogame? Por exemplo, vídeos focados na base filosófica dos jogos.

De repente, você vê uma recomendação de um canal de filosofia, mas o que acontece? Você nunca se interessou por filosofia, certo? Bem, você joga e fica absorvido pelo conteúdo. A IA acabou de adivinhar a proximidade que o ajudou a descobrir um interesse que você não sabia que tinha.

Pinecone nos permite armazenar a linguagem de uma forma muito natural, em vez de depender de tabelas. Podemos ter documentos de diferentes conversas e resultados de pesquisa, e usamos esse estilo de pesquisa dinâmica para encontrar resultados por proximidade.

Não, não estamos criando consciência aqui; o que estamos tentando dizer é que temos uma oportunidade fantástica de repensar a forma como abordamos a IA como produtos e serviços – uma forma que seja mais humana, que traga outra forma de compreensão da informação que não seja baseada na lógica e na razão.

Ferramentas como Langchain e Pinecone são apenas dois exemplos de como podemos construir sistemas complexos com relativa facilidade, graças à criatividade e ao esforço da comunidade. E à medida que essas ferramentas continuam a crescer, você pode ter certeza de que o futuro da IA ​​será extremamente brilhante.

Se você gostou disso, não deixe de conferir nossos outros artigos sobre IA.

  • A revolução da visão computacional chegou – e é incrível
  • Computadores Conscientes: O Futuro da PNL?
  • Vazamentos de código corporativo no ChatGPT: o dilema da Samsung
  • Poderíamos desenvolver um sistema semelhante ao JARVIS?
  • 9 habilidades essenciais que os trabalhadores de tecnologia precisam na era emergente da IA

Fonte: BairesDev

Conteúdo Relacionado

O Rails 8 sempre foi um divisor de águas...
A GenAI está transformando a força de trabalho com...
Entenda o papel fundamental dos testes unitários na validação...
Aprenda como os testes de carga garantem que seu...
Aprofunde-se nas funções complementares dos testes positivos e negativos...
Vídeos deep fake ao vivo cada vez mais sofisticados...
Entenda a metodologia por trás dos testes de estresse...
Descubra a imprevisibilidade dos testes ad hoc e seu...
A nomeação de Nacho De Marco para o Fast...
Aprenda como os processos baseados em IA aprimoram o...
A web está em constante evolução, e com ela,...
A Inteligência Artificial (IA) tem sido um tema cada...
Você já se sentiu frustrado com a complexidade de...
O OpenStack é uma plataforma de computação em nuvem...
Você já se sentiu frustrado com a criação de...
A era digital trouxe uma transformação profunda na forma...
Nos dias atuais, a presença digital é fundamental para...
Introdução Quando se trata de desenvolvimento de software, a...
Como desenvolvedor Dart, você provavelmente já se deparou com...
Retour au blog

Laisser un commentaire

Veuillez noter que les commentaires doivent être approuvés avant d'être publiés.