paint-brush
Comprensión de los modelos de lenguaje estadístico y la generación de lenguaje jerárquicoby@teleplay
827
827

Comprensión de los modelos de lenguaje estadístico y la generación de lenguaje jerárquico

Modelos de lenguaje como Chinchilla LLM y GPT-3 se utilizan para la generación de texto según probabilidades estadísticas. Dramatron es una herramienta interactiva para coescribir narrativas, que aprovecha la ingeniería rápida y la generación jerárquica para una narración coherente.
featured image - Comprensión de los modelos de lenguaje estadístico y la generación de lenguaje jerárquico
Teleplay Technology  HackerNoon profile picture
0-item

Autores:

(1) PIOTR MIROWSKI y KORY W. MATHEWSON, DeepMind, Reino Unido y ambos autores contribuyeron por igual a esta investigación;

(2) JAYLEN PITTMAN, Universidad de Stanford, EE. UU. y Trabajo realizado en DeepMind;

(3) RICHARD EVANS, DeepMind, Reino Unido.

Tabla de enlaces

Resumen e introducción

Narración, la forma de las historias y líneas de registro

El uso de modelos de lenguaje grandes para la generación de texto creativo

Evaluación de texto generado por modelos de lenguaje grandes

Entrevistas a los participantes

Encuestas a los participantes

Discusión y trabajo futuro

Conclusiones, agradecimientos y referencias

A. TRABAJO RELACIONADO SOBRE LA GENERACIÓN AUTOMATIZADA DE HISTORIAS Y LA GENERACIÓN DE HISTORIAS CONTROLABLES

B. DISCUSIÓN ADICIONAL DE LAS JUEGOS DEL EQUIPO CREATIVO DE BOTS

C. DETALLES DE LAS OBSERVACIONES CUANTITATIVAS

D. CIFRAS COMPLEMENTARIAS

E. PREFIJOS COMPLETOS PARA DRAMATRON

F. SALIDA SIN PROCESAR GENERADA POR DRAMATRON

G. GUIONES COESCRITO

3 EL USO DE MODELOS DE LENGUAJE GRANDE PARA LA GENERACIÓN DE TEXTOS CREATIVOS

3.1 Modelos de lenguaje

Los modelos de lenguaje estadístico (modelos de lenguaje o LM) modelan la probabilidad de tokens de texto dado un contexto de tokens anteriores; los tokens pueden ser palabras, caracteres o bigramas de caracteres. Mediante el aprendizaje automático, los LM se entrenan en grandes corpus de texto para aproximar la distribución de probabilidad condicional. Los LM pueden calcular la probabilidad de un fragmento de texto y generar texto nuevo como continuación de un mensaje de texto. La generación de texto es probabilística e implica un muestreo aleatorio de las probabilidades condicionales. Diferentes semillas aleatorias dan como resultado diferentes muestras aleatorias. La Figura 3 ilustra un ejemplo de cómo enviar un mensaje de texto y usar el LM para generar diferentes muestras de texto.


Fig. 3. Ilustración de la configuración de mensajes para el modelo de lenguaje, con mensajes generados por el usuario o Dramatron concatenados a un prefijo y decorados con etiquetas. Se generan varias salidas de títulos para diferentes semillas aleatorias, cada una de las cuales termina con la etiqueta <end>.


En este estudio, empleamos el modelo de lenguaje grande (LLM) de Chinchilla [48], representado como una red neuronal con 70B parámetros y que fue entrenado en tokens de 1,4T del conjunto de datos MassiveText. Como lo describen Rae et al. [84], esos corpus contienen 604 millones de documentos MassiveWeb, 4 millones de libros, 361 millones de preguntas y respuestas de C4, 1.100 millones de artículos de noticias, 142 millones de entradas de código GitHub y 6 millones de artículos de Wikipedia. Tenga en cuenta que se podrían emplear LLM alternativos, como GPT-3.[1]

3.2 Generación de lenguaje jerárquico para eludir contextos limitados


En este proyecto, deseamos un sistema que pueda generar un texto completo que muestre coherencia semántica a largo plazo sin requerir necesariamente la intervención de un ser humano. Alentamos a los escritores a editar y modificar el guión en todos los niveles de la jerarquía. Pero no necesitamos un ser humano involucrado para lograr una coherencia semántica a largo plazo. El método jerárquico generará un guión completo que exhibirá una coherencia razonable a largo plazo a partir de una única línea de registro sin intervención humana. Nuestro enfoque para lograr coherencia semántica a largo plazo es generar la historia de forma jerárquica.


