将 MongoDB 转变为预测数据库

Benjamin Flast, Zoran Pandovski, and Natasha Seelam

注意:本博客最初发布于 2021 年 11 月 10 日,现已更新,提供了新的安装和连接说明,用于指导将 MongoDB 实例连接到 MindsDB 的机器学习平台,并提供了新的示例和用例

商界对人工智能 (AI) 和机器学习 (ML) 的兴趣日益浓厚。ML/AI 的预测功能能够以比人工分析更快的速度从检测到的模式中快速获得见解。此外,生成式机器学习应用程序(如 OpenAI 和 Hugging Face)的最新进展为企业提供了强大工具以用于生成和分析文本的数据。企业意识到这样可以提高利润、降低成本并加快创新。尽管各种规模的企业都可以受益于强大的 AI,但实施机器学习项目既复杂又耗时。

MongoDB, Inc. (NASDAQ: MDB) 是领先的现代通用数据库平台,MindsDB 是将自动化机器学习引入数据库的开源机器学习平台,两者建立了技术合作伙伴关系,以推进机器学习创新。此次合作旨在让开发者能够轻松地将强大的机器学习驱动型功能整合到他们的应用程序中,以解决现实世界的业务挑战。

最好的方法是什么?

一旦确定了要重点实施的初始机器学习项目(如预测或文本分析)后,选择合适的工具和方法有助于缩短构建、训练、优化和部署模型所需的时间。如果您不确定机器学习模型将要在哪些维度上进行训练,模型的选择和特征工程可能会非常耗时且困难。此外,用于数据提取和转换的管道需要随着时间进行维护,机器学习模型也需要部署在合适的计算框架之上。

现有的顶尖 AutoML 框架提供了优化性能的方法,包括调整超参数(如学习率或批量大小)。MindsDB AutoML 框架超越了大多数传统的超参数调整自动化系统,实现了数据清理、数据预处理和特征工程的新颖上游自动化。为助力用户进行透明开发,该框架包含可解释性工具,支持处理复杂的数据类型(NLP、时间序列、语言建模和异常检测),并通过允许用户使用导入的选定模型让用户可以进行自定义设置。

此外,MindsDB 还可以在数据层生成预测(不消耗数据库资源),这是加快开发速度的另一个重大进步。通过使用 MindsDB AI 集合直接在 MongoDB Atlas 中生成预测,这样您就能够将预测用作常规数据,查询这些预测,并通过简化部署工作流程来加快开发速度。

开始使用 MindsDB

我们建议从 AWS 中的 MindsDB 开始使用或访问 http://cloud.mindsdb.com 以获取 MindsDB 的演示云版本。对于小规模测试(2 个模型,数千个文档)之外的任何测试,强烈建议使用 MindsDB Pro(易于设置、简单、基于使用量的“即用即付”定价)。查看 AWS Marketplace 上的产品页面,了解有关如何在现有 AWS 帐户中设置 MindsDB 的说明。

有关所有文档和常见问题解答,请访问 https://docs.mindsdb.com/

在 MongoDB 中设置与 MindsDB 的连接

目前,集成是通过 MindsDB 的 MongoDB API 访问作为新数据源的 MongoDB 来实现的。可在此处找到有关连接到 MongoDB 的更多信息。MindsDB 会托管包含示例数据集的演示 MongoDB 数据库。

使用 MongoDB ShellMongoDB Compass UX 连接到 MindsDB 的 MongoDB API。 请注意,您必须装有 MongoDB Shell 版本 3.6 或更高版本才能使用 MindsDB MongoDB API。

MongoDB Compass 连接

要连接到 MindsDB 演示数据库,请使用以下连接字符串(如 MongoDB Compass UX 中的以下内容所示):

mongodb+srv://admin:201287aA@cluster0.myfdu.mongodb.net/admin?authSource=admin&replicaSet=atlas-5koz1i-shard-0&readPreference=primary&appname=MongoDB%20Compass&ssl=true

如果您想使用自己的数据库学习本教程,请随意使用自己的连接字符串,并上传可以在其中运行许多测试用例 house_sales.csv 的示例数据集。

如果您使用自己的 MongoDB 实例,您将需要执行两个额外步骤:

