Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the 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 6170

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

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

Warning: Cannot modify header information - headers already sent by (output started at /home/planetac/desa.planetachatbot.com/wp-includes/functions.php:6170) in /home/planetac/desa.planetachatbot.com/wp-content/plugins/all-in-one-seo-pack/app/Common/Meta/Robots.php on line 87

Warning: Cannot modify header information - headers already sent by (output started at /home/planetac/desa.planetachatbot.com/wp-includes/functions.php:6170) in /home/planetac/desa.planetachatbot.com/wp-includes/feed-rss2.php on line 8
Landon Garrison - Planeta Chatbot https://desa.planetachatbot.com Comunidad de expertos en IA Conversacional Wed, 07 Sep 2022 10:02:21 +0000 es hourly 1 https://wordpress.org/?v=7.0 https://desa.planetachatbot.com/wp-content/uploads/2021/05/cropped-favicon-32x32.png Landon Garrison - Planeta Chatbot https://desa.planetachatbot.com 32 32 Construye clasificadores de Machine Learning sin datos ni entrenamiento con Humingbird https://desa.planetachatbot.com/construye-clasificadores-ml-sin-datos-ni-entrenamiento-solo-con-simple-configuracion-con-humingbird/?utm_source=rss&utm_medium=rss&utm_campaign=construye-clasificadores-ml-sin-datos-ni-entrenamiento-solo-con-simple-configuracion-con-humingbird https://desa.planetachatbot.com/construye-clasificadores-ml-sin-datos-ni-entrenamiento-solo-con-simple-configuracion-con-humingbird/#respond Tue, 06 Sep 2022 06:00:18 +0000 https://desa.planetachatbot.com/?p=12245 El machine learning está cada vez más presente en nuestra vida cotidiana. Desde funciones de fondo en nuestros dispositivos cotidianos hasta convertirse en una habilidad muy necesaria si eres programador. Por desgracia, hay algo que no ha cambiado: sigue siendo bastante difícil iniciarse en el machine learning si no se tiene una formación técnica. Incluso […]

The post Construye clasificadores de Machine Learning sin datos ni entrenamiento con Humingbird first appeared on Planeta Chatbot.

]]>
El machine learning está cada vez más presente en nuestra vida cotidiana. Desde funciones de fondo en nuestros dispositivos cotidianos hasta convertirse en una habilidad muy necesaria si eres programador. Por desgracia, hay algo que no ha cambiado: sigue siendo bastante difícil iniciarse en el machine learning si no se tiene una formación técnica. Incluso si eres una persona técnica que sabe codificar, el machine learning tiende a ser muy difícil, incluso para proyectos básicos como los clasificadores de Machine Learning.

Pero, ¿por qué es tan difícil empezar? Te ahorraré el ensayo de cuatro páginas y te daré las SparkNotes:

  • El machine learning por sí mismo es un reto para construir porque requiere codificación de alto nivel + matemáticas (no siempre, pero este es el caso la mayoría de las veces). Un desarrollador medio tiene que enfrentarse no a una, sino a dos curvas de aprendizaje.
  • La gran dependencia de enormes conjuntos de datos (y me refiero a conjuntos de datos MASIVOS). Los modelos de machine learning requieren del orden de 50K a 100K muestras únicas para entender un problema. En la mayoría de los casos, la recopilación de datos no supone un gran problema si se quiere trabajar en problemas muy habituales; sin embargo, si el problema se convierte en algo único, resulta muy difícil recopilar todos estos datos.
  • El entrenamiento de los modelos lleva demasiado tiempo. Incluso para tareas básicas, puedes encontrarte entrenando un modelo durante horas en un procesador de gama alta. En gran medida, esto no es factible para los desarrolladores.

Entonces, ¿cómo podemos solucionar esto? ¿Y si pudiéramos eliminar la necesidad de big data, suprimir el entrenamiento y ofrecer a los desarrolladores una experiencia sencilla sin código y con poco código? Te presentamos a Humingbird.

Humingbird: La forma más sencilla de iniciarse en el machine learning

En primer lugar, me gustaría dar un pequeño rodeo y volver a hablar de Humingbird.

Antes de que existiera Stripe, los pagos online eran uno de los proyectos más confusos en los que trabajar como desarrollador (para los que no estén familiarizados, Stripe es una herramienta para desarrolladores que hace que los pagos online sean sencillos). Había que ponerse en contacto con un banco, negociar un acuerdo, obtener la aprobación y trabajar con sus sistemas heredados. En resumen, era una barrera enorme incluso para aceptar un simple pago en línea para las empresas.

