1 pontos por GN⁺ 2024-02-25 | 1 comentários | Compartilhar no WhatsApp

Como otimizar consultas de banco de dados

  • Explicação de como tornar consultas de banco de dados mais rápidas.

Implementando o modelo GPT em SQL

  • A teoria e o processo prático de implementar o modelo GPT em SQL.
  • Um modelo GPT é uma função que recebe uma string de texto de entrada e retorna um array de strings e números.
  • Essa função é determinística e sempre retorna a mesma saída para a mesma entrada.

Teoria

  • Breve explicação do funcionamento interno do modelo GPT.
  • Explicação, do ponto de vista técnico, do que é um modelo de linguagem generativo de grande porte.
  • O valor de retorno da função é um array de tuplas que representam a próxima palavra para continuar o prompt e sua probabilidade.

Significado dos valores

  • O valor retornado pela função é um array de tuplas composto por uma palavra e um número que representa a probabilidade de essa palavra continuar o prompt.

Diferentes formas de gerar texto

  • Modelos de linguagem de grande porte são usados em aplicações de texto e funcionam escolhendo a palavra sugerida pelo modelo e adicionando-a ao prompt.
  • Esse processo gera texto que incorpora a gramática, a sintaxe e a inteligência e o raciocínio da linguagem humana.

O significado de Generative Pre-trained Transformer

  • "Generative" significa gerar texto, e "Transformer" indica o uso de um tipo específico de rede neural.
  • "Pre-trained" indica que a capacidade do modelo de continuar texto era considerada uma etapa de pré-treinamento para tarefas especiais, mas que modelos suficientemente grandes conseguem seguir instruções em linguagem humana mesmo sem treinamento adicional.

Geração

  • Explicação do processo de gerar texto a partir de um prompt usando GPT2.
  • O texto é convertido em uma lista de tokens, e o algoritmo é executado para calcular as probabilidades dos tokens candidatos.
  • O próximo token é escolhido e adicionado à lista de tokens, e esse processo é repetido até que palavras suficientes sejam geradas.

Tokenizador

  • Processo de converter texto em uma lista de números antes de inseri-lo na rede neural.
  • O GPT2 implementa o tokenizador usando uma variação do algoritmo Byte pair encoding.

Embedding

  • Como os tokens representam partes da linguagem humana, é necessário codificar as relações entre eles para completar o texto.
  • O GPT2 usa um vetor de 768 dimensões para fazer o embedding de cada token.

Mecanismo de atenção

  • Explicação do mecanismo de autoatenção, núcleo da arquitetura Transformer.
  • Os vetores de cada token influenciam uns aos outros, transmitindo propriedades ao vetor final.

Feedforward

  • Etapa executada em redes neurais profundas, em que a entrada é processada por várias camadas.
  • Cada camada transforma a entrada usando parâmetros aprendidos.

Blocos

  • O processo descrito nas etapas anteriores se repete em várias camadas (blocos).
  • A saída de cada bloco é usada como entrada do bloco seguinte.

Opinião do GN⁺

  • Este artigo pode ser muito útil para especialistas em banco de dados e engenheiros de software, ajudando a entender o processo complexo de implementar um modelo GPT em SQL.
  • Ao explicar os princípios básicos e a forma de implementação do modelo GPT, o texto pode oferecer aos leitores insights sobre como funcionam os modelos de linguagem de IA.
  • Embora trate de conteúdo técnico, o artigo ajuda a compreender as tendências mais recentes da área ao apresentar um caso interessante da convergência entre IA e tecnologia de banco de dados.

1 comentários

 
GN⁺ 2024-02-25
Comentários do Hacker News
  • Isso é lindo. O autor vinha explorando a mesma direção usando SQLite e disse que ainda estava longe de introduzir redes neurais. Inspirado pela série de aulas makemore, depois de cerca de uma hora começou a usar redes neurais, e foi até onde o autor chegou. Dividir isso no modelo relacional acaba sendo um exercício realmente muito bom.
  • A demo é boa, mas a explicação sobre mascaramento causal no artigo está confusa. O mascaramento causal existe para impedir que o modelo "espie" tokens futuros durante o treinamento e, em arquiteturas como GPT, para impor o aspecto autorregressivo durante a inferência. Na inferência, de qualquer forma, só o último token é usado, então esse token vai prestar atenção à sequência inteira de entrada. Portanto, esse token certamente não é determinado apenas pela incorporação do último token.
  • Pergunta se essa é uma descrição precisa do loop principal do GPT. O código parece converter a string em uma lista de tokens, executar o algoritmo para retornar as probabilidades dos tokens, escolher o próximo token de uma lista de candidatos, adicioná-lo à lista de tokens e repetir o processo decidindo se deve parar a geração. Por fim, parece converter a lista de tokens de volta em string e retorná-la. Isso parece muito semelhante a uma máquina de estados implementando o algoritmo de Shlemiel, o pintor, e levanta dúvidas sobre o custo computacional inerente da tarefa de geração.
  • O aprendizado de máquina moderno não exige completude de Turing, mas as pessoas estão considerando a possibilidade de AGI. Se a completude de Turing não for necessária, isso seria bastante interessante.
  • Link relacionado: "GPT de 60 linhas feito com NumPy" - fevereiro de 2023 (146 comentários)
  • Adoro isso. O que um ano atrás parecia algum tipo de magia agora está sendo explicado muito bem, de uma forma quase infantil.
  • Tenho evitado completamente GPT e LLMs. Isso parece gerar um certo nível de fluência na saída de texto, mas não parece algo que possa ser usado para analisar perguntas e respondê-las. Fico curioso sobre como eles funcionam, ou se existe algum post de blog simples ou curso educacional que mostre um mecanismo de brinquedo em uma linguagem como Python. Todo o material educacional que vi até agora se concentra em como usar plataformas.
  • Isso é excelente. Em uma linha parecida, o autor implementa GPT usando apenas funções de planilha e fornece junto um tutorial em vídeo.
  • É inesperadamente esclarecedor e responde algumas perguntas que eu tinha no início, incluindo não apenas o "como", mas também o "porquê". Vejo o padrão de softmax com frequência. Gostaria que ensinassem isso às pessoas como um "argmax diferenciável", em vez de simplesmente apresentar a fórmula de cara. Não é só isso, mas muitas vezes é assim que ele é usado.
  • Continuo lendo que GPT é apenas uma versão "mais inteligente" e "mais complexa" de um processo de Markov que cospe a próxima palavra com certa probabilidade. Mas, pela minha experiência, isso não deve ser verdade — ele precisa aprender de alguma forma. Por exemplo, se eu disser algo que aconteceu hoje e que contradiz o passado (uso a Copa do Mundo do Catar para testar isso) e fizer perguntas afetadas por esse evento, ele responde corretamente. Fico me perguntando como uma frase simples (a informação fornecida) pode alterar tanto a probabilidade do próximo token tão adiante.