Compartilhar via


IA generativa com o Banco de Dados do Azure para PostgreSQL

A IA generativa refere-se a uma classe de algoritmos de IA que podem aprender com o conteúdo multimídia existente e produzir um novo conteúdo. O conteúdo produzido pode ser personalizado por meio de técnicas como prompts e ajuste fino. Algoritmos de IA generativos aplicam modelos de machine learning específicos:

  • Transformadores e RNNs (redes neurais recorrentes) para geração de texto
  • GANs (redes adversárias generativas) e VAEs (autoencoders variacionais) para geração de imagem

A IA generativa é usada em síntese de imagem e música e em serviços de saúde, juntamente com tarefas comuns, como preenchimento automático de texto, resumo de texto e tradução. As técnicas de IA generativas permitem recursos em dados como clustering e segmentação, pesquisa semântica e recomendações, modelagem de tópicos, resposta a perguntas e detecção de anomalias.

O vídeo a seguir demonstra o uso da IA generativa com o Banco de Dados do Azure para PostgreSQL e a extensão pgvector, que pode ajudá-lo a entender os conceitos neste artigo.

OpenAI

A OpenAI é uma empresa de pesquisa e tecnologia conhecida por seu trabalho pioneiro na área de IA e machine learning. Sua missão é garantir que a inteligência geral artificial (AGI), que se refere a sistemas de IA altamente autônomos que podem superar os humanos no trabalho mais valioso economicamente, beneficie toda a humanidade. A OpenAI trouxe ao mercado modelos generativos de última geração, como GPT-3, GPT-3.5 e GPT-4.

O Azure OpenAI é uma oferta de serviço da Microsoft para ajudar a criar aplicativos de IA geradores usando o Azure. O Azure OpenAI fornece aos clientes a IA de linguagem avançada com os modelos OpenAI GPT-4, GPT-3, Codex, DALL-E e Whisper, com as funcionalidades de segurança e empresa do Azure. O Azure OpenAI codifica as APIs com OpenAI para garantir a compatibilidade e uma transição suave de uma para a outra.

Com o OpenAI do Azure, os clientes obtêm os recursos de segurança do Microsoft Azure enquanto executam os mesmos modelos que o OpenAI. O OpenAI do Azure oferece rede privada, disponibilidade regional e filtragem de conteúdo de IA responsável.

Saiba mais sobre o Azure OpenAI.

Modelo de linguagem grande

Um LLM (modelo de linguagem grande) é um tipo de modelo de IA treinado em grandes quantidades de dados de texto para entender e gerar linguagem humana. As LLMs normalmente são baseadas em arquiteturas de aprendizado profundo, como transformadores. Eles são conhecidos por sua capacidade de executar uma ampla gama de tarefas de geração e compreensão de linguagem natural. O serviço OpenAI do Azure e o ChatGPT do OpenAI são exemplos de ofertas de LLM.

As principais características e funcionalidades de LLMs incluem:

  • Escala: a escala de LLMs é imensa, em termos do número de parâmetros que suas arquiteturas usam. Modelos como GPT-3 contêm de centenas de milhões a trilhões de parâmetros, o que lhes permite capturar padrões complexos na linguagem.
  • Pré-treinamento: as LLMs passam por pré-treinamento em um grande corpus de dados de texto da Internet. Esse pré-treinamento permite que eles aprendam gramática, sintaxe, semântica e uma ampla gama de conhecimentos sobre a linguagem e o mundo.
  • Ajuste fino: após o pré-treinamento, os LLMs podem ser ajustados em tarefas ou domínios específicos com conjuntos de dados menores e específicos da tarefa. Esse processo de ajuste fino permite que eles se adaptem a tarefas mais especializadas, como classificação de texto, tradução, resumo e resposta a perguntas.

GPT

GPT significa Transformador Pré-Treinado Generativo e refere-se a uma série de grandes modelos de linguagem desenvolvidos pela OpenAI. Os modelos de GPT são redes neurais pré-treinadas em grandes quantidades de dados da Internet, portanto, são capazes de entender e gerar texto humano.