Entonces apareció Stripe, y podías pegar un pequeño programa de 6 líneas en tu backend para aceptar pagos online. Sin aplicación, sin negociaciones, simplemente plug and play. Hoy en día, Stripe impulsa la gran mayoría de los pagos en Internet, desde las grandes empresas hasta los proyectos desarrollados a pequeña escala.

¿Por qué estoy hablando de pagos? ¿No era este un blog sobre machine learning?

Aunque parezca una locura, creo que el machine learning todavía está en los «viejos tiempos» de los pagos en línea y no tenemos nada parecido a un servicio simple de plug and play. En otras palabras, no tenemos el equivalente de Stripe en machine learning.

Esta es la intención de Humingbird: una experiencia de machine learning altamente simplificada que simplemente funciona desde el principio. Sin largos ciclos de recogida de datos, ajuste de modelos, entrenamiento y codificación complicada.

Clasificadores de Machine Learning

Humingbird es una plataforma para que los desarrolladores construyan clasificadores de machine learning personalizables:

  • Poco o nada de código.
  • Sin datos (no una pequeña cantidad, literalmente sin datos).
  • Sin entrenamiento del modelo.

Pero en lugar de hablar de ello, ¡comparemos algunos ejemplos comunes!

Tareas comunes de machine learning: Humingbird frente al resto

Veamos algunos ejemplos de cómo Humingbird proporciona una simplicidad de siguiente nivel en comparación con las opciones comunes.

MNIST: Humingbird frente a TensorFlow y PyTorch

MNIST es una tarea común de nivel de entrada para las personas que aprenden el aprendizaje de máquinas. La tarea es simple: dado un dígito escrito a mano (como una imagen), predecir qué número es. Te comparto el código necesario para cada uno de los casos en los siguientes enlaces:

Humingbird no requiere preprocesamiento de datos, entrenamiento, recogida de datos ni una programación complicada. Pero, ¿y si quisiéramos predecir también un «10» escrito a mano? Todo lo que tenemos que hacer es añadir la etiqueta que podrás encontrar aquí.

Reseñas de IMDb: Humingbird vs TensorFlow y PyTorch

Otra tarea común en el machine learning es el conjunto de datos de críticas de películas de IMDb. Esta tarea se utiliza comúnmente para predecir el sentimiento en un pasaje de texto y hasta el día de hoy se utiliza como punto de referencia. Vamos a comparar los frameworks comunes y Humingbird:

Ya te has hecho una idea. Con Humingbird, puedes construir clasificadores de machine learning a medida en un abrir y cerrar de ojos.

Mi objetivo: hacer que el machine learning sea accesible y sencillo

Como probablemente puedes adivinar, mi motivación para construir Humingbird es muy simple: Quiero que el machine learning sea más sencillo para todo el mundo, aunque sea en lo más simple.

Si quieres saber más sobre el proyecto, dirígete a este post.

Aquí puedes leer los documentos y empezar.

Más contenido en PlainEnglish.io. Suscríbete a nuestra newsletter semanal gratuita. Siguenos en Twitter y LinkedIn. Echa un vistazo a nuestro Community Discord y únete a nuestro Talent Collective.

The post Construye clasificadores de Machine Learning sin datos ni entrenamiento con Humingbird first appeared on Planeta Chatbot.

]]>
https://desa.planetachatbot.com/construye-clasificadores-ml-sin-datos-ni-entrenamiento-solo-con-simple-configuracion-con-humingbird/feed/ 0
Despliegue de un filtro de modelo de lenguaje sin datos utilizando Humingbird https://desa.planetachatbot.com/despliegue-de-un-filtro-de-modelo-de-lenguaje-sin-datos-utilizando-humingbird/?utm_source=rss&utm_medium=rss&utm_campaign=despliegue-de-un-filtro-de-modelo-de-lenguaje-sin-datos-utilizando-humingbird https://desa.planetachatbot.com/despliegue-de-un-filtro-de-modelo-de-lenguaje-sin-datos-utilizando-humingbird/#respond Tue, 16 Aug 2022 08:00:00 +0000 https://desa.planetachatbot.com/?p=12003 Los modelos lingüísticos como GPT-3, OPT, BERT y BlenderBot han cambiado el panorama del machine learning y del desarrollo de aplicaciones. Hoy en día, podemos construir aplicaciones de una manera natural y fácil de usar como nunca antes. Por desgracia, los modelos lingüísticos no siempre aciertan. Está bien documentado que los modelos lingüísticos son capaces […]

The post Despliegue de un filtro de modelo de lenguaje sin datos utilizando Humingbird first appeared on Planeta Chatbot.

]]>

