Hable acerca de cómo ChatGPT organiza las conversaciones

¿Por qué organizar una conversación?

Como todos sabemos, el entrenamiento de ChatGPT se puede dividir aproximadamente en varias etapas, como se muestra en la figura a continuación. Entre ellas, en la etapa de Preentrenamiento, los datos de entrenamiento del modelo son texto sin formato, y el objetivo es predecir el próximo token en función de lo anterior. En las siguientes etapas, para que el modelo tenga la capacidad de hablar, es necesario usar los datos del diálogo para el entrenamiento. Los datos de diálogo generalmente contienen el texto de múltiples caracteres.Cómo organizar y unir estos textos de manera efectiva (openAI lo llama Chat Markup Language, o ChatML para abreviar) es el contenido de este artículo.

de Microsoft Build 2023 《Estado de GPT》

ChatML por ChatGPT

De acuerdo con la introducción de openAI [1] , ChatML v0 unirá el texto de cada carácter ( system, user, ) de la siguiente manera:assistant

<|im_start|>system
You are ChatGPT, a large language model trained by OpenAI. Answer as concisely as possible.
Knowledge cutoff: 2021-09-01
Current date: 2023-03-01<|im_end|>
<|im_start|>user
How are you<|im_end|>
<|im_start|>assistant
I am doing well!<|im_end|>
<|im_start|>user
How are you now?<|im_end|>

Entre ellos <|im_start|>, <|im_end|>hay tokens especiales, se codificarán en una identificación de token única correspondiente cuando el tokenizador los codifique, y se usan especialmente para representar la startsuma del discurso de un personaje end.

Entonces, si el texto del diálogo lo contiene, ¿ <|im_end|>no le causaría problemas al modelo? Para evitar este tipo de ataque de inyección, parece que openAI filtrará <|im_start|>el , en el texto del diálogo .<|im_end|>

Puede ser que <|im_start|> se filtró y <|im_start|> no se mencionó en la respuesta de ChatGPT

Cambie <|im_start|> a <im_start>, ChatGPT puede generar completamente la pregunta del usuario ahora mismo

Además, vale la pena señalar que el pequeño truco en el indicador del sistema contiene la información de la fecha actual, que se modifica dinámicamente al responder las preguntas de los usuarios, para que el modelo pueda responder algunas preguntas relacionadas con la fecha actual.

Cuando este es solo el formato de ChatML v0, era la versión de marzo, y la última versión gpt-3.5-turbo-0613ha agregado más caracteres function. Todavía se desconoce a qué formato ha evolucionado ChatML de ChatGPT. Algunos desarrolladores perspicaces también han descubierto que el ChatML actual ya no es v0 [2] .

ChatML de StarChat

El formato de ChatML no se limita a openAI, y StarChat ofrece otra forma de pensar [3] :

<|system|>
Below is a dialogue between a human and AI assistant called StarChat.
<|end|>
<|user|>
Is it possible to imagine a society without law?<|end|>
<|assistant|>
It is difficult to imagine ...<|end|>
<|user|>
It seems like you ...<|end|>
<|assistant|>
You are correct ...<|end|>
<|user|>
Yeah, but laws are complicated ...<|end|>

Entre ellos <|system|>, <|assistant|>, <|user|>, <|end|>hay tokens especiales, y los códigos detallados se proporcionan en [3] , los lectores interesados ​​pueden obtener más información.

Representar la información de roles con tokens especiales puede evitar mejor los ataques de inyección.Sin embargo, dado que las incrustaciones correspondientes a estos tokens especiales no han sido entrenadas en la etapa de preentrenamiento, se requiere suficiente entrenamiento en el proceso SFT para que funcione bien.

Resumir

ChatML es un pequeño detalle del entrenamiento de un modelo de diálogo grande. Los dos métodos presentados en este artículo usan tokens especiales para representar explícitamente el límite del diálogo y, al mismo tiempo, ahorran espacio de contexto, lo cual es mejor que el uso directo ###user xxx ###assistant xxx.

El diablo está en el detalle.

Referencia

[1]  openai-python/chatml.md

[2]  Actualización de ChatML para gpt-3.5-turbo-0613 y gpt-4

[3]  Usa StarCoder para crear un asistente de programación

Supongo que te gusta

Origin blog.csdn.net/CompHub/article/details/131465564
Recomendado
Clasificación