当前位置: 首页 > news >正文

大模型RAG项目实战:Milvus向量数据库

GPT多模态大模型与AI Agent智能体系列一百一二十四

大模型RAG项目实战:Milvus向量数据库

5.3.2 Milvus
Milvus是一款云原生向量数据库,具有高可用性、高性能和易扩展性,专门用于处理海量向量数据的实时检索。它基于FAISS、Annoy、HNSW等向量搜索库构建,旨在解决稠密向量相似度检索问题。Milvus支持数据分区、分片、数据持久化、增量数据摄取、标量向量混合查询和Time Travel等功能,并对向量检索性能进行了大幅优化,满足各种向量检索场景的需求。建议用户使用Kubernetes部署Milvus,以获得最佳的可用性和弹性。Milvus采用共享存储架构,实现了存储计算的完全分离,计算节点支持横向扩展。从架构上看,Milvus遵循数据流和控制流分离的原则,整体分为四个层次:接入层、协调服务、执行节点和存储层,各层次相互独立,独立扩展和容灾。Milvus向量数据库能够帮助用户轻松应对海量非结构化数据(图片/视频/语音/文本)检索。单节点Milvus可以在秒内完成十亿级的向量搜索,分布式架构亦能满足用户的水平扩展需求。随着互联网的发展,非结构化数据变得越来越普遍,包括电子邮件、论文、物联网传感数据、社交媒体照片、蛋白质分子结构等。为了让计算机理解和处理非结构化数据,使用 Embedding技术将这些数据转换为向量。Milvus存储并索引这些向量。Milvus能够通过计算两个向量的相似距离来分析它们之间的相关性。如果两个嵌入向量非常相似,则表示原始数据源也非常相似。Milvus向量数据库专为向量查询与检索设计,能够为万亿级向量数据建立索引。与现有的主要用作处理结构化数据的关系型数据库不同,Milvus在底层设计上就是为了处理由各种非结构化数据转换而来的Embedding向量而生。
1.Milvus基本概念
随着大模型时代的到来,非结构化数据的处理成为了一项挑战性的任务。Milvus作为一款开源的向量数据库,提供了一系列强大的功能来应对这一挑战。下面详细介绍Milvus的基本概念,帮助读者更好地理解和使用这个强大的工具。
1)非结构化数据
非结构化数据是指数据结构不规则,没有统一预定义数据模型,不便用数据库二维逻辑表来表现的数据。非结构化数据包括图片、视频、音频、自然语言等,占所有数据总量的80%。非结构化数据处理可以通过各种人工智能或机器学习模型转化为向量数据后进行处理。
2)特征向量
向量又称为Embedding Vector,是指由Embedding技术从离散变量(如图片、视频、音频、自然语言等各种非结构化数据)转变而来的连续向量。在数学表示上,向量是一个由浮点数或者二值型数据组成的n维数组。通过现代的向量转化技术,可以将非结构化数据抽象为n维特征向量空间的向量,采用最近邻算法计算非结构化数据之间的相似度。
3)Collection
Collection包含一组Entity,可以等价于关系型数据库中的表。
4)Entity
Entity包含一组Field。Field与实际对象相对应。Field可以是代表对象属性的结构化数据,也可以是代表对象特征的向量。Primary Key是用于指代一个Field的唯一值。你可以自定义Primary Key,否则Milvus将会自动生成Primary Key。请注意,目前Milvus不支持Primary Key去重,因此在一个Collection内可能出现Primary Key相同的Entity。
5)Field
Field是Entity的组成部分。Field可以是结构化数据,例如数字和字符串,也可以是向量。Milvus 2.0已支持标量字段过滤。并且,Milvus 2.0在一个集合中只支持一个主键字段。
6)Partition
分区是集合(Collection)的一个分区。Milvus支持将收集数据划分为物理存储上的多个部分。这个过程称为分区,每个分区可以包含多个段。
7)Segment
Milvus在数据插入时,通过合并数据自动创建的数据文件。一个Collection可以包含多个Segment。一个Segment可以包含多个Eentity。在搜索中,Milvus会搜索每个Segment,并返回合并后的结果。
8)Sharding
Shard是指将数据写入操作分散到不同节点上,使Milvus能充分利用集群的并行计算能力进行写入。默认情况下,单个Collection包含2个分片(Shard)。目前Milvus采用基于主键哈希的分片方式,未来将支持随机分片、自定义分片等更加灵活的分片方式。分区的意义在于通过划定分区减少数据读取,而分片的意义在于多台机器上并行写入操作。
9)索引
索引基于原始数据构建,可以提高对Collection数据搜索的速度。Milvus支持多种索引类型。为提高查询性能,你可以为每个向量字段指定一种索引类型。目前,一个向量字段仅支持一种索引类型。切换索引类型时,Milvus自动删除之前的索引。相似性搜索引擎的工作原理是将输入的对象与数据库中的对象进行比较,找出与输入最相似的对象。索引是有效组织数据的过程,极大地加速了对大型数据集的查询,在相似性搜索的实现中起着重要作用。对一个大规模向量数据集创建索引后,查询可以被路由到最有可能包含与输入查询相似的向量的集群或数据子集。在实践中,这意味着要牺牲一定程度的准确性来加快对真正的大规模向量数据集的查询。
10)PChannel
PChannel表示物理信道。每个PChannel对应一个日志存储主题。默认情况下,将分配一组256个PChannels来存储记录Milvus集群启动时数据插入、删除和更新的日志。
11)VChannel
VChannel表示逻辑通道。每个集合将分配一组VChannels,用于记录数据的插入、删除和更新。VChannels在逻辑上是分开的,但在物理上共享资源。
2.核心特性与优势
Milvus是一款高性能、高可用、高可靠的国产向量数据库,它采用了独特的数据结构和算法,实现了高效的向量运算和查询,有以下特性与优势:
(1)高性能:Milvus采用了独特的数据结构和算法,可以实现高效的向量运算和查询,其性能指标在很多情况下都优于其他国产向量数据库。
(2)高可用、高可靠:Milvus支持在云上扩展,其容灾能力能够保证服务高可用。
(3)混合查询:Milvus支持在向量相似度检索过程中进行标量字段过滤实现混合查询。
(4)开发者友好:支持多语言、多工具的Milvus生态系统。
(5)易用性:Milvus具有简单的API接口和易于使用的管理工具,用户可以快速上手并进行大规模的向量数据处理和分析。
(6)兼容性:Milvus 支持多种数据格式和协议,如 JSON、XML、HTTP 等,可以方便地与其他系统和平台进行集成和数据交换。
3.Milvus系统架构
Milvus 2.0是一款云原生向量数据库,采用存储与计算分离的架构设计,所有组件均为无状态组件,极大地增强了系统弹性和灵活性。整个系统分为四个层次:
1)接入层
接入层(Access Layer,AL)是系统的门面,由一组无状态Proxy组成,对外提供用户连接的Endpoint。接入层负责验证客户端请求并减少返回结果。Proxy本身是无状态的,一般通过负载均衡组件(Nginx、Kubernetes Ingress、NodePort、LVS)对外提供统一的访问地址并提供服务。由于Milvus采用大规模并行处理(Massively Parallel Processing,MPP)架构,Proxy会先对执行节点返回的中间结果进行全局聚合和后处理后,再返回至客户端。
2)协调服务
协调服务(Coordinator Service,CS)是系统的大脑,负责向执行节点分配任务。它承担的任务包括集群拓扑节点管理、负载均衡、时间戳生成、数据声明和数据管理等。协调服务共有四种角色:
(1)根协调器:根协调器(Root Coordinator,RC)负责处理数据定义语言(Data Definition Language,DDL)和数据控制语言(Data Control Language,DCL)请求。比如,创建或删除Collection、Partition、Index 等,同时负责维护中心授时服务TSO和时间窗口的推进。
(2)查询协调器:查询协调器(Query Coordinator,QC)负责管理Query Node的拓扑结构和负载均衡以及从增长的Segment移交切换到密封的Segment。
(3)数据协调器:数据协调器(Data Coordinator,DC)负责管理Data Node的拓扑结构,维护数据的元信息以及触发Flush、Compact等后台数据操作。
(4)索引协调器:索引协调器(Index Coordinator,IC)负责管理Index Node的拓扑结构,构建索引和维护索引元信息。
3)执行节点
执行节点是系统的四肢,负责完成协调服务下发的指令和Proxy发起的数据操作语言(Data Manipulation Language,DML)命令。由于采取了存储计算分离,执行节点是无状态的,可以配合Kubernetes快速实现扩缩容和故障恢复。执行节点分为三种角色:
(1)Query Node:Query Node通过订阅消息存储获取增量日志数据并转化为Growing Segment,基于对象存储加载历史数据,提供标量+向量的混合查询和搜索功能。
(2)Data Node:Data Node通过订阅消息存储获取增量日志数据,处理更改请求,并将日志数据打包存储在对象存储上实现日志快照持久化。
(3)Index Node:Index Node负责执行索引构建任务。Index Node不需要常驻于内存,可以通过Serverless的模式实现。
4)存储服务
存储服务是系统的骨骼,负责Milvus数据的持久化,分为元数据存储(Meta Store,MS)、消息存储(Log broker,LB)和对象存储(Object Storage,OS)三个部分。
(1)元数据存储:负责存储元信息的快照,比如:集合Schema信息、节点状态信息、消息消费的Checkpoint等。元信息存储需要极高的可用性、强一致和事务支持,因此,ETCD是这个场景下的不二选择。除此之外,ETCD还承担了服务注册和健康检查的职责。ETCD是一个开源的分布式键值对存储系统,主要用于共享配置和服务发现。
(2)消息存储:消息存储是一套支持回放的发布订阅系统,用于持久化流式写入的数据,以及可靠的异步执行查询、事件通知和结果返回。执行节点宕机恢复时,通过回放消息存储保证增量数据的完整性。
(3)对象存储:负责存储日志的快照文件、标量/向量索引文件以及查询的中间处理结果。Milvus采用MinIO作为对象存储,另外也支持部署于AWS S3和Azure Blob这两大最广泛使用的低成本存储。但是,由于对象存储访问延迟较高,且需要按照查询计费,因此 Milvus未来计划支持基于内存或SSD的缓存池,通过冷热分离的方式提升性能以降低成本。目前,分布式版Milvus依赖Pulsar作为消息存储,单机版Milvus依赖RocksDB作为消息存储。消息存储也可以替换为Kafka、Pravega等流式存储。整个Milvus围绕日志为核心来设计,遵循日志即数据的准则,因此在2.0版本中没有维护物理上的表,而是通过日志持久化和日志快照来保证数据的可靠性。日志系统作为系统的主干,承担了数据持久化和解耦的作用。通过日志的发布订阅机制,Milvus将系统的读、写组件解耦。
4.Milvus部署模式
Milvus支持两种部署模式,单机模式(Standalone)和分布式模式(Cluster)。两种模式具备完全相同的能力,用户可以根据数据规模、访问量等因素选择适合自己的模式。Standalone模式部署的Milvus暂时不支持在线升级为Cluster模式。
1)单机版Milvus
单机版Milvus是一个专为人工智能应用设计的开源向量数据库,它由三个关键的组件构成。这些组件协同工作,提供了强大的数据处理能力,特别是在处理大量向量数据时表现出色。
(1)Milvus:作为系统的核心,它负责执行向量数据的插入、查询、更新和删除操作。Milvus 支持多种数据类型和索引结构,使得它在处理大规模数据集时既高效又灵活。
(2)ETCD:这是一个高性能的键值存储系统,充当元数据引擎的角色。它主要用于管理和同步Milvus内部各个组件的状态信息,如代理节点(Proxy)、索引节点(Index Node)等。通过ETCD,Milvus能够保证集群内各部分之间的一致性和可靠性。
(3)MinIO:作为存储引擎,MinIO负责维护Milvus数据的持久化。这意味着所有在 Milvus中存储的数据都会通过MinIO进行备份,从而确保数据的安全性和可恢复性。MinIO 支持多种存储后端,包括本地文件系统和云存储服务,为用户提供了极大的灵活性。
2)分布式版Milvus
分布式版Milvus由八个微服务组件和三个第三方依赖组成,每个微服务组件可使用Kubernetes独立部署。
(1)微服务组件:包括Root Coordinator、Proxy、Query Coordinator、Query Node、Index Coordinator、Index Node、Data Coordinator、Data Node。
(2)第三方依赖:ETCD负责存储集群中各组件的元数据信息,MinIO负责处理集群中大型文件的数据持久化,如索引文件和全二进制日志文件,Pulsar负责管理近期更改操作的日志,输出流式日志及提供日志订阅服务。
5.Milvus微服务化及实现特点
Milvus微服务化架构实现了高度模块化和职责分离,通过ETCD管理元数据,利用对象存储保存向量数据,并通过Proxy提供统一访问接口。这种设计不仅支持云原生部署,还确保读写和索引操作的进程级隔离,同时允许用户根据业务需求调整一致性级别以优化性能。
1)微服务化
Milvus将服务拆成多个角色,每个角色职责划分相对独立,其中Index Node、Query Node、Data Node这些角色是实际工作的Woker节点,Index Coordinator、Query Coordinator、Data Coordinator是负责协调Woker节点以及将任务协调并分派给其他角色的节点,ETCD负责存储元数据,对象存储负责存储向量数据,Proxy负责Milvus的统一访问,Data Node、Data Coordinator负责向量的写入,Index Node、Index Coordinator负责向量索引的构建,Query Node、Query Coordinator负责向量的查询,Root Coordinator负责处理DDL去协调其他Coordinator以及全局时间分发并维护当前元数据快照。
2)支持云原生
Milvus服务本身是没有状态的,数据存储在对象存储,元数据会存放在ETCD。原生支持K8s部署集群部署,可以根据集群或者个别角色的负载去动态扩缩资源。
3)向量操作【读/写/建索引】之间进程级别隔离
向量读/写/建索引都是通过不同的节点完成,这样操作之间都是通过进程之间隔离,不会抢占资源,相互影响。
4)在查询的时候指定不同的一致性级别
在真实的业务场景中,一致性要求越强,查询对应的响应时间也会变长。用户可以根据自己的需求选择不同的一致性级别。
7.Milvus向量执行引擎
Knowhere是Milvus的核心向量执行引擎,它集成了几个矢量相似度搜索库,包括Faiss、Hnswlib和Annoy。Knowhere的定义范畴分为狭义和广义两种:
(1)狭义上的Knowhere是下层向量查询库(如Faiss、HNSW、Annoy)和上层服务调度之间的操作接口。同时,异构计算也由Knowhere这一层来控制,用于管理索引的构建和查询操作在何种硬件上执行,如CPU或GPU,未来还可以支持 DPU/TPU/……这也是Knowhere这一命名的源起——Know Where。
(2)广义上的Knowhere还包括Faiss及其它所有第三方索引库。因此,可以将Knowhere 理解为Milvus的核心运算引擎。
从上述定义可以得知,Knowhere只负责处理数据运算相关的任务,其他系统层面的任务如数据分片、负载均衡、灾备等,都不在它的功能范畴中。另外,从Milvus 2.0.1开始,广义的Knowhere已从Milvus项目中剥离出来,成为了一个单独的项目。
8.Milvus读写及查询内部机制
Milvus的读写及查询内部机制都体现了其存算分离的设计理念。
1)读写过程内部机制
在Milvus的存算分离架构中,读写流程的设计充分体现了其高效性和灵活性。具体来说,整个过程可以分为以下几个步骤:首先,Proxy将消息写入消息队列中,这里的消息队列可以是Kafka、Pulsar或RocksMQ等。这一步骤的目的是为了解耦生产者和消费者,提高系统的吞吐量和可用性。接着,Data Node节点从消息队列中消费消息,生成对应的数据分片,即Segment,并将其上传到Object Storage上。这里的Object Storage是一种分布式存储系统,可以提供高可用性和可扩展性。然后,协调节点会收集生成的Segment,并指挥Query Node节点加载对应的Segment以供查询。这一步骤的目的是为了实现数据的实时更新和查询。在整个过程中,生成存储文件的过程发生在Data Node上,而使用存储数据进行查询计算则发生在Query Node上。这两个过程互不干扰,可以分别进行弹性扩展。例如,在查询计算密集的时段,可以扩展Query Node的数量和资源;在写入压力较大的时候,可以扩展Data Node节点和资源。
2)查询过程内部机制
Milvus的查询过程同样体现了其存算分离的设计理念。具体来说,这个过程可以分为以下几个步骤:首先,Proxy向Query Coordinator询问Milvus Delegator的分布,得知该Collection的Delegator在Query Node2上。这里的Delegator是查询的首领,负责汇总其所统领的Segment的查询结果。接着,Proxy向Query Node2发送查询请求。这一步骤的目的是为了将查询请求发送到正确的节点上,以便快速获得查询结果。然后,Delegator收到请求后,将其转发给Query Node1和Query Node3上,获取所有Segment的查询结果。这一步骤的目的是为了并行处理查询请求,提高查询效率。最后,Delegator汇总所有查询结果,返回给Proxy。这一步骤的目的是为了将查询结果整合在一起,提供给客户端。总的来说,Milvus的查询过程充分利用了其存算分离的架构优势,实现了高效、灵活的查询功能。
9.Milvus提供的工具
Milvus提供了多种工具来增强用户体验和数据管理,其中包括Milvus CLI、Milvus Backup、MilvusDM和Milvus Attu,它们各自针对不同的需求,提供了从命令行操作到数据迁移再到图形界面的全方位解决方案。
1)Milvus CLI
Milvus命令行工具(Command-Line Interface,CLI)是一个便捷的数据库客户端命令行工具,基于Python SDK,它允许使用交互式命令行提示符通过终端执行命令,支持数据库连接、数据导入和导出以及向量间距离计算等多种功能。这款工具可以在Win、Mac、Linux全平台上使用,无需依赖外部包,无论是在线还是离线环境都可以轻松安装和使用。Milvus CLI的使用非常简便,用户可以通过交互式命令行提示符在终端执行各种命令。它的安装过程也非常简单,用户只需要运行一条pip安装命令:pip install milvus-cl即可完成在线安装,而且它对Python版本的要求是3.8以上。此外,Milvus CLI还具备许多实用的特性,比如内置的帮助文档、自动补全功能等,这些都大大提升了用户的工作效率。总的来说,Milvus CLI是一款功能全面、易于使用且跨平台的工具,非常适合那些需要频繁操作Milvus向量数据库的用户。Milvus CLI安装后使用起来非常方便,类似于使用MySQL客户端命令行一样,很容易上手操作。常用命令如下:
(1)默认方式连接数据库:进入milvus_cli客户端,输入connect即可按默认IP和端口连接Milvus数据库,参考如下命令:

connect
(2)指定IP地址和端口号连接数据库:
connect -h ip -p 19530
(3)创建collection命令:
create collection -c car -f id:INT64:primary_field -f vector:FLOAT_VECTOR:128 -f color:INT64:color -f brand:INT64:brand -p id -a -d ‘car_collection’
(4)查看collection命令:
list collections
(5)查询表详细信息命令:
describe collection -c car
(6) 删除collection命令:
delete collection -c car
2)Milvus Backup
Milvus Backup是Zilliz公司专门为Milvus开发的数据备份和恢复工具。它同时提供CLI和API,以适应不同的应用场景。Milvus Backup支持以下能力:
(1)支持包括命令行和Restful API的多种交互方式。
(2)支持热备份,对Milvus集群运行几乎没有影响。
(3)支持集群全量备份或指定collection备份。
(4)通过bulkinsert实现备份恢复,并可在恢复时重命名collection。
(5)支持S3,支持跨bucket备份,可以实现集群间迁移。
(6)支持Milvus 2.2.0+的版本。
目前只支持备份原数据,不备份索引数据。Milvus Backup编程语言使用Go语言实现,部分逻辑直接拷贝Milvus源码,保证最大程度的兼容性和操作习惯一致性。
Milvus Backup交互方式支持多种使用方式:
(1)命令行:考虑备份工具的主要用户是对Milvus的运维开发人员,命令行是最简便直接的使用方式,Milvus Backup基于Cobra框架实现了命令行。
(2)Restful API:Milvus Backup提供Restful API,便于工具服务化,并提供Swagger UI。
(3)Go Module:Milvus Backup还可以作为Go Module,集成到其他工具之中。
3)MilvusDM
MilvusDM是一款专门设计用于Milvus数据的导入和导出的开源数据迁移工具。为了大幅提高数据管理效率并降低DevOps成本,MilvusDM支持以下迁移通道:
(1)Milvus到Milvus:迁移Milvus实例之间的数据。
(2)Faiss到Milvus:将未压缩的数据从Faiss导入Milvus。
(3)HDF5到Milvus:将HDF5文件导入Milvus。
(4)Milvus到HDF5:将Milvus中的数据保存为HDF5文件。
MilvusDM托管在GitHub上,要安装MilvusDM运行pip install pymilvusdm即可。
4)Milvus Attu
Milvus的一个高效的开源管理工具。它具有直观的图形用户界面,允许用户轻松地与数据库进行交互。只需单击几下,就可以可视化集群状态、管理元数据、执行数据查询等等,接下来展示几个Attu管理界面的截图。
(1)创建集合:在浏览器中访问Attu管理系统地址http://{your machine IP}:8000,输入账号密码后点击Connect按钮进入Attu管理Web平台。单击左侧导航面板上的集合图标,然后单击创建集合,出现创建集合对话框,输入必要的信息,本示例创建一个名为test的集合,其中包含一个主键字段、一个矢量字段和一个标量字段,可以根据需要添加标量字段。创建集合界面如图5-4所示。

