GenAI 技术堆栈架构师指南 - 十种工具

这篇文章于 2024 年 6 月 3 日首次出现在 The New Stack 上。

我之前写过关于现代数据湖参考架构的文章,解决了每个企业面临的挑战——更多的数据、老化的Hadoop工具(特别是HDFS)以及对RESTful API(S3)和性能的更大需求——但我想填补一些空白。

现代数据湖(有时称为数据湖仓一体)是基于一半数据湖和一半开放表格式规范 (OTF) 的数据仓库。两者都建立在现代对象存储之上。

同时,我们深入思考了组织如何构建能够支持您所有 AI/ML 需求的 AI 数据基础设施,而不仅仅是训练集、验证集和测试集的原始存储。换句话说,它应该包含训练大型语言模型、MLOps 工具、分布式训练等所需的计算。基于这一思路,我们整理了另一篇关于如何使用现代数据湖参考架构来支持您的 AI/ML 需求的论文。下图展示了现代数据湖参考架构,并突出显示了生成式 AI 所需的功能。

来源:现代数据湖中的 AI/ML

1. 数据湖

企业数据湖建立在对象存储之上。不是老式的、基于设备的对象存储,它服务于廉价和深入的存档用例,而是现代的、高性能的、软件定义的和 Kubernetes 原生对象存储,它们是现代 GenAI 堆栈的基石,它们可以作为服务(AWS、GCP、Azure)或本地或混合/两者提供,例如 MinIO。这些数据湖必须支持流式工作负载,必须具有高效的加密和纠删码,需要以原子方式存储对象的元数据,并支持 Lambda 计算等技术。鉴于这些现代替代方案是云原生的,它们将与其他云原生技术的整个堆栈集成 - 从防火墙到可观测性再到用户和访问管理 - 开箱即用。

2. 基于OTF的数据仓库

对象存储也是基于 OTP 的数据仓库的底层存储解决方案。将对象存储用于数据仓库可能听起来很奇怪,但以这种方式构建的数据仓库代表了下一代数据仓库。这是由 Netflix、Uber 和 Databricks 编写的 OTF 规范实现的,这些规范使得在数据仓库中无缝使用对象存储成为可能。

OTF——Apache Iceberg、Apache Hudi 和 Delta Lake——之所以被编写,是因为市场上没有可以处理创作者数据需求的产品。 从本质上讲,它们(以不同的方式)所做的是定义一个可以构建在对象存储之上的数据仓库。对象存储提供了可扩展容量和高性能的组合,这是其他存储解决方案无法做到的。由于这些是现代规范,因此它们具有老式数据仓库所不具备的高级功能,例如分区演变、模式演变和零拷贝分支。

两个可以在 MinIO 之上运行基于 OTF 的数据仓库的 MinIO 合作伙伴是 Dremio 和 Starburst。

Dremio Sonar(数据仓库处理引擎)

Dremio Arctic(数据仓库目录)

开放数据湖仓一体 |Starburst(目录和处理引擎)

3. 机器学习操作 (MLOps)

MLOps 之于机器学习,就像 DevOps 之于传统软件开发一样。两者都是一组旨在改善工程团队(开发或 ML)和 IT 运营 (Ops) 团队之间协作的实践和原则。目标是使用自动化来简化开发生命周期,从规划和开发到部署和运营。这些方法的主要好处之一是持续改进。

MLOps 技术和功能在不断发展。您需要一个由主要参与者支持的工具,确保该工具不断开发和改进,并将提供长期支持。这些工具中的每一个都在后台使用 MinIO 来存储模型生命周期中使用的工件。

MLRun(Iguazio,被麦肯锡公司收购)

MLflow (Databricks)

Kubeflow (谷歌)

4. 机器学习框架

机器学习框架是用于创建模型并编写训练模型的代码的库(通常用于 Python)。这些库具有丰富的功能,因为它们为神经网络提供了不同的损失函数、优化器、数据转换工具和预构建层的集合。这两个库提供的最重要的功能是张量。张量是可以移动到 GPU 上的多维数组。它们还具有自动微分功能,可在模型训练期间使用。

当今最流行的两个机器学习框架是 PyTorch(来自 Facebook)和 Tensorflow(来自 Google)。

