一、什么是大语言模型
大语言模型是使用深度学习等技术来理解和生成人类语言的人工智能模型。
大语言模型可以类比为巨大的预测机器,它的训练过程主要基于“猜测”。并且通过不断学习和参数调整使得自己的预测越来越精准。
比如说,在 MarsCode 嵌入 IDEA 的工具中,我们可以让 MarsCode 根据程序员常写的代码实现代码自动补全功能,如图所示
@ApiOperation(value = "远程方法,根据用户 ID 查询用户的方法")
@RequestMapping(value="/order", method = RequestMethod.GET)
public String order(){
log.info("开始调用order方法...");
Integer id = 1;
User user = userClient.findById(id);
System.out.println(user + "==正在购票...");
return "购票成功";
}
// AI 的自动补全机制
@ApiOperation(value = "远程方法")
二、什么是 LangChain
LangChain 是一个全方面的,基于大语言模型预测能力的应用开发工具,利用预购建链的功能像乐高积木一样快速搭建项目。
目前存在:Python✅ 和 Javascript 版本
Github 地址:github.com/langchain-a…
在本次青训营中,LangChain 在 MarsCode 智能刷题助手中的作用主要体现在以下几个方面:
① 自然语言处理:LangChain 可以处理用户输入的自然语言问题,将其转化为可理解的查询或指令,以便更好地与用户进行互动。 ② 任务链管理:通过任务链的机制,LangChain 可以将复杂的刷题过程拆分为多个步骤,逐步引导用户完成从理解题目到实现代码的整个过程。COT 和 TOT 两大技术在 MarsCode 都有应用 ③ 知识集成:LangChain 可以集成多个数据源和知识库,提供丰富的背景信息和解决方案,帮助用户更好地理解题目和掌握相关知识。 ④ 代码生成与优化:基于用户的需求,LangChain 可以自动生成代码片段,并提供优化建议,提升用户的编程效率。同时,在用户进行刷题时,LangChain 可以实时分析用户的代码,提供即时反馈和错误提示,帮助用户快速改正错误。
三、LangChain 的六大组件是?
- 模型(Models),包含各大语言模型的LangChain接口和调用细节,以及输出解析机制。在 MarsCode AI刷题助手中,以豆包为代表的国产模型发挥了作用。
- 提示模板(Prompts),使提示工程流线化,进一步激发大语言模型的潜力。
- 数据检索(Indexes),构建并操作文档的方法,接受用户的查询并返回最相关的文档,轻松搭建本地知识库。
- 记忆(Memory),通过短时记忆和长时记忆,在对话过程中存储和检索数据,让ChatBot记住你是谁。
- 链(Chains),是LangChain中的核心机制,以特定方式封装各种功能,并通过一系列的组合,自动而灵活地完成常见用例。
- 代理(Agents),是另一个LangChain中的核心机制,通过“代理”让大模型自主调用外部工具和内部工具,使强大的“智能化”自主Agent成为可能!
LangChain 封装了大语言模型的调用机制,有助于简化开发者大语言模型的切换流程,提高大语言模型的使用效率。 LangChain 最大的好处是方便实施 GPT 家族的切换,在笔者曾经参与的项目中,开发团队很有可能会因为业务需要反复调整大语言模型的类型。(每一门大语言模型的擅长点都是不同的!)如果用传统的方法进行大语言模型的切换和调整是耗时且容易出错的,LangChain 的封装可以最大程度的避免这种情况。
同时, LangChain 还可以融合文件管理工具集,Web浏览器工具集(PlayWright 浏览器工具包),甚至可以与传统关系型数据库进行链接融合,极大地提高了人们的工作效率。