![Search icon](https://hackernoon.imgix.net/search-new.png?w=19&h=19)
Apesar do hype atual, os modelos de linguagem não são novos. Nós os temos em nossos telefones há anos, fazendo preenchimento automático. E, embora possam nos poupar alguns segundos na ortografia, ninguém jamais os chamaria de "inteligentes" ou " sensíveis ".
Tecnicamente, todos os modelos de linguagem são apenas distribuições de probabilidade de tokens. Eles são treinados para determinar a próxima palavra ou símbolo provável, o que foi simbolizado, dados os anteriores. Mas eles também podem ser ajustados para outras tarefas, como tradução de idiomas e respostas a perguntas.
A geração de linguagem é o processo de fornecer a um algoritmo uma palavra aleatória para que ele possa gerar a próxima com base nas probabilidades que aprendeu com os dados de treinamento e, em seguida, alimentá-la continuamente com sua própria saída. Por exemplo, se o modelo vê "I", esperamos que produza "am", depois "bem" e assim por diante.
Sua capacidade de criar frases significativas depende do tamanho de sua janela de referência. Modelos básicos mais antigos, como os encontrados em nossos telefones, só conseguem olhar uma ou duas palavras para trás, por isso são míopes e esquecem o início de uma frase quando chegam ao meio.
Antes dos transformadores, os pesquisadores usavam redes neurais recorrentes (RNNs) para corrigir o problema de memória curta. Sem entrar em muitos detalhes, podemos dizer que o truque deles era produzir um vetor de estado oculto contendo informações sobre todos os nós na sentença de entrada e atualizá-lo a cada novo token introduzido.
Embora a ideia fosse definitivamente inteligente, o estado oculto sempre acabou sendo fortemente influenciado pelas entradas mais recentes. Portanto, como algoritmos básicos, RNNs ainda tendiam a esquecer o início da frase, embora não tão rapidamente.
Mais tarde, as redes Long Short-Term Memory (LSTM) e Gated Recurrent Unit (GRU) foram introduzidas. Ao contrário dos RNNs vanilla, eles tinham mecanismos embutidos (portas) que ajudavam a reter a memória de entradas relevantes, mesmo que estivessem longe da saída que estava sendo produzida. Mas essas redes ainda eram de natureza sequencial e tinham arquiteturas muito complexas. Eles eram ineficientes e proibiam a computação paralela, portanto não havia chance de executá-los em vários computadores simultaneamente para obter um desempenho ultrarrápido.
Em 2017, os transformadores foram descritos pela primeira vez neste artigo pelo Google . Ao contrário dos LSTMs e GRUs, eles tinham a capacidade de escolher ativamente os segmentos relevantes para o processamento em um determinado estágio e referenciá-los ao fazer uma estimativa. Eles eram mais rápidos, mais eficientes e tinham uma arquitetura mais simples baseada no princípio da atenção .
É engraçado que, se você ler o trabalho agora, pareça um artigo comum sobre tradução automática, que havia em abundância na época. Os autores provavelmente não perceberam que poderiam ter inventado uma das arquiteturas mais importantes da história da IA.
No contexto do aprendizado de máquina, a atenção se refere aos vetores atribuídos a cada token que contém informações sobre sua posição em uma sequência e sua importância em relação a outros elementos de entrada. O modelo pode usá-los ao fazer previsões sem a necessidade de processamento serial. Vamos decompô-lo um pouco para que fique mais claro.
Antes dos transformadores, a abordagem tradicional para o processamento de sequência a sequência, como tradução de linguagem neural, era codificar todas as entradas em um único estado oculto usando uma RNN e, em seguida, decodificar a sequência de destino usando outra RNN. Tudo o que importava no final da codificação era o estado final.
Em 2014, Bahdanau et al. propôs a brilhante ideia de disponibilizar todos os estados ocultos para a rede do decodificador e permitir que ela determinasse quais deles eram os mais importantes para gerar a saída atual. A rede prestou atenção nas partes relevantes e ignorou o resto.
Quatro anos depois, o jornal do Google foi lançado. Desta vez, os autores sugeriram abandonar completamente os RNNs e apenas usar a atenção para as fases de codificação e decodificação. Para isso, eles tiveram que fazer algumas modificações no mecanismo de atenção original, o que levou ao desenvolvimento da autoatenção .
Provavelmente é mais fácil pensar na autoatenção como um mecanismo de comunicação entre nós em uma única sequência. A maneira como funciona é que todos os tokens de entrada recebem três vetores - Consulta (Q), Chave (K) e Valor (V) - que representam diferentes aspectos de sua incorporação inicial.
Os vetores de consulta (Q) indicam o que a entrada está procurando. Pense neles como as frases que você digita na barra de pesquisa do YouTube.
Os vetores-chave (K) servem como identificadores para a entrada, ajudando-a a localizar correspondências para sua consulta. Eles são como os resultados de pesquisa do Youtube com títulos relevantes.
Os vetores de valor (V) representam o conteúdo real de cada token e permitem que o modelo determine a importância de um nó relevante em relação à consulta e gere saída. Eles podem ser considerados miniaturas e descrições de vídeo que ajudam você a decidir em qual vídeo dos resultados da pesquisa clicar.
Nota: Na autoatenção, todos os Qs, Ks e Vs vêm da mesma sequência, enquanto na atenção cruzada eles não são.
A fórmula de auto-atenção se parece com isto: Atenção(Q,K,V) = softmax((QK^T) / sqrt(d_k)V . E aqui está o procedimento em poucas palavras:
Os transformadores foram inicialmente inventados como uma alternativa simples aos RNNs para codificar sequências, mas nos últimos cinco anos eles foram aplicados a várias áreas de pesquisa de IA, incluindo visão computacional, e frequentemente ultrapassaram os modelos de última geração.
Em 2018, porém, não sabíamos o quão poderosos eles poderiam ser se fossem ampliados (com milhões de parâmetros), com amplo poder de computação e treinados em corpora de texto vastos, diversos e não rotulados da web.
O primeiro vislumbre de suas capacidades foi visto no transformador pré-treinado generativo (GPT) desenvolvido pela OpenAI, que tinha 117 milhões de parâmetros e foi pré-treinado em dados não rotulados. Ele superou os modelos treinados discriminadamente em 9 das 12 tarefas de NLP, apesar do fato de que esses algoritmos foram treinados especificamente para as tarefas e o GPT não.
Depois vieram os modelos GPT-2 (o maior com 1,5 bilhão de parâmetros), que foram seguidos por muitos outros transformadores. E em 2020, a OpenAI finalmente lançou o GPT-3; sua maior versão tinha 175 bilhões de parâmetros e sua arquitetura era basicamente a mesma do GPT-2.
Parece que o objetivo da OpenAI era determinar o nível de desempenho que eles poderiam extrair de seu modelo apenas tornando-o maior e fornecendo-lhe mais texto e poder. Os resultados foram surpreendentes.
Observação: 175 bilhões de parâmetros são considerados muito pequenos pelos padrões atuais.
GPT-3 é capaz de gerar textos em vários estilos e formatos, como romances, poemas, manuais, scripts, artigos de notícias, press releases, legendas de imagens, letras de músicas, e-mails, respostas de diálogos, etc. reformular, simplificar, categorizar qualquer informação e muito mais. Levaria literalmente um outro artigo inteiro apenas para listar todos os seus recursos. E, no entanto, em sua essência, essa fera ainda é um sistema simples de preenchimento automático.
OK, então temos um modelo de linguagem incrivelmente poderoso. Podemos apenas usá-lo como um chatbot? Não.
GPT-3 e seus análogos ainda são ferramentas para conclusão de sequência e nada mais. Sem orientação adequada, eles divagarão sobre o tópico que aprenderam com sua pergunta e inventarão artigos falsos, notícias, romances, etc., que podem parecer fluentes, coesos e gramaticalmente impecáveis, mas raramente serão úteis.
Para criar um chatbot que seja realmente útil, a OpenAI realizou um amplo ajuste fino do GPT-3 ou GPT 3.5, a versão atualizada do modelo - ainda não sabemos exatamente. Embora muitos detalhes sobre esse processo ainda não tenham sido revelados, sabemos que o bot foi treinado quase da mesma maneira que o InstructGPT , seu modelo irmão. E também notamos que o último é em muitos aspectos semelhante ao Sparrow, a versão ainda a ser lançada do DeepMind de um 'agente de diálogo inteligente', descrito neste artigo , que saiu um pouco mais tarde.
Portanto, sabendo que todos os algoritmos baseados em transformadores têm efetivamente a mesma arquitetura, podemos ler a postagem do blog da OpenAI, compará-la com o artigo do Sparrow e, em seguida, fazer algumas suposições sobre o que acontece sob o capô do ChatGPT.
O processo de ajuste fino do artigo teve três etapas:
Acumulando dados que exibem para a IA como um assistente deve agir. Este conjunto de dados consiste em textos onde as perguntas são seguidas por respostas precisas e úteis. Felizmente, grandes modelos de linguagem pré-treinados são muito eficientes em termos de amostragem, o que significa que o processo provavelmente não demorou tanto.
Experimentar o modelo, fazendo com que ele responda a consultas e gerando várias respostas para a mesma pergunta e, em seguida, fazendo com que os humanos avaliem cada resposta. E, ao mesmo tempo, treinar um modelo de recompensa para reconhecer respostas desejáveis.
Usando Proximal Policy Optimization do OpenAI para ajustar o classificador e garantir que as respostas do ChatGPT recebam uma pontuação alta de acordo com a política.
O papel Sparrow descreve um método semelhante, mas com algumas etapas adicionais. Como todos os agentes de diálogo do DeepMind, o Sparrow é condicionado a prompts específicos feitos à mão que atuam como entradas que são sempre dadas ao modelo pelos programadores e não podem ser vistas pelos usuários. O ChatGPT provavelmente também é guiado por esses tipos de prompts 'invisíveis'.
Para torná-lo um assistente eficaz, Sparrow recebeu perguntas e gerou respostas que foram avaliadas por humanos com base nos princípios gerais de utilidade e regras éticas apresentadas pelo DeepMind (como polidez e precisão). Havia também um tipo de treinamento adversário em que os humanos tentavam ativamente fazer Sparrow falhar. Em seguida, dois classificadores de redes neurais foram treinados para sua avaliação; um que pontua as respostas em termos de utilidade e outro que determina o quanto as respostas se desviam das regras do DeepMind.
O ChatGPT agora sabe que não deve gerar conteúdo ofensivo, mas ocasionalmente produziu respostas insensíveis após o lançamento; achamos que o OpenAI pode ter adicionado outro modelo projetado especificamente para não permitir a passagem de texto prejudicial. Mas é claro que ainda não podemos ter certeza, e o próprio ChatGPT está sendo duvidoso sobre isso.
Ao contrário do ChatGPT, o Sparrow também poderá fornecer evidências para apoiar o que diz, pois citará fontes e acessará a pesquisa do Google. Para tornar o modelo capaz de fazer isso, os pesquisadores atualizaram seu prompt inicial e introduziram mais duas personas nele: a consulta de pesquisa e o resultado da pesquisa.
Observação: o mesmo princípio provavelmente foi aplicado no Bard, concorrente do ChatGPT anunciado recentemente pelo Google.
Após o treinamento com dois classificadores, usando o conjunto de dados ELI5 e as respostas das iterações anteriores de Sparrow, o modelo é capaz de gerar várias respostas precisas e bem pesquisadas para cada pergunta. A resposta apresentada ao usuário é sempre a que obtiver maior pontuação no classificador de utilidade e a menor pontuação no classificador de desvio de regra.
O Bard, chatbot do Google baseado no modelo de linguagem LaMDA, foi anunciado no dia 6 de fevereiro. Já está gerando buzz, mas nenhum detalhe específico sobre seu treinamento surgiu ainda. A versão beta do Sparrow também deve ser lançada em 2023. Resta saber se algum desses bots se tornará quase tão popular quanto o ChatGPT. Ambos têm recursos exclusivos que lhes dão o potencial de se tornar o novo chatbot número um, mas também não achamos que o OpenAI irá parar de atualizar e melhorar seu assistente de chat superstar.
Talvez veremos o ChatGPT com recursos novos e ainda melhores em breve. É impossível prever qual empresa terminará no topo em termos de domínio do mercado. Mas, quem quer que vença a competição, ultrapassará ainda mais os limites do que é percebido como alcançável com a tecnologia de IA, e certamente será emocionante.