《大模型应用设计与实现最新实践心得.docx》由会员分享,可在线阅读,更多相关《大模型应用设计与实现最新实践心得.docx(5页珍藏版)》请在优知文库上搜索。
1、1. 直接使用大模型面临的问题出不稳定性生成式AI的特点之一,输出结果的多样性。同样一个问即,问大模型多次,可能会御到不同的答案.这种输出的不确定性,在对话、创作场景下,会给用户带来惊喜。但在确定性要求比较高的场景卜,,大模型道入不了我纳阶段数据*度不够训练大模型是一个花饯费时的过程。训练的数据集,不能及时被更新,使用截止一两年前的数据来训练大模型十分常见。这种数据即时性的缺失,会让大模型的输出价值大打折扣,让大模型的应用范用受到限制。仅面向人类,脱离物理世界如果把大模型比作人的大脑,Chat的这种打开方式就是给人安装上了耳朵和嘴巴。大模型根据听到的话,给出相应的回答。无论是单模态还是多模态,
2、大模型都只是在针对输入响应输出,不会有其他形式的动作.这种面向人类定制的使用方式,让大模型无法感知人类所处的物理世界,也无法真正指人类完成现实生活中的那些重复、枯燥、繁琐、危险的工作.2. Agent=Sensor+Action如上图,从一个交互流程来分析大模型应用具备的特征,卜面我们会困绕着这张图描绘大模型应用的设计与实现.提到Agent时,我们很容易联想到1.1.MAgent智能体,但1.1.MAgent太过强谓Auto能力,也就是要连续运转、自动处理。这种形态非常好。形如open-interpreter,在本地运行之后,能够白动根据输入制定计划,然后执行,自动处理异常,直至完成任务,等待
3、卜一次交互。own-interpreter更像是一个应用.包含完整的设计和实现,不是仅仅是一个Agent,从功能上分析,我认为大模型所需的Agent包含Sensor和Action两部分“Sensor负贲感知环境,比如当前设备、当前FI期、当前交互上下文、当前最新的资讯等当前应用状态、环境状态的信息.Action货击执行动作,比如在手机上打开某个应用、关闭某台设笛、发送邮件、操作机器人的手普等.这些是应用基于大模蟹的输出,做出的响应动作。设计良好的Agent能解决大模也应用感知世界、连接周边系统的问题,3. Meaory多轮对话的核心就是Memory,Memory是一个存储空间,模拟人类的记忆系
4、统,用来存谛对话的上下文信息。Memory分为长期记忆和短期记忆。长期记忆长期记忆与知识库类似,提供了一个存储长期知识片段的存储空间.比如,一些事实性的知识、一些常用的回答等,庖期记忆短期记忆用来存储当前对话的上下文信息,比如对话的历史、对话的语境等。在我的实践中,短期记忆一般就直接放内存中,但如果应用发生电启,物.期记忆就会消失:此外,如果对话累很大,短期记忆的内存占用也会很大。使用外部的数据底进行持久化存储,是一个更好的选择。Memory的实现细节远不止于此,Memory怎么暴于时话进行管理、怎么检索、怎么湎理、怎么更新、怎么存储、存储多久等都是需要考虑的问题Memory是可以作为一个单独
5、的模块,进行设计与实现的,4. RAG应用基于知识库的Chat应用,我相信很多人听过、甚至用过。RAG应用,其实就是这类应用的一个统称.RAG.全称RetrievalRUgmentedGenerilliOn,检索增强生成.RAG的核心思想是,通过检索的方式,找到一个或多个相关的知识片段,然后将这些知识片段作为输入,提交给大模中,生成最终的输出,这电有几个关键点,我们起思考:为什么RAG有效RAG能地解决大模型输出稳定性和数据新鲜度的何旭,RAG应用的输入是通过知识库检索得到的相关内容,或防止大模型漫无目标地自由发挥:RAG应用的知识库是动态更新的,能帔保障数据的新鲜度,同时通过配盥阈伯,能够只
6、选取最相关的知识片段,保障输出的准确性。检察的方式通常采用的就是向盘检索,预处理时,将知识眸中的每个知识片段,转换成向量存储:检索时,将输入转换成向量,计算输入向成与知识库中每个知识片段向敬的相似度,叩余弦值,选取相似以最高的心干知识片段。使用MilvussPGVectorRedis.甚至llamaindex本地文件都可以实现向年存储与检索的功能.但怎么选取Embedding模型、需不需要多个Embedding模型可能是一个需要思考的问题.Mbedding模量的作用就是完成文本到向IS的转换,常用的是ODenAl的lex1.embedding-ada-002:知火片段的大小微软有研究论文说,最
7、佳的知识片段大小是512个token,其次是256个token.知识片段太小,会导致检索出来的知识片段不完整:知识片段太大,会导致检索出来的知识片段不相关,具体多少字符坡佳,可以结合上面的结论根据实际情况进行调整.怎么划分知识片段在实际分块过程中,最佳的方式是通过语义进行分割,但这一点在代码实现上困碓,需要借助算法模型,通常的做法是,通过分隔符,比如句号、级行符等来进行分割。一33文章、一本节,依据段落分制为512个token的知识片段,向城化之后存储到数据库中,但这种方式也会有缺陷比如分块苜句中的代词他、她、它,会导致分割出来的知识片段不完整.这种情况下,可以通过冗余的方式来解决.将前一个知
8、识片段的最后一句话,拼接到后一个知后片段的第句话,保证知识片段的完整性。另外还有一个思路是,借助知识图谱。RAG应用会有什么铁陪维护知识库的有效性有一定成本,检索知识库有时间开销,将知识片段输入到大模型中,增加了大模型的计算量,延长了响应时间。在很多WebGPTChat应用中,内置了大量的对话角色,比如小红书写手、心里医生中,这些角色的扮演就是通过设四Prompt来完成的.Prompl提示词对于使用人模型的理要性不言而喻.如果没有恰当的指导,大模型的输出容场偏宙我们的真实意图.Prompt框架是种撰写提示词的方法,通过一些关键要素的定义,不仅可以帮助大模也更好地理解输入,还可以让用户更快地写出
9、高质量的提示词.Prompl框架有很多种,比如ICI0、CRlSPE.BROKE,CREATE.TAG、RTF.ROSES.APE.RACE.TRACE.1.angGIyT等。这些框架强谓的要素不尽相同,以1.angGPT为例,它强调的是Role、Skin素UIeSjork门。、Initialization等要素,以Markdown的格式撰写。举个例广Author:YZFlyVersion:.l:ChirDescription:怀叫小羽,1.f18父修:wHffi或q笈.小吟啄Skill交i炎自燃、例皮可爱旦不提供安烈和何:“去吃火铜不”格“好叼好叼忸去耶!“;”我乂也多I匕的“答IiK想要你
10、的对话中要使MAdAGI不能用次都使用表!ft!Rules).,language:八1-AI.-.1.;熟练掌握一两个Prompl框架对于开发大模型应用,非常有帮助.我现在写Prompt基本都会采用1.angGPT框架,结构清晰,易于理解和维护.6 .模型微调IoraIora冻结了预训练模型的权重,在原模的基础上,增加了一个熟外的网络层。只箭要对这个Iora层进行训练,就能结完成模型能力的泛化。在StableDiffusion的生态中己经形成了一袋完整的Iora模型微调的工具链。可以通过加载别人分享的Iora插件,直接生成指定风格的图片。如果这种生态能够在N1.P领域也形成,那么领域知识共享的
11、效率将会大大提升.我们在开发大模型应用时,不用再清洗数据、录入数据,而可以Fi.接使用1.1.M+Iora插件的方式快速对接指定的应用场景。fine-tuningfine-tuning是指传馍训练模型的星础上,直接对模里参数进行微调.这种方式需要大出的数据、计算资源才能完成,而效果可能乂不一定很好.我在网上看到一些例子是,需要超过Ik条高质量的数据,才能完成一个好的fine-tuning任务,并且训练容易过拟合,破环原模型的泛化能力。我想这种缺陷并不是不俄避免,而是需要丰富的相关知识储备*经验枳米才能锣得到好的效果.模型微调对于应用开发者来说,会是一件很具有挑战性的事情.如果能用其他方式背代,
12、建议还是不要花费太多的时间在这上面。7 .对短期模型应用发展的思考我使用的大模型是OpenAl的GPT-3.5、Anthropic的claude.GithubCopilot的1.1.M(最近问Chat说用的是GPT-4)已经暴本能修满足Fl常办公福求。此外,为了给几个项目使用大模型,每个月能要明买20-30个OPenAl的账号。国内有很多云上的大模型API服务,他们都在和GPT-3.5进行对比.于是,我就知道了宜接用GPT-3.5就对了,如果上正式环境可以购买Azure的OpenAIGPT服务。对于大模型应用开发者,没有必要顺繁在各种大模型之间切换,其至不用关注新大模型的发布,应该专注于应用场
13、景怎么与大模型融合,从最开始的卖OPenAl账号,到现在的卖大模型API,我们可以明显修受到大模型生态的快速发展,但又时常有种无力掇,我们抓不住其中的机会。乐意学习新知识的人太多了,但想要变现、产生实际的收益,不是件容易的事情,这需要突破原有的思维方式,只要有认知差、信息差的地方就有机会,不要觉得很1.ow.很简单就不值钱,简的意味若市场会更加庞大,受众群体会更广泛.从功能的角度思考.哪段场景适合早期的大模型应用?老树开新花,原有的的应用,不影响原有功能的情况下,增加大模中的旁路,比如智能客服、新流程创建、新的产品交互等。小众场景.大众需求场景,竞争太激烈,存量也有很多同类经典产品,大模型立正的突破点在其通用性,这些小众的需求对大模型来说,并不会有根本性的差异,我们只需要做一四小的调整,就能第快速满足这N长用需求.比如,产品报价客服、毋区导览、睥物馆讲解等。小的工具。B端的效率工具,提升工作效率,精简工作流程。比如,RPA,自动化辅商品、自动化发货等.目前整个经济环境都很差,大模型应用首先要考虑的还是盈利问题,如果一开始就不能产生营收.那么以后也很难有。无论是老树开新花,还是做小众、小工具的产品,在开发大模型应用之前,就应该考虑清楚盈利模式。