ElemedexEnciclopedia de bolsillo de arquitecturas de IA

Glosario (MT) › Lenguaje y modelos de lenguaje

MT068

Tokens especiales y plantillas de chat

También: tokens de control, plantilla de prompt

En inglés: Special tokens and chat templates

Entradas del vocabulario que no representan texto sino funciones: marcar inicio y fin, separar textos, ocultar palabras o señalar quién habla en una conversación.

Un token especial es una entrada del vocabulario que no corresponde a ningún fragmento de texto sino a una función: marcar dónde empieza o termina una secuencia, separar dos textos, rellenar posiciones vacías, tapar una palabra o indicar quién habla (Alammar y Grootendorst, 2024, p. 47). El tokenizador de BERT tiene cinco: [CLS], [SEP], [PAD], [UNK] (para lo que no sabe codificar) y [MASK] (2024, pp. 47–48); el de GPT-2, uno solo: <|endoftext|> (2024, p. 49).

Ejemplo mínimo. Para decidir si una oración implica a otra, BERT recibe

[CLS] el perro duerme [SEP] el animal descansa [SEP]

[SEP] separa las oraciones (junto con un embedding que indica a cuál pertenece cada token) y el vector final de [CLS] resume el par para clasificarlo (Devlin et al., 2019, pp. 4174–4175). [MASK] trae un problema curioso: aparece en el preentrenamiento pero nunca en el ajuste fino; por eso BERT solo lo usa en el 80 % de las posiciones elegidas para ocultar (2019, p. 4174) (ver modelado enmascarado).

Con los asistentes de 2023 llegaron los tokens de turno: <|user|>, <|assistant|>, <|system|> (Alammar y Grootendorst, 2024, p. 54). La plantilla de chat de Phi-3 envuelve cada intercambio como <s><|user|> … <|end|><|assistant|>. Es el formato con que se entrenó el modelo y le dice quién dijo qué y cuándo parar: terminar un turno es, para el modelo, predecir <|end|> (2024, p. 169).

Estos tokens no tienen contenido léxico; su vector significa lo que el entrenamiento le haga significar. Sin ajuste fino, el vector de [CLS] resulta un mal resumen de la oración, peor que promediar vectores GloVe (Reimers y Gurevych, 2019, p. 3982): un caso extremo de significado como papel funcional, parecido al de los signos auxiliares de un lenguaje formal. Y la plantilla muestra algo incómodo: en un chat, «quién habla» no es un hecho externo sino un token más en la misma secuencia que todo lo demás. La frontera entre las instrucciones del operador y el texto del usuario es una convención aprendida, no una barrera (ver prompt de sistema y jailbreak).

Fuentes

  • Alammar, J., & Grootendorst, M. (2024). Hands-on large language models: Language understanding and generation. O’Reilly Media. §
  • Devlin, J., Chang, M.-W., Lee, K., & Toutanova, K. (2019). BERT: Pre-training of deep bidirectional transformers for language understanding. In J. Burstein, C. Doran, & T. Solorio (Eds.), Proceedings of the 2019 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies, Volume 1 (Long and Short Papers) (pp. 4171–4186). Association for Computational Linguistics. https://doi.org/10.18653/v1/N19-1423 §
  • Reimers, N., & Gurevych, I. (2019). Sentence-BERT: Sentence embeddings using Siamese BERT-networks. In Proceedings of the 2019 Conference on Empirical Methods in Natural Language Processing and the 9th International Joint Conference on Natural Language Processing (EMNLP-IJCNLP) (pp. 3982–3992). Association for Computational Linguistics. https://doi.org/10.18653/v1/D19-1410 §