Tabla de contenidos

Introducción

Hay algo inmensamente impresionante en la creación de un agente conversacional, también conocido como chatbot, con solo unas pocas líneas de código a través de Python o CURL. Y, los únicos datos de entrenamiento son una oración o dos sobre la persona y el tono del chatbot, y nada más.

Mientras conversas con el chatbot de OpenAI, no hay proliferación de respaldo, y puedes divagar, y la conversación no se atasca en la ambigüedad. Además, para el novato hay una sensación de logro por la idea de que crearon un chatbot. La generación del lenguaje natural (NLG) a la par con una conversación humana; no existe esa sensación desconocida que generalmente se asocia con NLG.

Desde que OpenAI hizo que el procesamiento de texto esté disponible con GPT-3, te has hecho la pregunta: ¿es esta la última y única interfaz que necesitarás para crear una interfaz de IA conversacional o chatbot?

¿Por qué seguir molestando con otros marcos y entornos?

Datos de entrenamiento: “La siguiente es una conversación con un asistente de IA. El asistente es útil, creativo, inteligente y muy amable ". Generación de lenguaje natural y sin intención.

Sí, hay casos en los que GPT-3 se puede utilizar en modo autónomo. Por ejemplo; un chatbot de humor a color, un chatbot divertido y sarcástico, un amigo en formato de bot, etc.  Sin embargo, actualmente, GPT-3 tiene una capacidad mínima para soportar proyectos fine-tuning.

GPT-3 está trabajando en la construcción de un punto final de ajuste fino de autoservicio que hará que esta función sea accesible para todos los usuarios, pero no hay cronogramas concretos disponibles.

Por ahora, en la mayoría de las implementaciones en producción y de carácter empresarial, GPT-3 desempeñará un papel de soporte… pero echemos un vistazo a qué extensión se puede entrenar y adaptar la API de OpenAI con información personalizada.

Chatbot básico conversacional GPT-3

Esta interfaz acepta una solicitud de entrada del usuario y el modelo devuelve una o más respuestas o finalizaciones previstas. Sumado a esto, también se presenta una posible pregunta de seguimiento. Esta posible pregunta de seguimiento se puede presentar al usuario como “es posible que también desee conocer…”

Human: What is a compiler?
AI: A compiler is a computer program that translates sourc code written in a
programming language into another computer language.
Human: What is the purpose of a compiler?

Dada una solicitud, el modelo devolverá una o más finalizaciones previstas y también puede devolver las probabilidades de tokens alternativos en cada posición.

The is an extract from the OpenAI playground, where a single line of training data is given. Each dialog turn is denoted with Human and AI.

La imagen de arriba es un extracto del playground con la descripción del bot que se muestra y la conversación que tuve con el bot. La persona del bot también se puede describir en detalle, por ejemplo:

“Eric es un chatbot que responde preguntas a regañadientes”.

Un ejemplo de la configuración de Python más simple que se ejecuta en una computadora portátil.
Un ejemplo de la configuración de Python más simple que se ejecuta en un notebook.

Para obtener un ejemplo más práctico y técnico, el asistente de IA se muestra aquí en un cuaderno escrito en Python. Tendrás que ejecutar el comando:
pip install openai

Desde aquí puedes iniciar tu código Python con:
import os
import openai

Como puedes ver, hay 17 líneas de código que componen el chatbot.

Positivos

Aquí se muestran algunas capacidades realmente especiales que pueden pasarse por alto fácilmente.

Hay algunos elementos en los que GPT-3 mira hacia el futuro. Estos incluyen el uso de NLG. También emplean una implementación de capacitación de un extremo a otro, también conocida como desaprobación por intención o implementación sin intención. Las entidades también se gestionan sin problemas:

  • El Natural Language General (NLG) es estelar; A menudo, NLG tiene una sensación desconocida. No con GPT-3. No es de extrañar que la API se destaque en la redacción de textos, el resumen y otras tareas de procesamiento de texto.
  • No hay proliferación de respaldo, la interfaz del chatbot se mantiene en pie y responde con diversas respuestas para hacer avanzar el diálogo.
  • No hay impedimentos para la digresión.
  • Aparentemente, el contexto se mantiene bastante bien.
  • La entrada ambigua también se maneja bien.

No tan positivos

GPT-3 no es un marco de desarrollo de chatbot. El ajuste fino no existe actualmente para elementos como:

  • Políticas
  • Slot filling / formularios
  • Gestión de diálogo
  • Conjuntos más grandes de datos de entrenamiento
  • Extracción de intenciones y entidades

Debido a la naturaleza vanguardista de GPT-3, será interesante ver cómo OpenAI introducirá una medida de gestión de diálogo, o afinará el chatbot con datos de entrenamiento, etc. Como se mencionó en un artículo anterior, GPT-3 tiene algunas API que son adecuadas para aumentar y respaldar una implementación de chatbot existente. La API conversacional GPT-3 es ideal para una conversación general, preguntas y respuestas, bots sencillos, etc.

Sin embargo, no cumple con los requisitos de un chatbot empresarial específico de un dominio.

Personalización del chatbot GPT-3

Hay alguna medida de personalización que es posible a través de la API, pero existen limitaciones. Estas son algunas de las funciones disponibles para usar tus propios datos. Estas opciones pueden servir como una idea de lo que le espera a GPT-3.

Crear clasificación

Dentro del código de Python, puedes ver la query:
query="It seems like I first need to go slower and make sure :(",

Con query, se proporcionan ejemplos etiquetados:
examples=[
["You can drive cross the intersection.", "Green"],
["Go slower to check the intersection", "Orange"],
["You must stop at the intersection..", "Red"]
],

Dado que query y el conjunto de ejemplos etiquetados, el modelo predecirá la etiqueta más probable para la query. Esto puede servir para clasificar texto o etiquetar oraciones.

chatbot
Se dan ejemplos de clasificación. En la verdadera forma de GPT-3, solo unas pocas líneas de datos de “entrenamiento”. La entrada del usuario está etiquetada o clasificada según los datos.

Lo interesante es que los datos de ejemplo se incluyen en la qurey. Inicialmente pensé que se habría adoptado el mismo enfoque que IBM Watson. Donde envía los datos de entrenamiento y luego hace referencia a ellos desde la query con un ID.

Crear respuestas a preguntas

Responde la pregunta especificada utilizando los documentos y ejemplos proporcionados. La API primero busca documentos o archivos cargados para encontrar el contexto relevante. El contexto relevante se combina con los ejemplos y la pregunta proporcionados, para crear la solicitud de finalización.

La pregunta con los documentos de ejemplo. En este caso, los documentos se utilizan para responder a la pregunta.
La pregunta con los documentos de ejemplo. En este caso, los documentos se utilizan para responder a la pregunta.

Una segunda query basada en la misma entrada.

Se plantea otra pregunta y la respuesta se recupera de los ejemplos proporcionados.

Crear búsqueda

El ENDPOINT calcula las puntuaciones de similitud entre la query proporcionada y los documentos. Los documentos se pueden pasar directamente a la API.

Se enumeran tres continentes y una ciudad. Se devuelve el continente al que pertenece la ciudad.
Se enumeran tres continentes y una ciudad. Se devuelve el continente al que pertenece la ciudad.

Conclusión

Hay elementos de GPT-3 que son alucinantes, las tareas relacionadas con el texto son muy útiles; resumen, simplificación, tematización, extracción de palabras clave, etc.
Hablar con la API del chatbot es surrealista. El NLG y la conciencia contextual son asombrosos. Es solo una vez que comienzas a pensar en la creación de una solución empresarial específica de dominio, y el escalado y la abstracción, donde comienza el desafío.

 

By Cobus Greyling

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

Leave a Reply

Your email address will not be published. Required fields are marked *