Aguarde...

9 de novembro de 2023

IA para desenvolvedores da Web: o que são redes neurais, LLMs e GPTs?

IA para desenvolvedores da Web: o que são redes neurais, LLMs e GPTs?

Coisas boas para entender ao construir aplicativos de IA: redes neurais artificiais, LLMs, parâmetros, incorporações, GPTs e alucinações.

Bem-vindo de volta a esta série onde aprendemos como integrar ferramentas de IA em aplicativos da web. Nos posts anteriores, montamos nosso projeto e fizemos algumas integrações básicas.

  1. Introdução e configuração
  2. Seu primeiro prompt de IA
  3. Respostas de streaming
  4. Como funciona a IA
  5. Engenharia imediata
  6. Imagens geradas por IA
  7. Segurança e Confiabilidade
  8. Implantando

Até agora, construímos uma UI muito básica com uma área de texto que pega tudo o que o usuário escreve e envia por HTTP para a API do OpenAI. Quando a resposta de streaming retorna, ela atualiza a página com cada pedaço de texto que chega.

Isso é muito bom, mas na verdade não é muito mais do que um cliente HTTP glorificado. Ainda há muito que podemos fazer para tornar o aplicativo muito mais agradável para os usuários, mas antes de continuarmos a construí-lo, pensei que seria uma boa ideia aprender mais sobre como essas ferramentas de IA realmente funcionam.

O que é IA?

IA significa Inteligência Artificial, e é basicamente a ideia de que os computadores podem pensar, raciocinar e resolver problemas sem ter o mecanismo para resolver esses problemas codificado em seu software. Em vez disso, aprendem como resolver problemas com base em treinamento especial.

A IA é o foco do campo de estudo do aprendizado de máquina, que utiliza diferentes ferramentas, técnicas e métodos para treinar computadores para “pensar”.

Uma dessas metodologias é a “rede neural artificial” ou “rede neural”, abreviadamente.

O que são redes neurais artificiais?

Inspirada na biologia do cérebro humano, uma rede neural consiste em vários nós e suas relações. Você pode pensar neles como neurônios e sinapses no cérebro humano.

Dentro da taxonomia das redes neurais, existe um subconjunto denominado Large Language Model (LLM).

O que são grandes modelos de linguagem?

Um modelo de linguagem grande é um tipo de rede neural onde todos os nós e conexões são baseados em padrões como aqueles encontrados em idiomas e associações de palavras.

O “grande” no Large Language Model é um eufemismo porque muitos desses LLMs são treinados em dados coletados na Internet aberta, que podem ser petabytes de informações baseadas em texto.

Como resultado do treinamento com tanta informação, esses LLMs podem acabar com coisas chamadas “parâmetros” da ordem de bilhões ou trilhões.

O que são parâmetros?

Os parâmetros são o que o LLM usa para decidir qual palavra gerar com base em qualquer entrada recebida.

O fato de um LLM poder ter bilhões de parâmetros é impressionante quando se considera que a língua inglesa tem apenas cerca de 500.000 palavras distintas.

Portanto, quando você fizer uma pergunta a um LLM, ele usará seus parâmetros para chegar a uma resposta com base no contexto fornecido, bem como no contexto dos dados nos quais foi treinado.

A resposta que surge é determinada pelos parâmetros que possui e pela força de associação entre palavras usando algo chamado “embeddings”.

O que são incorporações?

Os embeddings são interessantes porque são essencialmente uma lista de números que representam algo. Quando lidamos com modelos de linguagem, essas coisas são palavras.

Portanto, dentro do LLM, em vez de lidar com palavras, trata-se de listas de números. Isso torna mais fácil determinar a semelhança semântica entre duas palavras usando matemática.

Vejamos um exemplo simplificado para entender esse conceito. Digamos que quiséssemos colocar palavras em um gráfico bidimensional usando as coordenadas X e Y. Pegaríamos uma palavra e atribuiríamos a ela uma coordenada X e uma coordenada Y com base em nossa compreensão arbitrária da palavra. Então pegaríamos outra palavra e atribuiríamos a ela sua própria coordenada X e uma coordenada Y. Faríamos isso para todas as palavras nas quais fomos treinados e terminaríamos com um gráfico onde todas as palavras semanticamente semelhantes (como “gato” e “gatinho”) teriam coordenadas X e Y semelhantes, terminando próximas umas das outras. outro.

Novamente, isso é uma simplificação extrema, mas espero que transmita a ideia.