图5-4 创建集合
(2)导入数据:导入数据会将数据追加而不是覆盖数据。在集合页面上,单击导入数据。会显示导入数据对话框,在集合下拉列表中选择要导入数据的集合,在分区下拉列表中选择要导入数据的分区,单击选择CSV文件并选择CSV文件,列名与模式中指定的字段名相同。导入数据界面如图5-5所示。

图5-5 导入数据
如果导入成功,则实体计数列中的行计数状态会更新到集合中。在相应的分区选项卡页面上,导入数据的分区中的实体计数列中的行计数状态会更新。实体计数的更新可能需要一些时间。
(3)创建索引:以下示例使用欧几里得距离作为相似性度量标准,构建了一个具有1024个nlist值的IVF_FLAT索引。在Collection页面上点击Schema,切换到Schema选项卡页面,然后单击CREATE INDEX,弹出Create Index对话框。在Create Index对话框中,从Index Type下拉列表中选择IVF_FLAT,从Metric Type下拉列表中选择L2,并在nlist字段中输入1024。打开View Code,跳转到Code View页面,可以选择以Python或Node.js查看代码。创建索引界面如图5-6所示。

图5-6 创建索引
单击Create来创建索引,如果创建成功,创建的索引类型将出现在矢量字段的Index Type列中。
(4)查询数据:单击要在其中查询数据的集合条目,打开相应的详细页面。在Data Query选项卡页面上,单击Filter图标,弹出Advanced Filter对话框。使用Field Name下拉列表、Logic下拉列表、Value字段和AND运算符指定复杂的查询条件,例如color > 10 && color <20。然后单击Apply Filter,以应用查询条件。单击Query以检索与查询条件匹配的所有查询结果。查询数据界面如图5-7所示。