5. 分布式训练

分布式模型训练是跨多个计算设备或节点同时训练机器学习模型的过程。这种方法加快了训练过程,特别是当需要大型数据集来训练复杂模型时。

在分布式模型训练中,数据集被划分为更小的子集,每个子集由不同的节点并行处理。这些节点可以是集群中的单个计算机、单个进程或 Kubernetes 集群中的单个 Pod。他们可能有权访问 GPU。每个节点独立处理其数据子集,并相应地更新模型参数。下面的五个库使开发人员免受分布式训练的大部分复杂性的影响。如果您没有集群,您可以在本地运行它们,但您需要一个集群才能看到训练时间的显着减少。

6. 模型中心

模型中心并不是现代数据湖参考架构的真正组成部分,但我还是将其包括在内,因为它对于快速开始使用生成式 AI 非常重要。Hugging Face 已成为大型语言模型的去处。Hugging Face 拥有一个模型中心,工程师可以在其中下载预先训练的模型并共享他们自己创建的模型。Hugging Face 还是 Transformers 和 Datasets 库的作者,这些库使用大型语言模型 (LLMs) 以及用于训练和微调它们的数据。

还有其他模型中心。所有主要的云供应商都有某种方式上传和共享模型,但 Hugging Face 凭借其模型和库集合,已成为该领域的领导者。

7. 应用框架

应用程序框架有助于将 合并LLM到应用程序中。使用 an LLM 与使用标准 API 不同。必须做很多工作才能将用户请求转化为LLM可以理解和处理的内容。例如,如果您构建了一个聊天应用程序,并且想要使用 Retrieval Augmented Generation (RAG),则需要对请求进行标记化,将标记转换为向量,与向量数据库集成(如下所述),创建提示,然后调用 LLM.生成式 AI 的应用程序框架将允许您将这些操作链接在一起。当今使用最广泛的应用程序框架是LangChain。它与其他技术集成,例如,Hugging Face Transformer 库和用于文档处理的 Unstructured 库。它功能丰富,使用起来可能有点复杂,所以下面列出了一些替代方案,适合那些没有复杂要求并想要比LangChain更简单的东西的人。

8. 文件处理

大多数组织没有一个包含干净和准确文档的存储库。相反,文档以多种格式分布在组织中的各种团队门户中。为生成式 AI 做好准备的第一步是构建一个管道,该管道仅获取已批准用于生成式 AI 的文档,并将它们放置在矢量数据库中。对于大型全球组织来说,这可能是生成式人工智能解决方案中最艰巨的任务。

文档管道应将文档转换为文本,对文档进行分块,并通过嵌入模型运行分块文本,以便将其向量表示形式保存到向量数据库中。幸运的是,一些开源库可以对许多常见的文档格式做到这一点。下面列出了一些库。这些库可以与LangChain一起使用,以构建完整的文档处理管道。

9. 向量数据库

向量数据库有助于语义搜索。了解这是如何完成的需要大量的数学背景,而且很复杂。但是,语义搜索在概念上很容易理解。假设您想找到所有讨论与“人工智能”相关的任何内容的文档。要在传统数据库上执行此操作,您需要搜索“人工智能”的所有可能的缩写、同义词和相关术语。

看起来像这样:

