Los modelos de base a veces generan resultados que no son objetivamente precisos. Si la precisión de los hechos es importante para su proyecto, póngase en marcha para el éxito aprendiendo cómo y por qué estos modelos a veces pueden equivocarse los hechos y cómo puede obtener resultados generados en los hechos correctos.
Por qué los modelos de base se equivocan
Los modelos de base pueden equivocarse por algunas razones:
- La formación previa crea asociaciones de palabras, no hechos
- Los conjuntos de datos previos al entrenamiento contienen hechos obsoletos
- Los conjuntos de datos de preentrenamiento no contienen hechos esotéricos o específicos de dominio y jerga
- La decodificación de muestreo es más probable que se alinera de los hechos
La formación previa crea asociaciones de palabras, no hechos
Durante el preentrenamiento, un foundation model construye un vocabulario de palabras(tokens) encontradas en los conjuntos de datos de preentrenamiento. También durante el pre-entrenamiento, las relaciones estadísticas entre esas palabras se codifican en las ponderaciones del modelo.
Por ejemplo, el "Monte Everest" a menudo aparece cerca de la "montaña más alta del mundo" en muchos artículos, libros, discursos y otras fuentes comunes de pre-entrenamiento. Como resultado, un modelo preentrenado probablemente completará correctamente la solicitud "La montaña más alta del mundo es" con la salida "Monte Everest."
Estas asociaciones de palabras pueden hacer que parezca que los hechos se han codificado en estos modelos también. Para un conocimiento muy común y hechos inmutables, es posible que tenga buena suerte generando una salida objetivamente precisa utilizando modelos de base preentrenados con solicitudes simples como el ejemplo de montaña más alta. Sin embargo, es una estrategia arriesgada confiar solo en asociaciones de palabras preentrenadas cuando se utilizan modelos de base en aplicaciones donde la precisión importa.
Los conjuntos de datos previos al entrenamiento contienen hechos obsoletos
La recopilación de conjuntos de datos previos al entrenamiento y la realización de ejecuciones previas al entrenamiento pueden tardar una cantidad significativa de tiempo, a veces meses. Si un modelo se ha entrenado previamente en un conjunto de datos de hace varios años, el vocabulario del modelo y las asociaciones de palabras codificadas en las ponderaciones del modelo no reflejarán los acontecimientos mundiales actuales ni los temas más populares. Por esta razón, si usted presenta la solicitud "El ganador más reciente de la copa del mundo de fútbol (fútbol) es" a un modelo previamente entrenado sobre la información de unos pocos años, la salida generada estará desactualizada.
Los conjuntos de datos de preentrenamiento no contienen hechos esotéricos o específicos de dominio y jerga
Los conjuntos de datos de preentrenamiento habituales de foundation model, como The Pile (Wikipedia), contienen cientos de millones de documentos. Dado lo famoso que es el monte Everest, es razonable esperar que un foundation model fundación haya codificado una relación entre "la montaña más alta del mundo" y "el monte Everest". Sin embargo, si un fenómeno, persona o concepto sólo se menciona en un puñado de artículos, las probabilidades de que un foundation model tenga asociaciones de palabras sobre ese tema codificadas en sus ponderaciones son escasas. Es poco probable que la solicitud de un modelo entrenado previamente sobre la información que no estaba en sus conjuntos de datos de entrenamiento previo produzca una salida generada precisa de hecho.
La decodificación de muestreo es más probable que se alinera de los hechos
La decodificación es el proceso que utiliza un modelo para elegir las palabras (señales) en la salida generada:
- La descodificación codiciosa siempre selecciona la señal con la probabilidad más alta
- La decodificación de muestreo selecciona señales pseudoaleatoriamente de una distribución de probabilidad
La descodificación codiciosa genera una salida que es más predecible y más repetitiva. La decodificación muestral es más aleatoria, que se siente "creativa". Si, basándose en conjuntos de datos previos al entrenamiento, las palabras más probables a seguir "La montaña más alta es" son "Monte Everest", entonces la descodificación codiciosa podría generar de manera fiable esa salida objetivamente correcta, mientras que la descodificación muestral a veces podría generar el nombre de alguna otra montaña o algo que ni siquiera es una montaña.
Cómo poner a tierra la salida generada en los hechos correctos
En lugar de basarse sólo en asociaciones de palabras entrenadas previamente para la precisión de los hechos, proporcione el contexto en el texto de solicitud.
Utilizar contexto en el texto de solicitud para establecer hechos
Cuando se pide a un foundation model que genere un resultado, las palabras (tokens) del resultado generado se ven influidas por las palabras del vocabulario del modelo y las palabras del texto de petición. Puede utilizar el texto de solicitud para aumentar las asociaciones de palabras objetivamente precisas.
Ejemplo 1
Esta es una solicitud para hacer que un modelo complete una frase declarando su color favorito:
My favorite color is
Dado que solo tú sabes cuál es tu color favorito, no hay forma de que el modelo pueda generar de forma fiable la salida correcta.
En su lugar, se seleccionará un color de los colores mencionados en los datos previos al entrenamiento del modelo:
- Si se utiliza la descodificación codiciosa, se seleccionará el color que aparezca con más frecuencia con declaraciones sobre los colores favoritos en el contenido previo al entrenamiento.
- Si se utiliza la decodificación de muestreo, se seleccionará aleatoriamente un color de los colores mencionados con más frecuencia como favoritos en el contenido previo al entrenamiento.
Ejemplo 2
Esta es una solicitud que incluye contexto para establecer los hechos:
I recently painted my kitchen yellow, which is my favorite color.
My favorite color is
Si solicita un modelo con texto que incluya un contexto preciso de hecho como este, es más probable que la salida que genera el modelo sea precisa.
Para obtener más ejemplos de cómo incluir contexto en la solicitud, consulte estos ejemplos:
Utilizar menos decodificación "creativa"
Cuando se incluye el contexto con los hechos necesarios en la solicitud, es probable que el uso de la descodificación codiciosa genere una salida precisa. Si necesita alguna variedad en la salida, puede experimentar con la decodificación de muestreo con valores bajos para parámetros como Temperature
, Top P
y Top K
. Sin embargo, el uso de la decodificación de muestreo aumenta el riesgo de resultados inexactos.
Recuperación-Generación aumentada
El patrón de generación aumentada de recuperación escala la técnica de extraer contexto en solicitudes. Si tiene una base de conocimiento, como por ejemplo documentación de proceso en páginas web, contratos legales en archivos PDF, una base de datos de productos para la venta, un repositorio GitHub de archivos de código C++ o cualquier otra recopilación de información, puede utilizar el patrón de generación de recuperación aumentada para generar una salida precisa basada en hechos basada en la información de dicha base de conocimiento.
La generación aumentada de recuperación implica tres pasos básicos:
- Buscar contenido relevante en su base de conocimientos
- Extraer el contenido más relevante en la solicitud como contexto
- Enviar el texto de solicitud combinado al modelo para generar la salida
Para obtener más información, consulte Generación aumentada por recuperación
Tema padre: Sugerencias de solicitud