Procesamiento del lenguaje natural: una introducción a los modelos de lenguaje grandes

Con el desarrollo del procesamiento del lenguaje natural (PLN), esta tecnología se ha utilizado ampliamente en clasificación, reconocimiento y resumen de textos, traducción automática, extracción de información, sistema de respuesta a preguntas, análisis de sentimientos, reconocimiento de voz, generación de texto y otras tareas.
Los investigadores descubrieron que ampliar el tamaño del modelo puede mejorar las capacidades del modelo, creando así el término Modelo de lenguaje grande (Large Language Model, LLM), que se refiere a un gran modelo de lenguaje previo al entrenamiento (Pre-training Language Model, PLM). , que suele contener cientos de miles de millones (o más) de parámetros. Uno de los avances más notables del modelo de lenguaje grande es ChatGPT, un robot de chat desarrollado por OpenAI basado en LLM. En este blog, presentaré la evolución histórica, el conocimiento básico, la tecnología central y las perspectivas futuras del modelo de lenguaje grande y llamaré API. Presente cómo se construye ChatGPT.

La evolución histórica de los modelos lingüísticos

El modelo de lenguaje (LM) consiste en modelar la probabilidad de generación de secuencias de palabras, a fin de predecir la probabilidad de palabras futuras o faltantes. Su desarrollo consta principalmente de las siguientes tres etapas:

  • Modelo de lenguaje estadístico (SLM): cree un modelo de predicción de palabras basado en métodos de aprendizaje estadístico (como el supuesto de Markov) y prediga la siguiente palabra según el contexto más reciente.
  • Modelo de lenguaje neuronal (NLM): la probabilidad de predecir una secuencia de palabras se describe mediante una red neuronal (como una red neuronal recurrente RNN).
  • Modelo de lenguaje grande (LLM): los investigadores descubrieron que expandir la escala del modelo puede mejorar la capacidad del modelo. Al utilizar la arquitectura Transformer para construir un modelo de lenguaje a gran escala, y establecieron el paradigma de "preentrenamiento y ajuste fino", ese Es decir, capacitación previa en un corpus a gran escala, ajuste el modelo de lenguaje previamente entrenado para adaptarlo a diferentes tareas posteriores y mejorar el rendimiento de LLM.

Conceptos básicos del modelo de lenguaje grande

Pre-entrenamiento Pre-entrenamiento

El preentrenamiento del modelo primero requiere datos de entrenamiento de alta calidad, que a menudo provienen de páginas web, libros, diálogos, literatura científica, códigos, etc. Después de recopilar estos datos, es necesario preprocesarlos, especialmente para eliminar el ruido. , redundancia, Datos irrelevantes y potencialmente dañinos. Un flujo de datos de preprocesamiento típico es el siguiente:

  • Filtrado de calidad: eliminar datos de baja calidad;
  • Deduplicación: eliminar datos duplicados;
  • Eliminar privacidad: eliminar datos relacionados con la privacidad;
  • Tokenización: divide el texto original en secuencias de palabras (Tokens), que luego se utilizan como entrada para el modelo de lenguaje grande.

En la actualidad, la arquitectura principal de los modelos de lenguaje grandes se puede dividir en tres tipos: codificador-decodificador, decodificador causal y decodificador de prefijo, y una arquitectura híbrida construida utilizando las tres arquitecturas anteriores:

  • Arquitectura codificador-decodificador: utilizando la arquitectura tradicional de Transformer, el codificador utiliza capas de autoatención de múltiples cabezales apiladas (Autoatención) para codificar la secuencia de entrada y aprender su representación potencial, mientras que el decodificador realiza atención cruzada en estas representaciones (Cross -atención) y generar autorregresivamente la secuencia objetivo. En la actualidad, sólo unos pocos LLM se construyen utilizando esta arquitectura, como T5 y BART.
  • Arquitectura de decodificador causal: emplea una máscara de atención unidireccional para garantizar que cada token de entrada solo pueda centrarse en tokens pasados ​​y en sí mismo. El decodificador procesa los tokens de entrada y salida de la misma manera. Modelos como la serie GPT, OPT, BLOOM y Gopher se desarrollan en base a la arquitectura de decodificador causal y actualmente se utilizan ampliamente.
  • Arquitectura de decodificador de prefijo: la arquitectura de decodificador de prefijo, también conocida como arquitectura de decodificador no causal, modifica el mecanismo de enmascaramiento del decodificador causal para permitirle realizar atención bidireccional en tokens de prefijo y atención unidireccional solo en tokens generados. De esta manera, similar a En la arquitectura codificador-decodificador, el decodificador de prefijo puede codificar bidireccionalmente la secuencia de prefijo y predecir autorregresivamente el token de salida uno por uno, donde se comparten los mismos parámetros en el proceso de codificación y decodificación. Representantes que utilizan esta arquitectura: GLM-130B y U-PaLM, etc.
  • Arquitectura híbrida: utilice la estrategia híbrida experta (MoE) para ampliar las tres arquitecturas anteriores, como Switch Transformer y GLaM.