Los modelos lingüísticos como GPT-3, OPT, BERT y BlenderBot han cambiado el panorama del machine learning y del desarrollo de aplicaciones. Hoy en día, podemos construir aplicaciones de una manera natural y fácil de usar como nunca antes.

Por desgracia, los modelos lingüísticos no siempre aciertan. Está bien documentado que los modelos lingüísticos son capaces de dar respuestas sesgadas que pueden ser perjudiciales si no se siguen correctamente. En vista de ello, muchas empresas han implementado algo llamado filtro de toxicidad para sus respectivos servicios. Una forma sencilla de pensar en un filtro de toxicidad es un sistema que puede detectar cuando un modelo lingüístico emite una respuesta potencialmente grosera, sesgada o explícita.

Los filtros de toxicidad también pueden utilizarse fuera de los modelos lingüísticos. De hecho, se puede utilizar un filtro de toxicidad para detectar mejor el spam, el acoso y otros textos potencialmente dañinos en las plataformas públicas. Muchas plataformas de medios sociales como Facebook o Twitter utilizan herramientas de detección similares para ayudar a sus moderadores a detectar más rápidamente el contenido potencialmente malo.

En este tutorial, vamos a construir una aplicación de Python para filtrar las salidas de GPT-2 y así poder desplegar una versión segura y fácil de usar. ¿Y lo mejor? No necesitaremos datos, entrenamiento de modelos o programas gigantescos.


Humingbird: La forma fácil de construir clasificadores ML

Humingbird es una librería de machine learning en Python que permite construir clasificadores de imagen y texto sin datos, sin entrenamiento y con una configuración sencilla. Humingbird es la solución ideal para los desarrolladores que quieren una forma verdaderamente sencilla de comenzar con la clasificación de ML.

Como prometimos, vamos a construir un filtro de respuesta para GPT-2, similar a lo que OpenAI tiene con su API GPT-3.

Paso 1: Descargar los paquetes necesarios

Empecemos por descargar todos los paquetes que necesitamos para nuestro filtro de contenido GPT-2. En tu terminal, ejecuta los siguientes comandos:

pip install transformers
pip install humingbird
pip install flask

Necesitaremos Transformers para descargar GPT-2, Humingbird para nuestro filtro y Flask para desplegar la aplicación.

A continuación, vamos a descargar el modelo GPT-2. Vamos a descargar el modelo de 124M parámetros, ya que es la versión más eficiente computacionalmente, sigue aquí para descargarlo. 

Al ejecutar este código se descargará GPT-2 en tu ordenador.

Paso 2: Construir nuestro filtro de contenido con Humingbird

A continuación, vamos a construir un filtro de contenido utilizando Humingbird. Este modelo será capaz de predecir si la salida de GPT-2 es tóxica o no, con su correspondiente puntuación de confianza.

Normalmente, tendríamos que reunir un conjunto de datos gigantesco (más de 100.000 ejemplos) para entrenar un modelo durante horas. En Humingbird, todo lo que tenemos que hacer es ejecutar el siguiente fragmento:

Llamamos al método humingbird.Text.predict() para categorizar un fragmento de texto (en nuestro caso, como tóxico o no tóxico). Si quisiéramos añadir una tercera categoría, ¡sólo tendríamos que añadirla al parámetro labels!

Para los que se preguntan, ¿cómo es esto posible? ¿Cómo se pueden hacer predicciones sin datos?

Humingbird aprovecha la potencia de los transformadores de aprendizaje Zero-Shot en el backend. ¡Durante muchos años, este problema ha sido inalcanzable o muy inexacto para la mayoría de los métodos, pero el trabajo reciente en transformadores ha hecho posible la predicción sin datos!

Paso 3: Probar el filtro de contenido en las salidas de GPT-2

Tendremos que empezar con una pregunta para completar una frase. Aunque GPT-2 es capaz de generar texto sin una indicación, normalmente lo hace mejor cuando tiene una entrada con la que trabajar. Aquí el enlace. 

Esto debería dar una salida similar a esta:

Generated text: I went for a walk today and saw a man standing in front of his shop...-------------- Filter response:[
{
'className': 'not toxic',
'score': 0.81
},

{
'className': 'toxic',
'score': 0.19
}
]

Nuestro filtro de contenido dio a esta salida en particular un 81% de posibilidades de no ser tóxica y un 19% de posibilidades de serlo. En otras palabras, ¡esta salida es buena!

Es importante tener en cuenta que no todas las salidas del filtro serán exactamente iguales, ya que la GPT-2 puede dar una respuesta diferente que afectará a nuestro filtro.

