大数跨境
0
0

【AI问爱答】第五期 | 大模型如何快速赋能企业AI应用创新?

【AI问爱答】第五期 | 大模型如何快速赋能企业AI应用创新? 阿里云云栖号
2024-09-06
0
导读:RAG、Prompt优化还是Finetune,尽在本期【AI问爱答】
【AI问爱答】第五期视频


【AI问爱答】第五期问答节选 


本期主题
大模型如何快速赋能企业AI应用创新? 
RAG、Prompt优化分别适用于哪些情形?

回答专家:
高金杨,阿里云百炼算法架构负责人
刘阳,阿里云百炼模型工程架构负责人

深度问答

Q1:阿里云百炼作为一个模型服务及应用开发平台服务20万家客户AI落地创新,有让人印象深刻的案例吗?

高金杨百炼是一个to B的平台,to B的客户大体分为两大类。一类就是to B他自己做提效,比如说从数据清洗到企业内部的一些应用、工具链,它自己内部的RPA,会有大量这种类型的场景。另外一类客户,做的是to B和to C,我们对他是to B的生意,但同时他又拿我们这个产品去做他自己to C的业务。这里会涉及到很多场景,比如客服类型的场景,还有游戏类型的客户会拿我们这个模型去做游戏里面的NPC。最后还有一类场景是广泛地涉及到多模态的输入输出,比较典型的就是物流类型的场景,我们可能会拿它去做质检。

Q2:当前市面上的大模型服务平台其实非常多。大模型落地仍存在一些痛点,比如说效果比较差,成本比较贵,落地也比较难。您觉得哪些因素还会影响企业用户在模型上的选择呢?

高金杨:从工具链的层面上,坦诚讲,确实市面上的产品很多,每个云厂商基本都有产品。同时,从国外的LangChain、LlamaIndex到国内的Dify,其实有非常多开源的选择。单纯就工具链的应用本身,从可用性的角度上,门槛并没有特别高。我们每一个人都可以拿Dify或者拿LlamaIndex去搭一套rag的基础方案。那百炼平台在哪些角度去影响客户的选择呢?

大体上会分为三部分。一部分是单纯的工具,单点的工具可能是一个没有门槛的事情。但是往往我们谈到工具链的时候,是一个工具绑着一个模型。也就是说比如rag,它其实是一个搜索链路绑着一个大模型的生成。涉及到多个工具的调用的时候,可能就会有多次大模型的调用。这就是一个很高的成本,像一个overhead。我们的这个应用,有时候我们去搭一个agent类型应用,可能十几秒二十几秒的延迟往往就是这么来的。那怎么样去做好工具链的整合,我觉得这是一个很高门槛的事情。在这个方面来讲,我跟技术团队一起去进行了很多配合的实践,就推出了Assistant API这个产品。

另外一个角度是什么呢?多数时候,当我们谈到工具链的时候,都只是拿工具链搭了一个pipeline。业界看来,就是一个POC类型的产品去做了一个proof concept,对吧?我们只是把这个流程串起来。但是我们可能传统做AI的时候,会讲AI这个事情是有多少人工就有多少智能,对吧?当然可能这个背后不是人工,而是各种各样数据的努力。我们再一点点去解这个bad case。所以从这个角度上,我觉得就引入另外一个话题,我们做一个工具链平台,或者说做一个模型应用开发平台,不只是为了大家把这个架子搭出来。也就是说,希望我们能够去帮助客户真正实现一个成功的效果。那这个过程就涉及到怎么从一个POC做到交付,怎么从交付上线之后做好持续的效果提升,怎么样把大模型应用当中数据的价值充分发挥出来,转化成模型的效果,这是第二个方面。

第三个方面是什么呢?任何时候,当我们去采用一个工具链平台的时候,往往它都涉及到架构的选择,以及后续的可持续开发。从这个角度上来讲,可能大家都会觉得最安全的一个方案是用一个开源的方案。后续把所有的开发能力落在自己这边,会非常有自信说可以掌控这个项目。我们去用一个比如说云厂商的版本,比如百炼,可能每个客户都会有疑虑,百炼未来能不能把我的这些需求支撑好,我会去这么思考这个问题。这个问题是说我们提供的并不是能百分之百支持好客户的所有需求,而是平台需要有开放性,能够让客户把他的需求在这个平台当中有效地表达出来。从这个角度来看,百炼平台坚持了一个非常开放性的原则。在接口上,比如说Assistant API接口,基本跟OpenAI保持完全的对齐跟匹配。