Sintonia FINA

Para adaptar el modelo de lenguaje grande a una tarea específica, se pueden utilizar métodos técnicos como el ajuste de instrucciones y el ajuste de alineación; dado que el modelo de lenguaje grande contiene una gran cantidad de tareas, si el ajuste completo de los parámetros tendrá un mayor impacto Los métodos de ajuste fino eficientes y generales para los parámetros incluyen: ajuste de adaptador, ajuste de prefijo, ajuste rápido y adaptación de rango bajo (LoRA), etc. Los métodos de ajuste fino eficientes no se ampliarán aquí Introducción, los amigos interesados ​​pueden verificar la información relevante por sí mismos .

Ajuste de instrucciones Ajuste de instrucciones

El ajuste fino de las instrucciones es un ajuste fino supervisado mediante el uso de conjuntos de datos mixtos de tareas múltiples descritos en lenguaje natural, de modo que los modelos de lenguaje grandes puedan completar mejor las tareas posteriores y tener mejores capacidades de generalización. Este proceso va acompañado de actualizaciones de parámetros.

Ajuste de alineación

El ajuste de alineación tiene como objetivo alinear el comportamiento de los LLM con los valores o preferencias humanos. Requiere recopilar datos de retroalimentación humana de alta calidad de anotadores humanos (que deben tener un nivel educativo calificado o incluso cumplir ciertos requisitos académicos) y luego usar estos datos para ajustar el modelo. Las técnicas típicas de ajuste incluyen: Aprendizaje por refuerzo con retroalimentación humana (RLHF).

Para que el modelo de lenguaje grande sea consistente con los valores humanos, los académicos han propuesto el aprendizaje por refuerzo basado en la retroalimentación humana (RLHF), es decir, el uso de datos de retroalimentación humana recopilados combinados con el aprendizaje por refuerzo para ajustar el LLM, lo que ayuda a mejorar la utilidad. y honestidad del modelo, sexo e inocuidad. RLHF emplea algoritmos de aprendizaje por refuerzo (RL), como la optimización de políticas próximas (PPO), para adaptar los LLM a la retroalimentación humana mediante el aprendizaje de un modelo de recompensa.

Inmediato

Para que el modelo de lenguaje complete algunas tareas específicas, utilice el mecanismo de agregar sugerencias a la entrada del modelo, de modo que el modelo pueda obtener el resultado esperado o guiarlo para obtener mejores resultados. Tenga en cuenta que, a diferencia del ajuste fino, En el proceso de sugerencias, no hay necesidad de capacitación adicional ni actualizaciones de parámetros.

Aprendizaje en contexto

El aprendizaje en contexto (ICL) fue introducido oficialmente por GPT-3. Su idea clave es aprender de analogías, que conectan la pregunta de la consulta con sugerencias contextuales (algunos ejemplos relevantes) para formar un cinturón. introducido en un modelo de lenguaje para la predicción.

cadena de pensamiento

La cadena de pensamiento (CoT) es una estrategia de sugerencias mejorada destinada a mejorar el desempeño de LLM en tareas de razonamiento complejas, como el razonamiento aritmético, el razonamiento de sentido común y el razonamiento simbólico. Esto se hace incorporando pasos de razonamiento intermedios en sugerencias que guían al modelo para predecir el resultado correcto. Según artículos relacionados, esta capacidad se puede obtener mediante capacitación en código.

Desarrollo rápido (llame a ChatGPT API)

