Imagem: O processamento de linguagem natural é um ramo da inteligência artificial (IA). Usando algoritmos de processamento de linguagem natural (PNL), as máquinas entendem, geram ou traduzem a linguagem humana conforme ela é escrita ou falada.
Um algoritmo de computação clássico permite executar uma tarefa específica usando uma coleção de instruções e operações finitas (elas param após um número finito de etapas) e não ambíguas (elas são claras e precisas). Em outras palavras, os algoritmos clássicos são programados para produzir resultados exatos, são inequívocos e não deixam espaço para adaptação.
Um algoritmo de IA é baseado em redes neurais artificiais projetadas para aprender com dados de treinamento sem ser explicitamente programado.
Os algoritmos de IA não estão concluídos porque podem continuar a aprender e melhorar com a experiência. Muitas vezes são ambíguos porque produzem resultados diferentes para entradas de dados semelhantes. Estes são modelos não lineares, pequenas variações nas entradas podem levar a grandes variações na saída. É por isso que as redes neurais têm tantos parâmetros. Essas configurações controlam como os pesos das conexões são ajustados durante o processo de treinamento.
O conceito de ajuste de peso é um conceito fundamental em aprendizado de máquina e redes neurais artificiais. Este conceito é inspirado no funcionamento do cérebro humano.
No cérebro humano, os neurônios biológicos estão conectados entre si por sinapses. A força da conexão entre dois neurônios é chamada de “peso sináptico”. Os pesos sinápticos são alterados durante o processo de aprendizagem humana. Este processo, ainda pouco compreendido, é denominado “plasticidade sináptica”. A plasticidade sináptica é a capacidade das sinapses de alterar a força da conexão com base na experiência.
Além disso, os algoritmos de IA são projetados em modelos matemáticos estatísticos. Isso significa que eles não produzem resultados exatos, mas resultados prováveis. É possível que a mesma rede neural produza resultados diferentes para entradas de dados semelhantes.
Para minimizar estes efeitos, os pesos sinápticos devem ser parametrizados.
No caso do ChatGPT, 175 bilhões de parâmetros determinam o comportamento do modelo.
Os parâmetros são ajustados nos dados de treinamento de um modelo.
Por exemplo, os parâmetros de um modelo de linguagem podem ser a probabilidade de uma palavra aparecer em uma frase, a probabilidade de uma palavra ser seguida por outra palavra, a probabilidade de uma palavra ser usada em um contexto específico, etc.
No caso do ChatGPT, os dados do modelo de linguagem usados para treiná-lo foram um conjunto de texto e código de 500 bilhões de palavras. Os parâmetros do modelo ChatGPT são usados para gerar texto semelhante ao texto nos dados de treinamento. Ou seja, quais palavras têm maior probabilidade de aparecer em uma determinada frase.
Por exemplo, se os dados de treinamento contiverem uma frase como "A casa é branca", o modelo aprenderá que as palavras "a", "casa", "é" e "branco" provavelmente aparecerão juntas.
Quanto mais a frase estiver presente no modelo de aprendizagem, mais os pesos sinápticos associados a esta frase serão atualizados para serem maiores. Isso significa que é mais provável que o modelo gere esta frase, “A casa é branca”, como saída.
O modelo também leva em consideração o contexto da frase e o ambiente em que ela aparece. Por exemplo, a frase “A casa é branca” tem mais probabilidade de aparecer num contexto que fala sobre conjuntos habitacionais do que num contexto que fala sobre agências de viagens.
As regras linguísticas também podem influenciar a probabilidade de uma frase aparecer. Por exemplo, a frase “A casa é branca” está gramaticalmente correta em francês, enquanto a frase “A casa branca é” está gramaticalmente incorreta.
Existem muitos outros fatores que determinam a probabilidade de uma frase aparecer como saída de um modelo de linguagem. Esses fatores podem ser específicos do modelo ou do domínio do aplicativo.
N.B.: O modelo de linguagem não é uma máquina copiadora. Ele é capaz de aprender dados e gerar texto semelhante aos dados de treinamento, mas não copia o texto dos dados de treinamento literalmente.
Uma IA pode ser programada com algoritmos de cálculo clássicos, como em sistemas especialistas ou sistemas de recomendação que utilizam técnicas de aprendizagem chamadas “aprendizado de máquina”. No entanto, essas técnicas apresentam limitações quando se trata de resolver problemas complexos ou não estruturados. Além disso, na computação tradicional é difícil levar em conta problemas que ainda não foram encontrados.
Graças ao desenvolvimento de técnicas de aprendizagem profunda (várias camadas ocultas), a IA pode resolver problemas complexos e não estruturados, sem necessidade de ser explicitamente programada. O aprendizado profundo permite que programas de computador aprendam com os dados.
No entanto, os modelos de aprendizado de máquina são complexos. Eles podem conter bilhões de parâmetros, todos os quais devem ser aprendidos, ponderados e otimizados. Isso requer muitos dados e poder de computação. O processo de aprendizagem costuma ser longo e pode levar muito tempo. Apesar destas restrições, o desenvolvimento da IA é infinitamente mais produtivo do que o desenvolvimento de sistemas especialistas. Sem o conceito de redes neurais artificiais, teria sido impossível para os humanos alcançarem o ChatGPT em tão pouco tempo.