Nuestra generación narrativa se divide en 3 capas jerárquicas de abstracción. La capa más alta es la línea de registro definida en la Sección 2: una sola oración que describe el conflicto dramático central. La capa intermedia contiene descripciones de personajes, un esquema de la trama (una secuencia de descripciones de escenas de alto nivel junto con las ubicaciones correspondientes) y descripciones de ubicaciones. La capa inferior es el diálogo del personaje real para el texto del guión. De esta manera, el contenido de cada capa es coherente con el contenido de otras capas. Tenga en cuenta que "coherente" aquí se refiere a "formar un todo unificado", sin asumir ningún sentido común ni coherencia lógica o emocional en el texto generado por LLM.


Como se ilustra en la Figura 1, la historia se genera de arriba hacia abajo [93, 108, 113]. Después de que el humano proporciona la línea de registro, Dramatron genera una lista de personajes, luego una trama y luego descripciones de cada ubicación mencionada en la trama. Los personajes, la trama y las descripciones de ubicación cumplen con las especificaciones en la línea de registro, además de las dependencias causales, habilitadas mediante el encadenamiento rápido [118] y explicadas en el diagrama de la Figura 1. Finalmente, para cada escena en el esquema de la trama, Dramatron genera diálogo que satisfaga las especificaciones de escena generadas previamente. Los diálogos resultantes se adjuntan para generar el resultado final. Esta generación jerárquica fue diseñada para permitir la coherencia semántica a largo plazo. Se utilizó un método similar, aunque invertido, de descomposición recursiva de tareas para generar resúmenes de gráficos [117]. La incorporación de la capa intermedia, donde la trama se resume como una secuencia de descripciones de escenas abstractas, permite que toda la trama encaje dentro de la ventana de contexto de los modelos de lenguaje. Esto supera las limitaciones anteriores sobre la coherencia semántica a largo plazo. Nuestro método hace posible que los elementos de la escena final proporcionen un cierre dramático a los elementos introducidos en la escena inicial[3], y que las historias generadas sigan arcos narrativos (ver Sección 2).

3.3 La importancia de una ingeniería rápida

Dramatron utiliza varios mensajes codificados (es decir, prefijos de entrada) para guiar el modelo de lenguaje grande. La ingeniería rápida es una forma común en que los usuarios controlan o influyen en los LLM [12]. Cada mensaje tiene algunos ejemplos de resultados deseables. Estos se incluyen en el prefijo y la adaptación a sólo un puñado de ejemplos a veces se denomina aprendizaje en pocas oportunidades. Como se ilustra en la Figura 3, las indicaciones se concatenan con entradas y/o salidas proporcionadas por el usuario de generaciones anteriores de LLM. Este método se llama encadenamiento de indicaciones [118], que es un tipo de indicación algorítmica [24]. En los niveles inferiores de la jerarquía (ver Fig. 1), las indicaciones se encadenan junto con las salidas de los niveles superiores de la jerarquía.


En este trabajo, utilizamos principalmente dos conjuntos de indicaciones: uno basado en la tragedia griega antigua Medea de Eurípides y otro basado en películas de ciencia ficción. Para Dramatron, cada conjunto de mensajes se compone de: 1) mensaje de título, 2) mensaje de descripción del personaje, 3) mensaje de trama, 4) mensaje de descripción de ubicación, 5) y mensaje de diálogo. Cada mensaje se detalla brevemente a continuación para dar una idea de cómo están diseñados; detalles adicionales se encuentran en el Apéndice E.


El indicador de título se utiliza para generar títulos a partir de una línea de registro. En la Figura 3 se muestran un mensaje de título simplificado, una línea de registro proporcionada por el usuario y títulos seleccionados aleatoriamente. Muestra un prefijo con una instrucción (Ejemplos de títulos alternativos, originales y descriptivos para guiones de películas y obras de teatro conocidos) y un ejemplo ( Ejemplo 1. Tragedia griega antigua [...]. Título: En nombre de mi hermano). El prefijo termina con: Ejemplo 2. Una línea de registro ingresada por el usuario (por ejemplo, abuela Phyllis y abuelo Jim [...]) se concatena con ese prefijo, así como la etiqueta Título:, que anima al LLM a generar un título. que coincide con la línea de registro. A partir de algunos ejemplos, el LLM ha "aprendido" a generar un título relacionado y una etiqueta de terminación. El mensaje de descripción de caracteres se utiliza para generar nombres y descripciones de personajes a partir de una línea de registro. El mensaje de esquema de trama se utiliza para convertir una línea de registro y una lista de personajes en una trama. Este mensaje alienta al modelo de lenguaje de pocas tomas a transformar una línea de registro de una sola oración en una secuencia de descripciones de escenas. Cada escena está muy comprimida, describiendo sólo el nombre corto de la ubicación, el elemento narrativo que identifica la posición de la escena en el arco narrativo (ver Sección 2) y un resumen de lo que los personajes hacen y dicen, a menudo llamado un ritmo narrativo[69]. Como nota, el mensaje impone una fuerte restricción representacional en la forma en que Dramatron representa una escena; cada escena se compone de una ubicación, un identificador de elemento narrativo y un ritmo. El mensaje de descripción de ubicación se utiliza para generar una descripción panorámica detallada a partir del nombre de un lugar y una línea de registro. Finalmente, el mensaje de diálogo se utiliza para convertir un ritmo (es decir, el resumen de la escena), la descripción de la ubicación de la escena, la descripción de cada uno de los personajes involucrados en la escena y la línea del registro (para mantener la coherencia de la historia) en diálogo. Este mensaje utiliza información de escena generada tanto para la escena actual como para la anterior.

3.4 Escritura interactiva con Dramatron

Como se describió anteriormente, con solo unas pocas indicaciones (es decir, 1 a 4) y la línea de registro de entrada del usuario, aprovechamos los LLM capacitados para generar guiones y guiones completos. El Apéndice F muestra un ejemplo de producción bruta generada. Dicho esto, Dramatron está diseñado para la coescritura interactiva, como una herramienta aumentativa para escritores humanos. La coautoría con Dramatron se realiza de la siguiente manera: un escritor comienza con una línea de registro que ha escrito. Ingresan esa línea de registro en Dramatron y generan un título, personajes, un esquema de la trama, descripciones de la ubicación y el diálogo de cada escena paso a paso. En cada paso, el escritor puede realizar una o varias de las siguientes operaciones, tantas veces como desee:


• Generar una nueva sugerencia (es decir, ejecutar el LLM nuevamente con el mismo mensaje).


• Continuar generando desde el final de la generación anterior, de manera similar a la típica generación LLM “plana”.


• Editar manualmente algunos o todos los resultados generados por el LLM.


Además, el escritor puede realizar estas operaciones avanzando y retrocediendo en la jerarquía de Dramatron. Por ejemplo, podrían: 1) generar un título, 2) generar un título nuevo, 3) editar el título, 4) generar una lista de caracteres, 5) editar los caracteres eliminando un carácter y cambiando la descripción de otro, 6 ) generar un esquema de la trama, 7) editar la trama eliminando parte del arco narrativo, 8) generar una continuación de esa trama editada, 9) retroceder y reescribir la línea del registro, etc. Este enfoque de coescritura permite que el ser humano y Dramatron para que ambos contribuyan a la autoría de un guión. Después de estas operaciones, el autor humano podría editar y formatear más para finalizar un guión. El Apéndice G muestra ejemplos de guiones editados por humanos.

3.5 Detalles de implementación

El código de Dramatron está implementado en Python y la interfaz de usuario se implementó en Google Colab[4] con widgets de texto, lo que permite la edición interactiva. Hay varios marcadores especiales que utilizamos para la generación de scripts: representa el final del token de generación de secuencia completa y es un token que se utiliza para marcar el final de una línea generada. Para un mensaje determinado (consulte la siguiente sección 3.3) enviado al LLM, se muestrearon hasta 511 tokens de texto. Utilizamos el muestreo de Nucleus [49] para fomentar diversas salidas, muestreando tokens de la masa de probabilidad superior de 0,9 y con una temperatura softmax de 1,0. Finalmente, para reducir los bucles en la generación de diálogos, implementamos un detector simple que corta el texto generado en bloques (delimitados por 2 líneas en blanco) y cuenta cuántas veces aparece cada bloque en una sola generación. Más allá de un umbral fijo (por ejemplo, 3 veces), el LLM genera una nueva salida muestreando tokens utilizando una semilla diferente en el generador de números aleatorios.



Este documento está disponible en arxiv bajo licencia CC 4.0.


[1] Accesible en: https://openai.com/api/


[2] Por ejemplo: https://theguardian.com/commentisfree/2020/sep/08/robot-wrote-this-article-gpt-3


[3] Véase, por ejemplo, el arma de Chéjov [27].


[4] https://colab.research.google.com/