Tabla de contenidos
Introducción
Si eres nuevo en el procesamiento del lenguaje natural (NLP), una introducción fácil a la funcionalidad básica es AutoNLP de 🤗 HuggingFace. Es una manera fácil de entrenar, evaluar e implementar modelos de NLP de última generación para diversas aplicaciones.
AutoNLP se encarga de seleccionar el mejor modelo, el ajuste y la implementación.
Si una empresa puede reducir la barrera de entrada para la IA en general, y la IA conversacional en específico, seguramente habrá interés. La facilidad de acceso inicial debe ser doble;
- Técnico
- Costo
Obviamente, también presenta una propuesta de valor convincente.
Poder acceder y experimentar con software a través de Jupyter Notebooks sin costo, sin demasiados requisitos de conocimiento técnico, es importante para crear una masa crítica en la adopción.
Es por eso que 🤗 HuggingFace está prosperando con su biblioteca de código abierto y de fácil acceso para una serie de tareas de procesamiento del lenguaje natural.
Hay similitudes sorprendentes en la funcionalidad NLP de GPT-3 y 🤗 HuggingFace, siendo este último obviamente líder en las áreas de funcionalidad, flexibilidad y ajuste fino.
Los modelos previamente entrenados para tareas de comprensión del lenguaje natural (NLU) permiten la creación rápida de prototipos y la funcionalidad instantánea. El aprendizaje por transferencia es una técnica para entrenar un modelo de aprendizaje automático para una tarea mediante el uso de conocimientos de otra tarea.
🤗 HuggingFace está democratizando la NLP, esto se está logrando actuando como catalizador y haciendo que el trabajo a nivel de investigación en NLP sea accesible para simples mortales.
Es importante entender que 🤗 HuggingFace es una empresa de resolución de problemas de procesamiento de lenguaje natural, y no una empresa de marco de desarrollo de chatbot por decir.
Sus canales y modelos se pueden usar para aumentar un marco de chatbot para realizar varias tareas, como verá más adelante en este artículo. Pero elementos como la implementación operativa y la gestión de intenciones y entidades no forman parte de su ámbito. Junto con el desarrollo y la gestión del diálogo.
Consideraciones para la IA conversacional
Hay algunas consideraciones generales en lo que respecta a las opciones de tecnología de IA conversacional para cualquier empresa.
Costos, hosting y barreras técnicas
El primer nivel incluye barreras técnicas, de hospedaje y de costos. Con 🤗 HuggingFace no hay impedimento de costo inicial, la creación de prototipos se puede realizar dentro de Jupyter Notebooks.
Y los entornos de producción pueden alojarse en la nube o instalarse localmente. Las barreras técnicas de entrada en términos de habilidades son relativamente bajas; 🤗 HuggingFace logró democratizar la NLP para las masas.
Solución completa, servicios NLU / P y ajuste fino
En cuanto al segundo nivel, es importante comprender cuáles son los requisitos. Para un chatbot, 🤗 HuggingFace no es una solución completa; que carece en las áreas de:
- Gestión y desarrollo del estado de diálogo
- Intención operativa y creación y gestión de entidades.
La comprensión y el procesamiento del lenguaje natural son los pilares de 🤗 HuggingFace. Con amplias avenidas de Fine Tuning. Debe tenerse en cuenta que el ajuste fino de 🤗 HuggingFace es un gran paso adelante desde la fase inicial de creación de prototipos y puede volverse técnico.
🤗 HuggingFace es una herramienta de NLP, y aunque la funcionalidad está disponible como la generación de lenguaje natural y la extracción de entidades, para la operación diaria del chatbot y el escalado no es una opción perfecta, como se mencionó anteriormente. Se requiere una solución integral para la administración del estado del diálogo y la implementación y administración de la entidad y la intención granular.
Escalado, lenguajes específicos y aprendizaje automático
El tercer nivel de consideraciones son el escalado, los lenguajes específicos y el aprendizaje automático. Scaling abordó el proceso de agregar aspectos conversacionales como desambiguación, digresión, limitar la proliferación de reserva, formularios y relleno de espacios, etc. Una vez más, este no es el fuerte de 🤗 HuggingFace.
🤗 HuggingFace puede ayudar a entrenar a un modelo para un nuevo idioma. El aprendizaje automático se incorporará y ayudará en el desarrollo del chatbot. 🤗 HuggingFace es ideal para una primera pasada de NLP de orden superior en la entrada del usuario.
Chatbots
Existe una gran diferencia entre las herramientas de procesamiento del lenguaje natural (NLP) y un marco de desarrollo de chatbot. Las herramientas comunes de NLP incluyen preguntas y respuestas, clasificación, resumen, extracción de palabras clave, extracción de entidades nombradas, etc.
Estas herramientas se pueden implementar como un nivel superior en una pila de tecnología de chatbot de un chatbot. Actuando como una capa de preprocesamiento para la entrada del usuario. Este procesamiento puede incluir detección de límites de oración, identificación de idioma, etc.
La siguiente capa es Comprensión del lenguaje natural (NLU). Un requisito clave aquí es, en un nivel muy granular, definir intenciones (verbos) y entidades (sustantivos) que deben detectarse.
Áreas en el marco de desarrollo de chatbot donde 🤗 HuggingFace puede hacer una contribución.
Puedes leer más sobre 🤗 Extracción de entidades HuggingFace. Como se mencionó anteriormente, se requiere una intención granular y extracción de entidades, que un equipo debe mantener diariamente con una sobrecarga limitada.
Podría ser posible a través de 🤗 HuggingFace, pero para un entorno operativo, la tarea de administrar intenciones y entidades es un proceso continuo y requiere una interfaz que permita una fácil administración.
Si bien la mayoría de los entornos de chatbot convergen en la parte de NLU, existe una divergencia considerable sobre cómo se encuentra la gestión y el desarrollo del diálogo. Independientemente del enfoque, esta es una parte vital del funcionamiento del chatbot, pero también de la administración. Un área en la que play HuggingFace no juega.
Las respuestas de diálogo se pueden aumentar con Natural Language Generation (NLG). Aunque esto todavía es experimental y no es una corriente principal en los sistemas de producción, es un área en la que 🤗 HuggingFace sobresale.
Procesamiento natural del lenguaje
Aquí hay algunos ejemplos prácticos de cómo 🤗 HuggingFace se puede implementar dentro de un marco de desarrollo de chatbot existente.
Análisis de los sentimientos
Clasificar secuencias según sentimientos positivos o negativos.
Input:
classifier = pipeline("sentiment-analysis")
classifier("I am not impressed with their slow and unfriendly service.")
Output:
[{'label': 'NEGATIVE', 'score': 0.9987296462059021}]
Pregunta y respuesta
Input:
q_a = pipeline("question-answering")context = "Mars is the fourth planet from the Sun and the second-smallest planet in the Solar System, being larger than only Mercury. In English, Mars carries the name of the Roman god of war and is often referred to as the Red Planet. The latter refers to the effect of the iron oxide prevalent on Mars's surface, which gives it a reddish appearance distinctive among the astronomical bodies visible to the naked eye.[18] Mars is a terrestrial planet with a thin atmosphere, with surface features reminiscent of the impact craters of the Moon and the valleys, deserts and polar ice caps of Earth."question = "Who is the Roman God of war?"q_a({"question": question, "context": context})
Output:
{'answer': 'Mars', 'end': 4, 'score': 0.4511910080909729, 'start': 0}
Generación de texto
Input:
text = "Mars is the fourth planet from the Sun and the second-smallest planet in the Solar System."text_generator = pipeline("text-generation")text_generator(text)
Output:
Setting `pad_token_id` to `eos_token_id`:50256 for open-end generation.[{'generated_text': 'Mars is the fourth planet from the Sun and the second-smallest planet in the Solar System.\n\nThe Sun takes about 70 percent of the solar wind energy that travels to the Sun and about 100 percent is stored in the Sun.\n\n'}]
Reconocimiento de entidad nombrada
Input:
ner = pipeline("ner")text = "Johannesburg is located in South Africa in the contimnet of Africa"ner(text)
Output:
[{'end': 12, 'entity': 'I-LOC', 'index': 1, 'score': 0.9987455, 'start': 0, 'word': 'Johannesburg'}, {'end': 32, 'entity': 'I-LOC', 'index': 5, 'score': 0.99958795, 'start': 27, 'word': 'South'}, {'end': 39, 'entity': 'I-LOC', 'index': 6, 'score': 0.9996102, 'start': 33, 'word': 'Africa'}, {'end': 66, 'entity': 'I-LOC', 'index': 14, 'score': 0.6802336, 'start': 60, 'word': 'Africa'}]
Traducción
Inglés a alemán:
translator = pipeline("translation_en_to_de")text = "Mars is the fourth planet from the Sun and the second-smallest planet in the Solar System."translator(text)[{'translation_text': 'Mars ist der vierte Planet der Sonne und der zweitkleinste Planet im Sonnensystem.'}]
Inglés a francés:
translator = pipeline("translation_en_to_fr")
text = "Mars is the fourth planet from the Sun and the second-smallest planet in the Solar System."translator(text)[{'translation_text': 'Mars est la quatrième planète du Soleil et la deuxième plus petite planète du Système solaire.'}]
Conclusión
🤗 HuggingFace se autodenomina la comunidad de IA que construye el futuro.
Y su vehículo es construir, entrenar e implementar modelos de vanguardia basados en referencias de código abierto en el procesamiento del lenguaje natural.
El desafío es saber qué tecnología usar para qué tarea. Y combinando tecnologías de tal manera, que el escalado no se vea impedido. Todo el tiempo agregando nuevas funcionalidades.
🤗 HuggingFace puede ayudar a mejorar cualquier chatbot con procesos de soporte, pero debe implementarse de acuerdo con su propósito previsto.