1 puntos por GN⁺ 2024-02-25 | 1 comentarios | Compartir por WhatsApp

Cómo optimizar consultas de base de datos

  • Explicación de cómo hacer más rápidas las consultas de base de datos.

Implementar el modelo GPT en SQL

  • La teoría y el proceso real de implementación de un modelo GPT en SQL.
  • Un modelo GPT es una función que toma una cadena de texto de entrada y devuelve un arreglo de cadenas y números.
  • Esta función es determinista y siempre devuelve la misma salida para la misma entrada.

Teoría

  • Breve explicación del funcionamiento interno de un modelo GPT.
  • Explicación de qué es un modelo de lenguaje generativo de gran escala desde una perspectiva técnica.
  • El valor de retorno de la función es un arreglo de tuplas que representan la siguiente palabra para continuar el prompt y su probabilidad.

Significado de los valores

  • Los valores que devuelve la función son un arreglo de tuplas compuesto por una palabra y un número que representa la probabilidad de que esa palabra continúe el prompt.

Distintos métodos de generación de texto

  • Los modelos de lenguaje de gran escala se usan en aplicaciones de texto y funcionan seleccionando las palabras que propone el modelo para agregarlas al prompt.
  • Este proceso genera texto que contiene la gramática, la sintaxis, la inteligencia y el razonamiento del lenguaje humano.

El significado de Generative Pre-trained Transformer

  • "Generative" significa que genera texto, y "Transformer" indica que utiliza un tipo específico de red neuronal.
  • "Pre-trained" indica que la capacidad del modelo para continuar texto se consideró una etapa de preentrenamiento para tareas especializadas, pero que un modelo lo suficientemente grande puede seguir instrucciones en lenguaje humano incluso sin entrenamiento adicional.

Generación

  • Explicación del proceso de generar texto a partir de un prompt usando GPT2.
  • El texto se convierte en una lista de tokens y se ejecuta el algoritmo para calcular las probabilidades de los tokens candidatos.
  • Se elige el siguiente token y se agrega a la lista de tokens; luego este proceso se repite hasta que se hayan generado suficientes palabras.

Tokenizador

  • Proceso de convertir texto en una lista de números antes de ingresarlo a la red neuronal.
  • GPT2 implementa su tokenizador usando una variante del algoritmo Byte pair encoding.

Embeddings

  • Como los tokens representan partes del lenguaje humano, es necesario codificar las relaciones entre ellos para completar texto.
  • GPT2 representa cada token con un vector de 768 dimensiones.

Mecanismo de atención

  • Explicación del mecanismo de autoatención, que es el núcleo de la arquitectura Transformer.
  • Permite que los vectores de cada token se influyan entre sí para transmitir propiedades al vector final.

Feedforward

  • Etapa que se realiza en una red neuronal profunda, donde la entrada se procesa a través de varias capas.
  • Cada capa transforma la entrada usando parámetros aprendidos.

Bloques

  • El proceso descrito en las etapas anteriores se repite a través de varias capas (bloques).
  • La salida de cada bloque se usa como entrada del siguiente bloque.

Opinión de GN⁺

  • Este artículo puede ser muy útil para especialistas en bases de datos o ingenieros de software, ya que ayuda a comprender el complejo proceso de implementar un modelo GPT en SQL.
  • Al explicar los principios básicos y la forma de implementación de un modelo GPT, el artículo permite a los lectores obtener una mejor comprensión de cómo funcionan los modelos de lenguaje de IA.
  • Aunque contiene contenido técnico, el artículo ayuda a entender las tendencias más recientes del área al ofrecer un caso interesante de convergencia entre IA y tecnología de bases de datos.

1 comentarios

 
GN⁺ 2024-02-25
Comentarios en Hacker News
  • Esto es hermoso. El autor había estado investigando en una dirección similar usando SQLite, y decía que todavía faltaba bastante para introducir redes neuronales. Inspirado por la serie de clases de makemore, como una hora después empezó a usar redes neuronales, y hasta ahí fue a donde llegó el autor. Dividirlo en el modelo relacional en realidad resulta un ejercicio muy bueno.
  • La demo está bien, pero la explicación del enmascaramiento causal en el artículo es confusa. El enmascaramiento causal existe para evitar que el modelo “mire” tokens futuros durante el entrenamiento y, en arquitecturas como GPT, para forzar el aspecto autorregresivo durante la inferencia. Durante la inferencia, de todos modos solo se usa el último token, así que ese token pondrá atención a toda la secuencia de entrada. Por lo tanto, este token definitivamente no está determinado solo por la incrustación del último token.
  • Se pregunta si esta es una descripción precisa del bucle controlador de GPT. El código convierte una cadena en una lista de tokens, ejecuta el algoritmo para devolver las probabilidades de los tokens, elige el siguiente token de una lista de candidatos, lo agrega a la lista de tokens y luego repite el proceso decidiendo si debe detener la generación. Al final, parece convertir la lista de tokens de vuelta en una cadena y devolverla. Esto se parece mucho a una máquina de estados que implementa el algoritmo de Shlemiel the painter, y plantea dudas sobre el costo computacional inherente de la tarea de generación.
  • El aprendizaje automático moderno no requiere completitud de Turing, pero la gente está considerando la posibilidad de una AGI. Si la completitud de Turing no fuera necesaria, eso sería bastante interesante.
  • Enlace relacionado: "GPT de 60 líneas hecho con NumPy" - febrero de 2023 (146 comentarios)
  • Me encanta esto. Lo que hace un año empezó como una especie de magia, ahora está muy bien explicado y de una forma casi infantil.
  • He evitado por completo GPT y los LLM. Esto parece que produciría un cierto nivel de fluidez en la salida de texto, pero no parece que pudiera usarse para analizar preguntas y responderlas. Me pregunto cómo funcionan, o si hay alguna entrada de blog simple o curso educativo que publique un motor de juguete en un lenguaje como Python. Toda la enseñanza que he visto hasta ahora se centra en cómo usar plataformas.
  • Esto es excelente. En una línea similar, el autor implementa GPT usando únicamente funciones de hoja de cálculo y además ofrece un tutorial en video.
  • Es inesperadamente revelador y da respuesta a varias preguntas que tenía al principio: no solo sobre el "cómo", sino también sobre el "por qué". El patrón de softmax aparece con frecuencia. Ojalá que, en lugar de darles de inmediato la fórmula a las personas, se enseñara como un "argmax diferenciable". No lo es todo, pero a menudo se usa de esa manera.
  • Sigo leyendo que GPT es solo un modelo de Márkov "más inteligente" y "más complejo" que suelta la siguiente palabra con cierta probabilidad. Pero por experiencia eso no parece cierto: de alguna manera tiene que aprender. Por ejemplo, si le dices algo que ocurrió hoy y contradice el pasado (lo usé para probar la Copa del Mundo de Catar), y luego haces preguntas afectadas por ese evento, responde correctamente. Me pregunto cómo una oración simple (la información que le das) puede cambiar tan lejos las probabilidades del siguiente token.