Aqui está uma visão geral dos principais modelos de GPT e suas principais características:

  • GPT-3: lançado em junho de 2020 e um modelo conhecido na série GPT. Ele tem 175 bilhões de parâmetros, o que o torna um dos maiores e mais poderosos modelos de linguagem existentes.

    O GPT-3 obteve um desempenho notável em uma ampla gama de tarefas de geração e compreensão de linguagem natural. Ele pode executar tarefas como conclusão de texto, tradução e resposta a perguntas com fluência no nível humano.

    O GPT-3 é dividido em vários tamanhos de modelo, variando do menor (125 milhões de parâmetros) ao maior (175 bilhões de parâmetros).

  • GPT-4: o modelo gpt mais recente do OpenAI. Ele tem 1,76 trilhão de parâmetros.

Vetores

Um vetor é um conceito matemático usado em álgebra linear e geometria para representar quantidades que têm magnitude e direção. No contexto do aprendizado de máquina, os vetores geralmente são usados para representar pontos de dados ou recursos.

Os principais atributos e operações de vetores incluem:

  • Magnitude: o comprimento ou tamanho de um vetor, geralmente indicado como sua norma, representa a magnitude dos dados. É um número real não negativo.
  • Direção: a direção indica a orientação ou o ângulo da quantidade que ela representa, em relação a um ponto de referência ou sistema de coordenadas.
  • Componentes: um vetor pode ser decomposto em seus componentes ao longo de diferentes eixos ou dimensões. Em um sistema de coordenadas Cartesiano 2D, um vetor pode ser representado como (x, y), onde x e y são seus componentes ao longo do eixo x e do eixo y, respectivamente. Um vetor em n dimensões é uma n-tupla ({x1, x2… xn}).
  • Adição e multiplicação escalar: os vetores podem ser adicionados para formar novos vetores e podem ser multiplicados por escalares (números reais).
  • Produtos de ponto e produtos cruzados: os vetores podem ser combinados por meio de produtos de ponto (produtos escalares) e produtos cruzados (produtos vetoriais).

Bancos de dados de vetores

Um banco de dados vetor, também conhecido como DBMS (sistema de gerenciamento de banco de dados vetor), é um tipo de sistema de banco de dados projetado para armazenar, gerenciar e consultar dados de vetor com eficiência. Os bancos de dados relacionais tradicionais lidam principalmente com dados estruturados em tabelas, enquanto os bancos de dados vetores são otimizados para o armazenamento e a recuperação de pontos de dados multidimensionais representados como vetores. Esses bancos de dados são úteis para aplicativos em que operações como pesquisas de similaridade, dados geoespaciais, sistemas de recomendação e clustering estão envolvidos.

As principais características dos bancos de dados de vetor incluem:

  • Armazenamento de vetores: os bancos de dados vetores armazenam pontos de dados como vetores com várias dimensões. Cada dimensão representa um recurso ou atributo do ponto de dados. Esses vetores podem representar uma ampla gama de tipos de dados, incluindo dados numéricos, categóricos e textuais.
  • Operações de vetor eficientes: os bancos de dados vetoriais são otimizados para executar operações de vetor, como adição de vetor, subtração, produtos de ponto e cálculos de similaridade (por exemplo, similaridade de cosseno ou distância euclidiana).
  • Pesquisa eficiente: mecanismos de indexação eficientes são cruciais para a recuperação rápida de vetores semelhantes. Os bancos de dados vetoriais usam vários mecanismos de indexação para habilitar a recuperação rápida.
  • Idiomas de consulta: os bancos de dados vetoriais fornecem linguagens de consulta e APIs adaptadas para operações de vetor e pesquisas de similaridade. Essas linguagens de consulta permitem que os usuários expressem seus critérios de pesquisa com eficiência.
  • Pesquisa de similaridade: os bancos de dados vetores se destacam em pesquisas de similaridade, que permitem que os usuários encontrem pontos de dados semelhantes a um ponto de consulta fornecido. Essa característica é valiosa em sistemas de pesquisa e recomendação.
  • Tratamento de dados geoespaciais: alguns bancos de dados vetoriais são projetados para dados geoespaciais, portanto, são adequados para aplicativos como serviços baseados em localização, GISs (sistemas de informações geográficas) e tarefas relacionadas ao mapa.
  • Suporte para diversos tipos de dados: os bancos de dados vetoriais podem armazenar e gerenciar vários tipos de dados, como vetores, imagens e texto.

