Construyendo un Chatbot Conformal en Julia

Construyendo un Chatbot Conformal en Julia' (Building a Conformal Chatbot in Julia)

Predicción Conforme, LLMs y HuggingFace – Parte 1

Los Modelos de Lenguaje Grandes (LLM, por sus siglas en inglés) son el tema de moda en este momento. Se utilizan para una variedad de tareas, incluyendo clasificación de texto, respuesta a preguntas y generación de texto. En este tutorial, mostraremos cómo conformalizar un modelo de lenguaje transformador para la clasificación de texto utilizando ConformalPrediction.jl.

👀 A primera vista

En particular, estamos interesados en la tarea de clasificación de intenciones como se ilustra en el esquema a continuación. En primer lugar, introducimos una consulta del cliente en un LLM para generar incrustaciones. A continuación, entrenamos un clasificador para que coincida estas incrustaciones con posibles intenciones. Por supuesto, para este problema de aprendizaje supervisado, necesitamos datos de entrenamiento que consistan en entradas – consultas – y salidas – etiquetas que indiquen la verdadera intención. Finalmente, aplicamos la Predicción Conforme para cuantificar la incertidumbre predictiva de nuestro clasificador.

La Predicción Conforme (CP) es una metodología que está emergiendo rápidamente para la cuantificación de la incertidumbre predictiva. Si no está familiarizado con CP, es posible que desee consultar primero mi serie introductoria de 3 partes sobre el tema, comenzando con esta publicación.

Descripción general de alto nivel de un clasificador de intenciones conformalizado. Imagen del autor.

🤗 HuggingFace

Utilizaremos el conjunto de datos Banking77 (Casanueva et al., 2020), que consta de 13,083 consultas de 77 intenciones relacionadas con la banca. En cuanto al modelo, utilizaremos el modelo DistilRoBERTa, que es una versión destilada de RoBERTa (Liu et al., 2019) ajustada en el conjunto de datos Banking77.

El modelo se puede cargar desde HF directamente en nuestra sesión de Julia en ejecución utilizando el paquete Transformers.jl.

Este paquete facilita enormemente el trabajo con modelos HF en Julia. ¡Felicitaciones a los desarrolladores! 🙏

A continuación, cargamos el tokenizador tkr y el modelo mod. El tokenizador se utiliza para convertir el texto en una secuencia de números enteros, que luego se alimenta al modelo. El modelo produce un estado oculto, que luego se alimenta a un clasificador para obtener los logits para cada clase. Finalmente, los logits se pasan por una función softmax para obtener las correspondientes probabilidades predichas. A continuación, ejecutamos algunas consultas a través del modelo para ver cómo se desempeña.

# Cargar modelo desde HF 🤗:tkr =...