Paso 4: Desplegar nuestro modelo GPT-2 con respuestas filtradas por contenido

Sería una pena no desplegar esta joya absoluta en la naturaleza para que los usuarios la utilicen.

Para ello, voy a utilizar Flask, que es un popular marco de despliegue en Python. Efectivamente, estamos construyendo una API para generar texto desde GPT-2 con un filtro, similar a como OpenAI construyó su API GPT-3. Aquí el código

Podemos enviar el siguiente objeto JSON a nuestra API:

Si el filtro de contenido se activa, debería dar una respuesta similar a la siguiente



Conclusión

Hemos desplegado un modelo de lenguaje en la naturaleza con un filtro de contenido usando Humingbird. Usando Humingbird, probablemente nos hemos ahorrado más de 40 horas de codificación gracias a que no hay que recoger datos ni entrenar un modelo.

Si estás interesado en usar Humingbird para tu próximo proyecto, visita el repo en:

https://github.com/lando22/humingbird

Donde puedes leer los documentos y construir la clasificación ML más rápido que nunca.
Gracias por leer.
Landon

Más contenido en PlainEnglish.io. Suscríbete a nuestro boletín semanal gratuito. Síguenos en Twitter y LinkedIn. Echa un vistazo a nuestro Community Discord y únete a nuestro Talent Collective.

The post Despliegue de un filtro de modelo de lenguaje sin datos utilizando Humingbird first appeared on Planeta Chatbot.

]]>
https://desa.planetachatbot.com/despliegue-de-un-filtro-de-modelo-de-lenguaje-sin-datos-utilizando-humingbird/feed/ 0
Un chatbot de texto e imagen de 5 minutos con cero datos usando Humingbird https://desa.planetachatbot.com/chatbot-texto-imagen-5-minutos-cero-datos-usando-humingbird/?utm_source=rss&utm_medium=rss&utm_campaign=chatbot-texto-imagen-5-minutos-cero-datos-usando-humingbird https://desa.planetachatbot.com/chatbot-texto-imagen-5-minutos-cero-datos-usando-humingbird/#respond Wed, 03 Aug 2022 08:00:05 +0000 https://desa.planetachatbot.com/?p=11945 La integración de la IA en el backend de tu proyecto se ha hecho cada vez más popular en los últimos años. Muchos sectores han adoptado la IA para mejorar la productividad, reducir los costes y agilizar los procesos de tus aplicaciones. Una de estas formas en que la IA puede mejorar la experiencia de […]

The post Un chatbot de texto e imagen de 5 minutos con cero datos usando Humingbird first appeared on Planeta Chatbot.

]]>

  • La integración de la IA en el backend de tu proyecto se ha hecho cada vez más popular en los últimos años. Muchos sectores han adoptado la IA para mejorar la productividad, reducir los costes y agilizar los procesos de tus aplicaciones. Una de estas formas en que la IA puede mejorar la experiencia de una aplicación es mediante el uso de un Chatbot. Un Chatbot es un agente automatizado que puede interactuar con un usuario hablando con él, respondiendo a sus peticiones y, en general, siendo útil. En otras palabras, los Chatbots pueden hacer que la experiencia del usuario sea mucho más natural y fluida.

La parte desafortunada es que los chatbots pueden llevar mucho tiempo para construir, diseñar y desplegar. Recopilar datos de entrenamiento, construir un modelo o incluso dedicar tiempo a aprender un servicio puede llevar mucho tiempo. Afortunadamente, Humingbird está aquí para salvar el día. Utilizando el método Text de Humingbird para la clasificación de textos, podemos aplicar las mismas técnicas para construir un chatbot. Para aquellos que no conozcan Humingbird, les recomiendo que consulten la entrada original del blog aquí; el resumen es que puedes construir fácilmente clasificadores ML sin datos ni entrenamiento.

Dicho esto, creo que es hora de construir un chatbot:

Creación de un chatbot con capacidad de reconocimiento de imágenes

El esquema de nuestro proyecto es sencillo: vamos a construir un chatbot para una tienda ficticia que vende helados. Este chatbot será capaz de:

  • Responder a las preguntas generales de los usuarios sobre los helados
  • Reconocer imágenes de diferentes sabores de helado y responder en consecuencia
  • Ser capaz de retroceder si el chatbot no tiene una puntuación de confianza lo suficientemente alta

Nota al margen: Aunque se trata de un ejemplo sencillo y algo divertido, el esquema de este proyecto podría utilizarse en muchas aplicaciones. La fusión de las habilidades visuales y conversacionales en una sola plataforma podría ayudar a automatizar una serie de tareas diferentes, como la atención al cliente automatizada.