Q3:百炼作为一个模型服务平台,对于本身的数据中心,或者说数据集的建设有什么计划?

刘阳:数据和模型本身就是两者绑定的,不可能独立分开。我们在百炼平台上提供了数据中心,主要功能包括像给训练还有评测提供数据,以及像rag知识库,也有上传的渠道。那在从数据这个对象单独来说,我们会继续来扩展它的易用性,包括像后面数据导入的易用性。我们再换个角度来看,其实数据它不光只是静态的data在那里,后面百炼需要来提供包括数据的一个流程性的东西,包括数据如何导入,以及基于大模型以及其他智能方式生成一些数据等来方便B端客户更好地训练或者评测模型。

Q4:魔搭和百炼都提供了一站式模型服务工具,在实际使用过程当中,该如何选择?

刘阳:我恰好是一个魔搭平台的贡献者,所以这个问题挺好的。我们认为开源和闭源这两件事情是相辅相成的,它并没有冲突。开源平台有各种各样的小模型可以供你选择,有很多开源的框架可以用。在百炼上当然也有自己的优势,像我们推出的Qwen-plus、Qwen-max这样的model,它本身具有闭源的优势性,尤其在百炼平台可接入,它是面向客户更加易用的方式,在产品形态上会更简单一些。而开源的形式稍微需要开发门槛,需要操作的同学或者工程师懂一些相关的技术。

此外,这两者也是有融合的可能性的。比如有一家头部客户,他想要来使用AI或者做一个AI的产品。他完全可以使用百炼平台提供的Qwen-max或者plus这样的基模能力,再搭配魔搭上面提供的小模型,把这整体合成一个完善的项目,这都是一个很好的结合点。

Q5:检索增强RAG中有哪些好用的Chunk切分方法?

刘阳:在Chunk当中,主要把文本分成两类,结构化和非结构化的数据。结构化的数据会比较容易,因为有具体的表格等,按照行列以及标题等来处理会更好。非结构化的数据往往会让大家犯难,尤其B端数据如果没有清洗过的话,经常会遇到非结构化的数据。那通用的方式会按照版面,尤其像PDF,去提取其中的分页、分段的内容。除此之外,可能还会从语义方面去考虑,比如按照它语义的相关度进行分割。这些都是从方法角度来讨论,我们具体还要看这个客户他遇到的问题是什么,结合具体的问题来选择最合适的方法。

Q6:在大模型的项目当中,如何判断用rag还是用微调?

高金杨:这个问题其实可以涵盖另外一个概念一起看。一个是rag,另外一个是prompt提示词,还有一个是微调。他们三者之间的应用的边界确实非常模糊。甚至很多时候一个应用有很多种搭建的方法,在这三者里边,我觉得可以给大家一些推荐的选项。

比如说微调其实最适用的是哪几个类型的场景呢?第一点是对RT,即反馈路径的时长有特别高要求的时候,我们往往会选择微调一个小模型,这是事半功倍的一个事情。什么样的场景比较适合用微调呢?当我们对回答方式有特别高的要求的时候。也就是说我们会希望在微调阶段做的是一些RLHF或者DPO的事情。举例而言,我们希望让这个模型的回答更像人一点。这种拟人的事情是非常适合微调来做。那什么样的事情特别适合用rag来做?当我们对回答要求特别准确的时候用rag。Prompt可能是一种更宽泛的应用方式。当你发现这个事情rag不好做,或者微调不好做,或者希望交给模型更多的样本时,我会比较鼓励大家采用In-Context-Learning的方式,通过prompt方式喂进去。

Q7:阿里云百炼什么时候可以开放语音输入跟图片识别的能力呢?

