ChatGPT es un modelo de lenguaje lanzado por OpenAI en diciembre del año pasado. Debido a sus impresionantes habilidades de conversación de idiomas y capacidades de respuesta a preguntas. ChatGPT ha obtenido una amplia atención en numerosos foros y entre personas de diferentes campos.
Debido al hecho de que ChatGPT tiene aún no publicó un documento oficial, el contenido de este artículo se basará en el blog de OpenAI y Instruir GPT.
Tal como sugiere su nombre, ChatGPT es un modelo de lenguaje, concretamente un modelo GPT-3.5, que aplica RLHF (Aprendizaje por refuerzo con retroalimentación humana) para mejorar la calidad de su producción y alinearla con preferencias humanas.
La imagen de arriba muestra los pasos de cómo se entrenó chapGPT. Pudimos ver dos modelos diferentes, GPT3.5 y OPP (modelo RLHF).
También te puede interesar¿Puede ChatGPT escribir mejor SQL que un ingeniero de software?Paso 1
GPT (modelo preentrenado generativo) es un tipo de modelo preentrenado que tiene ya ha sido entrenado mediante el uso de datos de Internet, lo que le permite construir conversaciones significativas con humanos.
Ahora viene la pregunta, ¿Por qué necesitamos afinarlo de nuevo? ❓❓
La razón es simple. Por ejemplo, si le pregunto a GPT, “¿Cuál es la montaña más alta del mundo? “ la posible respuesta podría ser.
Aparentemente, la respuesta que queremos es 1. Monte Everest. Sin embargo, dado que la salida del modelo se basa en la probabilidad, es probable que obtengamos la respuesta que es razonable (2. y 3.) pero no es la respuesta que queremos.
También te puede interesarSu resumen personal en papel: PaperSumGPTPara abordar este problema, proporcionamos respuestas específicas para ciertas preguntas de entrada (datos etiquetados) para que la máquina sepa qué respuesta queremos. (aprendizaje supervisado)
Paso 2
Con el fin de aplicar RLHFes necesario emplear un modelo secundario (modelo de recompensa) que puede evaluar el resultado de GPT y generar una recompensa reflejando su calidad basada en las preferencias humanas.
Durante la fase de entrenamiento, el modelo de recompensa recopilará la salida del GPT y le otorgará un cierto rango, mientras que el etiquetador proporcionará el rango Ground True (GT).
Paso 3
Finalmente, obtenemos todos los componentes necesarios para el entrenamiento de RL:
También te puede interesarSu resumen personal en papel: PaperSumGPTPolítica: un modelo de lenguaje (GPT) que toma un aviso y devuelve una secuencia de texto (distribuciones de probabilidad)
Espacio de acción: todos los tokens que corresponden al vocabulario utilizado en el modelo de lenguaje. (tamaño = tamaño de diccionario de vocabulario)
Espacio de observación: distribución de posibles secuencias de fichas de entrada. Dado que el espacio de observación es bastante grande (tamaño = vocabulario total ^ longitud de la oración), se requiere un modelo previamente entrenado para el entrenamiento de RL.
Recompensas: la salida del modelo de recompensa
También te puede interesarAdiós os.path: 15 trucos de Pathlib para dominar rápidamente el sistema de archivos en PythonDado que GPT3.5 es un modelo muy grande con más 100 mil millones parámetros, el ajuste fino de un modelo completo no es práctico. En cambio, usamos un Copiar del modelo GPT3.5 y congelar parte de su peso durante el entrenamiento PPO.
Los detalles del proceso de formación de RL se discutirán en mi próximo artículo.
Este artículo se centrará en la arquitectura y los conceptos teóricos del modelo GPT.
🥀🥀🥀🥀🥀🥀🥀🥀🥀🥀🥀🥀🥀🥀🥀🥀🥀🥀🥀🥀🥀🥀🥀🥂
Hay dos limitaciones principales para el modelo tradicional de PNL:
Por lo tanto, GPT emplea una combinación de sin supervisión y supervisado El aprendizaje como objetivo previo a la formación. Esto se conoce comúnmente como «modelo generativo de pre-entrenamiento».
El modelo GPT se basó en Transformador arquitectura. A diferencia de otros modelos de lenguaje, como BERT, que utiliza el codificador del TransformadorGPT estaba hecho de decodificadores (12 decodificadores) apilados uno encima del otro.
BERT: codificador del Transformador; bidireccional modelo
GPT: decodificador del Transformador; autorregresivo modelo
Pre-entrenamiento no supervisado:
En la fase de Pre-entrenamiento No Supervisado, U = {u1, u2, …., uN} representa una secuencia no etiquetada; El objetivo del modelo es predecir la siguiente letra en función del contexto anterior.
supervisado Sintonia FINA:
En esta fase, C representa un conjunto de datos etiquetado que se puede usar para afinar el modelo preentrenado para tareas específicas de NLP, como la similitud semántica, la vinculación textual y la clasificación de documentos.
Los autores no usaron directamente L2 sino que incorporaron L1 y usaron λ (0.5) para ajustar los pesos entre las dos tareas.
GPT-2 y GPT-3 son la segunda y tercera generación del modelo de Pre-Entrenamiento Generativo (GPT), respectivamente. La arquitectura de estos modelos es similar a GPT-1 pero incluye más capas de decodificador y se entrenó en un conjunto de datos más grande, lo que resultó en un aumento en la cantidad de parámetros.
GPT-2:
GPT-3:
☀️☀️☀️☀️☀️☀️☀️☀️☀️☀️☀️☀️☀️☀️☀️☀️☀️☀️☀️☀️☀️☀️☀️☀️☀️☀️☀️☀️☀️☀️☀️
Finalmente, es hora de algo de codificación. En esta sección, implementaremos el GPT-1 modelo usando PyTorch, con un enfoque en el Pre-entrenamiento No Supervisado para construir un chatbot.
Si es la primera vez que escucha sobre el modelo Transformer, le recomiendo leer Este artículo antes que empecemos.
Bienvenido a visitar mi GitHub. Le he puesto el código ~~ 😸
De la imagen de arriba, está claro que GPT es en realidad un descifrador compuesto de muchos apilados atención de múltiples cabezas bloques Como solo necesitamos el decodificador del transformador, podríamos ignorar la conexión con el codificador (parte derecha de la imagen).
Mascarilla
En GPT, nuestro objetivo es predecir la siguiente palabra en función de la secuencia de entrada. Sin embargo, durante el entrenamiento, ingresamos el oración completa. Para evitar que el mecanismo de atención considere palabras eso tiene aún no aparecióañadimos un mascarilla para evitar esta situación.
Además, dado que la duración de nuestro las oraciones de entrada pueden variartenemos que realizar relleno antes de introducirlos en el modelo (agregando ceros al final de oraciones más cortas). Sin embargo, como el relleno es información irrelevante para los mecanismos de atención, se elimina mediante un mascarilla.
Atención de múltiples cabezas
Como ya he discutido el principio de la mecanismo de atención en mi Artículo anteriorahora implementaré la atención de múltiples cabezas aquí.
Descifrador
Para proporcionar información sobre el posiciones relativas de tokens en una secuenciael modelo Transformer emplea funciones seno y coseno como codificaciones posicionales, mientras que GPT utiliza un capa de incrustación como mecanismo de codificación para la secuencia de entrada en lugar de depender de codificaciones posicionales.
GPT
finalmente, ahora podemos integrar todos los bloques juntos. 👏 👏
Otras lecturas:
[post_relacionado id=»1360″]