ChatGPT es un sitio web que utiliza el modelo de lenguaje grande desarrollado por OpenAI para chatear. Su esencia es llamar a la API de ChatGPT para completar varias tareas. A continuación se demuestra el uso de la API de ChatGPT para completar las tareas de resumen. Además, puede también complete razonamiento, traducción, preguntas y respuestas, revisión, expansión y otras tareas, a veces es necesario usar ICL o CoT para obtener mejores resultados (siempre que necesite obtener la clave API del sitio web oficial de OpenAI )

import openai
import os
fron dotenv import load_dotenv, find_dotenv

_ = load_dotenv(find_dotenv())
openai.api_key = os.getenv("OPENAI_API_KEY")

def get_completion(prompt, temperature=0, model="gpt-3.5-turbo"):
	messages = [{
    
    "role": "user", "content": prompt)]
	response= openai.ChatCompletion.create(
		model=model,
		messages=messages,
		temperature=temperature, # temperature为模型的探索程度或随机性,其值是范围在0~1的浮点数,值越高则随机性越大,说明更有创造力。
	)
	return response.choices[0].message["content"]

text = f"""
XXXXXXXX
"""
prompt = f"""
Summarize the text delimited by triple backticks into a single sentence.
```{
      
      text}```
"""
response = get_completion(prompt)
print(response)

El sitio web o chatbot de ChatGPT generalmente contiene tres mensajes (mensajes) de rol (rol), que incluyen: mensajes de usuario (usuario), mensajes de ChatGPT/robot de chat (asistente) y mensajes del sistema (sistema). Tomemos como ejemplo la construcción de un "robot de pedidos":

  • mensajes del sistema: se utilizan para configurar el comportamiento y la personalidad del robot, como un comando de alto nivel para guiar el diálogo del robot, el usuario generalmente es invisible para esto;
  • mensajes de usuario: es la entrada del usuario;
  • Mensajes del asistente: Es la respuesta del robot.

El ejemplo de código es el siguiente:

import openai
import os
fron dotenv import load_dotenv, find_dotenv

_ = load_dotenv(find_dotenv())
openai.api_key = os.getenv("OPENAI_API_KEY")

def get_completion_from_messages(messages, temperature=0, model="gpt-3.5-turbo"):
	response= openai.ChatCompletion.create(
		model=model,
		messages=messages,
		temperature=temperature, # temperature为模型的探索程度或随机性,其值是范围在0~1的浮点数,值越高则随机性越大,说明更有创造力。
	)
	return response.choices[0].message["content"]

messages = [
	"role": "system",
	"content": "你现在一个订餐机器人,你需要根据菜单收集用户的订餐需求。菜单:汉堡、薯条、炸鸡、可乐、雪碧。",
	"role": "user",
	"content": "你好,我想要一个汉堡。",
	"role": "assistant",
	"content": "请问还有其他需要的吗?",
	"role": "user",
	"content": "再要一份可乐。",
]

response=get_completion_from_messages(messages)
print(response)
# 输出示例:
# 好的,一份汉堡和可乐,已为您下单。

Con la ayuda de los ejemplos de código anteriores, la interacción persona-computadora se puede lograr diseñando una GUI o una interfaz web, y el comportamiento del chatbot se puede cambiar y desempeñar diferentes roles modificando los mensajes del sistema.

Perspectivas futuras para modelos de lenguaje grandes

  • Mayor escala: el tamaño del modelo puede seguir aumentando, mejorando la expresividad y la comprensión del lenguaje del modelo.
  • Mejor entrenamiento previo: mejore la estrategia de entrenamiento previo para permitir que el modelo comprenda mejor la semántica y el contexto, y mejore la transferibilidad del modelo en diversas tareas.
  • Mejor ajuste: desarrolle métodos de ajuste más eficientes para lograr un mejor rendimiento en tareas específicas.
  • Multimodalidad: combine el modelo de lenguaje con otras modalidades, como visión y sonido, para realizar aplicaciones inteligentes multimodales entre dominios.
  • Herramientas: utilice herramientas externas como motores de búsqueda, calculadoras y compiladores para mejorar el rendimiento de los modelos de lenguaje en dominios específicos.

referencias

Una encuesta de modelos de lenguaje grandes

Supongo que te gusta

Origin blog.csdn.net/weixin_43603658/article/details/132366881
Recomendado
Clasificación