高金杨百炼是一个以自然语言模型或者文本语言模型为主的开发平台。也就是说搭建的工具链是基于自然语言去搭建的,在这个过程当中会引入其他模态,比如语音跟图片。我们对语音跟图片这两个模态的处理方式是不太一样的。

首先语音这个模态,往往指的两部分,一部分是ASR,一部分是TTS。一个是把语音变成语言,另外一个是把语言变成语音。也就是说像是在百炼这个语言模型搭成的应用外套了一个壳。当然这个壳对百炼里边的语言模型有更高的要求。比如台中的模型能更懂一些语气、语调,那是不是语音模型的部分可以做得更好。所以大家可以期待一下,百炼平台可能会推出的一些相对语音有更好支持的语言模型的技术。

图片对于百炼平台更像是一个工具。我们往往是结合图片跟文本信息,问题还是都在文本里,把图片更多视为Assistant API里面的一个工具,然后被调用。它的主要作用是从图片当中提取信息,然后继续完成我们在文本在自然语言上的任务。

快问快答

01 百炼可以上传结构化数据,有对应的API接口吗?

刘阳:对于大量的数据,我们后面会跟云产品有更多的交互,比如从RDS之类的地方把数据导流进来。

02 百炼平台进行了大语言模型的微调工作,训练好的模型参数保存在哪儿,后续又如何调用跟部署呢?

刘阳:训练好的model都在模型中心,模型中心里面提供了专属部署的方式方便大家通过API来调用。

03 阿里百炼服务器在海外可以调用吗,速度如何呢?在海外有部署相关服务器吗?

高金杨:国内的服务在海外是可以调用的。海外在新加坡开了服务,因为大模型整体有很强的GPU的集中性,所以不会开很多。

04 如何设计编排系统来高效管理多个智能体?

刘阳:主要涉及到这个应用的拆分,往往以一个大模型配合其他所有工具形成的服务单元为力度去编排智能体可能是合适的。

05 有一个项目需要用到大模型并发量非常高,在官网的文档以及实际调用当中,QPS都非常小,有什么方法来解决吗?

高金杨:版面上的大模型定价分为两部分,一部分是基础的token定价,另外一部分是QPM,也就是queries per  minutes是这个QPS的60倍。正常来讲,如果只买token的话,它配的QPS或者QPM是比较小的。如果大家有高并发的需求,建议大家按照QPM规格去买好。

06 阿里云百炼Assistant API支持通义之外的大模型吗?

刘阳:这个大家可以期待一下,接下来我们会在assistant和应用里面支持更多的model,model和agent这两件事情会逐渐智能交化。

07 Assistant API运行中的流式输出可以通过什么样的API来强制中断呢?

刘阳:这个中断有两种方式,一种是如果你真的是在交互,你完全可以将进程线程杀掉,让它不流式输出。另外Assistance API接下来会提供cancel的接口将它断掉。

08 Assistant API如何保持上下文对话?

高金杨:基础的OpenAI的协议里边具有多轮对话,多轮的user assistant的输出。然后另外一个点,我们Assistant API里面也有memory对应的工具,适合大家去做比如说超过50轮、100轮甚至更长,甚至跨section的对话的长度的理解。

09 请问Qwen-2,Qwen-max等模型的文字生成速度,对所有用户都是固定的吗,是否有调速途径?

高金杨:这个是固定的。背后的工程原理就是如果我们想让模型做得更快,其实可以让它跑更少的并发,以及我们用大卡去跑小模型,这些方法都是可以有效提速的。但我们对所有客户的体验是比较一致的。另外,我们也提供了batch的模式,它价格可能会更便宜,在实验方面可能相对来讲就没有保障。

10 RAG检索顺序是并行还是串行,先后顺序是什么样的?

高金杨:rag原则上来讲是走一个并行的链路做所有的召回。但不可避免的是到大模型这一步,我们对所有的chunk其实是一个串行的处理,所以并不是越多越好,模型跑token是需要时间的。

11 大模型内知道引用了这段的内容,但是一次问答从知识库选中的数据段设置的是10段,其它段不标明说明它们和回答没关系吗?

