Skip to main content

Introducción

En esta publicación de blog, presentamos cómo crear modelos de OpenAI dentro de MindsDB. Este ejemplo es un análisis de sentimientos donde inferimos las emociones detrás de un texto. Los datos de entrada se toman de nuestra base de datos de muestra de MongoDB.

Prerrequisitos

Para seguir el tutorial, puedes registrarte para obtener una cuenta en cloud.mindsdb.com. Alternativamente, dirígete a la documentación de MindsDB y sigue las instrucciones para configurar manualmente una instancia local de MindsDB a través de Docker o pip.

Cómo Conectar MindsDB a una Base de Datos

Utilizamos una colección de nuestra base de datos de demostración pública de MongoDB, así que comencemos conectando MindsDB a ella. Puedes usar Mongo Compass o Mongo Shell para conectar nuestra base de datos de muestra de esta manera:
test> use mindsdb
mindsdb> db.databases.insertOne({
            'name': 'mongo_demo_db',
            'engine': 'mongodb',
            'connection_args': {
                "host": "mongodb+srv://user:MindsDBUser123!@demo-data-mdb.trzfwvb.mongodb.net/",
                "database": "public"
            }
        })

Tutorial

En este tutorial, creamos un modelo predictivo para inferir emociones detrás de un texto, una tarea también conocida como análisis de sentimientos. Ahora que hemos conectado nuestra base de datos a MindsDB, consultemos los datos que se utilizarán en el ejemplo:
mindsdb> use mongo_demo_db
mongo_demo_db> db.amazon_reviews.find({}).limit(3)
Aquí está la salida:
{
  _id: '63d013b5bbca62e9c7774b1d',
  product_name: 'All-New Fire HD 8 Tablet, 8 HD Display, Wi-Fi, 16 GB - Includes Special Offers, Magenta',
  review: 'Late gift for my grandson. He is very happy with it. Easy for him (9yo ).'
}
{
  _id: '63d013b5bbca62e9c7774b1e',
  product_name: 'All-New Fire HD 8 Tablet, 8 HD Display, Wi-Fi, 16 GB - Includes Special Offers, Magenta',
  review: "I'm not super thrilled with the proprietary OS on this unit, but it does work okay and does what I need it to do. Appearance is very nice, price is very good and I can't complain too much - just wish it were easier (or at least more obvious) to port new apps onto it. For now, it helps me see things that are too small on my phone while I'm traveling. I'm a happy buyer."
}
{
  _id: '63d013b5bbca62e9c7774b1f',
  product_name: 'All-New Fire HD 8 Tablet, 8 HD Display, Wi-Fi, 16 GB - Includes Special Offers, Magenta',
  review: 'I purchased this Kindle Fire HD 8 was purchased for use by 5 and 8 yer old grandchildren. They basically use it to play Amazon games that you download.'
}
Creemos una colección de modelos para identificar el sentimiento de todas las reseñas:
mongo_demo_db> use mindsdb
mindsdb> db.models.insertOne({
            name: 'sentiment_classifier',
            predict: 'sentiment',
            training_options: {
                        engine: 'openai',
                        prompt_template: 'describe the sentiment of the reviews strictly as "positive", "neutral", or "negative". "I love the product":positive "It is a scam":negative "{{review}}.":'
                }
        })
En la práctica, el insertOne método desencadena que MindsDB genere una colección de IA llamada sentiment_classifier que utiliza la integración de OpenAI para predecir un campo llamado sentiment. El modelo se crea dentro del mindsdb proyecto predeterminado. En MindsDB, los proyectos son una forma natural de mantener separados los artefactos, como modelos o vistas, según la tarea predictiva que resuelven. Puedes aprender más sobre los proyectos de MindsDB aquí. La clave training_options especifica los parámetros que requiere este manejador.
  • El parámetro engine define que usamos el motor openai.
  • El parámetro prompt_template transmite la estructura de un mensaje que se completará con texto adicional generado por el modelo.
