2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

让你的 AI 模型尽可能的靠近数据源

  • 2019-10-24
  • 本文字数:2036 字

    阅读完需:约 7 分钟

让你的AI模型尽可能的靠近数据源

今天我们发布了一个 RedisAI 的预览版本,预集成了[tensor]werk 组件。RedisAI 是一个可以服务 tensors 任务和执行深度学习任务的 Redis 模块。在这篇博客中,我们将介绍这个新模块的功能,并解释我们为什么会认为它能颠覆机器学习(ML)、深度学习(DL)的解决方案。


RedisAI 的产生有两大原因:首先,把数据迁移到执行 AI 模型的主机上成本很高,并且对实时性的体验很大的影响;其次,Serving 模型一直以来都是 AI 领域中 DevOps 的挑战。我们构建 RedisAI 的目的,是让用户可以在不搬迁 Redis 多节点数据的情况下,也能很好地服务、更新并集成自己的模型。

数据位置很重要

为了证明运行机器学习、深度学习模型中数据位置的重要性,我们举一个聊天机器人的例子。聊天机器人通常使用递归神经网络模型(RNN),来解决一对一(seq2seq)用户问答场景。更高级的模型使用两个输入向量、两个输出向量,并以数字中间状态向量的方式来保存对话的上下文。模型使用用户最后的消息作为输入,中间状态代表对话的历史,而它的输出是对用户消息和新中间状态的响应。



为了支持用户自定义的交互,这个中间状态必须要保存在数据库中,所以 Redis +RedisAI 是一个非常好的选择,这里将传统方案和 RedisAI 方案做一个对比。

1、传统方案

使用 Flask 应用或其它方案,集成 Spark 来构建一个聊天机器人。当收到用户对话消息时,服务端需要从 Redis 中获取到中间的状态。因为在 Redis 中没有原生的数据类型可用于 tensor,因此需要先进行反序列化,并且在运行递归神经网络模型(RNN)之后,保证实时的中间状态可以再序列化后保存到 Redis 中。


考虑到 RNN 的时间复杂度,数据序列化/反序列化上 CPU 的开销和巨大的网络开销,我们需要一个更优的解决方案来保证用户体验。


2、RedisAI 方案

在 RedisAI 中,我们提供了一种叫 Tensor 的数据类型,只需使用一系列简单的命令,即可在主流的客户端中对 Tensor 向量进行操作。同时,我们还为模型的运行时特性提供了另外两种数据类型:Models 和 Scripts。



Models 命令与运行的设备(CPU 或 GPU)和后端自定义的参数有关。RedisAI 内置了主流的机器学习框架,如 TensorFlow、Pytorch 等,并很快能够支持 ONNX Runtime 框架,同时增加了对传统机器学习模型的支持。然而,很棒的是,执行 Model 的命令对其后端是不感知的:


AI.MODELRUN model_key INPUTS input_key1 … OUTPUTS output_key1 …


这允许用户将后端选择(通常由数据专家来决定)和应用服务解耦合开来,置换模型只需要设置一个新的键值即可,非常简单。RedisAI 管理所有在模型处理队列中的请求,并在单独的线程中执行,这样保障了 Redis 依然可以响应其它正常的请求。


Scripts 命令可以在 CPU 或 GPU 上执行,并允许用户使用 TorchScript 来操作 Tensors 向量,TorchScript 是一个可操作 Tensors 向量的类 Python 自定义语言。这可以帮助用户在执行模型前对数据进行预处理,也可以用在对结果进行后处理的场景中,例如通过集成不同的模型来提高性能。



RedisAI 的数据类型和后端概览


我们计划未来通过 DAG 命令支持批量执行命令,这会允许用户在一个原子性操作中批量执行多个 RedisAI 命令。例如在不同的设备上运行一个模型的不同实例,通过脚本对执行结果做平均预测。使用 DAG 命令,就可并行地进行计算,再执行聚合操作。如果需要全量且更深的特性列表,可以访问 redisai.io


新的架构可以简化为:


模型服务可以更简单

在生产环境中,使用 Jupyter notebooks 来编写代码并将其部署在 Flask 应用并不是最优方案。用户如何确定自己的资源是最佳的呢?如果用户主机宕机之后,上述聊天机器人的中间状态会发生什么呢?用户可能会重复造轮子,实现已有的 Redis 功能来解决问题。另外,由于组合方案的复杂度往往超出预期,固执地坚持原有的解决方案也会非常有挑战性。


RedisAI 通过 Redis 企业级的数据存储方案,支持深度学习所需要的 Tensors、Models 和 Scripts 等数据类型,很好的实现了 Redis 和 AI 模型的深度整合。如果需要扩展模型的计算能力,只需要简单的对 Redis 集群进行扩容即可,所以用户可以在生产环境中增加尽可能多的模型,从而降低基础设施成本和总体成本。