高金杨:首先百炼的RAG用的是LlamaIndex一样的orchestration(流程编排)。在这个过程中当中会分几步,有一步是retrieval,也就是怎么去召回。这个决定了我们已经看到了多少个。但是后面为了减少大模型的负担,还有一步叫做reranker(重排序),这一步设置的是十条,也就是说为了减少大模型的负担,让模型只看了十个chunk,所以其他的chunk的确跟回答是没有关系的。

12 业务透传跟模型识别有什么区别?

刘阳:透传的参数更加稳定,用户参与度也更强。而模型识别的参数一般是模型生成的,需要跟prompt的关联性更强,需要用户调整prompt才能得到更好的效果。

13 知识切片的标题是否会影响检索召回?

高金杨:这个答案是一定的,而且在有些场景下确实有这种应用,最典型的就是FAQ,其实我们只希望去跟问题做匹配,但是召回希望他答的是FAQ里面的回答。所以确实我们可以有针对性地去调整标题,影响召回的加效果。

14 模型返回内容报错:“Rang of input length should be [1,6000]”是什么原因?这里怎么配置,才会减少报这个错误的次数?


刘阳:这里的报错其实是说这个模型的上下文不足以支持用户现在输入这么长的长度。比如我们最新的plus长度都在不停提升。从原本的8K到32K再到接下来的128K,所以我建议大家可以选用一些更新的模型。

15 Assistant API和百炼控制台创建应用有什么区别和功能差异?

高金杨:首先这个背后其实是一套serving,就是一套模型服务。这套服务同时支持了Assistant API跟百炼控制台。同时,甚至大家可以想象把整个百炼搭出来的这个应用当做一个模型服务调走也是可行的。

16 function call的方式调用模型,tools里面可以定义rag吗?

刘阳:其实function call这个事情是非常有自由度的。用户可以将自己任意本地的东西都和它搭配。如果用户本地有比较好的rag库,是可以跟百炼做交互来使用的。

17 阿里云百炼自定义的插件API返回的结果如何原样输出呢?

刘阳:这个问题还是比较有意思的。因为现在像ID类或信息类大模型在做summary的时候会经常出错。我们现在确实会过summary,但是接下来产品建设过程中会想办法提供一些选项,让rag召回的内容或者检索回来的内容直接输出,也请大家敬请期待。

18 有用户会问到阿里云百炼的API接口输出结果经常会出现**的内容,有什么办法要求不输出**吗?

高金杨:这个往往是prompt写出来的结果。首先,Qwen系列模型最近也支持Json格式,可以指定Json格式进行输出。如果大家对格式还有一些其他的要求,那可以试着改prompt。另外一方面也有一些开源的库,比如说微软最近开源的guidance库有助于解决类似的问题。

19 阿里云百炼智能体会询问两遍用户信息吗?Prompt里面定义了询问用户个人信息,插件里面的描述也说要去收集用户的信息?

高金杨:其实这反倒是我们会比较推荐客户的写法,既在prompt里边去指明要做的事情,同时也在插件里面去重复地指定。在一个流程真的被定义出来然后被执行过程中信息越多越好,大家不用担心这种信息的重复。其实模型最后是综合几段prompt一起去做去做插件的调用编排。

20 流程管理当中的API的调用节点和API的地址里面,如何引用上游的参数值?

刘阳:这个暂时是不支持的。我们现在开放的力度应该是这个流程节点的其他的parameter,它的url还是要相对固定一些。

21 阿里云百炼的图生文的微调数据要多少条才适合?

高金杨:无论是图生文还是文生文,微调的数据都是大概几百到几千条的范畴。一般200条以上就可以开始看到效果,一万条以上可能收益不是很明显。但是我觉得大家也不用特别担心手头没有这么多数据怎么办。百炼平台上也给大家提供了自动的数据增广的工具,可以帮助大家生成微调的数据。


点击阅读原文即刻进入大模型服务平台百炼!

【声明】内容源于网络
0
0
阿里云云栖号
云栖官方内容平台,汇聚云栖365优质内容。
内容 3553
粉丝 0
阿里云云栖号 云栖官方内容平台,汇聚云栖365优质内容。
总阅读949
粉丝0
内容3.6k