步骤 1:创建 MindsDB 帐户后,使用 MindsDB 编辑器中的连接字符串将 MongoDB 实例连接到 MindsDB(云或 AWS)(MindsDB 云编辑器的链接如下:https://cloud.mindsdb.com/editor

在 MindsDB 编辑器中运行以下查询:

db.databases.insertOne({
    name: "mongo_int",
    engine: "mongodb",
    connection_args: {
            "port": 27017,
            "host": "mongodb+srv://admin:@localhost",
            "database": "test_data"
    }
});

执行后,输出如下:

{
	"acknowledged" : true,
	"insertedId" : ObjectId("62dff63c6cc2fa93e1d7f12c")
}

其中:

步骤 2:将 MongoDB Compass 或 Shell 连接到 MongoDB;创建一个新集合,然后添加 .csv 文件,如下所示

  • 创建集合 > 添加数据 > 选择数据类型

  • 数据类型:[日期、数字、字符串、数字]

现在,我们已经成功与 MongoDB 数据库集成。下一步是使用 MongoDB 客户端连接到 MindsDB 的 MongoDB API 并训练模型。MindsDB 拥有许多准备好的演示用例和数据集,包括预测房屋租赁价格、预测季度房屋销量以及通过使用我们的 Hugging Face 集成对产品评价文本进行语言分析来预测客户情感。在下面的链接中可以找到 Mongo 的许多示例和代码:

作为示例,我们将展示一项独特的强大功能,该功能是最近通过使用 MindsDB 与 OpenAI 的 GPT-3 语言模型的集成而提供的。MindsDB 可用于根据数据库中的非结构化文本生成 JSON 文档。例如,如下所示,MindsDB 可以根据房地产清单的自然语言描述,创建包含有关出租物业相关信息(租赁天数、浴室数量、价格、评价)的 JSON 文档。

请按照上面的指南进行操作,或者查看我们的文档,了解如何将 MongoDB CompassMongoDB Shell 连接到 MindsDB。

要在 MQL 中创建此模型,请从 MongoDB Compass 或 MongoDB Shell 运行以下命令:

db.models.insertOne({
    name: 'nlp_model',
    predict: 'json',
    training_options: {
        engine: 'openai',
        input_text: 'sentence',
        json_struct: {
            'rental_price': 'rental price',
            'location': 'location',
            'nob': 'number of bathrooms'
        }
    }
})

我们在此处传递了相同的三个参数。

  1. engine 参数可确保我们使用的是 OpenAI 引擎。

  2. json_struct 参数可存储用于输出的预定义 JSON 结构。

  3. input_text 参数包含存储输入文本的字段的名称。

现在我们可以查询相应模型,以传递存储在句子字段中的输入文本。

db.nlp_model.find({
    'sentence': 'Amazing 3 bedroom apartment located at the heart of Manhattan, has one full bathrooms and one toilet room for just 3000 a month.'
    })

执行后,输出如下:

{
  json: {
    rental_price: '3000',
    location: 'Manhattan',
    nob: '1'
  },

  sentence: 'Amazing 3 bedroom apartment located at the heart of Manhattan, has one full bathrooms and one toilet room for just 3000 a month.'

本教程重点介绍了通过使用 MindsDB 的 MongoDB 连接器和自动化功能,在 MongoDB 中创建 NLP 模型以根据非结构化文本生成 JSON 输出的步骤。使用现有的计算配置,上述示例花费了不到五分钟,除了数据库之外不需要使用大量的工具或管道。借助 MongoDB 中 MindsDB 的机器学习功能,开发者现在能够以更低的成本构建机器学习模型,更深入地了解模型准确性,并帮助用户制定更明智且基于数据的决策。

使用 MongoDB 和 MindsDB 实现现代化

通过简化和丰富数据,MongoDB 为数据管理和探索提供了直观的流程。通过简化机器学习、AI 和正在持续发展的数据科学领域的现代化过程,MindsDB 可帮助将数据转化为智能见解。

尝试使用 MindsDB 连接到 MongoDB,训练模型并在云中运行预测!只需从 Amazon Marketplace 安装 MindsDB,即可在 SlackGithub 上联系我们的团队以提供反馈和寻求支持。 请查看并随时提问,分享用例示例!