当 AI 遇到流计算:如何在 RisingWave 的数据上训练 AI 模型

这篇具有很好参考价值的文章主要介绍了当 AI 遇到流计算:如何在 RisingWave 的数据上训练 AI 模型。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

​背景

想象一下,一个数据工程团队在多年的投入下,构建了一套实时流计算链路,数据仓库体系,以及数不清的报表。但随着业务的增长,他们开始不局限于传统的指标,而是希望用 AI/ML 来提供更加深入的数据分析。

MindsDB 就是填补这个需求的桥梁,它将数据库与模型训练串联起来,以一个中间件的形式帮助 AI 开发者们降低开发门槛。

计算引擎 risingwave,技术说,人工智能,rust,sql,数据库,开源软件

MindsDB 的一个关键能力就是对许多数据源的支持,包括像 PostgreSQL、MySQL 等关系数据库。它统一了数据接入层,这样一来大家就不再需要用好几种不同的工具来处理数据。

在这一理念下,MindsDB 对 RisingWave 的支持也变得理所应当。对开发者而言,RisingWave 与 MindsDB 的集成打开了一些独特的机会:

  • 训练你的流式数据:RisingWave 核心的物化视图概念给予了用户对流处理结果的读取能力。在模型训练阶段前,用户往往会对数据进行实时清洗和加工,或者是与多个数据源相互关联,形成更完整的数据后,再导入到模型中。RisingWave 则是统一了前期的预处理,而 MindsDB 可以通过 Postgres 接口无缝地读取 RisingWave。在这一套架构内只存在 2 个系统,这使得系统维护变得非常轻量。

  • 将模型训练的负载与其他业务解耦:在行业普遍的架构中,一个系统往往只服务于一种类型的负载,如 OLAP 分析,流计算,OLTP 处理等。如果在核心的在线数据库上增加模型训练的负载,可能就会对其造成稳定性的影响。RisingWave 的存算分离架构将数据放在远端对象存储(如 S3)中,允许单独配置用于服务查询的节点,这使得后台的流计算能够与模型训练在物理上隔离,相互之间稳定性毫不影响。

接下来,我们将展示 RisingWave 如何与 MindsDB 结合来解决实际的问题。

计算引擎 risingwave,技术说,人工智能,rust,sql,数据库,开源软件

Demo 1:帮助租房一族了解理想房型的预期租金

我们在这一 Demo 的目标是要分析所有房屋的租赁记录,并总结价格和房型之间的关系。最终,当你给出对理想房型的条件,我们的模型就能推演出预期的租金。

  1. 准备数据:

    首先,我们推荐通过 Docker Compose 来启动 RisingWave 和 MindsDB。如果你想要亲自上手尝试,可以使用我们在这里为您准备的环境。

    接着,让我们按以下表结构将一些数据导入到 RisingWave。限于篇幅,让我们先幻想数据已经准备好了吧 😉 。

    CREATE TABLE home_rentals (
        number_of_rooms integer,
        number_of_bathrooms integer,
        sqft integer,
        location varchar,
        days_on_market integer,
        rental_price integer
    );
    
  2. 接着,创建 MindsDB 模型。我们使用 postgres 连接器来访问:

    CREATE DATABASE example_data
    WITH ENGINE = "postgres",
    PARAMETERS = {
      "user": "root",
      "host": "risingwave-standalone",
      "port": "4566",
      "database": "dev"
    };
    
    CREATE MODEL mindsdb.home_rentals_model
    FROM example_data
      (SELECT * FROM home_rentals)
    PREDICT rental_price;
    

    在这一步,我们基于 rental_price 列训练了一个回归模型(注意 PREDICT 关键词)。模型的训练不会在命令调用结束后立刻完成,而是需要等待一些时间。具体等待的时间取决于数据量和机器性能。您可以用 DESCRIBE mindsdb.home_rentals_model命令来查看模型状态。

  3. 最后一步,按房型要求来推演其租金 💰 吧

    SELECT rental_price FROM home_rentals_model 
    WHERE number_of_bathrooms = 2 AND sqft = 1000;
    
    --- rental_price
    --- 3968
    

    在这一数据集里,两卫一千平方英尺的房型价格为 3968。

Demo 2:预测未来

相信多数使用 RisingWave 的场景都会与时间打交道。与上述步骤类似,我们同样是准备数据,训练模型,并做出推演。但不同的是,这里我们会使用 MindsDB 的时序模型。

CREATE MATERIALIZED VIEW house_sales AS
SELECT
  saledate,
  ma,
  type,
  bedrooms
...;

假设我们在 RisingWave 中已经将房型表与销售记录表进行处理,得到了一个物化视图 house_sales,其包含了过去每个季度销售额的 MA(Moving Average)值。

接下来的步骤,我们让模型预测后续趋势,即按照 saledate,预测往后 4 个季度的 MA。

CREATE MODEL mindsdb.house_sales_predictor
FROM example_data
  (SELECT * FROM house_sales)
PREDICT ma
ORDER BY saledate
GROUP BY bedrooms, type
WINDOW 8
HORIZON 4;

当模型创建成功后,我们就可以按需查询。

SELECT m.saledate AS date, m.ma AS forecast
FROM mindsdb.house_sales_predictor AS m
JOIN example_data.house_sales AS t
WHERE t.saledate > LATEST
AND t.type = 'house'
AND t.bedrooms = 2
LIMIT 4;

总结

经由 RisingWave 处理的流数据在许多企业中具有非常高的分析价值。得益于 RisingWave 的存算分离架构,MindsDB 在 RisingWave 之上进行模型训练是可行且稳定的。同时,RisingWave 充分支持 PostgreSQL 接口,所以 MindsDB 能无缝地进行接入。