图5-7 查询数据
除了基本的查询,还支持向量相似性搜索以及带有时间旅行的搜索的混合搜索。
(5)系统视图:Attu具有监控Milvus系统的功能。在左侧导航栏中点击系统视图图标,进入系统视图页面。系统视图仪表板会显示Milvus实例的拓扑结构。单击Milvus节点或协调器节点,相应的信息将显示在右侧的信息栏中。节点列表视图中,所有由其父协调节点管理的节点都列在表格中,可以按照包括CPU内核数、CPU内核使用率、磁盘使用率和内存使用率在内的指标对节点进行排序。系统视图界面如图5-8所示。

图5-8 系统视图
10.Milvus应用场景
Milvus在应用中添加相似性搜索很容易,应用场景包括但不限于:
(1)图像相似性搜索:使图像可搜索,并即时返回来自大型数据库中最相似的图像。
(2)视频相似性搜索:通过将关键帧转换为向量,然后将结果输入Milvus,可以在几乎实时的时间内搜索和推荐数十亿个视频。
(3)音频相似性搜索:快速查询大量音频数据,如语音、音乐、音效和表面相似声音。
(4)分子相似性搜索:针对指定分子进行极快相似性搜索、子结构搜索或超结构搜索。
(5)推荐系统:根据用户行为和需求推荐信息或产品。
(6)问答系统:交互式数字问答聊天机器人,自动回答用户的问题。
(7)DNA序列分类:通过比较相似的DNA序列,在毫秒级别准确地分类一个基因。
(8)文本搜索引擎:通过将关键字与文本数据库比较,找到相关信息。
接下来,将探讨另一种向量数据库Pinecone,它在某些方面与Milvus有所不同,但在向量搜索和数据管理方面也提供了强大的功能。