Quando lidamos com redes neurais, não estamos lidando apenas com gráficos bidimensionais. Essas incorporações podem ser compostas por milhares de números. Portanto, a compreensão dos LLMs sobre coisas semanticamente semelhantes é multidimensional.

Precisamos de incorporações porque não é realmente possível armazenar e computar cada palavra, sua relação com todas as outras palavras e a forma como o contexto muda as relações entre as palavras.

Ao converter as palavras em grupos de números, é possível que os computadores as armazenem e determinem sua semelhança semântica.

Ok, isso é o mais profundo que quero aprofundar nas questões conceituais. Vamos voltar a algo mais relacionado ao nosso aplicativo, que é “GPT”.

O que é um GPT?

GPT significa “Transformador Pré-treinado Gerativo”. É um subconjunto do LLM que pode compreender a linguagem e produzir coisas como texto ou imagens de forma generativa (vou me concentrar no texto). Você já deve estar familiarizado com ferramentas como ChatGPT, que gera texto.

O que ele gera é determinado pela probabilidade do que ele prevê que o resultado deve ser baseado em seus dados de treinamento e na entrada.

Então, quando você dá uma entrada a uma ferramenta GPT, ela pode processar essas informações com seus parâmetros e seus embeddings e prever a próxima palavra e a próxima palavra e depois a próxima palavra e continuar até chegar ao que pensa ser o fim do pensamento.

GPTs são não determinísticos

Agora temos que falar sobre um ponto muito importante que quero levar para casa. A saída desses modelos é não determinística . Isso significa que se baseia em uma curva de probabilidade para prever qual deveria ser a próxima palavra.

Portanto, para a mesma entrada, você poderá obter muitas saídas completamente diferentes.

Por exemplo, se eu fornecer uma entrada como “Eu realmente adoro uma boa banana…”, um modelo GPT pode responder com algo como “pão” ou “pudim” ou “torta de creme” porque com base nos dados que foram treinados em esses são termos semanticamente semelhantes comumente encontrados com “banana”

Mas como a resposta é baseada na probabilidade existe a chance de o GPT retornar algo como “rede”.

😅😅😅

De qualquer forma, é importante ter isso em mente, especialmente para a construção de aplicações que dependem de precisão. Os LLMs não têm conceito de verdadeiro e falso, ou certo e errado, ou fatos e ficção. Eles estão apenas produzindo o que consideram ser o resultado mais provável para qualquer entrada baseada nos dados nos quais foram treinados.

Então, quando um GPT retorna algum tipo de resposta como “Eu adoro pão de banana”, ele não tem ideia de qual seja o conceito de pão de banana. Ele não tem ideia do que é uma banana, ou de um pão, ou do fato de que o pão de banana é incrível.

Tudo o que ele sabe é que, de acordo com os dados com os quais foi treinado, é bastante comum encontrar “banana” e “pão” juntos. Ocasionalmente também pode encontrar “banana” e “rede” juntas.

GPTs alucinam

Uma coisa interessante pode acontecer quando um LLM é treinado em dados, porque pode desenvolver associações entre palavras e termos que os humanos nunca fariam, porque lhe falta a compreensão do que essas palavras e termos significam.

Como resultado, quando você faz uma pergunta, ele pode apresentar um resultado estranho, ridículo ou categoricamente falso.

Chamamos esses comportamentos estranhos de alucinações (o que é fofo). E podem levar a alguns resultados bastante engraçados que você pode ter encontrado.

Conclusão

Ok, isso é o mais longe que eu quero ir na toca do coelho da IA. Cobrimos IA, redes neurais, LLMs, parâmetros, incorporações, GPTs, não determinismo e alucinações. Foi muito!

Espero que agora você entenda melhor o que são essas coisas e como funcionam. Se você aprendeu alguma coisa, me avise!

Na próxima postagem, exploraremos alguns dos conceitos que aprendemos hoje por meio da engenharia imediata. É uma maneira fascinante de alterar o comportamento do nosso aplicativo sem realmente alterar a lógica do nosso código.

  1. Introdução e configuração
  2. Seu primeiro prompt de IA
  3. Respostas de streaming
  4. Como funciona a IA
  5. Engenharia imediata
  6. Imagens geradas por IA
  7. Segurança e Confiabilidade
  8. Implantando

Espero que isso pareça interessante. E se você tem uma ideia de um aplicativo de IA que deseja construir, este será o momento de realmente começar a diferenciar nossos aplicativos uns dos outros. Acho que vai ser divertido.

Postado em BlogTags:
Escreva um comentário