SELECT snippet
FROM MyCorpusTable
WHERE (text like '%artificial intelligence%' OR
 text like '%ai%' OR
 text like '%machine learning%' OR
 text like '%ml%' OR
  ... and on and on ...
    

这种手动相似性搜索不仅费力且容易出错,而且搜索本身也非常缓慢。向量数据库可以接受如下所示的请求,并更快、更准确地运行查询。如果您希望使用 Retrieval Augmented Generation,那么快速准确地运行语义查询的能力非常重要。

{
Get {
 MyCorpusTable(nearText: {concepts: ["artificial intelligence"]}) 

      {snippet}
    }

下面列出了四种流行的向量数据库。Milvus

Pgvector

Pinecone

Weaviate

10. 数据探索和可视化

拥有允许您整理数据并以不同的方式可视化数据的工具始终是一个好主意。下面列出的 Python 库提供数据操作和可视化功能。这些似乎是传统 AI 才需要的工具,但它们在生成式 AI 中也派上用场。例如,如果你正在做情绪分析或情绪检测,那么你应该检查你的训练、验证和测试集,以确保你在所有类中都有适当的分布。

结论

这就是:可以在现代数据湖参考架构中找到的 10 项功能,以及每种功能的具体供应商产品和库。下表总结了这些工具。

1 . Data Lake - MinIO, AWS, GCP, Azure

2 . OTF-based data warehouse - Dremio, Dremio Sonar, Dremio Arctic, Starburst, Open Data Lakehouse | Starburst

3 . Machine learning framework - PyTorch, TensorFlow

4 . Machine learning operations - MLRun (McKinsey & Company), MLflow (Databricks), Kubeflow (Google)

5 . Distributed training - DeepSpeed (from Microsoft), Horovod (from Uber), Ray (from Anyscale), Spark PyTorch Distributor (from Databricks), Spark Tensoflow Distributor (from Databricks)

6 . Model hub - Hugging Face

7 . Application framework - LangChain, AgentGPT, Auto-GPT, BabyAGI, Flowise, GradientJ, LlamaIndex, Langdock, TensorFlow (Keras API)

8 . Document processing - Unstructured, Open-Parse

9 . Vector database - Milvus, Pgvector, Pinecone, Weaviate

10 . Data exploration and visualization - Pandas, Matplotlib, Seaborn, Streamlit

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/44324.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端--第一个前端程序

第一个前端程序 第一步: 使用记事本,编写代码 在你的一个磁盘里面创建一个文件夹,名为前端,然后在里面新建一个记事本,在里面写如下代码,注意一定要使用英文,然后把后缀名称改为.html。 第二…

你明白C++中的多态吗?(暑假提升-多态专题)

内不欺己,外不欺人。———孔子 有趣的多态 1、前言2、概念3、多态定义与产生条件4、多态的重要组成成员-(虚函数)5、虚函数的重写(覆盖)6、辅助关键字override与final(了解即可)7、重载,重定义(隐藏),重写(覆盖)8、抽象类9、多态的原理9、1、…

PHP老照片修复文字识别图像去雾一键抠图微信小程序源码

🔍解锁复古魅力,微信小程序黑科技大揭秘!老照片修复&更多神奇功能等你来试! 📸 【老照片修复,时光倒流的美颜术】 你是否珍藏着一堆泛黄的老照片,却因岁月侵蚀而模糊不清?现在…

实验02 黑盒测试(组合测试、场景法)

1. 组合测试用例设计技术 指出等价类划分法和边界值分析法通常假设输入变量相互独立,但实际情况中变量间可能存在关联。全面测试:覆盖所有输入变量的所有可能组合,测试用例数量随输入变量的增加而指数增长。 全面测试需要对所有输入的各个取…

2008年上半年软件设计师【上午题】真题及答案

文章目录 2008年上半年软件设计师上午题--真题2008年上半年软件设计师上午题--答案 2008年上半年软件设计师上午题–真题 2008年上半年软件设计师上午题–答案

按模版批量生成定制合同

提出问题 一个仪器设备采购公司,商品合同采购需要按模版生成的固定的文件,模板是固定的,只是每次需要替换信息,然后打印出来寄给客户。 传统方法 如果手工来做这个事情,准备好数据之后,需要从Excel表格中…

高效应对网络攻击,威胁检测响应(XDR)平台如何提升企业应急响应能力

在数字化时代,企业面临的网络攻击威胁持续增加,如恶意软件、勒索软件、钓鱼攻击、DDoS攻击等。这些威胁不仅危及企业数据安全、系统稳定,还损害了品牌形象和市场信任。随着云计算、大数据、物联网的广泛应用,企业网络攻击面扩大&a…

MAVLink代码生成-C#

一. 准备Windows下安装环境 Python 3.3 – 官网链接下载Python future模块 –pip3 install future TkInter (GUI 工具). – python for Windows自带,无需下载环境变量PYTHONPATH必须包含mavlink存储库的目录路径。 –set PYTHONPATH你的mavlink源码路径 源码下载在…

【昆工主办|7月昆明】第三届绿色建筑、土木工程与智慧城市国际会议(GBCESC 2024)

随着全球城市化进程的加速,绿色建筑、土木工程与智慧城市等议题逐渐成为了行业内外关注的焦点。在这一背景下,第三届绿色建筑、土木工程与智慧城市国际会议(GBCESC 2024)的召开,无疑将为相关领域的研究者、学者及从业者…

原理和组成

能力要素:(1)人员要素:“正确选人”。(2)过程要素:“正确做事”。(3)技术要素:“高效做事”。(4)资源要素:“保障做事”。…

【ARM】MDK-解决Flexnet服务的error:-13.66

【更多软件使用问题请点击亿道电子官方网站】 1、 文档目标 记录MDK网络版部署服务器error :-13.66的问题解决方案,后续有相关发现持续更新。 2、 问题场景 在客户的服务器上部署Flexnet服务,将license文件检查过后,确认MAC地址…

如何才能半个月学习完自动化测试,成功跳槽涨薪?

一直想写类似的文章&#xff0c;但是一直没有时间&#xff0c;正好乘此周末&#xff0c;终于可以写写我的见解了<关于如何学习自动化测试>&#xff0c;其实自动化测试的知识很宽泛&#xff0c;具体细分又可以分为&#xff1a;Web自动化测试&#xff08;PythonSelenium&am…

全新UI自助图文打印系统小程序源码 PHP后端 附教程

最新自助图文打印系统和证件照云打印小程序源码PHP后端&#xff0c;为用户用户自助打印的服务&#xff0c;包括但不限于文档、图片、表格等多种格式的文件。此外&#xff0c;它们还提供了诸如美颜、换装、文档打印等功能&#xff0c;以及后台管理系统&#xff0c;方便管理员对打…

【密码学】公钥密码的基本概念

在先前我写的密码学体制文章中谈到&#xff0c;现代密码学分为两大体制&#xff0c;介绍了一些有关对称密码体制诸如流密码和分组密码的内容。本文的主要内容则切换到公钥密码体制&#xff08;又称非对称密码体制&#xff09;&#xff0c;简述了公钥密码体制的基本思想和应用方…

六个Python实用技巧,大幅提升你的编程效率!

关注星标&#xff0c;每天学习Python新技能 Python作为当下最流行的编程语言之一&#xff0c;以其简洁易懂的语法和强大的第三方库支持&#xff0c;深受开发者的喜爱。在实际开发中&#xff0c;掌握一些实用的Python小技巧&#xff0c;可以大大提升编程效率和代码质量。 本文…

院内导航:如何用科技破解就医找路难题

自2019年开始“院内导航”被纳入医院智慧服务评估体系以来&#xff0c;到2023年改善就医服务升级的部署&#xff0c;每一步都见证了我国医疗卫生体系向智能化、人性化迈进的坚实步伐。 面对庞大复杂的医院环境与日益增长的就诊需求&#xff0c;如何让患者在茫茫人海中迅速找到就…

CSDN回顾与前行:我的创作之旅——2048天的技术成长与感悟

CSDN回顾与前行&#xff1a;我的创作之旅——2048天的技术成长与感悟 &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&#x1f496; 前言 时光荏苒&#xff0c;岁月如梭。转眼间&#xff0c;从我在CSDN上写下第一篇技术博客《2-6 带头结点的链式表操作集…

Springcloud双重预防管理体系平台危险作业票子系统-计算机毕业设计源码48672

摘 要 随着企业生产规模的扩大和生产技术的提高&#xff0c;双重预防管理体系逐渐成为企业安全生产的重要手段。在双重预防管理体系中&#xff0c;危险作业票管理是其中的关键环节之一&#xff0c;对于预防生产事故和保障生产安全具有重要作用。 为了更好地管理危险作业票&…

移动应用:商城购物类,是最常见的,想出彩或许就差灵犀一指

在移动应用中&#xff0c;商城购物类的非常常见&#xff0c;模式也非常成熟&#xff0c;想要设计的出彩也是有难度的&#xff0c;这次分享一些不同的。

C语言之Const关键字与指针

目录 1 前言2 变量与指针的储存方式3 const int *var;int *const var&#xff1b;const int *const var&#xff1b;理解与区分4 总结 1 前言 实际开发过程中经常遇到const关键字作用于指针的情况&#xff0c;例如&#xff1a;const int *var;int *const var&#xff1b;const…