总结

此文章有对应的配套新书教材和视频:

【配套新书教材】
《GPT多模态大模型与AI Agent智能体》(跟我一起学人工智能)【陈敬雷编著】【清华大学出版社】
新书特色:《GPT多模态大模型与AI Agent智能体》(跟我一起学人工智能)是一本2025年清华大学出版社出版的图书,作者是陈敬雷,本书深入探讨了GPT多模态大模型与AI Agent智能体的技术原理及其在企业中的应用落地。
全书共8章,从大模型技术原理切入,逐步深入大模型训练及微调,还介绍了众多国内外主流大模型。LangChain技术、RAG检索增强生成、多模态大模型等均有深入讲解。对AI Agent智能体,从定义、原理到主流框架也都进行了深入讲解。在企业应用落地方面,本书提供了丰富的案例分析,如基于大模型的对话式推荐系统、多模态搜索、NL2SQL数据即席查询、智能客服对话机器人、多模态数字人,以及多模态具身智能等。这些案例不仅展示了大模型技术的实际应用,也为读者提供了宝贵的实践经验。
本书适合对大模型、多模态技术及AI Agent感兴趣的读者阅读,也特别适合作为高等院校本科生和研究生的教材或参考书。书中内容丰富、系统,既有理论知识的深入讲解,也有大量的实践案例和代码示例,能够帮助学生在掌握理论知识的同时,培养实际操作能力和解决问题的能力。通过阅读本书,读者将能够更好地理解大模型技术的前沿发展,并将其应用于实际工作中,推动人工智能技术的进步和创新。