Para continuar con el resto de este tutorial, vamos a instalar el paquete Humingbird con el comando:

pip install humingbird

Paso 1: Construir nuestro sistema de reconocimiento de intenciones

En primer lugar, tenemos que empezar a construir un sistema de reconocimiento de intenciones. Para los que no estén familiarizados, el reconocimiento de intenciones es la tarea de predecir lo que «significa» una consulta. En otras palabras, establecemos un mapa predefinido de lo que podría decirse a nuestro chatbot dada la solicitud.

Para nuestro chatbot de helados, vamos a utilizar las siguientes intenciones:

# intents[greeting, goodbye, menu, prices, start_order] 

Todos ellos son bastante autoexplicativos en cuanto a cuáles serán sus «roles».

Para construir nuestro reconocedor de intenciones, vamos a utilizar el código que puedes encontrar en esta URL.

Esto nos dará la siguiente salida: 

[
{
"className": "menu",
"score": 0.84,
}, {
"className": "greeting",
"score": 0.09
},

{
"className": "prices",
"score": 0.06,
}, {
"className": "goodbye",
"score": 0.01
}, {
"className": "start_order",
"score": 0.01
}
]

¡Impresionante! Nuestro sistema de reconocimiento de intención predijo correctamente que la salida era que el usuario quería ver el menú. Hay un problema: ¡no tenemos ninguna respuesta! 

Vamos a construirlo.

Paso 2: Construir un sistema de respuesta

No te preocupes, podemos usar el siguiente diccionario de Python para nuestra biblioteca de respuestas:

Ahora podemos construir una función sencilla para reconocer las intenciones y responder en consecuencia. En este enlace te comparto el código.

Lo que generará una respuesta de nuestro chatbot, como por ejemplo:

Welcome! What can i help you with?

En este punto, tenemos todo lo que necesitamos para un chatbot basado en texto. Podemos mejorar nuestro chatbot añadiendo más intenciones y mejores respuestas.

Pero queremos añadir una pieza más: capacidades visuales.

Paso 3: Añadir capacidades visuales a nuestro chatbot

Hasta este paso, hemos construido un simple chatbot basado en texto. Aunque hemos ahorrado mucho tiempo y hemos abstraído mucho código, no hemos hecho nada diferente de lo que pueden hacer la mayoría de las plataformas de chatbot.

Vamos a dar un paso en una dirección diferente añadiendo un componente de comprensión visual a nuestro chatbot. En nuestro sencillo ejemplo de un chatbot de una tienda de helados, vamos a reconocer diferentes sabores de helado y responder con un enlace de compra ficticio.

Para hacer esto con Humingbird, podemos utilizar el siguiente fragmento de código. Puedes utilizar esta imagen:

Y nuestro fragmento de código volverá:

[  {
"className": "strawberry ice cream"
"score: 0.93
}, {
"className": "vanilla ice cream",
"score": 0.05,
}, {
"className": "chocolate ice cream"
"score": 0.02
}]

Impresionante. Hemos hecho la parte más difícil con sólo unas pocas líneas de código. Ahora, vamos a ponerlo todo junto añadiendo algunos «intentos visuales» con una función visual_intent_detection. ¿Cómo hacerlo? Utiliza el código que te comparto en este enlace

Que devolverá (con la imagen de ejemplo de arriba:

Great choice! 
Here is the checkout link: https://www.fakeicecream.com/checkout/strawberry

¡Lo hemos hecho!

Conclusión

En este tutorial, construimos un chatbot muy básico basado en texto e imágenes usando Humingbird. Nos ahorramos toneladas de tiempo al no recopilar datos, nos abstrajimos de mucho código complicado y no necesitamos ningún entrenamiento para construir este modelo multimodal. Aunque este chatbot podría mejorarse y el concepto es un poco tonto, los chatbots que responden textual y visualmente tienen una enorme aplicación. ¿Imagina que pudiéramos construir un chatbot visual para que los estudiantes entendieran imágenes médicas, o para que detectaran puntos de referencia y aprendieran sobre su historia?

Espero que este tutorial haya sido útil para construir una aplicación divertida con Humingbird. No dudes en compartir este artículo. Si quieres ver un tutorial sobre cómo implementar este sistema, ¡déjame un comentari

The post Un chatbot de texto e imagen de 5 minutos con cero datos usando Humingbird first appeared on Planeta Chatbot.

]]>
https://desa.planetachatbot.com/chatbot-texto-imagen-5-minutos-cero-datos-usando-humingbird/feed/ 0