Skip to main content

Introducción

En esta publicación de blog, presentamos cómo crear modelos de OpenAI dentro de MindsDB. En este ejemplo, hacemos una pregunta a un modelo y obtenemos una respuesta. Los datos de entrada se toman de nuestra base de datos MySQL de muestra.

Requisitos previos

Para seguir, 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.

Tutorial

En este tutorial, creamos un modelo predictivo para responder preguntas en un dominio específico. Usamos una tabla de nuestra base de datos de demostración pública de MySQL, así que comencemos conectando MindsDB a ella:
CREATE DATABASE mysql_demo_db
WITH ENGINE = 'mysql',
PARAMETERS = {
    "user": "user",
    "password": "MindsDBUser123!",
    "host": "db-demo-data.cwoyhfn6bzs0.us-east-1.rds.amazonaws.com",
    "port": "3306",
    "database": "public"
};
Ahora que hemos conectado nuestra base de datos a MindsDB, consultemos los datos que se utilizarán en el ejemplo:
SELECT *
FROM mysql_demo_db.questions
LIMIT 3;
Aquí está la salida:
+------------------+--------------------------------------------------------+-------------+
| article_title    | question                                               | true_answer |
+------------------+--------------------------------------------------------+-------------+
| Alessandro_Volta | Was Volta an Italian physicist?                        | yes         |
| Alessandro_Volta | Is Volta buried in the city of Pittsburgh?             | no          |
| Alessandro_Volta | Did Volta have a passion for the study of electricity? | yes         |
+------------------+--------------------------------------------------------+-------------+
Creemos una tabla modelo para responder todas las preguntas del conjunto de datos de entrada:
Antes de crear un modelo de OpenAI, por favor crea un motor, proporcionando tu clave API de OpenAI:
CREATE ML_ENGINE openai_engine
FROM openai
USING
	api_key = 'your-openai-api-key';
CREATE MODEL question_answering_model
PREDICT answer
USING
    engine = 'openai_engine',
    prompt_template = 'answer the question of text:{{question}} about text:{{article_title}}';
En la práctica, la declaración CREATE MODEL hace que MindsDB genere una tabla de IA llamada question_answering_model que utiliza la integración de OpenAI para predecir una columna llamada answer. El modelo reside dentro del proyecto mindsdb 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 cláusula USING especifica los parámetros que requiere este controlador.
  • 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 la declaración CREATE MODEL ha comenzado a ejecutarse, podemos verificar el estado del proceso de creación con la siguiente consulta:
DESCRIBE question_answering_model;
Puede tardar un tiempo en 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 tabla de IA - puedes consultarla ya sea especificando datos sintéticos en la consulta real:
SELECT article_title, question, answer
FROM question_answering_model
WHERE question = 'Was Abraham Lincoln the sixteenth President of the United States?'
AND article_title = 'Abraham_Lincoln';
Aquí están los datos de salida:
+------------------+-------------------------------------------------------------------+------------------------------------------------------------------------+
| article_title    | question                                                          | answer                                                                 |
+------------------+-------------------------------------------------------------------+------------------------------------------------------------------------+
| Abraham_Lincoln  | Was Abraham Lincoln the sixteenth President of the United States? | Yes, Abraham Lincoln was the sixteenth President of the United States. |
+------------------+-------------------------------------------------------------------+------------------------------------------------------------------------+
O uniéndola con otra tabla para predicciones por lotes:
SELECT input.article_title, input.question, output.answer
FROM mysql_demo_db.questions AS input
JOIN question_answering_model AS output
LIMIT 3;
Aquí están los datos de salida:
+------------------+--------------------------------------------------------+--------------------------------------------------------+
| article_title    | question                                               | answer                                                 |
+------------------+--------------------------------------------------------+--------------------------------------------------------+
| Alessandro_Volta | Was Volta an Italian physicist?                        | Yes, Volta was an Italian physicist.                   |
| Alessandro_Volta | Is Volta buried in the city of Pittsburgh?             | No, Volta is not buried in the city of Pittsburgh.     |
| Alessandro_Volta | Did Volta have a passion for the study of electricity? | Yes, Volta had a passion for the study of electricity. |
+------------------+--------------------------------------------------------+--------------------------------------------------------+
La questions tabla se utiliza para hacer predicciones por lotes. Al unir el question_answering_model modelo con la questions tabla, el modelo utiliza todos los valores de las columnas article_title y question.

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 es necesario realizar 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 flujos de trabajo tradicionales de desarrollo de ML. 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. ¡Estén atentos 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 sign-up for a free demo account 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 community Slack, donde puedes obtener ayuda y encontrar personas para charlar sobre el uso de otras fuentes de datos disponibles, marcos de ML, o escribir un controlador para traer los tuyos propios! Sigue nuestra introducción a la integración de OpenAI de MindsDB here. Además, tenemos una variedad de tutoriales que utilizan MySQL y MongoDB:

¿Qué sigue?

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