【配套视频】

清华《GPT多模态大模型与AI Agent智能体》书籍配套视频【陈敬雷】
视频特色: 前沿技术深度解析,把握行业脉搏

实战驱动,掌握大模型开发全流程

智能涌现与 AGI 前瞻,抢占技术高地

上一篇:《GPT多模态大模型与AI Agent智能体》系列一》大模型技术原理 - 大模型技术的起源、思想
下一篇:DeepSeek大模型技术系列五》DeepSeek大模型基础设施全解析:支撑万亿参数模型的幕后英雄

http://www.dtcms.com/a/359604.html

相关文章:

  • 《SVA断言系统学习之路》【02】并发断言
  • C++11语言(三)
  • 读书笔记共享平台|基于SpringBoot的设计与实现
  • 大模型面试题剖析:PPO 与 GRPO 强化学习算法核心差异解析
  • 从RNN到Transformer
  • 网格图--Day03--网格图DFS--2658. 网格图中鱼的最大数目,1034. 边界着色,1020. 飞地的数量
  • 动规多重背包
  • JSP 输出语法全面解析
  • 深度学习篇---MobileNet
  • Nodejs之HelloWord Hello-Http
  • 电商系统的分布式事务调优
  • MySQL 公用表达式
  • EKS上部署gpu服务利用karpenter实现自动扩缩(s3作为共享存储)
  • Java中,任何方法都有其调用者
  • MySQL面试集合
  • 硬件开发_基于物联网的工厂环境监测系统
  • 从新能源汽车看产品逻辑与认知系统
  • 【MD文本编辑器Typora】实用工具推荐之——轻量级 Markdown 编辑器Typora下载安装使用教程 办公学习神器
  • 【CNB.COOL】智能花卉分类系统 – 部署指北
  • IOT安全学习之IoT_Sec_Tutorial
  • 暴力破解基础知识(一)
  • ReconDreamer++
  • 《Vue零基础教程》(5)Vue.js组件开发
  • 经典卷积神经网络CNN
  • 人工智能学习:机器学习相关面试题(一)
  • AI 取代部分岗位后:哪些职业更易被替代?人类该如何提升 “不可替代性”?
  • top命令和ps命令
  • 基于单片机智能保温杯/智能水杯
  • 软考 系统架构设计师系列知识点之杂项集萃(139)
  • 介绍几个DCDC降压芯片(TMI3408D、TPS56320x)