最后,RedisAI 很好地适应了现有的 Redis 生态,允许用户执行脚本来预处理、后处理用户数据,可使用 RedisGear 对数据结构做正确的转换,可使用 RedisGraph 来保持数据处于最新的状态。

结论和后续计划

1、短期内,我们希望使用 RedisAI 在支持 3 种主流后端(Tensorflow、Pytorch 和 ONNX Runtime)的情况下,尽快稳定下来并达到稳定状态。


2、我们希望可以动态加载这些后端,用户可以自定义的加载指定的后端。例如,这将允许用户使用 Tensorflow Lite 处理边缘用例。


3、计划实现自动调度功能,可以实现在同一模型中实现不同队列的自动合并。


4、RedisAI 会统计模型的运行数据,用于衡量模型的执行情况。


5、完成上文中解释的 DAG 特性。


本文转载自公众号中间件小哥(ID:huawei_kevin)。


原文链接:


https://mp.weixin.qq.com/s/XKUI_J9Fc_CguoA7AEXrgQ


2019-10-24 09:561292

评论

发布
暂无评论
发现更多内容

为YashanDB数据库寻找合适的运行环境的考虑因素

数据库砖家

美国国民警卫队军械库遭神秘连环盗窃,内部安全漏洞引担忧

qife122

网络安全 内部威胁

大数据-102 Spark Streaming 与 Kafka 集成全解析:Receiver 与 Direct 两种方式详解 附代码案例

武子康

Java 大数据 flink spark 分布式

工业数字化 信息化经验总结(9)

万里无云万里天

数字化转型 信息化 工厂运维

智能革命:企业AI转型的挑战与曙光

UniverAI智宇苍穹

企业 AI 应用 企业级AI工程化 企业级AI基础设施

StarRocks Connect 2025 圆满落幕:AI Native 时代,数据分析未来已来

StarRocks

大数据 StarRocks AI Agent 镜舟科技 湖仓引擎

工业设计 自控设计经验总结(5)

万里无云万里天

设计师 工厂运维 工业设计

推动业务持续增长的YashanDB数据库成功实践

数据库砖家

稳定性与性能并重:YashanDB数据库的设计哲学

数据库砖家

鲲鹏基础软件:全面使能灵衢,通算智算场景能力全面提升

新消费日报

见证语音领域 GPT-3 时刻!小米开源端到端语音模型 MiMo Audio;Xbox上线游戏助手,实时游戏理解+语音交互丨日报

RTE开发者社区

使用XState测试分布式微服务的完整指南

qife122

状态机 微服务测试

工业设计 自控设计经验总结(4)

万里无云万里天

设计师 工厂运维 工业设计

未来展望:YashanDB数据库在技术变革中的角色与潜力

数据库砖家

低代码:技术的普适化潜能与软件工程范式转型

JeeLowCode低代码平台

低代码 低代码报告 低代码, #工作流 低代码工具

跳出 AI 编程的“兔子洞”:4 个实战策略帮你解决90%的死循环

hepingfly【gzh:和平本记】

AI 编程

org.springframework.web.multipart.MultipartException: Current request is not a multipart request

刘大猫

人工智能 云计算 算法 物联网 大模型

爱奇艺技术实践:基于StarRocks释放天玑买量数据价值

StarRocks

MySQL Clickhouse 爱奇艺 StarRocks ug

通过YashanDB数据库实现数据集成与共享

数据库砖家

通过YashanDB数据库提升企业数据分析能力

数据库砖家

为您的项目选择YashanDB数据库的原因

数据库砖家

系统管理员必备的YashanDB数据库维护手册

数据库砖家

工业管理 项目管理经验总结(11)

万里无云万里天

项目管理 工业 工厂运维

剂方辩证系统(源码 + 文档 + 讲解 + 演示)

深圳亥时科技

挖掘数据潜力:选择YashanDB数据库的理由

数据库砖家

企业AI跑得快,必靠专业开发者“带”——UniverAI通过全代码模式为企业AI开发者保驾护航

UniverAI智宇苍穹

企业级代码架构 AI Agent 企业级AI工程化 企业级AI基础设施 AI平台

通过YashanDB数据库实现实时业务监控的技术分析

数据库砖家

为什么选择YashanDB数据库?深入分析其独特优势

数据库砖家

为什么选择YashanDB数据库来支持你的业务增长

数据库砖家

预制菜不便宜,AI缓存却能真省钱:UniverAI企业级AI平台确保企业AI越做越便宜。

UniverAI智宇苍穹

缓存 AI开发平台 AI Agent 企业级AI工程化 企业级AI基础设施

线下活动丨RTE 开发者社区×S 创上海 2025:9 家社区项目、3 场圆桌、1 场演讲、1 场派对、1 个彩蛋

RTE开发者社区

让你的AI模型尽可能的靠近数据源_云原生_Redislabs_InfoQ精选文章