Compartilhar via


Como a IA e os LLMs generativos funcionam

A IA generativa é um tipo de inteligência artificial capaz de criar conteúdo original, como linguagem natural, imagens, áudio e código. A saída de uma IA gerativa baseia-se nas entradas fornecidas pelo usuário. Uma maneira comum dos usuários interagirem com a IA gerativa é por meio de aplicativos de chat que usam a linguagem natural como entrada. O ChatGPT, desenvolvido pela OpenAI, é um exemplo popular disso. Aplicativos de IA generativos que usam linguagem natural como entrada são alimentados por LLMs (modelos de linguagem grandes) para executar o NLP (processamento de linguagem natural).

Como a IA gerativa funciona

Toda IA gerativa é criada com base em modelos. Esses modelos são treinados com grandes conjuntos de dados na forma de conteúdo, como linguagem natural, imagens, áudio e código. Os modelos de IA generativos usam os padrões identificados nos dados de treinamento para produzir conteúdo novo e estatisticamente semelhante.

A entrada fornecida pelo usuário é usada pelo modelo de IA para criar uma saída. A entrada é analisada primeiro em uma forma de dados que o modelo pode entender. Em seguida, o modelo usa esses dados para identificar padrões correspondentes de seu treinamento que ele combina para criar a saída final. Os modelos de IA generativos são projetados para produzir conteúdo exclusivo, portanto, eles não gerarão a mesma saída para entradas idênticas.

Aplicativos de IA generativos que dão suporte a linguagem natural como entrada ou saída utilizam LLMs para fazer isso. O LLM é usado para executar o NLP, que classifica o texto de entrada e determina seu sentimento. Essa análise de classificação e sentimento é usada pelo modelo de IA generativo para identificar padrões e criar a saída. Se a saída for texto, o LLM sozinho poderá ser usado para gerá-lo. Se a saída for áudio ou imagens, modelos adicionais serão usados para fornecer os dados e padrões para gerar saídas nesse formato.

Usos comuns da IA generativa

Os aplicativos de IA generativa dão suporte a uma variedade de possíveis casos de uso e possíveis saídas, que são exploradas nas seções a seguir.

Geração de linguagem natural

Alguns aplicativos de IA generativos podem produzir saídas de linguagem natural, como:

  • Resumos redigidos profissionalmente para um perfil do LinkedIn
  • Descrições avançadas de itens em uma vitrine online
  • Ideias para refeições saudáveis

Por exemplo, dada a entrada do usuário Me dê três ideias para um café da manhã saudável que inclua pimenta, um aplicativo de IA generativo pode produzir a seguinte saída:

Ok, aqui estão três cafés da manhã saudáveis que incluem pimentas:

  1. Ovo mexido com pimenta: pique alguns pimentões e refogue-os em uma panela até que eles amoleçam ligeiramente. Em seguida, adicione alguns ovos batidos e misture tudo. Sirva com torrada integral para um café da manhã nutritivo.

  2. Torrada de abacate com pimenta: torre uma fatia de pão integral e cubra-o com pimentões fatiados, abacate amassado e um pouco de sal e pimenta. Esta é uma ótima maneira de obter algumas gorduras saudáveis do abacate junto com a vitamina C das pimentas.

  3. Burrito com pimenta: refogue pimentão picado, cebola e ovos mexidos em uma panela. Em seguida, use uma colher para colocar mistura em uma tortilha integral e finalize com um pouco de molho ou molho picante. Enrole e desfrute de um café da manhã satisfatório e nutritivo.

Geração de imagem

Alguns aplicativos de IA generativa produzem saídas de imagem de entradas em linguagem natural. Dependendo do aplicativo e de seus modelos, os usuários podem ser capazes de especificar:

  • As pessoas ou as coisas a serem exibidas na imagem
  • O estilo artístico para criação da imagem
  • Referências para gerar imagens semelhantes

A geração de imagens pode criar avatares virtuais para contas online, logotipos de design para uma empresa ou fornecer inspiração artística para criadores. Por exemplo, um usuário pode inserir a solicitação, Crie uma imagem de um elefante comendo um hambúrguer. Um aplicativo de IA gerativa pode produzir a seguinte saída:

Exemplo de imagem gerada por IA de um elefante comendo um hambúrguer.

Geração de áudio

Alguns aplicativos de IA generativa produzem saídas de áudio de entradas em linguagem natural. Dependendo do aplicativo e de seus modelos, os usuários podem ser capazes de:

  • Sintetizar vozes de som natural do texto de entrada
  • Criar música em um estilo específico ou com determinados instrumentos
  • Modificar arquivos de áudio de entrada com base em um conjunto de critérios fornecidos em linguagem natural

A geração de áudio pode fornecer respostas faladas de assistentes de voz digital, adicionar instrumentos de apoio a músicas para produção musical ou reproduzir a voz original de um usuário de gravações de referência.

Geração de código

Alguns aplicativos de IA generativa produzem código de entradas em linguagem natural. Dependendo do aplicativo e de seus modelos, os usuários podem ser capazes de gerar código que:

  • Esteja no idioma de sua escolha
  • Aceite uma estrutura de entrada e saída específica
  • Use tecnologias específicas com base na documentação de referência

A geração de código pode fornecer implementações rápidas de operações comuns, como classificar ou filtrar dados, acelerar a tradução de código de uma linguagem para outra ou responder a perguntas sobre uma tecnologia com base na documentação de referência especificada. Por exemplo, considerando a entrada "Me mostre como codificar um jogo da velha com C#", um aplicativo de IA gerativa pode produzir a seguinte saída:

Aqui está um exemplo simples de como você pode codificar um jogo da velha em C#:

using System;

namespace TicTacToe
{
    class Program
    {
        static char[] board = { '1', '2', '3', '4', '5', '6', '7', '8', '9' };
        static int player = 1; // Player 1 will start
        static int choice; // The number the player chooses
        static int flag = 0; // Set the flag value to 0

        // Check if the position is already marked or not
        private static int CheckPosition(char mark)
        {
            for (int i = 0; i < 9; i++)
            {
                if (board[i] == mark)
                {
                    return 1;
                }
            }
            return 0;
        }

        // The rest of the generated code has been omitted for brevity
        // ...
    }
}

Esse código cria um jogo da velha simples baseado em console em C#. Ele usa uma matriz unidimensional para representar o tabuleiro e verifica se há uma vitória ou um empate após cada movimento.

Como os LLMs funcionam

Ao treinar um LLM, o texto de treinamento é dividido pela primeira vez em tokens. Cada token identifica um valor de texto exclusivo. Um token pode ser uma palavra distinta, uma palavra parcial ou uma combinação de palavras e pontuação. Cada token recebe uma ID, que permite que o texto seja representado como uma sequência de IDs de token.

Depois que o texto for dividido em tokens, um vetor contextual, conhecido como inserção, será atribuído a cada token. Esses vetores de inserção são dados numéricos de vários valores em que cada elemento do vetor de um token representa um atributo semântico do token. Os elementos do vetor de um token são determinados com base na frequência com que os tokens são usados juntos ou em contextos semelhantes.

A meta é prever o próximo token na sequência com base nos tokens anteriores. Um peso é atribuído a cada token na sequência existente que representa sua influência relativa no próximo token. Em seguida, é realizado um cálculo que usa os pesos e as inserções dos tokens anteriores para prever o próximo valor de vetor. Em seguida, o modelo seleciona o token mais provável para continuar a sequência com base no vetor previsto.

Esse processo continua iterativamente para cada token na sequência, com a sequência de saída sendo usada regressivamente como a entrada para a próxima iteração. A saída é criada um token de cada vez. Essa estratégia é análoga à forma como a conclusão automática funciona, em que as sugestões são baseadas no que foi digitado até agora e atualizado com cada nova entrada.

Durante o treinamento, a sequência completa de tokens é conhecida, mas todos os tokens que vêm após o que está sendo considerado atualmente são ignorados. O valor previsto para o vetor do próximo token é comparado ao valor real e a perda é calculada. Em seguida, os pesos são ajustados incrementalmente para reduzir a perda e aprimorar o modelo.