Sigue esta instrucción para configurar la integración de OpenAI en MindsDB.
Una vez que el método insertOne ha comenzado la ejecución, podemos verificar el estado del proceso de creación con la siguiente consulta:
mindsdb> db.getCollection('models').find({
            'name': 'sentiment_classifier'
        })
Puede tomar un tiempo registrarse como completo dependiendo de la conexión a internet. Una vez que la creación esté completa, el comportamiento es el mismo que con cualquier otra colección de IA: puedes consultarla ya sea especificando datos sintéticos en la consulta real:
mindsdb> db.sentiment_classifier.find({
            review: 'It is ok.'
        })
Aquí están los datos de salida:
{
  sentiment: 'neutral',
  review: 'It is ok.'
}
O uniéndola con una colección para predicciones por lotes:
mindsdb> db.sentiment_classifier.find(
            {
                'collection': 'mongo_demo_db.amazon_reviews'
            },
            {
                'sentiment_classifier.sentiment': 'sentiment',
                'amazon_reviews.review': 'review'
            }
        ).limit(3)
Aquí están los datos de salida:
{
  sentiment: 'positive',
  review: 'Late gift for my grandson. He is very happy with it. Easy for him (9yo ).'
}
{
  sentiment: 'positive',
  review: "I'm not super thrilled with the proprietary OS on this unit, but it does work okay and does what I need it to do. Appearance is very nice, price is very good and I can't complain too much - just wish it were easier (or at least more obvious) to port new apps onto it. For now, it helps me see things that are too small on my phone while I'm traveling. I'm a happy buyer."
}
{
  sentiment: 'positive',
  review: 'I purchased this Kindle Fire HD 8 was purchased for use by 5 and 8 yer old grandchildren. They basically use it to play Amazon games that you download.'
}
La colección amazon_reviews se utiliza para hacer predicciones por lotes. Al unir el modelo sentiment_classifier con la colección amazon_reviews, el modelo utiliza todos los valores del campo review.

Aprovecha las Capacidades de NLP con MindsDB

Al integrar bases de datos y OpenAI utilizando MindsDB, los desarrolladores pueden extraer fácilmente información de datos de texto con solo unos pocos comandos SQL. Estos potentes modelos de procesamiento de lenguaje natural (NLP) son capaces de responder preguntas con o sin contexto y completar indicaciones generales. Además, estos modelos están impulsados por grandes modelos de lenguaje pre-entrenados de OpenAI, por lo que no hay necesidad de trabajo de desarrollo manual. En última instancia, esto proporciona a los desarrolladores una forma fácil de incorporar potentes capacidades de NLP en sus aplicaciones, ahorrando tiempo y recursos en comparación con los métodos y pipelines de desarrollo de ML tradicionales. En resumen, ¡MindsDB hace posible que los desarrolladores aprovechen el poder de OpenAI de manera eficiente! MindsDB es ahora la plataforma de aprendizaje automático aplicado de código abierto de más rápido crecimiento en el mundo. Su comunidad continúa contribuyendo a más de 70 integraciones de fuentes de datos y marcos de ML. ¡Mantente atento a las próximas características, incluyendo más control sobre los parámetros de interfaz y el ajuste fino de modelos directamente desde MindsDB! Experimenta con los modelos de OpenAI dentro de MindsDB y desbloquea la capacidad de ML sobre tus datos en minutos. Recuerda registrarte para obtener una cuenta de demostración gratuita y seguir los tutoriales, quizás esta vez utilizando tus propios datos. Finalmente, si la visión de MindsDB de democratizar el ML te parece emocionante, dirígete a nuestro Slack de la comunidad, donde puedes obtener ayuda y encontrar personas para charlar sobre el uso de otras fuentes de datos disponibles, marcos de ML, o escribir un manejador para traer el tuyo propio! Sigue nuestra introducción a la integración de OpenAI de MindsDB aquí. Además, tenemos una variedad de tutoriales que utilizan MySQL y MongoDB:

¿Qué sigue?

¡Diviértete mientras lo pruebas tú mismo! Si este tutorial fue útil, por favor danos una estrella en GitHub aquí.