大模型框架LangChain开发实战(一)

一、概述

在大模型应用中,通常是基于框架来呼叫模型的,大模型提供了两个最重要的功能,一是提供了具体的intermediate steps(即做事情的中间步骤,模型作为reasoning engine),二是提供了evaluation的能力(模型作为evaluation tool),在此基础上,对于用户来说,重要的是写好你的prompt,通过它下指令让模型做一些事情。除了模型之外,还有agent(智能体),它本身会不断地进行循环,基于模型产生的步骤以及对效果的评估,不断地调整agent的执行,这个调整可能是与第三方工具进行交互,也可能是与第三方数据进行交互(不是指模型的数据,而是用户自己的私有数据,譬如类似profile的数据)。从企业级开发的角度来说,最重要的是要有一个类似代理的智能体(agent),负责与模型进行交互(agent会不断循环查看模型中间执行的一些结果),并且如果有必要,agent会根据模型的信息调用第三方工具或者访问用户私有数据,另外也可以跟tools进行交互。从业界的最佳实践看,一般都会把上述agent的这些功能封装进framework,目前最流行的framework就是LangChain,这是开源界公认的最好的大模型框架,也是工业界采用最广泛的大模型框架,同时也是学术界认可度最高的大模型框架。

二、企业级大模型框架LangChain解析

通常在一段对话流中,会包括历史会话信息(historic data),当前的对话信息(current utterance),历史会话信息会影响到当前的对话(作为上下文存在),历史会话信息不是简单地追加到当前会话输入后面来传给模型,因为这样做会使模型需要处理的输入tokens越来越多,导致效率和成本的问题,更致命的是会导致prompt的质量问题(当historic data较多时,可能current utterance输入根本不起什么作用)。prompt首先是从你的用词中找出隐性或者显性的patterns,然后基于patterns来提取关键信息,如果只是简单的追加(appended to historic data),可能就会导致模型使用prompt时忽略当前的输入信息,从而表现出用户与模型对话时模型不会给到用户相应的反馈,因此需要在生成prompt之前添加一个standalone service,它会突出当前的用户输入信息(因为模型要回答当前的问题),同时又基于historic data或者系统的设定提供相应的上下文。另外,由于存在企业私有数据,standalone service也需要和这些数据进行交互。历史数据,当前用户输入和企业私有数据三者结合形成了企业级的prompt,然后才与大模型进行交互(中间存在一个循环的过程)。基于以上分析得到下面的对话流程图:

以上流程图所展示的内容还不足以构成企业级的基于大模型的应用程序开发,因为在这个流程图中还缺少两个重要的元素:工具和第三方数据,举个例子来说,如果我们针对学生做一个阅读理解方面的应用(阅读理解本身是文字,但是应用开发可能涉及到多模态),那可能需要访问wikipedia或者其它的一些(学校的)系统的数据来增强学生的理解,也有可能是转换为音频的方式,也有可能是补充图片或者视频的方式,这就涉及到工具和数据。我们需要一个容器来完成模型、工具和数据的交互,而这就是LangChain,你可以认为LangChain是大模型开发时代的operating system,因为它驱动了所有模块和数据的相互交互。在这样的一个框架中,有这样一个东西称作agent,目前来看agent还是一个很开放的领域,其本身的作用是基于模型驱动的做事情的具体过程,来在适当的时候使用工具或者本地数据,或者第三方数据来完成模型设定的步骤,这样的一个agent具有动态调整的过程,可以把它看成一个loop,它既能与模型,数据,工具进行交互,又能处理异常,以及评估整个系统的行为。一句话来总结LangChain,它就是一个service,一个framework,或者一个platform,它通过模型驱动来整合数据和工具,从而完成大模型应用的开发。

以下是更新后的基于LangChain来开发的大模型对话应用流程图:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
AI大模型应用开发实战是指在实际项目中应用开发人工智能大模型的过程。在开展这项工作时,我们需要遵循一系列步骤和准则,确保应用的高效性和可行性。 首先,我们需要明确项目目标和需求。在制定开发计划之前,我们必须清楚了解项目的具体目标和需求,例如是要开发一个智能客服系统,还是进行图像识别或自然语言处理等任务。 接下来,我们需要收集和准备数据。数据是训练大模型不可或缺的要素,因此我们需要选择合适的数据集,并进行数据预处理,包括数据清洗、标注和分割等工作。同时,为了保护数据的隐私和安全性,我们也需要采取相应的措施。 然后,我们需要选择合适的大模型和算法。根据项目需求,我们可以选择现有的大模型,如OpenAI的GPT系列或Google的BERT模型,也可以根据需求进行定制化开发。在选择算法时,我们需要考虑模型的准确性、效率和可扩展性等方面。 接着,我们进行模型训练和优化。这一步骤包括设置训练参数、利用数据进行模型训练和验证,以及对模型进行调优和优化,以提高其准确性和性能。 最后,我们进行应用部署和测试。在将模型应用到实际场景之前,我们需要进行系统集成、性能测试和安全验证等步骤。一旦通过测试,我们就可以将应用部署到服务器、云平台或移动设备上,供用户使用。 总结来说,AI大模型应用开发实战需要我们明确目标和需求、准备数据、选择模型和算法、进行训练和优化,最后进行部署和测试。通过这些步骤,我们能够开发出高效、可靠的人工智能大模型应用,为用户提供优质的服务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值