使用MindSDB和OpenAI部署LLM的分步指南
#网络开发人员 #编程 #openai #database

介绍

大型语言模型(LLM)是一种机器学习模型,该模型对大量数据培训,可以执行自然语言处理(NLP)任务,例如分析和汇总文本,解释语言,基于情感,文本生成,文本生成,回答问题,以及更多。

Image description

该模型根据训练的数据及其收到的输入生成连贯的和上下文相关的人类响应。

MindsDB允许您创建使用OpenAI GPT-4功能并部署它们的模型,以便您准备在数据库中执行NLP任务。

MindsDB Generative AI Tables概念使它成为可能。

Image description

AI表是指存储在数据库中的机器学习模型作为虚拟表。

在本文中,您将学习如何使用MindSDB和OpenAI部署LLM。

我们将利用MindSDB提供的OpenAI引擎来创建和部署可以重新调整文本,确定单词计数并分析和响应客户评论的模型。

此外,MindSDB允许您使用专业或特定任务数据集微调一些LLM,以提高其性能和适用于特定任务的能力。


先决条件

要与本教程一起,您需要一个MindsDB cloud account

如果您喜欢本地实例,请通过Dockerpip设置MindSDB。

Image description


连接到数据库

让我们从将MindSDB连接到公共MySQL演示数据库开始。

我们将在MySQL公共数据库内使用一些表来演示如何部署LLMS。

CREATE DATABASE project_llm
WITH ENGINE = 'mysql',
PARAMETERS = {
    "user": "user",
    "password": "MindsDBUser123!",
    "host": "db-demo-data.cwoyhfn6bzs0.us-east-1.rds.amazonaws.com",
    "port": "3306",
    "database": "public"
};

我们已成功将数据库与MindSDB连接到名称project_llm。

让我们看一下它的桌子。

运行以下查询查看表:

SHOW FULL TABLES FROM project_llm;

Image description

Image description


重新编写文字

回想一下,我们提到的是,对于本教程,我们将创建和部署3种不同的模型来重新编写文本,确定单词计数,并分析和响应客户评论。

在本节中,我们将创建一个用于重新启动文本的模型。我们将其称为rephraser_model。该模型将更有礼貌地重新调整电子邮件内容。

CREATE MODEL rephraser_model
PREDICT paraphrase
USING
    engine = 'openai',
    prompt_template = 'rephrase content in a more polite way. {{email_content}}'
    api_key = 'YOUR_OPENAI_API_KEY';

模型使用OpenAI引擎。 prompt_template存储了一个要通过模型回答的消息。

如果您在MindSDB云上,则api_key参数是可选的,但对于本地用法和MindSDB Pro。

为了方便起见并避免重复,您可以创建MindSDB ML引擎以持有API键。这样,您每次要创建模型时都不必输入API密钥。

CREATE ML_ENGINE openai2
FROM openai
USING
    api_key = 'YOUR_OPENAI_API_KEY';

检查模型的状态。您只能在完成生成后使用模型(此过程不需要时间才能完成)。

DESCRIBE rephraser_model;

现在我们的模型已经准备好了。让我们要求它为我们重塑一些文本。

SELECT email_content, paraphrase
FROM rephraser_model
WHERE email_content = "Jeff, get over here!";

输出

Image description

让我们通过将我们的rephraser_model加入email表并更有礼貌地重塑一些电子邮件内容。

SELECT input.email_content, output.paraphrase
FROM project_llm.emails AS input
JOIN rephraser_model AS output
LIMIT 3;

输出

Image description


确定单词计数

按照相同的过程,让我们创建和部署一个模型来确定评论的单词计数。

创建模型


CREATE MODEL word_count_model
PREDICT count
USING
    engine = 'openai2',
    prompt_template = 'describe the word count of the comments strictly as "2  words", "3 words" "4 words", and so on.
    "this is great" : 3 words
    "I want this good" : 4 words
    "I want bread right now" : 5 words
    "please take note and effect changes": 6 words
    "{{comment}}.":';

可选,您可以将max_tokenstemperature参数添加到USINGmax_tokens定义了预测的最大令牌。 temperature定义了模型提供的答案的风险。

检查模型的状态,然后继续进行测试。

SELECT comment, count
FROM word_count_model
WHERE comment = 'I like the fact that things are getting better with me daily';

输出

Image description

让我们通过将我们的模型加入user_comments表进行批处理预测。

SELECT input.comment, output.count
FROM project_llm.user_comments AS input
JOIN word_count_model AS output
LIMIT 3;

输出

Image description


分析和回应客户评论

让我们创建一个模型来分析和回应客户的评论。

该模型将首先分析并确定审查是正面还是负面。

  • 如果否定,模型会道歉,并承诺下次使他们的体验更好。

  • 如果肯定,它将以感谢信给您回应,并要求他们转介。

CREATE MODEL auto_response_model
PREDICT response
USING
    engine = 'openai',
    prompt_template = 'Give a one sentence response to customers based on the review type.
    "I love this product": "positive"
    "It is not okay" : "negative"

    If the review is negative, respond with an apology and promise to make it better.
    If the review is positive, respond with a thank you and ask them to refer us to their   friends.
    {{review}}';


让我们用一些合成数据查询模型。

SELECT review, response
FROM auto_response_model
WHERE review = "I am not happy about this product";


输出

Image description

做批次预测。

SELECT input.review, output.response
FROM project_llm.amazon_reviews AS input
JOIN auto_response_model AS output
LIMIT 2;


输出

Image description

重要的是要注意,我们已经构建的模型已经准备就绪。

MindSDB通过设计将其设计为默认情况下的生产来简化和部署机器学习模型的过程,以免使用ML OPS流量。

它使您在数据库中使用机器学习更加容易,更快,而无需广泛的ML专业知识。


结论

MindsDB允许您在数据库内使用预训练的OpenAI自然语言处理(NLP)模型,以轻松执行NLP任务,并从文本数据中仅使用几个SQL查询或使用REST端点来获取有价值的信息。

MindSDB OpenAI集成使开发人员能够利用自然语言查询来分析数据并有效地了解其数据。

将ML功能引入数据库,使您能够做出数据驱动的决策并通过做出有见地的预测来扩展产品。

注册free demo account,以获得NLP功能的动手体验。

和MindSDB是2023年最有前途的人工智能初创公司之一。

Image description

那是该博客的结尾。今天,我希望您学到了一些新东西。

如果这样做,请喜欢/分享,以便其他人也可以看到它。

感谢您成为常规读者;您是为什么我能够与您分享我的生活/职业经历的重要部分。

Twitter上关注MindSDB以获取最新更新,如果您有任何疑问或问题,可以加入他们的Slack服务器以讨论和获得帮助。

Twitter上关注我以获取更多写作和软件工程文章。