Partilhar via


Como funcionam a IA generativa e os LLMs

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 generativa é baseada nas entradas fornecidas pelo usuário. Uma maneira comum de os usuários interagirem com a IA generativa é por meio de aplicativos de bate-papo que usam linguagem natural como entrada. O ChatGPT, desenvolvido pela OpenAI, é um exemplo popular disso. As aplicações de IA generativa que usam linguagem natural como entrada são alimentadas por grandes modelos de linguagem (LLMs) para executar processamento de linguagem natural (NLP).

Como funciona a IA generativa

Toda a IA generativa é construída em cima de 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 generativa 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 construir uma saída. A entrada é primeiro analisada 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 construir a saída final. Os modelos de IA generativa são projetados para produzir conteúdo exclusivo, para que não gerem a mesma saída para entradas idênticas.

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

Usos comuns da IA generativa

As aplicações de IA generativa suportam uma variedade de casos de uso potenciais e saídas potenciais, que são explorados nas seções a seguir.

Geração de linguagem natural

Algumas aplicações de IA generativa podem produzir saídas de linguagem natural, tais como:

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

Por exemplo, dada a entrada do usuário Dê-me três ideias para um café da manhã saudável, incluindo pimentas, um aplicativo de IA generativa pode produzir a seguinte saída:

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

  1. Ovo e pimenta Scramble: Corte alguns pimentos e refogue-os numa panela até ficarem ligeiramente amaciados. Em seguida, adicione alguns ovos batidos e misture tudo. Sirva com torradas integrais para um pequeno-almoço nutritivo.

  2. Torradas de Pimenta e Abacate: Torre uma fatia de pão integral e cubra com pimentos fatiados, purê de abacate e uma pitada de sal e pimenta. Esta é uma ótima maneira de obter algumas gorduras saudáveis do abacate juntamente com a vitamina C das pimentas.

  3. Café da manhã Burrito com pimentos: Refogue alguns pimentões em cubos, cebolas e ovos mexidos juntos em uma panela. Em seguida, coloque a mistura em uma tortilha integral e cubra com um pouco de salsa ou molho quente. Enrole-o e desfrute de um café da manhã satisfatório e nutritivo.

Geração de imagens

Algumas aplicações de IA generativa produzem saídas de imagem a partir de entradas de linguagem natural. Dependendo do aplicativo e seus modelos, os usuários podem especificar:

  • As pessoas ou coisas para aparecer a imagem
  • O estilo artístico para criar a imagem em
  • Referências para gerar imagens semelhantes

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

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

Geração de áudio

Algumas aplicações de IA generativa produzem saídas de áudio a partir de entradas de linguagem natural. Dependendo do aplicativo e seus modelos, os usuários podem ser capazes de:

  • Sintetize vozes com som natural a partir de texto de entrada
  • Crie música num 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 digitais, adicionar instrumentos de apoio a músicas para produção musical ou reproduzir a voz original de um usuário a partir de gravações de referência.

Geração de código

Algumas aplicações generativas de IA produzem código a partir de entradas de linguagem natural. Dependendo do aplicativo e seus modelos, os usuários podem gerar código que:

  • Está na língua da sua escolha
  • Aceita uma estrutura específica de entrada e saída
  • Utiliza tecnologias específicas com base na sua 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 um idioma para outro ou responder a perguntas sobre uma tecnologia com base na documentação de referência especificada. Por exemplo, dada a entrada "Mostre-me como codificar um jogo de tic-tac-toe com C#", um aplicativo de IA generativa pode produzir a seguinte saída:

Aqui está um exemplo simples de como você pode codificar um jogo de tic-tac-toe 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
        // ...
    }
}

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

Como funcionam os LLMs

Ao treinar um LLM, o texto do treinamento é primeiro dividido em tokens. Cada token identifica um valor de texto exclusivo. Um símbolo pode ser uma palavra distinta, uma palavra parcial ou uma combinação de palavras e pontuação. A cada token é atribuída uma ID, que permite que o texto seja representado como uma sequência de IDs de token.

Depois que o texto é dividido em tokens, um vetor contextual, conhecido como incorporação, é atribuído a cada token. Esses vetores de incorporação são dados numéricos de vários valores, onde 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.

O objetivo é 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 incorporações dos tokens anteriores para prever o próximo valor vetorial. 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 é construída um token de cada vez. Essa estratégia é análoga a como funciona o preenchimento automático, onde as sugestões são baseadas no que foi digitado até agora e atualizado a cada nova entrada.

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