O PostgreSQL pode obter os recursos de um banco de dados de vetores com a ajuda da extensão pgvector.

Inserções

As inserções são um conceito no aprendizado de máquina e no processamento de linguagem natural que envolve a representação de objetos (como palavras, documentos ou entidades) como vetores em um espaço multidimensional.

Esses vetores são muitas vezes densos. Ou seja, eles têm um alto número de dimensões. Eles são aprendidos através de várias técnicas, incluindo redes neurais. As inserções visam capturar relações semânticas e semelhanças entre objetos em um espaço vetorial contínuo.

Os tipos comuns de inserções incluem:

  • Word: No processamento de linguagem natural, as inserções de palavras representam palavras como vetores. Cada palavra é mapeada para um vetor em um espaço de alta dimensão, em que palavras com significados ou contextos semelhantes estão localizadas mais próximas umas das outras. Word2Vec e GloVe são técnicas populares de inserção de palavras.
  • Documento: As inserções de documentos representam documentos como vetores. Doc2Vec é popular para criar inserções de documentos.
  • Imagem: As imagens podem ser representadas como inserções para capturar recursos visuais para tarefas como reconhecimento de objeto.

As inserções são centrais para representar dados complexos e de alta dimensão em uma forma que os modelos de machine learning podem processar facilmente. Eles podem ser treinados em grandes conjuntos de dados e, em seguida, usados como recursos para várias tarefas. Os LLMs os usam.

O PostgreSQL pode obter os recursos de geração de inserções de vetor com a integração da extensão OpenAI do IA do Azure.

Cenários

A IA generativa tem uma ampla gama de aplicativos em vários domínios e setores, incluindo tecnologia, saúde, entretenimento, finanças, manufatura e muito mais. Aqui estão algumas tarefas comuns que as pessoas podem realizar usando a IA generativa:

  • Pesquisa semântica:
    • A IA gerativa permite a pesquisa semântica em dados em vez de pesquisa lexicográfica. Este último procura correspondências exatas para consultas, enquanto a pesquisa semântica localiza o conteúdo que satisfaz a intenção da consulta de pesquisa.
  • Chatbots e assistentes virtuais:
    • Desenvolver chatbots que podem se envolver em conversas naturais com reconhecimento de contexto; por exemplo, para implementar a autoajuda para os clientes.
  • Sistemas de recomendação:
    • Aprimorar os algoritmos de recomendação gerando inserções ou representações de itens ou usuários.
  • Clustering e segmentação:
    • As incorporações geradas por IA generativa permitem que algoritmos de clustering agrupem dados de forma que dados semelhantes sejam agrupados juntos. Esse clustering permite cenários como a segmentação de clientes, que permite que os anunciantes direcionem seus clientes de maneira diferente com base em seus atributos.
  • Geração de conteúdo:
    • Gere texto semelhante ao humano para aplicativos como chatbots, desenvolvimento de romance/poesia e compreensão da linguagem natural.
    • Crie imagens, obras de arte ou designs realistas para elementos gráficos, entretenimento e publicidade.
    • Gere vídeos, animações ou efeitos de vídeo para filmes, jogos e marketing.
    • Gerar música.
  • Tradução:
    • Traduza texto de um idioma para outro.
  • Sumarização:
    • Resumir artigos longos ou documentos para extrair informações importantes.
  • Aumento de dados:
    • Gere exemplos de dados extras para expandir e melhorar os conjuntos de dados de treinamento para modelos de machine learning.
    • Criar dados sintéticos para cenários difíceis ou caros de coletar no mundo real, como imagens médicas.
  • Descoberta de drogas:
    • Gerar estruturas moleculares e prever potenciais candidatos a medicamentos para pesquisa farmacêutica.
  • Desenvolvimento de jogos:
    • Criar conteúdo do jogos, incluindo níveis, caracteres e texturas.
    • Gerar ambientes e paisagens realistas no jogo.
  • Denoising e preenchimento de dados:
    • Limpar dados com ruído gerando exemplos de dados limpos.
    • Preencher dados ausentes ou incompletos em conjuntos de dados.