Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the all-in-one-seo-pack domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/planetac/desa.planetachatbot.com/wp-includes/functions.php on line 6114

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the wp-user-avatar domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/planetac/desa.planetachatbot.com/wp-includes/functions.php on line 6114
El caso de los Modelos Lingüísticos Pequeños - Planeta Chatbot

Tabla de contenidos

Introducción

Teniendo en cuenta las implementaciones de IA conversacional en general, como los chatbots y los robots de voz, hacer uso de los Modelos de Lenguaje Extenso (LLM) parece una exageración en la mayoría de los casos, e introduce complejidades difíciles de gestionar.

Esto me lleva a preguntarme si los SLM no resuelven este problema. Me explico…

Llevar los LLM a la producción

Recientemente pregunté en LinkedIn cuales son los retos de llevar LLMs a producción, a continuación están las cinco principales preocupaciones planteadas. Todas estas preocupaciones existen debido al hecho de que los LLM son principalmente alojados por proveedores de LLM y puestos a disposición a través de una API.

El uso de API disponibles comercialmente introduce un componente operativo que es casi imposible de gestionar.

Lo ideal sería que una organización tuviera una instalación local de un LLM que pudiera utilizar. Pero esto conlleva retos que la mayoría de las organizaciones no pueden abordar, como el alojamiento, la potencia de procesamiento y otras exigencias técnicas.

Sí, existen modelos «en bruto» de código abierto, pero también en este caso el impedimento es el alojamiento, la puesta a punto, los conocimientos técnicos, etc.

Estos problemas pueden resolverse utilizando un SLM, que en la mayoría de los casos es más que suficiente para las implementaciones de IA conversacional.

IA conversacional

Teniendo en cuenta la siguiente imagen, la IA conversacional en realidad sólo requiere los cinco elementos que se muestran a continuación. Y se puede utilizar un motor NLU tradicional junto con un SLM.

Desde la aparición de los chatbots, el sueño era disponer de una funcionalidad NLG fiable, sucinta, coherente y asequible. Junto con una lógica básica incorporada y una capacidad de sentido común.

Si a esto le añadimos una vía flexible para gestionar el contexto y el estado del diálogo, y una solución más intensiva en conocimientos que NLU, los SLM parecen encajar a la perfección.

Aumento

En la actualidad, casi por defecto, los LLM no se utilizan únicamente por su vasto conocimiento, sino que la generación de LLM se aumenta con datos de referencia que actúan como referencia contextual, inyectados en la inferencia. Estos datos de referencia contextuales permiten la capacidad de aprendizaje en contexto de los LLM.

Los amplios conocimientos generales de los LLM se utilizan casi exclusivamente en implementaciones de interfaz de usuario final como ChatGPT y similares.

Esto nos lleva a preguntarnos: si los chatbots dependen de la recuperación-aumentación y de un alcance limitado de la funcionalidad LLM, ¿no serán suficientes los SLM? Y al implantar un SLM, se sortearán los cinco impedimentos que se enumeran a continuación…

Las empresas se encuentran en fase experimental en lugar de pasar a la producción debido a:

1️⃣ Latencia de inferencia
2️⃣ Coste de utilización de tokens
3️⃣ Deriva del modelo
4️⃣ Preocupación por la privacidad de los datos
5️⃣ Límites de velocidad de la API LLM

Casi se puede considerar que los SLM son motores NLU de nueva generación.

Microsoft Phi-2

Phi-2 es un Small Language Model (SML) con 2.700 millones de parámetros. Se entrenó haciendo uso de las mismas fuentes de datos que Phi-1.5, aumentadas con una nueva fuente de datos que consiste en varios textos sintéticos de NLP y sitios web filtrados por seguridad y valor educativo.

Teniendo en cuenta el sentido común, la comprensión del lenguaje y el razonamiento lógico, Phi-2 mostró un rendimiento cercano al estado del arte entre los modelos con menos de 13.000 millones de parámetros.

La intención de Microsoft al crear este modelo de código abierto es proporcionar a la comunidad investigadora un pequeño modelo no restringido para explorar retos vitales para la seguridad, como la reducción de la toxicidad, la comprensión de los prejuicios sociales, la mejora de la controlabilidad, etc.

Sin embargo, teniendo en cuenta las implementaciones de IA conversacional en producción, los SLM son una alternativa rentable a los Grandes Modelos Lingüísticos y también son útiles cuando se utilizan para tareas menos exigentes, tareas que no requieren la potencia de un LLM.

Phi-2 puede ejecutarse localmente o a través de un notebook para experimentación.

A continuación se muestra la ficha del modelo phi-2 en HuggingFace; puede interactuar directamente con el formulario del modelo aquí.

Modelos

Ejecución de Phi-2 en un bloc de notas

He aquí un ejemplo sencillo de ejecución de Phi-2 haciendo uso de HuggingFace dentro de un notebook. Tuve que cambiar el tipo de ejecución a GPU T4 para que el SLM respondiera en un tiempo razonable.

Considerando que la mayoría de los marcos de desarrollo de chatbot utilizan LLMs para generar datos de entrenamiento NLU, y específicamente diferentes variaciones de ejemplos de frases de intención, le hice a Phi-2 la siguiente pregunta:

Dame tres frases de ejemplo sobre cómo alguien puede pedir el cierre de su cuenta.

Aquí está el código completo que puedes emplear:

!pip install -q -U transformers
!pip install -q -U accelerate

from transformers import pipeline

model_name = «microsoft/phi-2»

pipe = pipeline(
«text-generation»,
model=model_name,
device_map=»auto»,
trust_remote_code=True,
)

prompt = «Give met three example sentences on how someone can ask to close their acuount.»

outputs = pipe(
prompt,
max_new_tokens=300,
do_sample=True,
temperature=0.7,
top_k=50,
top_p=0.95,
)
print(outputs)

Y el output resultante… Phi-2 generó tres frases de ejemplo, junto con preguntas y respuestas de seguimiento. Estas preguntas y respuestas de seguimiento pueden actuar bien para presentar a los usuarios del chatbot botones de respuesta rápida en el diálogo.

O pueden utilizarse para crear subintents o intents anidados:

Setting `pad_token_id` to `eos_token_id`:50256 for open-end generation.

[{‘generated_text’:
‘Give met three example sentences on how someone can ask to close their acuount.

Answer:
1. «Can I close my account now, please?»
2. «I would like to close my account, can you help me with that?»
3. «I need to close my account, can you guide me through the process?»

Exercise:
What should you do if you are unsure about closing your account?
Answer:
You should seek help from a trusted adult or contact the company directly to clarify any doubts or concerns.

Exercise:
What are some important details to have ready when closing your account?
Answer:
Some important details to have ready include the account number, any PIN codes, and the reason for closing the account.

Exercise: Why is it important to know how to close an account on a website?
Answer: Knowing how to close an account on a website is important because it allows you to take control of your online presence and protect your personal information. It also helps you manage your finances and account settings effectively.

Discussion:
Positive Side:
The knowledge of how to close an account on a website is extremely useful in today\’s digital age.
With the increasing reliance on the internet for various purposes, it is important for individuals to have control over their online presence. Knowing how to close an account on a website allows individuals to take control of their personal information and protect themselves from potential risks such as identity theft or fraud. It also helps individuals manage their finances and’
}]

A continuación se presenta a Phi-2 un diálogo que sirve de referencia contextual de la conversación y de cómo continuarla. Este ejemplo de diálogo también sirve para el aprendizaje en contexto, lo que permite a la SLM continuar la conversación:

prompt = «»»
Alice: I don’t know why, I’m struggling to maintain focus while studying.
Any suggestions?

Bob: Well, have you tried creating a study schedule and sticking to it?

Alice: Yes, I have, but it doesn’t seem to help much.

Bob: Hmm, maybe you should try studying in a quiet environment,
like the library.

Alice:
.»»»

outputs = pipe(
prompt,
max_new_tokens=300,
do_sample=True,
temperature=0.7,
top_k=50,
top_p=0.95,
)
print(outputs)

Y de nuevo debajo del resultado, Phi-2 creó varias rutas de conversación diferentes a partir de la referencia contextual. Esto ilustra cómo Phi-2 se puede utilizar para charlar, desarrollar diferentes rutas de diálogo o crear una maqueta de una conversación.

Setting `pad_token_id` to `eos_token_id`:50256 for open-end generation.
[{‘generated_text’: «

Alice: I don’t know why, I’m struggling to maintain focus while studying.
Any suggestions?

Bob: Well, have you tried creating a study schedule and sticking to it?

Alice: Yes, I have, but it doesn’t seem to help much.

Bob: Hmm, maybe you should try studying in a quiet environment, like the library.

Alice:

Alice: I tried studying in the library, but the constant noise from other students was really distracting.

Bob: Oh, that’s unfortunate. Maybe you could try using noise-canceling headphones?

Alice: I thought about that, but I don’t have any with me right now.

Bob: In that case, have you considered going to a coffee shop? They usually have a quieter atmosphere.

Alice:

Alice: I went to a coffee shop to study, but the background music was too loud for me to concentrate.

Bob: I see. Maybe you could try finding a study group?

Alice: I thought about that, but I prefer studying alone.

Bob: Well, have you considered using a study app or website? They often have features to block out distractions.

Alice: …

Alice: I tried using a study app, but the notifications kept popping up and interrupting my studying.\nBob: Oh, that’s frustrating. Maybe you could try studying in a different location altogether?\nAlice: I thought about that, but I’m not sure where else to go.\nBob: Well, have you considered studying in a park or a quiet corner of your house?\nAlice: \n…\n\nAlice: I tried studying in a park, but the presence of other people and their activities was too distracting.\nBob: I understand.»}]

En conclusión

Por ahora, parece muy factible utilizar NLU junto con un SLM para apuntalar un marco de desarrollo de chatbots.

Ejecutar un SLM localmente y utilizar un enfoque de generación aumentada con aprendizaje en contexto puede resolver impedimentos como la latencia de la inferencia, el coste de los tokens, la deriva del modelo, la privacidad de los datos, la gobernanza de los datos, etc.


 Sígueme en LinkedIn para estar al día sobre la IA conversacional 

Actualmente soy el Evangelista Jefe @ HumanFirst. Exploro y escribo sobre todas las cosas en la intersección de la IA y el lenguaje; que van desde LLMs, Chatbots, Voicebots, marcos de desarrollo, espacios latentes centrados en datos y más.

Por Cobus Greyling

Rasa Hero. NLP / NLU, Chatbots, Voz, UI / UX conversacional, Diseñador CX, Desarrollador, Interfaces de usuario ubicuas.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *