acf 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 6170all-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 6170wp-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 6170The post Creación del chatbot LangChain más básico first appeared on Planeta Chatbot.
]]>Teniendo en cuenta la imagen inferior, los chatbots tradicionales constan en realidad de cuatro elementos básicos. En el pasado reciente ha habido numerosos intentos de reimaginar esta estructura. El objetivo principal de estos intentos era relajar la rigidez de los elementos arquitectónicos fijos y codificados de un chatbot.
El motor NLU facilita la comprensión de intenciones y entidades. Esta es la única parte de IA del chatbot, en la que las entradas del usuario se envían al motor NLU y las intenciones y entidades se detectan a partir de las entradas.
Normalmente hay una interfaz gráfica de usuario para definir los datos de entrenamiento del motor NLU e iniciar el entrenamiento del modelo basado en estos datos de entrenamiento. Las ventajas típicas de los motores NLU son:
Los datos de entrenamiento de NLU fueron una de las áreas en las que se introdujeron los LLM por primera vez. Los LLM se utilizaron para generar datos de entrenamiento para el modelo NLU a partir de conversaciones existentes y datos de entrenamiento de muestra.
El flujo y la lógica del diálogo están diseñados y construidos dentro de una GUI de nocode o lowcode. El flujo y la lógica son básicamente un flujo predefinido con puntos lógicos predefinidos. La conversación fluye según los datos de entrada coincidan con ciertos criterios de la puerta lógica.
Se ha intentado introducir flexibilidad en el flujo para dotarlo de cierta inteligencia.
La capa de abstracción de mensajes contiene respuestas predefinidas del bot para cada turno de diálogo. Estas respuestas son fijas y, en algunos casos, se utiliza una plantilla para insertar datos y crear mensajes personalizados.
La gestión de los mensajes supone un reto, sobre todo cuando la aplicación de chatbot crece y, debido a la naturaleza estática de los mensajes, el número total de mensajes puede ser significativo. La introducción de chatbots multilingües añade una complejidad considerable.
Cada vez que hay que cambiar el tono o el personaje del chatbot, hay que revisar y actualizar todos estos mensajes.
Esta es también una de las áreas en las que se introdujeron por primera vez los LLM para aprovechar la potencia de la Generación de Lenguaje Natural (NLG) dentro de los LLM.
Las preguntas fuera del dominio se gestionaban mediante bases de conocimiento y búsquedas de similitud semántica. Estas bases de conocimiento se utilizaban principalmente para QnA y las soluciones hacían uso de la búsqueda semántica. En muchos aspectos, esto podría considerarse como una versión temprana de RAG.

Teniendo en cuenta la imagen que se muestra a continuación, muchas organizaciones y proveedores de tecnología están realizando la transición de los Chatbots tradicionales a la introducción de Grandes Modelos de Lenguaje.
La imagen que se muestra a continuación describe los distintos elementos y características que componen un Modelo Lingüístico (LLM). En consecuencia, el reto consiste en acceder a cada una de estas características en el momento adecuado, garantizando la estabilidad, la previsibilidad y, hasta cierto punto, la reproducibilidad.

Los chatbots representan una de las aplicaciones más comunes de los modelos de grandes lenguajes (LLM).
Las capacidades fundamentales de los chatbots incluyen la realización de diálogos extensos (que requieren memoria) y con estado, y proporcionar a los usuarios respuestas pertinentes derivadas de información relevante.
Crear un chatbot implica evaluar diversas técnicas, cada una de las cuales ofrece ventajas y desventajas únicas.
Estas consideraciones dependen de los tipos de consultas que se espera que el chatbot aborde con eficacia.
Los chatbots suelen recurrir a la generación aumentada por recuperación (RAG) cuando acceden a datos privados para mejorar su capacidad de respuesta a consultas específicas del dominio.
Además, los diseñadores pueden optar por implementar mecanismos de enrutamiento a través de múltiples fuentes de datos, garantizando la selección del contexto más relevante para ofrecer respuestas precisas.
El uso de formas especializadas de historial o memoria de chat más allá del mero intercambio de mensajes puede enriquecer aún más las capacidades del bot.
Chroma es una base de datos para construir aplicaciones de IA con embeddings, y necesita ser instalada.
Para este chatbot, OpenAI se utiliza como la columna vertebral del chatbot con el modelo gpt-3.5-turbo-1106 definido.
El código también muestra cómo se pasan los mensajes al historial de conversación. Esta idea básica sustenta la capacidad de un chatbot para interactuar conversacionalmente.
Se hace uso de la plantilla Prompt para facilitar el formateo. Y el MessagesPlaceholder como se ve a continuación inserta los mensajes de chat pasados a la entrada de la cadena como chat_history directamente en el prompt.
El siguiente código puede copiarse literalmente y pegarse en un cuaderno Colab. El único cambio que tendrás que hacer, es añadir tu clave API de OpenAI en la línea cuatro…
%pip install –upgrade –quiet langchain langchain-openai langchain-chroma
##########
import os
os.environ[‘OPENAI_API_KEY’] = str(«<Your API Key Goes Here>»)
##########
from langchain_openai import ChatOpenAI
chat = ChatOpenAI(model=»gpt-3.5-turbo-1106″, temperature=0.2)
##########
from langchain_core.messages import HumanMessage
chat.invoke(
[
HumanMessage(
content=»Translate this sentence from English to French: I love programming.»
)
]
)
########## Generate Response 1
chat.invoke([HumanMessage(content=»What did you just say?»)])
##########
from langchain_core.messages import AIMessage
chat.invoke(
[
HumanMessage(
content=»Translate this sentence from English to French: I love programming.»
),
AIMessage(content=»J’adore la programmation.»),
HumanMessage(content=»What did you just say?»),
]
)
########## Generate Response 2
from langchain_core.prompts import ChatPromptTemplate, MessagesPlaceholder
prompt = ChatPromptTemplate.from_messages(
[
(
«system»,
«You are a helpful assistant. Answer all questions to the best of your ability.»,
),
MessagesPlaceholder(variable_name=»messages»),
]
)
chain = prompt | chat
##########
chain.invoke(
{
«messages»: [
HumanMessage(
content=»Translate this sentence from English to French: I love programming.»
),
AIMessage(content=»J’adore la programmation.»),
HumanMessage(content=»What did you just say?»),
],
}
)
##########
demo_ephemeral_chat_history.add_user_message(
«Translate this sentence from English to French: I love programming.»
)
response = chain.invoke({«messages»: demo_ephemeral_chat_history.messages})
response
##########
demo_ephemeral_chat_history.add_ai_message(response)
demo_ephemeral_chat_history.add_user_message(«What did you just say?»)
chain.invoke({«messages»: demo_ephemeral_chat_history.messages})
Los grandes modelos lingüísticos (LLM) han revolucionado el desarrollo tradicional de chatbots al ofrecer capacidades sin precedentes de comprensión del lenguaje natural y, sobre todo, de generación.
A diferencia de los anteriores enfoques basados en reglas o plantillas, los LLM permiten a los chatbots comprender y generar respuestas similares a las humanas de forma dinámica, adaptándose a diversos contextos conversacionales.
Este cambio ha trastornado el desarrollo de chatbots y las arquitecturas establecidas y asentadas. Al reducir la dependencia de reglas elaboradas a mano y bases de conocimiento específicas del dominio.
Además, los LLM facilitan la creación de chatbots más sofisticados capaces de manejar una gama más amplia de consultas con mayor precisión y fluidez.
La atención de los desarrolladores se ha desplazado hacia el perfeccionamiento de los modelos, la GAR, el aprendizaje en contexto (ICL) y otras técnicas avanzadas, en lugar de centrarse únicamente en la elaboración de guiones de diálogo.
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.
The post Creación del chatbot LangChain más básico first appeared on Planeta Chatbot.
]]>The post Desambiguación: Uso del contexto dinámico para elaborar sugerencias eficaces de preguntas RAG first appeared on Planeta Chatbot.
]]>Este enfoque también resuelve el problema del lienzo en blanco, en el que el usuario no sabe cuál es el ámbito de la interfaz y acaba haciendo preguntas exploratorias ambiguas.
Así, en lugar de obligar al usuario a refinar continuamente sus preguntas mientras recibe respuestas inadecuadas, la interfaz de usuario conversacional toma la iniciativa de desambiguar la conversación.
El generador está diseñado para generar preguntas sugeridas que el agente puede responder, guiado por la consulta inicial del usuario (Fuente).
En la siguiente imagen se aborda un ejemplo de búsqueda de información orientada a una tarea. Un usuario necesita buscar información relacionada con una tarea concreta. Debido a la ambigüedad de la entrada y el perfil del usuario, el sistema de diálogo orientado a tareas debe hacer preguntas de aclaración/desambiguación para aclarar la intención del usuario y el perfil del usuario basándose en el conocimiento de la tarea para proporcionar la respuesta.

A continuación, el paradigma System Ask orientado a tareas:

El objetivo de este estudio es reducir las respuestas de disculpa de la interfaz de usuario conversacional y mejorar la experiencia del usuario proporcionando sugerencias informadas del sistema.
Los Contextos Dinámicos generan preguntas de sugerencia contestables por el agente a través de:
A diferencia de las sugerencias tradicionales de pocos disparos, los ejemplos dinámicos de pocos disparos seleccionan dinámicamente tripletas contextualmente relevantes en función de las consultas del usuario, dando cabida a diversos formatos y estructuras de preguntas.
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.
The post Desambiguación: Uso del contexto dinámico para elaborar sugerencias eficaces de preguntas RAG first appeared on Planeta Chatbot.
]]>The post El caso de los Modelos Lingüísticos Pequeños first appeared on Planeta Chatbot.
]]>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…
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.
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.

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.
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í.

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.»}]
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.
The post El caso de los Modelos Lingüísticos Pequeños first appeared on Planeta Chatbot.
]]>The post MultiHop-RAG, un enfoque en NLP first appeared on Planeta Chatbot.
]]>He aquí algunas tendencias generales que he observado últimamente…
Teniendo en cuenta el desarrollo del ecosistema de aplicaciones de Large Language Model (LLM), LlamaIndex y LangChain están realmente a la vanguardia del establecimiento de marcos y estándares de aplicación de facto. E incluso si las organizaciones no quieren utilizar sus marcos, el estudio de sus métodos aporta mucha información sobre cómo se está desarrollando el ecosistema.
He aquí una breve lista de las últimas novedades y cambios del mercado:
El MultiHop-RAG y el sistema RAG implementado están a disposición del público.
En el caso de las dos preguntas siguientes, se trata de preguntas más complejas que, en primer lugar, abarcan varias empresas. Y en el ejemplo de la segunda pregunta, se indica un periodo de tiempo para el que los datos deben ser pertinentes.
De estos dos ejemplos de preguntas se desprende claramente que, para responderlas con precisión, se necesitan elementos como una base de conocimientos, respuestas basadas en la verdad, pruebas de apoyo y otros.
Para formular una respuesta a estas preguntas se necesitan pruebas procedentes de varios documentos. Una vez más, este enfoque recuerda mucho al enfoque RAG Agentic de LlamaIndex.
En la tabla siguiente se presenta un ejemplo de consulta multisalto. Se definen las fuentes, con la demanda, y un tema-puente junto con una entidad-puente.
Se muestra la consulta, con la respuesta final.
A menudo me he referido a la inspeccionabilidad y la observabilidad como una de las grandes ventajas de un enfoque no gradiente como el GAR. La tabla que figura a continuación es un buen ejemplo de ello, en el que la respuesta es «sí».
| Nueva fuente | Fortune Magazine | The Sydney Morning Herald |
| Pruebas | En aquel entonces, al igual que hoy, los precios de la vivienda habían subido durante años antes de que los funcionarios de la Reserva Federal se vieran obligados a subir los tipos de interés de forma agresiva en un intento de luchar contra la inflación. | Los aplazamientos de estos informes podrían complicar las cosas para la Reserva Federal, que ha insistido en los tipos basándose en lo que dicen los datos entrantes sobre la economía. |
| Claim Puente-Tema Puente-Entidad | Los funcionarios de la Reserva Federal se vieron obligados a subir agresivamente los tipos de interés para combatir la inflación tras años de auge de los precios de la vivienda. Las subidas de los tipos de interés combaten la inflación Reserva Federal | La Reserva Federal ha insistido en que basará sus próximas decisiones sobre los tipos de interés en los datos económicos que lleguen. La Reserva Federal ha insistido en que basará sus próximas decisiones sobre los tipos de interés en los datos económicos que vayan llegando. Reserva Federal |
| Consulta | ¿Sugiere el artículo de Fortune que las subidas de los tipos de interés de la Reserva Federal responden a condiciones pasadas, como el auge de los precios de la vivienda, mientras que el artículo del Sydney Morning Herald indica que las futuras decisiones de la Reserva Federal sobre los tipos de interés se basarán en datos económicos incomingentes? | |
| Respuesta | Sí |
El siguiente diagrama muestra el proceso MultiHop-RAG, desde la fase de recopilación de datos hasta la fase final de control de calidad.
El estudio utilizó la API de mediastack para descargar un variado conjunto de datos de noticias que abarca múltiples categorías en inglés, como entretenimiento, negocios, deportes, tecnología, salud y ciencia.
Para simular escenarios reales de generación aumentada por recuperación (RAG), los artículos de noticias seleccionados abarcan desde el 26 de septiembre de 2023 hasta el 26 de diciembre de 2023, lo que se extiende más allá del límite de conocimiento de LLM ampliamente utilizados como ChatGPT y LLaMA. Este marco temporal garantiza la divergencia potencial entre los datos de la base de conocimientos y los datos de entrenamiento de los LLM.
Se utilizó un modelo de lenguaje entrenado para extraer frases factuales o de opinión de cada artículo de noticias. Estas frases sirven como pruebas para responder a las consultas multisalto. El proceso de selección consiste en retener los artículos con evidencias que contienen palabras clave coincidentes con otros artículos, lo que facilita la creación de consultas multisalto con respuestas extraídas de múltiples fuentes.
Se utilizó GPT-4 para parafrasear las pruebas, que se denominan afirmaciones, dadas las pruebas originales y su contexto.
La entidad-puente o el tema-puente se utilizan para generar consultas multisalto.
Para garantizar la calidad del conjunto de datos, el estudio empleó dos enfoques.

El estudio reconoce varias limitaciones que podrían mejorarse en futuras investigaciones.
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.
The post MultiHop-RAG, un enfoque en NLP first appeared on Planeta Chatbot.
]]>The post Añadir ruido mejora el rendimiento de la RAG first appeared on Planeta Chatbot.
]]>Se ha establecido la importancia de los sistemas de Generación Mejorada por Recuperación (Retrieval-Augmented Generation, también conocidas como RAG) como mejora notable respecto a los Large Language Models (LLM) tradicionales.
Los sistemas RAG mejoran las capacidades de generación mediante la incorporación de datos externos a través de una fase de Recuperación de Información (IR), abordando las limitaciones de los LLM estándar.
Mientras que la mayor parte de la investigación se ha centrado en el aspecto generativo de los LLM dentro de los sistemas RAG, este estudio cubre un vacío al analizar críticamente la influencia de los componentes de IR en los sistemas RAG.
El artículo explora las características que debe poseer un prompt para una formulación eficaz de las peticiones, haciendo hincapié en el tipo de documentos que se van a recuperar.
La evaluación incluye factores como la relevancia del documento, la posición y el tamaño del contexto.Sorprendentemente, los resultados sugieren que la inclusión de documentos irrelevantes puede mejorar el rendimiento en más de un 30% en precisión, desafiando las suposiciones iniciales.
Los resultados ponen en relieve la necesidad de estrategias especializadas para integrar la recuperación con modelos de generación de lenguaje, lo que allana el camino para futuras investigaciones en este campo.
En esencia, los sistemas RAG constan de dos componentes fundamentales: el recuperador y el generador.
El componente de IR se encarga de obtener información externa para enriquecer la entrada del módulo de generación.
Por su parte, el componente de generación aprovecha la potencia de los LLM para producir textos coherentes y contextualmente relevantes.
El estudio observó que, en los sistemas RAG, los documentos asociados resultan más perjudiciales que los no relacionados.
Lo que resulta aún más inesperado es la revelación de que la incorporación de documentos ruidosos puede resultar ventajosa, lo que se traduce en una mejora de la precisión de hasta el 35%.
Estos resultados contrastan con la aplicación convencional de los sistemas de recuperación de información (IR) de cara al cliente, en la que los documentos relacionados suelen considerarse más aceptables que los no relacionados.
Un LLM puede dar una respuesta errónea debido a un recuperador que recupera datos relevantes y relacionados. Esto deja al LLM con la tarea de desambiguar para establecer el contexto correcto y los datos que coinciden con la tarea, y crea el riesgo de que el LLM responda a la pregunta de forma contextualmente correcta, pero objetivamente incorrecta.
Introducir ruido aleatorio puede corregir al LLM y ayudarle a responder más correctamente. Por supuesto, es necesario alcanzar un equilibrio óptimo.

Considerando la imagen anterior, el ejemplo de la izquierda muestra una entrada LLM con una salida errónea, en rojo. La entrada LLM incluye una instrucción de tarea, seguida del contexto / documento. Y finalmente la consulta.
La respuesta del LLM está marcada como Respuesta. El color dorado resalta tanto el documento dorado como la respuesta correcta, Lando Calrissian, indicando la fuente esperada y el contenido de la respuesta correcta.
El ejemplo del medio; entrada LLM con una salida errónea, resaltada en rojo. El contexto de la pregunta se compone de documentos relacionados y del documento de referencia cercano a la consulta.
El ejemplo de la derecha, ejemplo de entrada LLM con una salida correcta, resaltada en verde. El contexto de la consulta se compone de documentos aleatorios y el documento de referencia cercano a la consulta.
Este artículo presenta el primer estudio exhaustivo que examina cómo influyen los documentos recuperados en los marcos de generación mejorada por recuperación (Retrieval-Augmented Generation, RAG). El objetivo es comprender los rasgos necesarios en un recuperador para optimizar la construcción de consultas para sistemas RAG.
Colocar la información relevante cerca de la consulta es crucial para que el modelo la atienda eficazmente; de lo contrario, el modelo tiene dificultades.
Sorprendentemente, los documentos relacionados pueden ser muy perjudiciales para los sistemas RAG, mientras que los documentos irrelevantes y ruidosos, cuando se colocan correctamente, pueden mejorar la precisión del sistema.
La investigación aporta valiosas ideas sobre la dinámica de la recuperación de documentos en los marcos de la RAG, destacando la importancia de optimizar la colocación de los documentos pertinentes e irrelevantes para la precisión del sistema.
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.
The post Añadir ruido mejora el rendimiento de la RAG first appeared on Planeta Chatbot.
]]>The post Estudio exhaustivo de los Grandes Modelos del Lenguaje (LLM) first appeared on Planeta Chatbot.
]]>Los dos gráficos siguientes muestran los números acumulados de artículos arXiv que contienen las frases clave «modelo de lenguaje» (desde junio de 2018) y «gran modelo del lenguaje» (desde octubre de 2019), respectivamente y en inglés. El crecimiento desde 2019 en artículos publicados relacionados con los LLM es asombroso.

El estudio identifica tres habilidades emergentes típicas de los LLM, lo cual es muy perspicaz…
GPT-3 introdujo formalmente el concepto de Aprendizaje en Contexto (ICL por sus siglas en inglés). El supuesto del ICL es que si al LLM se le ha proporcionado un estímulo con una o más demostraciones de la tarea, es más probable que el modelo genere una respuesta correcta.
Entre los modelos de la serie GPT, el modelo 175B GPT-3 mostró una gran capacidad ICL en general.
Mediante el fine-tuning y una mezcla de conjuntos de datos multitarea formateados mediante descripciones en lenguaje natural (denominado ajuste de instrucciones), se demuestra que los LLM obtienen buenos resultados en tareas no vistas que también se describen en forma de instrucciones.
Con el instruction tuning, los LLM pueden seguir las instrucciones de tareas nuevas sin utilizar ejemplos explícitos, lo que mejora su capacidad de generalización.
Con la estrategia de razonamiento en cadena (CoT), los LLM pueden resolver tareas complejas utilizando técnicas de razonamiento que implican pasos intermedios para obtener la respuesta final.

La imagen de arriba es una línea de tiempo de los LLM existentes que tienen un tamaño superior a 10B. La cronología se establece en función de las fechas de publicación de los modelos. Los modelos marcados con fondo amarillo son todos públicos.

La imagen superior muestra un gráfico evolutivo de algunos de los trabajos de investigación realizados sobre LLaMA.
La colección de modelos LLaMA fue presentada por Meta AI en febrero de 2023. Consta de cuatro tamaños (7B, 13B, 30B y 65B). Desde entonces, LLaMA ha atraído una gran atención tanto de la comunidad investigadora como de la industria.
La siguiente imagen muestra las proporciones de varias fuentes de datos en los datos de preentrenamiento para los LLM existentes.
Las fuentes de datos del corpus de preentrenamiento pueden clasificarse a grandes rasgos en dos tipos:
Los datos generales, como páginas web, libros y textos conversacionales, son utilizados por la mayoría de los LLM debido a su naturaleza amplia, diversa y accesible, que puede mejorar las capacidades de modelización y generalización del lenguaje de los LLM.
A la luz de las impresionantes capacidades de generalización mostradas por los LLM, también hay estudios que amplían su corpus de preentrenamiento a conjuntos de datos más especializados, como datos multilingües, datos científicos y código.

A continuación, las aplicaciones de los LLM en direcciones de investigación representativas y dominios descendentes.

En resumen, la evolución de los grandes modelos lingüísticos marca una progresión significativa en el procesamiento del lenguaje natural. Y desde la primera gestión de diálogos basada en reglas hasta la aparición de potentes redes neuronales como GPT-3. Todo ello combinado con la potencia de la generación de lenguaje natural (NLG).
La narrativa de los grandes modelos lingüísticos se caracteriza por el continuo perfeccionamiento, la innovación y la integración en los entornos tecnológicos existentes.
The post Estudio exhaustivo de los Grandes Modelos del Lenguaje (LLM) first appeared on Planeta Chatbot.
]]>The post Ajuste del modelo turbo GPT-3.5 de OpenAI first appeared on Planeta Chatbot.
]]>The post Ajuste del modelo turbo GPT-3.5 de OpenAI first appeared on Planeta Chatbot.
]]>The post Ejemplos prácticos de llamadas a funciones de OpenAI first appeared on Planeta Chatbot.
]]>Si el documento JSON no se define correctamente, el modelo OpenAI generará un error. Por lo tanto, existe un nivel de rigidez en cuanto a la definición de la estructura JSON que debe rellenarse.
pip install openai
import os
import openai
import requests
import json
openai.api_key = «xxxxxxxxxxxxxxxxxx»
url = «https://api.openai.com/v1/chat/completions»
payload = json.dumps({
«model»: «gpt-4-0613»,
«messages»: [
{
«role»: «user»,
«content»: «Send Cobus from HumanFirst AI an email and ask him for the sales forecast spreadsheet. Schedule the mail for tomorrow at 12 noon.»
}
],
«functions»: [
{
«name»: «send_email»,
«description»: «template to have an email sent.»,
«parameters»: {
«type»: «object»,
«properties»: {
«to_address»: {
«type»: «string»,
«description»: «To address for email»
},
«body»: {
«type»: «string»,
«description»: «Body of the email»
},
«date»: {
«type»: «string»,
«description»: «the date the email must be sent.»
},
«time»: {
«type»: «string»,
«description»: «the time the email must be sent.»
}
}
}
}
]
})
headers = {
‘Content-Type’: ‘application/json’,
‘Authorization’: ‘Basic xxxxxxxxxxxx’
}
response = requests.request(«POST», url, headers=headers, data=payload)
print(response.text)
Y la respuesta de la modelo:
{
"id": "chatcmpl-7RjMh7I0rVmCJkTCk4wvHDSNg8uQQ",
"object": "chat.completion",
"created": 1686843595,
"model": "gpt-4-0613",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": null,
"function_call": {
"name": "send_email",
"arguments": "{\n \"to_address\": \"Cobus@HumanFirst.ai\",\n \"body\": \"Hello Cobus, \\n\\nCould you please provide the sales forecast spreadsheet? \\n\\nBest Regards\",\n \"date\": \"tomorrow\",\n \"time\": \"12 noon\"\n}"
}
},
"finish_reason": "function_call"
}
],
"usage": {
"prompt_tokens": 118,
"completion_tokens": 65,
"total_tokens": 183
}
}
En este ejemplo, un pedido se convierte en una estructura JSON con fecha, notas, tipo de pedido, dirección de entrega, etc.
url = "https://api.openai.com/v1/chat/completions"
payload = json.dumps({
"model": "gpt-4-0613",
"messages": [
{
"role": "user",
"content": "I would like to order two packs of cans, and have it delivered to 22 Fourth Avenue, Woodlands. I need this on the 27th of July. Just leave the order at the door, we live in a safe area."
}
],
"functions": [
{
"name": "order_detail",
"description": "template to capture an order.",
"parameters": {
"type": "object",
"properties": {
"to_address": {
"type": "string",
"description": "To address for the delivery"
},
"order": {
"type": "string",
"description": "The detail of the order"
},
"date": {
"type": "string",
"description": "the date for delivery."
},
"notes": {
"type": "string",
"description": "Any delivery notes."
}
}
}
}
]
})
headers = {
'Content-Type': 'application/json',
'Authorization': 'Basic xxxxxxxxxxx'
}
response = requests.request(«POST», url, headers=headers, data=payload)
print(response.text)
Y la respuesta:
{
"id": "chatcmpl-7RjQA8bEiPVRwh72gNUFouBq6urjo",
"object": "chat.completion",
"created": 1686843810,
"model": "gpt-4-0613",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": null,
"function_call": {
"name": "order_detail",
"arguments": "{\n \"to_address\": \"22 Fourth Avenue, Woodlands\",\n \"order\": \"two packs of cans\",\n \"date\": \"27th of July\",\n \"notes\": \"Just leave the order at the door, we live in a safe area.\"\n}"
}
},
"finish_reason": "function_call"
}
],
"usage": {
"prompt_tokens": 132,
"completion_tokens": 61,
"total_tokens": 193
}
}
Este ejemplo final tiene una lista de nombres y cumpleaños, que necesita ser estructurada en JSON. Algo que encontré interesante, es que el modelo no itera a través de los nombres y fechas.
Sólo el primer nombre y la fecha se coloca dentro de la JSON, por lo tanto, el conjunto de datos no se reconoce y se itera a través.
url = «https://api.openai.com/v1/chat/completions»
payload = json.dumps({
«model»: «gpt-4-0613»,
«messages»: [
{
«role»: «user»,
«content»: «John has a birthday on 5 April and Adam has his on the 1 September, Elli is 24 December, Robert has his birthday on 6 March and lastly Adam is 15 April.»}
],
«functions»: [
{
«name»: «birthdays»,
«description»: «create a document of names and birthdays of 5 people»,
«parameters»: {
«type»: «object»,
«properties»: {
«name»: {
«type»: «string»,
«description»: «The name of the person»
},
«birthday»: {
«type»: «string»,
«description»: «and the date of the their birthday»
}
}
}
}
]
})
headers = {
‘Content-Type’: ‘application/json’,
‘Authorization’: ‘Basic xxxxxxxxxxxx’
}
response = requests.request(«POST», url, headers=headers, data=payload)
print(response.text)
Y el resultado:
{
«id»: «chatcmpl-7RjYzH9XaSAQ3Qn6X5j11J77vBGQX»,
«object»: «chat.completion»,
«created»: 1686844357,
«model»: «gpt-4-0613»,
«choices»: [
{
«index»: 0,
«message»: {
«role»: «assistant»,
«content»: null,
«function_call»: {
«name»: «birthdays»,
«arguments»: «{ \»name\»: \»John\», \»birthday\»: \»5 April\» }»
}
},
«finish_reason»: «function_call»
}
],
«usage»: {
«prompt_tokens»: 111,
«completion_tokens»: 21,
«total_tokens»: 132
}
}
Hay algunas consideraciones, sin embargo:
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.
The post Ejemplos prácticos de llamadas a funciones de OpenAI first appeared on Planeta Chatbot.
]]>The post ChatGPT: Instrucciones personalizadas first appeared on Planeta Chatbot.
]]>Es importante responder de la misma manera que lo harían las instrucciones personalizadas de OpenAI ChatGPT.
En la imagen de abajo verás el playground de OpenAI y las instrucciones dadas al modelo GPT-4. La salida coincide muy de cerca con la salida de las Instrucciones Personalizadas documentadas.
Esto se consigue simplemente inyectando el prompt con los mismos datos contextuales, e instruyendo al modelo para que reaccione al estilo de las » Custom Instructions».

El mismo escenario puede verse en la siguiente imagen. Para empezar tenemos la respuesta del patio de recreo, muy parecida a la función «Custom Instructions».

A continuación se muestran ejemplos de cómo difiere la salida generada:

De los ejemplos que se muestran a continuación, extraídos de la documentación de OpenAI, se desprende que ChatGPT tiene la ventaja del formato de texto para facilitar la lectura y digestión de los datos.

Un segundo ejemplo:

Con la salida:

La interfaz ChatGPT tiene una ventaja:
Sin embargo, los mismos datos pueden ser inyectados a través de la ingeniería prompt manualmente por el usuario. Y se puede pedir al modelo que imite la función de instrucciones personalizadas.
La función de instrucciones personalizadas nos acerca a un escenario en el que las respuestas generadas son más personalizadas para cada usuario. Y OpenAI puede construir un perfil de cada usuario basándose en esta información.
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.
The post ChatGPT: Instrucciones personalizadas first appeared on Planeta Chatbot.
]]>The post Desarrolla tu propio ChatGPT o HuggingChat first appeared on Planeta Chatbot.
]]>The post Desarrolla tu propio ChatGPT o HuggingChat first appeared on Planeta Chatbot.
]]>The post Prompt Pipelines de IA Generativa first appeared on Planeta Chatbot.
]]>Ha habido una evolución de la ingeniería de prompts de IA generativa…
En este artículo se describirá el uso de los prompt pipelines.

En el Machine Learning, una canalización puede describirse como una construcción integral que organiza un flujo de eventos y datos.
La canalización se pone en marcha o se inicia mediante un disparador y, en función de determinados eventos y parámetros, se sigue un flujo que da como resultado una salida.
En el caso de un canal de avisos, el flujo se inicia en la mayoría de los casos por una petición del usuario. La solicitud se dirige a una plantilla específica.
Las ventajas de plantillas prompts son:
Los «prompt pipelines» también pueden describirse como una extensión inteligente de las plantillas de «prompt».
Las variables o marcadores de posición de la plantilla predefinida se rellenan (también conocido como inyección de preguntas) con la pregunta del usuario y el conocimiento que se debe buscar en el Knowledge store

Los datos del Knowledge store actúan como referencia para la pregunta a la que hay que responder. Disponer de este conjunto de información evita las alucinaciones del LLM. También evita que el LLM utilice datos antiguos o anticuados del modelo que son inexactos en ese momento.
Posteriormente, la pregunta compuesta se envía al LLM y la respuesta del LLM se devuelve al usuario.
A continuación se muestra un ejemplo de un modelo de prompt antes de inyectar el documento y los datos de la pregunta.
prompt_template_text="""Synthesize a comprehensive answer from the following text for the given question.
Provide a clear and concise response that summarizes the key points and information presented in the text.
Your answer should be in your own words and be no longer than 50 words.
nn Related text: {join(documents)} nn Question: {query} nn Answer:"""
De nuevo a continuación, una pregunta formulada por el usuario, que se inyecta con los datos del Knowledge store.
output = pipe.run(query="How does Rhodes Statue look like?")
print(output["results"])
Y finalmente el resultado a la pregunta:
[‘The head would have had curly hair with evenly spaced spikes of bronze or silver flame radiating, similar to the images found on contemporary Rhodian coins.’]
Teniendo en cuenta la imagen de abajo, en un próximo artículo me gustaría discutir cómo un prompt pipeline puede ser implementado para un dominio más amplio con múltiples clases de entrada de usuario.
(1) La entrada del usuario debe ser categorizada y asignada a una plantilla específica y aplicable. Estas categorías son análogas a la asignación de la entrada del usuario a una intención.
En función de la clasificación asignada a la entrada del usuario, deben extraerse los datos correctos (2) e inyectarse (3) en la plantilla de avisos.

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, Data-Centric espacios latentes y más.
The post Prompt Pipelines de IA Generativa first appeared on Planeta Chatbot.
]]>The post Modelos, estructuras y formatos de inputs de ChatGPT first appeared on Planeta Chatbot.
]]>The post Modelos, estructuras y formatos de inputs de ChatGPT first appeared on Planeta Chatbot.
]]>The post LangChain el software de código abierto para la gestión del estado de diálogo y la memoria contextual de LLM first appeared on Planeta Chatbot.
]]>De forma nativa, las APIs LLM funcionan bien para escenarios de un solo turno de diálogo, tipo comando-y-respuesta.
¿Pero qué pasa si quieres usar un LLM para un diálogo multi-turn entre el usuario y el LLM? Por lo tanto, ¿la misma funcionalidad que esperas encontrar en un chatbot o agente digital?


Tienes dos opciones…
1⃣ La primera vía es hacer uso de un marco de desarrollo de IA conversacional como Cognigy, OneReach AI y algunos otros para integrar a los LLM.
Sin embargo, la premisa de hacer uso de él, será únicamente tener acceso a un entorno de gestión de diálogos. Y con esto viene una sobrecarga adicional en forma de coste, funcionalidad no deseada y complejidad.
2⃣ La segunda opción es escribir tu propio software de gestión de diálogos.
De ahí que LangChain tenga mucho sentido para habilitar LLMs para la gestión de diálogos.
LangChain es una fina capa de pro-código que convierte interacciones LLM sucesivas (secuenciales) en una experiencia conversacional natural.
Ya sea gestionando el proceso de creación de prompts, recopilando datos del usuario de forma conversacional, integración API, desarrollo de diálogos, contexto y memoria de conversación, y mucho más…
En palabras de LangChain:
Los LLM están emergiendo como una tecnología transformadora, que permite a los desarrolladores crear aplicaciones que antes no podían. Pero utilizar estos LLM de forma aislada no suele ser suficiente para crear una aplicación realmente potente: la verdadera potencia llega cuando eres capaz de combinarlos con otras fuentes de computación o conocimiento.
Gestión del estado/flujo del diálogoEs el proceso de gestionar cada conversación dentro de un árbol de decisiones predefinido. Para cada conversación, el chatbot debe saber, en función de los criterios disponibles, cuál es el siguiente diálogo al que debe dirigirse.
El estado del diálogo se define normalmente a través de un editor de flujo de diálogo. Los editores de flujo de diálogo pueden ser pro-code, low-code o no-code.
Contexto conversacional y memoriaEl contexto conversacional hace que la experiencia de conversación del usuario sea más natural e intuitiva. El conocimiento del contexto permite al robot hacer suposiciones basándose en expresiones anteriores del usuario. También ayuda a que el bot no tenga que volver a preguntar a los usuarios por datos ya introducidos.
Memoria conversacional a largo plazoA la gente le gusta hablar con el mismo representante de atención al cliente, porque existe una memoria a largo plazo. Y esta memoria optimiza la llamada y hace que la experiencia sea más eficaz.
Lo mismo puede hacerse a través de un chatbot.
Integración con API externasDialog Management incluye funciones para realizar llamadas a una API externa, procesar los datos e incluirlos como parte de la narración. Piensa en un bot meteorológico, que necesitaría acceder a una API meteorológica para recuperar y presentar para una ciudad solicitada.
Integración de la base de conocimientos y QnALa funcionalidad QnA y de base de conocimientos es cada vez más importante y la mayoría de los diseñadores de flujos de conversación tienen o prevén algún tipo de acceso a la base de conocimientos.
Interfaz de desarrolloEn general, existen cuatro enfoques para las interfaces de desarrollo de flujos de diálogo. De ellos, los editores visuales de flujos de diálogo son los más populares debido a su naturaleza visual y sin código. Como se puede apreciar en la siguiente imagen:
La aplicación LangChain tendrá que estar alojada en algún lugar. Por lo tanto, con LangChain vienen los gastos generales de alojamiento, procesamiento, mantenimiento de código, planificación de la continuidad del negocio, redundancia, disponibilidad regional y latencia.
LangChain es perfecto para aplicaciones de demostración y prototipos de alta fidelidad. Sin embargo, para una implementación de producción la arquitectura del sistema será importante.
LangChain es pro-código, por lo que habrá una división entre diseño y desarrollo. Los desarrolladores tendrán que interpretar el diseño. En los últimos años hemos visto cómo se ha aprovechado el proceso de diseño. Por lo tanto, el proceso de diseño a través de una interfaz gráfica de usuario sin código se exporta a una versión lista para la producción del flujo.
A medida que una aplicación crezca, la complejidad también aumentará, los despliegues serán más arriesgados y las pruebas de regresión de la interfaz conversacional serán importantes.
La esperanza es que gran parte de la gestión de errores (fall-back para fuera de dominio, etc.) se puede derivar al LLM para la gestión.
Una gran parte del desarrollo de LangChain serán los aspectos de gestión de la conversación.

La mejor manera de hacerse una idea de LangChain es considerar algunos prototipos… El ejemplo más básico del uso de LangChain para consultar OpenAI:
pip install langchain
pip install langchain[all]
pip install openai
import os
os.environ["OPENAI_API_KEY"] = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
from langchain.llms import OpenAI
llm = OpenAI(temperature=0.9)
text = "What day of the week was it on 15 April 1973?"
print(llm(text))
Añadir una variable:
from langchain.prompts import PromptTemplate
prompt = PromptTemplate(
input_variables=["product"],
template="What is a good name for a company that makes {product}?",
print(prompt.format(product="typing machines"))
llm = OpenAI(temperature=0.9)
text = (prompt.format(product="typing machines"))
print(llm(text))
Vista de cuaderno:

El siguiente prototipo es un buen ejemplo de cómo se puede utilizar LangChain para automatizar la ingeniería de avisos y aprovechar los LLM para el contexto conversacional:
from langchain.llms import OpenAI
from langchain.chains import ConversationChain
from langchain.chains.conversation.memory import ConversationBufferMemory
llm = OpenAI(temperature=0)
conversation = ConversationChain(
llm=llm,
verbose=True,
memory=ConversationBufferMemory()
)
conversation.predict(input="Hi there!")
Respuesta:
> Entering new ConversationChain chain...
Prompt after formatting:
The following is a friendly conversation between a human and an AI. The AI is talkative and provides lots of specific details from its context. If the AI does not know the answer to a question, it truthfully says it does not know.
Current conversation:
Human: Hi there!
AI:
> Finished chain.
Hi there! It's nice to meet you. My name is AI. What's your name?
Input:
conversation.predict(input="My name is Cobus")
Respuesta:
> Entering new ConversationChain chain...
Prompt after formatting:
The following is a friendly conversation between a human and an AI. The AI is talkative and provides lots of specific details from its context. If the AI does not know the answer to a question, it truthfully says it does not know.
Current conversation:
Human: Hi there!
AI: Hi there! It's nice to meet you. My name is AI. What's your name?
Human: My name is Cobus
AI:
> Finished chain.
Nice to meet you, Cobus! What can I do for you today?
Este enfoque no es óptimo para conversaciones largas, ya que el tamaño del prompt enviado al LLM crecerá demasiado.
En este último ejemplo, se pide al usuario que introduzca información y ésta se utiliza para generar la respuesta, y también ilustra cómo se combinan dos cadenas.
title = input('What is your title? ')
print ('I have your title as ' + title)
era = input('Lasty, from what era should the text be? ')
print ('I have your era as ' + era)
# This is an LLMChain to write a synopsis given a title of a play and the era it is set in.
llm = OpenAI(temperature=.7)
template = """You are a playwright. Given the title of play and the era it is set in, it is your job to write a synopsis for that title.
Title: {title}
Era: {era}
Playwright: This is a synopsis for the above play:"""
prompt_template = PromptTemplate(input_variables=["title", 'era'], template=template)
synopsis_chain = LLMChain(llm=llm, prompt=prompt_template, output_key="synopsis")
# This is an LLMChain to write a review of a play given a synopsis.
llm = OpenAI(temperature=.7)
template = """You are a play critic from the New York Times. Given the synopsis of play, it is your job to write a review for that play.
Play Synopsis:
{synopsis}
Review from a New York Times play critic of the above play:"""
prompt_template = PromptTemplate(input_variables=["synopsis"], template=template)
review_chain = LLMChain(llm=llm, prompt=prompt_template, output_key="review")
# This is the overall chain where we run these two chains in sequence.
from langchain.chains import SequentialChain
overall_chain = SequentialChain(
chains=[synopsis_chain, review_chain],
input_variables=["era", "title"],
# Here we return multiple variables
output_variables=["synopsis", "review"],
verbose=True)
review = overall_chain({"title":title, "era": era})
print (review)
Y la salida:
> Entering new SequentialChain chain...
> Finished chain.
{'title': 'Tragedy at sunset on the beach', 'era': 'Victorian ', 'synopsis': "\n\nTragedy at Sunset on the Beach is set in the Victorian era and tells the story of a young girl, Amelia, whose search for love and happiness leads her to a fateful encounter with a mysterious stranger on the beach at sunset. While walking along the shore, Amelia meets a man named William, who presents her with a rose as a symbol of his affection. Though she initially resists his advances, Amelia eventually finds herself drawn to William and the two quickly grow close. \n\nHowever, as the sun sets, a secret from William's past is revealed that changes everything. It turns out that William is a wanted criminal and is being pursued by the police. After a tense confrontation, William is arrested and taken away, leaving Amelia heartbroken and alone.\n\nIn the aftermath of their chance encounter, Amelia is forced to grapple with the tragedy of her unrequited love, and the harsh realities of life. Her journey serves as a reminder that love isn't always as simple and straightforward as it may seem.", 'review': '\n\nTragedy at Sunset on the Beach is a captivating tale of love, loss, and the power of the human spirit. The set in the Victorian era allows for a unique perspective on the themes of the story, and the performance by the cast is truly remarkable.\n\nThe story follows Amelia, a young girl whose search for love and happiness leads her to a fateful encounter with a mysterious stranger on the beach at sunset. We watch as Amelia’s relationship with the stranger, William, develops and evolves, only to be cut short when a secret from his past is revealed. This revelation forces Amelia to confront the harsh realities of life and the tragedy of her unrequited love.\n\nThe play is a thought-provoking exploration of love, sacrifice, and the power of human connection. It’s a story that is sure to resonate with audiences who are looking for a story of love, loss, and hope. Highly recommended.'}
En otros artículos, he escrito varias veces sobre la fragmentación que se avecina y sobre el hecho de que un único marco de IA conversacional no será suficiente.
Ya estamos viendo que los LLM están obligando a los proveedores tradicionales de frameworks de chatbot a mirar hacia fuera en busca de tecnologías que deberían prever.
LangChain es un software que llena una voz crítica que existe actualmente para hacer que los LLM sean más conversacionales.
Sígueme en LinkedIn para estar al día sobre la IA conversacional 
The post LangChain el software de código abierto para la gestión del estado de diálogo y la memoria contextual de LLM first appeared on Planeta Chatbot.
]]>The post Probando el nuevo clasificador de textos de OpenAI para identificar contenidos escritos con IA first appeared on Planeta Chatbot.
]]>Cada documento presentado se clasifica en una de cinco clases:
1⃣ Muy improbable generado por IA
2⃣ Improbable generado por IA
3⃣ No está claro si está generado por IA
4⃣ Posiblemente generado por IA
5⃣ Probablemente generado por IA
OpenAI ha entrenado un clasificador para diferenciar entre texto escrito por humanos y por IA basándose en un modelo GPT ajustado. El modelo puede predecir la probabilidad de que una porción de texto haya sido generada por IA o no, y a partir de una variedad de fuentes, incluyendo ChatGPT.
Utilicé AI21Labs, Cohere, text-davinci-003, ChatGPT y otras fuentes para generar texto sobre un tema arbitrario y ambiguo como «puntualidad» para probar el clasificador.
En la tabla siguiente se muestra un resumen de los resultados, con la fuente del texto a la izquierda y la precisión del clasificador a la derecha. Los detalles de los resultados se discuten en el artículo…

OpenAI afirma claramente lo siguiente:
Nuestro clasificador no es totalmente fiable.
En nuestras evaluaciones sobre un «conjunto de desafíos» de textos en inglés, nuestro clasificador identifica correctamente el 26% de los textos escritos por IA (verdaderos positivos) como «probablemente escritos por IA».
Mientras que en el 9% de los casos (falsos positivos), el texto escrito por humanos se considera escrito por inteligencia artificial.
La fiabilidad de nuestro clasificador suele mejorar a medida que aumenta la longitud del texto de entrada.
En comparación con nuestro clasificador anterior, este nuevo clasificador es significativamente más fiable con textos de sistemas de IA más recientes.
En la imagen de abajo se ve el texto generado en el sistema Cohere… el prompt diseñado está indicado por la flecha roja. En otras palabras, la instrucción dada al LLM; la entrada.
Y debajo, marcado como salida, se ve el texto generado por Cohere:

A continuación, el texto generado por Cohere se copia en el clasificador de texto de IA de OpenAI. El resultado del clasificador es que el texto debe considerarse probablemente generado por IA. Por tanto, correcto y de plena confianza.

El mismo comando de generación se emitió en AI21Labs… pidiendo al LLM de AI21Labs que generara un texto sobre la importancia de la puntualidad.
A continuación, el texto generado por AI21Labs se somete al clasificador de textos de IA de OpenAI, con la respuesta deseada. El resultado del clasificador es que el texto debe considerarse probablemente generado por IA. Por tanto, correcto con total confianza.

A continuación se muestra el contexto generado por ChatGPT… y es calificado como posible por el clasificador. Por lo tanto, se ve un paso más cerca de texto generado por humanos en comparación con Cohere y AI21Labs.
Habría esperado que el clasificador dijera «generado por IA» con total confianza.

También envié un texto de 500 palabras generado por text-davinci-003 sobre el tema de la puntualidad y recibí la misma respuesta de ChatGPT: Posiblemente generado por IA.
Supuse que el clasificador sería capaz de detectar claramente el texto generado en text-davinci-003 o ChatGPT.
He copiado un fragmento de un ensayo en línea, y el resultado del clasificador es ambicioso hasta cierto punto, pero bastante preciso.

A continuación se muestra un artículo original que escribí sobre el mismo tema, que fue marcado por OpenAI como posiblemente generado por IA. Yo esperaría un resultado de «Poco claro si es generado por IA»
Pero me apresuro a añadir que la pieza es corta, y como he dicho antes, la pieza es ambigua sin mucho texto definitivo.

Teniendo en cuenta que el clasificador de texto de IA se entrenó en Wikipedia, copié un fragmento de Wikipedia sobre la Primera Guerra Mundial y le pedí al clasificador que investigara el contenido. Aquí obtuve la respuesta correcta, y también la clasificación más alta de muy improbable.

La respuesta corta es… sí.
Los resultados son definitivos, y en mis pocos intentos, muy precisos:

Y la respuesta sobre mi propio escrito también es correcta.

Aparte de las cuestiones de precisión expuestas al principio de este artículo, existen otras limitaciones…
El texto y el tema que he utilizado como premisa para la redacción son muy genéricos y generales. Es muy probable que contenidos más ambiguos como éste sean más difíciles de clasificar.
Cuanto más largo sea el texto a analizar (> 1.0000 caracteres) más fiables serán los resultados.
Los textos escritos por humanos a veces se etiquetan incorrectamente como escritos por IA. Por tanto, parece que existe una especie de sesgo hacia una clasificación por defecto de «escrito por IA».
El clasificador es sólo inglés y no multilingüe.
El clasificador no es fiable a la hora de clasificar código.
El texto generado por IA y editado por un humano puede engañar al clasificador.
OpenAI recopiló un conjunto de datos de texto generado por IA y texto escrito por humanos.
El texto escrito por humanos tiene tres fuentes:
Es evidente que la precisión del clasificador no está donde debería, y OpenAI declara este hecho abiertamente: «Nuestro clasificador no es totalmente fiable«.
Sin embargo, hay algunos aspectos positivos… el primero es que se trata de un paso en la dirección correcta y se convertirá en una herramienta de valor incalculable, especialmente para educadores e instituciones educativas.
La IA responsable siempre ha estado en el punto de mira de la mayoría de la gente, y OpenAI ha sido muy abierto sobre su enfoque y diligencia debida en relación con la IA responsable.
Teniendo en cuenta todo esto, el clasificador es un paso en la dirección correcta y otro ejemplo de cómo OpenAI toma la iniciativa.
The post Probando el nuevo clasificador de textos de OpenAI para identificar contenidos escritos con IA first appeared on Planeta Chatbot.
]]>The post Generación de respuestas de OpenAI con un gran corpus de datos first appeared on Planeta Chatbot.
]]>Prompt Engineering for Generative LLMs ha surgido como una «cosa» con usuarios aprendiendo que un LLM no puede ser instruido directamente. Más bien, a través de un proceso de simulación e influencia del usuario, el LLM se diseña para dar la respuesta correcta, si tu quieres.
Las instrucciones contextuales suelen constar de tres secciones: instrucción, contexto y pregunta.

En un artículo anterior escribí sobre la importancia del contexto como referencia para los LLM generativos y cómo la alucinación de LLM puede ser negada por esto.
Sin embargo, uno de los retos que surgieron del artículo anterior fue cómo se puede utilizar un cuerpo de texto más grande (corpus) como referencia contextual.
De ahí que aquí recorra paso a paso el proceso de obtención de datos relevantes de Wikipedia sobre un tema concreto y su transformación. Creación de embeddings, y por último, cómo hacer referencia a los datos contextuales en una consulta.
Sígueme en LinkedIn para actualizaciones sobre IA conversacional
El reto es que a medida que las implementaciones de OpenAI crecen en complejidad, la experiencia del usuario salta muy rápidamente de un entorno sin código a un entorno con código.
Para poder buscar en un corpus más amplio relacionado con la información sobre olimpiadas que hemos estado utilizando, es necesario crear embeddings de texto.
Las embeddings de texto de OpenAI miden la similitud semántica entre cadenas de texto.
Las embeddings son relevantes siempre que sea necesario detectar cualquier tipo de similitud semántica. Por ejemplo, búsquedas, clasificaciones, agrupaciones, etc.
En palabras de OpenAI:
Un embedding es un vector (lista) de números en coma flotante. La distancia entre dos vectores mide su parentesco. Las distancias pequeñas sugieren un alto grado de parentesco y las distancias grandes, un bajo grado.

A continuación se muestra un fragmento del archivo de datos pertinente de Wikipedia…
df = pd.read_csv('https://cdn.openai.com/API/examples/data/olympics_sections_text.csv')
df = df.set_index(["title", "heading"])
print(f"{len(df)} rows in the data.")
df.sample(5)

Y aquí puede ver el formato del archivo después de que se hayan creado las embeddings utilizando el modelo text-embedding-ada-002.
datafile_path = '/olympics_sections_document_embeddings.csv'
df = pd.read_csv(datafile_path)
df.sample(5)

El proceso de manipulación de datos y código es un proceso avanzado. Lea más sobre el aspecto de los datos y vea ejemplos de cuadernos aquí.
El resultado final, a continuación se ve una pregunta formulada con el resultado relevante.

Encontrarás toda la información en este enlace.
Para la búsqueda semántica, OpenAI ha abandonado su enfoque de búsqueda de documentos y lo ha sustituido por un embeddings model.
Se ha hablado mucho de aprovechar los LLM y crear resultados más predecibles y fiables. Siempre he sostenido que la única solución es afinar los LLM y crear modelos LLM personalizados para cada implementación específica.
Desde la perspectiva de OpenAI, no existe un panel de control ni un estudio de diseño de NLU/NLG, y la recopilación, transformación e ingestión de datos requiere un desarrollo personalizado.
Sin embargo, para lograr esto a escala, se requiere un enfoque de estudio sin código donde con una supervisión débil, los datos de entrenamiento no estructurados se pueden convertir en datos de NLU y NLG Design.
Sígueme en LinkedIn para actualizaciones sobre IA conversacional
The post Generación de respuestas de OpenAI con un gran corpus de datos first appeared on Planeta Chatbot.
]]>The post Cuatro tendencias en inteligencia artificial conversacional para 2023 first appeared on Planeta Chatbot.
]]>Las cuatro tendencias a tener en cuenta en 2023 son:
1⃣ Capacidades generativas de los grandes modelos lingüísticos o Large Language Models (LLM).
2⃣ Diseño de NLUs que cierran la brecha de datos en los LLMs.
3⃣ Adopción de robots de voz y tecnologías afines.
4⃣ Mayor fragmentación a través de la implantación de nichos de mercado.
¡Sígueme en LinkedIn para otras novedades relacionadas con la IA Conversacional!
El número de LLM está aumentando en tamaño y capacidades generativas. Aunque las capacidades generativas gráficas de los LLM están aumentando, es la implementación práctica de las capacidades de generación de texto lo que hará que el uso de los LLM se generalice. Especialmente las implementaciones en Chatbots y Voicebots.
Durante 2022 HumanFirst anunció la integración con el LLM Cohere y otros LLMs. Yellow AI anunció DynamicNLP que aprovecha los LLMs, añadiendo a esta lista Oracle Digital Assistant y Amelia.
Relacionado con los LLM y la generación de lenguaje está KI-NLP. Meta AI acuñó el término Knowledge Intensive NLP (KI-NLP). KI-NLP es la noción en la que se aprovecha un LLM para responder a preguntas generales de dominio abierto de forma conversacional. El usuario puede definir el formato de las respuestas, ya sea resumido, extenso, simplificado, etc.
ChatGPT es la implementación más reciente de un sistema KI-NLP en el que los usuarios pueden formular preguntas de dominio general. La API lingüística de OpenAI es excelente para responder a preguntas generales.

Teniendo en cuenta los esfuerzos de Google en el espacio LLM, recientemente esta compañía anunció su modelo PaLM mientras que LaMDA sólo está disponible en una vista previa muy limitada.
Aquí es donde OpenAI realmente se diferencia, haciendo que sus modelos como ChatGPT estén ampliamente disponibles para pruebas y comentarios. Especialmente con el lanzamiento del nuevo modelo Da Vinci hubo una excepcional cobertura boca a boca.
¡Sígueme en LinkedIn Para Actualizaciones De IA Conversacional!
El concepto de cerrar la brecha de datos entre los LLM generativos y predictivos fue articulado recientemente por Alexander Ratner en un post de LinkedIn.
La funcionalidad de los LLM puede dividirse en dos categorías principales: generativa y predictiva.
Las intenciones o la determinación de la intención de los enunciados del usuario (clasificación de enunciados del usuario) pueden considerarse una implementación de un enfoque predictivo.
Al considerar la predicción LLM (clasificación), un aspecto viene a la mente… ¡la brecha de datos! Para que los modelos predictivos sean precisos, es necesario un nivel de ajuste fino del LLM; este proceso aborda el problema que algunos denominan brecha de datos.
Los modelos generativos funcionan con un enfoque de aprendizaje de pocos disparos y la preparación de los datos de entrenamiento no es tan crucial como en el caso de un modelo predictivo.
Para las aplicaciones predictivas, la preparación de los datos es clave, ya que los datos no estructurados se convierten en datos de entrenamiento o datos de diseño NLU.
Puedes leer más sobre un ejemplo práctico de puesta a punto de un NLU aquí. Este es un ejemplo en el que se utiliza el diseño NLU para convertir datos no estructurados en datos de entrenamiento NLU estructurados para un LLM.
Dos cosas que destacaron de 2022 son la necesidad de obtener valor de las implementaciones de IA junto con la automatización en el centro de contacto.
Los clientes siguen prefiriendo llamar por teléfono a los call centers y el santo grial de la IA conversacional es automatizar estas llamadas entrantes.
Durante la cumbre Modev Voice’22 en Arlington se hizo evidente que el foco se está alejando de las interfaces de voz dedicadas como Alexa y Google Home para centrarse significativamente en la automatización de voz en los call centers.
Un primer paso hacia las llamadas de voz totalmente automatizadas es descubrir y analizar las llamadas de voz grabadas. De ahí que las grabaciones de los clientes se conviertan en texto para la detección de intenciones y mucho más.
Otro elemento que alimenta la futura adopción masiva de voicebots son tecnologías como las voces de síntesis de voz personalizadas rápidas sin código, la creación de voces protésicas, las traducciones de idiomas de voz a voz, entre otras cuestiones.
Como he mencionado antes, de la investigación de Gartner se desprende que no se obtiene valor en la mayoría de las implementaciones cuando se trata de IA conversacional. Una forma de remediar este problema es limitar la huella de la implementación de la CAI. Por lo tanto, hay que empezar con una implantación pequeña e iterar a partir de esta implantación inicial.
Un segundo enfoque consiste en considerar los 18 casos de uso del Call center y optar por implantar la tecnología de IA en uno o sólo unos pocos de los casos de uso. En el nuevo año veremos cómo más empresas adoptan uno o varios de estos casos de uso como primera incursión en la IA conversacional.
La implantación de casos de uso específicos es más rentable y fácil de gestionar. Estos casos de uso específicos pueden extenderse después a otras áreas de la empresa.
The post Cuatro tendencias en inteligencia artificial conversacional para 2023 first appeared on Planeta Chatbot.
]]>The post Reconocimiento automático del habla y auge de la inteligencia sonora first appeared on Planeta Chatbot.
]]>La transcripción síncrona suele utilizarse en aplicaciones como los robots de voz y los escenarios de asistencia a agentes.
Las asíncronas se utilizan para transcribir a posteriori conversaciones entre clientes y agentes u otras interacciones de voz. La redacción de la PII entra en juego tanto para el audio como para el texto y, especialmente, la redacción automatizada de la PII.
La ASR es la primera línea de defensa cuando se trata de la implementación de un robot de voz o de voz, y también es uno de los aspectos más difíciles de conseguir para una implementación de voz sincrónica y de baja latencia.
La ASR extractiva es aquella en la que el audio se transcribe a texto para su posterior procesamiento, normalmente NLP o NLU.
Detección de lenguaje a partir del hablaEsto es vital en el enrutamiento de clientes, la actualización de datos CRM y más. La detección del lenguaje depende y a menudo se ve obstaculizada por la falta de disponibilidad de un modelo para ese lenguaje humano concreto.
En la mayoría de los casos, los modelos disponibles para la detección del lenguaje son superiores a los de transcripción/extracción. Por lo tanto, ser capaz de detectar el idioma puede informar al proceso de CX si un usuario en particular debe ser dirigido a un agente específico del idioma.
Una solución como Deepgram tiene más de 32 idiomas disponibles para la detección de idiomas.
Los servicios cognitivos de Microsoft Azure ofrecen detección de idiomas para más de 46 idiomas y muchos más locales.

Transcripción de idiomas a partir del hablaUna solución como la de Microsoft admite actualmente 139 idiomas para la transcripción de audio a texto.
Un elemento clave de la ASR es la capacidad de ajustarse a implementaciones regionales específicas para dar cabida a la representación de la edad, el sexo, la etnia, los acentos regionales, los nombres y la terminología específicos de productos e industrias.
No puedo dejar de mencionar Whisper, el modelo ASR de código abierto de OpenAI. Las consideraciones para utilizar Whisper son:
Transcripción asíncronaLa transcripción asíncrona tiene numerosos casos de uso, uno de ellos es la creación de datos de entrenamiento NLU a partir de conversaciones con clientes. La mayoría de las organizaciones disponen de grandes cantidades de grabaciones de clientes que pueden transcribirse sin conexión y utilizar el texto para el diseño y la optimización de NLU.
La extracción generativa es una función disponible en la mayoría de los ASR, y crecerá con la llegada de los grandes modelos lingüísticos (LLM).
La ASR generativa es el proceso de utilizar la PNL para mejorar el texto de salida y hacerlo más consumible para procesos como la NLU, la PNL o simplemente la inteligibilidad humana al leer el texto.
Algunos ejemplos del paso generativo en ASR:
Puntuación y numeraciónUna de las funciones generativas más utilizadas en ASR es la adición de signos de puntuación y números, también denominada normalización inversa del texto (ITN). Esta función hace que el texto sea más legible y fácil de usar.
Especialmente en los casos en los que el discurso del usuario se transmite a la pantalla del agente y, posteriormente, se envía a un robot de asistencia al agente.
La adición de signos de puntuación puede ayudar a realizar un paso alto de NLP antes del procesamiento NLU, especialmente en el caso de la detección de los límites de las frases. La detección de los límites de las frases es útil para dividir los enunciados verbosos de los usuarios en segmentos más pequeños para el procesamiento NLU. También ayuda a detectar intenciones múltiples y a desambiguar eficazmente al usuario.

Este ejemplo de añadir puntuación y NIT es de Deepgram.
Texto generativo basado en la fuenteSe trata del proceso de optimización del texto extraído basado en un modelo específico.
Por ejemplo, con Deepgram, hay varios modelos disponibles para optimizar el texto extraído en función de la fuente de audio. Por ejemplo, los modelos específicos del caso de uso o de la fuente de audio son:
Tareas relacionadas con LLMOtras tareas generativas que pueden realizarse con el texto transcrito son el resumen, la extracción de entidades con nombre, la moderación de contenidos y la extracción de frases clave, entre otras.
Algunos proveedores de ASR permiten definir intenciones y entidades dentro de su solución ASR, por lo que estamos asistiendo a un estrecho acoplamiento de ASR y NLU.
Como ya he dicho antes, tener una buena WER ayuda a aliviar parte de la presión sobre el modelo NLU.
Los datos de entrenamiento NLU pueden utilizarse para crear y entrenar un modelo de ajuste fino basado en texto para el ASR. Esto va más allá de un modelo acústico basado en audio para el ASR.

Como se ha visto anteriormente, los LLM no suponen una amenaza para los proveedores de ASR como Deepgram… en su lugar, es una vía para aprovechar la potencia de ese LLM en particular.
Otro ejemplo es la integración de HumanFirst con el LLM Cohere, que permite a los usuarios aprovechar Cohere desde un espacio latente acelerado sin código para el diseño de NLU.
La voz y el audio serán cada vez más importantes desde el punto de vista de la CCAI y la CAI.
Especialmente debido al hecho de que ASR es una tecnología habilitadora para numerosos casos de uso de CCAI.
Debido a la especialización de la tecnología ASR, los marcos tradicionales de desarrollo de chatbots se ven obligados a buscar fuera socios y proveedores de soluciones de voz.
Las empresas de ASR también tienen una capacidad única para ampliar su huella y su propuesta de valor mediante el aprovechamiento de los LLM y la entrega de la propuesta de valor única de los LLM.
Y, por último, las empresas tradicionales de ASR pueden aumentar drásticamente el valor de sus datos de salida si se adentran en las funciones NLP y NLU a través de lo que podría denominarse ASR generativo.

Actualmente soy el Evangelista Jefe @HumanFirst. Exploro y escribo sobre todos los campos relacionados con la intersección de la IA y el lenguaje; que van desde LLMs, Chatbots, Voicebots, Marcos de Desarrollo, Data-Centric espacios latentes y más.
The post Reconocimiento automático del habla y auge de la inteligencia sonora first appeared on Planeta Chatbot.
]]>The post El estado actual de la IA conversacional first appeared on Planeta Chatbot.
]]>En la actualidad, la IA conversacional se centra excesivamente en el diseño de conversaciones con diálogos de varios turnos. Al mismo tiempo, se descuidan elementos como la cola larga de la distribución de intenciones, junto con el diseño NLU.
A estos problemas hay que añadir el enfoque aislado de la IA conversacional, la CCAI y la CX dentro de las empresas.
Otro problema son los proveedores verticales que intentan abordar todos los requisitos de la IA conversacional empresarial.
La luz en el horizonte es la aparición de la fragmentación del mercado, que es donde las organizaciones están adoptando las mejores herramientas de su clase para abordar los requisitos de la CAI. La fragmentación se perpetúa con la introducción de casos de uso de CAI y robots de voz.
El diseño de NLU también está surgiendo como metodología para la práctica astuta de datos y para detectar eficazmente señales dentro de las conversaciones existentes con los clientes, y convertir esas señales en datos de entrenamiento de NLU. El NLU Design puede considerarse un proceso acelerado de detección y gestión inteligente de intenciones.
Al convertir las conversaciones no estructuradas con los clientes en datos de formación de NLU, se puede establecer un proceso sostenible en el que las intenciones de los clientes informen la hoja de ruta de CX.
La siguiente imagen muestra un desglose del panorama actual de la tecnología de IA conversacional. Ten en cuenta que este desglose ni siquiera incluye CCAI, ASR y síntesis de voz. El ASR y la síntesis de voz son, obviamente, dos requisitos vitales para los agentes digitales habilitados para voz.

Sin embargo, lo que es evidente es la fragmentación del mercado y la aparición de las mejores herramientas horizontales para el éxito empresarial.
La abstracción de la capa de mensajería del chatbot para mejorar el diseño de las respuestas contribuye a la fragmentación. Y los Large Language Models (LLM), que están popularizando el texto generativo para las respuestas de los bots. Los LLM también están desempeñando un papel clave en la automatización de la redacción de PII.
La orquestación se convertirá en una capacidad crítica por varias razones.
Una de ellas es la capacidad de aprovechar al máximo el esfuerzo existente en chatbot para acelerar la habilitación por voz de los asistentes digitales.
En segundo lugar, la multimodalidad se verá impulsada por la idea de que los diálogos multigiro no son la solución a todas las intenciones de los clientes. Cada conversación tendrá que personalizarse en función del medio, la modalidad y los componentes conversacionales disponibles.
A este respecto, considera las siguientes intenciones de los clientes y cómo funcionará mejor un enfoque multimodal:
El proceso de diseño NLU descubrirá señales importantes expresadas por los clientes, representantes de servicio, etc. a partir de datos conversacionales históricos y en tiempo real.
El diseño de NLU produce invariablemente mejoras en la experiencia del cliente gracias a la información procesable, cualitativa y cuantitativa. Los resultados de este proceso son la mejora de la automatización, la personalización, el éxito de la atención al cliente y los datos para las funciones impulsadas por IA.
Con la atención que se presta actualmente a la CCAI y los robots de voz, la experiencia del usuario va a mejorar drásticamente. Los proveedores de tecnología se están centrando en elementos que potencien la CCAI y los robots de voz.
La innovación en el reconocimiento avanzado del habla (ASR) está resolviendo impedimentos que parecían insalvables en el pasado, como la calidad de la voz telefónica, la multiplicidad de interlocutores, el ruido de fondo, etc.
En el pasado, la adopción del ASR y la síntesis de voz se veía gravemente obstaculizada por la escasa representación de lenguas minoritarias, acentos regionales y locales. Esto se ha solucionado recientemente, sobre todo con Whisper y Microsoft.
A modo de referencia, a continuación se muestran dos matrices tecnológicas que cubren las implementaciones de chatbot y voicebot.


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, Data-Centric espacios latentes y más.
The post El estado actual de la IA conversacional first appeared on Planeta Chatbot.
]]>