随着实时流处理以及 AI/ML 两个领域各自释放其动能,相信未来 RisingWave 和 MindsDB 两者的结合会为数据工程团队带来更多的价值。

往期推荐

重新定义流计算:第三代流处理系统 RisingWave 的 2024 年展望

RisingWave 中文使用教程上线啦!

视源股份(CVTE)IT 流计算应用历程

计算引擎 risingwave,技术说,人工智能,rust,sql,数据库,开源软件

RisingWave是一款基于 Apache 2.0 协议开源的分布式流数据库,致力于降低流计算使用门槛。RisingWave 采用存算分离架构,实现了高效的复杂查询、瞬时动态扩缩容以及快速故障恢复,帮助用户轻松快速搭建稳定高效的流计算系统。使用 RisingWave 处理流数据的方式类似使用 PostgreSQL,通过创建实时物化视图,让用户能够轻松编写流计算逻辑,并通过访问物化视图来进行即时、一致的查询流计算结果。了解更多:

💻 官网: risingwave.com

GitHubrisingwave.com/github

📖 教程: risingwavetutorial.com文章来源地址https://www.toymoban.com/news/detail-827479.html

到了这里,关于当 AI 遇到流计算:如何在 RisingWave 的数据上训练 AI 模型的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 如何借助分布式存储 JuiceFS 加速 AI 模型训练

    传统的机器学习模型,数据集比较小,模型的算法也比较简单,使用单机存储,或者本地硬盘就足够了,像 JuiceFS 这样的分布式存储并不是必需品。 随着近几年深度学习的蓬勃发展,越来越多的团队开始遇到了单机存储的瓶颈,分布式存储在 AI 领域的重要性不断凸显。AI 团

    2023年04月26日
    浏览(28)
  • 【AI绘画--七夕篇】:如何训练Lora模型打造令人惊叹的AI绘画

    在数字时代的今天,人工智能(AI)技术正不断改变着我们的生活,也给艺术领域带来了前所未有的革新。AI绘画模型,作为其中的一颗明星,让计算机能够像艺术家一样创作绘画作品,引发了广泛关注。然而,AI绘画模型的训练对计算资源和时间的要求较高,这对于大部分人

    2024年02月12日
    浏览(27)
  • AI大模型探索之路-训练篇5:大语言模型预训练数据准备-词元化

    AI大模型探索之路-训练篇1:大语言模型微调基础认知 AI大模型探索之路-训练篇2:大语言模型预训练基础认知 AI大模型探索之路-训练篇3:大语言模型全景解读 AI大模型探索之路-训练篇4:大语言模型训练数据集概览 在自然语言处理领域,大语言模型预训练数据准备是一个重

    2024年04月28日
    浏览(33)
  • 使用数据预训练一个AI语言模型

    目录 收集或制造数据集 下载并解压 安装python依赖 编写训练脚本 执行训练脚本开始训练 编写推理脚本 启动推理脚本 测试 注意 我们之前讲过了如何部署一个别人已经训练好的AI模型、也学会了如何微调一个AI模型,也讲了预训练模型和微调模型的区别,那本文就聊聊如何从

    2024年02月17日
    浏览(34)
  • 训练AI:从数据收集到模型部署的完整指南

    训练AI:从数据收集到模型部署的完整指南 随着人工智能的迅速发展,越来越多的企业、学术机构和开发者开始尝试训练自己的AI模型并将其应用于实际应用。但是,训练AI是一项复杂的工作,需要一定的编程和机器学习知识。在这篇文章中,我们将详细探讨从数据收集到模型

    2024年01月22日
    浏览(30)
  • 艺术创作的新纪元:如何训练Lora模型打造令人惊叹的AI绘画

    在数字时代的今天,人工智能(AI)技术正不断改变着我们的生活,也给艺术领域带来了前所未有的革新。AI绘画模型,作为其中的一颗明星,让计算机能够像艺术家一样创作绘画作品,引发了广泛关注。然而,AI绘画模型的训练对计算资源和时间的要求较高,这对于大部分人

    2024年02月13日
    浏览(32)
  • AI 是如何进行数据训练的

    数据训练分几个阶段 1、数据预处理阶段 主要是对数据进行预处理,包含数据清洗、数据归一化、特征提取 2、模型构建阶段 3、设定损失函数 4、反向传播算法 5、模型评估、优化 数据归一化 :把数据在多个维度的度量,统一为一个相同的度量区间,以平衡它们之间的影响因

    2024年02月10日
    浏览(30)
  • 隐私计算从AI到BI:隐语SCQL数据分析引擎上线

    3月29日, 「 隐语开源社区开放日 」 活动顺利举办。隐语社区 不仅在当日 正式 开 源 隐语 SCQL 多方安全数据分析 引擎 , 这是业内首个 将  SQL 做到多方安全计算(MPC)技术的 数据分析系统 , 提供 工业级的多方安全 联合 分析功能,目前 已 在隐语 GitHub 社区开源, 面向全

    2023年04月16日
    浏览(24)
  • 微软最新研究成果:使用GPT-4合成数据来训练AI模型,实现SOTA!

    文本嵌入是各项NLP任务的基础,用于将自然语言转换为向量表示。现有的大部分方法通常采用 复杂的多阶段训练流程 ,先在大规模数据上训练,再在小规模标注数据上微调。此过程依赖于手动收集数据制作正负样本对,缺乏任务的多样性和语言多样性。 此外,大部分方法采

    2024年02月02日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包