认识什么是LLM、RAG、LangChain以及开发LLM应用的整体流程?
这篇内容是对llm_universe课程第一部分中LLM介绍的总结
认识大语言模型LLM
时间:2024-04-15,星期一
一、大型语言模型(LLM)理论简介
大语言模型(LLM)的概念
⼤语⾔模型(LLM,Large Language Model),也称⼤型语⾔模型,是⼀种旨在理解和⽣成⼈类语⾔的⼈⼯智能模型。
LLM的发展历程
-
20 世纪 90 年代,统计学习⽅法来预测词汇
-
2003 年 深度学习先驱 Bengio 在他的经典论⽂ 《A Neural Probabilistic Language Model》 中,⾸次将深度学习的思 想融⼊到语⾔模型中。
-
2018 年 左右,Transformer 架构的神经⽹络模型开始崭露头⻆。
语⾔模型规模的扩⼤(增加模型⼤⼩或使⽤更多数据)
国内外常见大模型
闭源LLM
-
GPT系列:OpenAI 公司在 2018 年 提出的 GPT(Generative Pre-Training) 模型是典型的 ⽣成式预训练语⾔模型 之⼀。
-
GPT 模型的基本原则是通过语⾔建模将世界知识压缩到仅解码器 (decoder-only) 的 Transformer 模型中,这样它就可以恢复(或记忆)世界知识的语义,并充当通⽤任务求解器。它能够成功的两个关键点:
-
训练能够准确预测下⼀个单词的 decoder-only 的 Transformer 语⾔模型
-
扩展语⾔模型的⼤⼩
-
-
-
Claude 系列:Claude 系列模型是由 OpenAI 离职⼈员创建的 Anthropic 公司开发的闭源语⾔⼤模型。
-
PaLM/Gemini 系列:Google 将 Bard(之前发布的对话应⽤) 的底层⼤模型驱动由 PaLM2 更改为 Gemini,同时也将原先的 Bard 更名为 Gemini
-
百度-文心一言
-
科大讯飞-星⽕⼤模型
开源 LLM
-
Meta--LLaMA 系列
-
阿⾥巴巴基于“通义”⼤模型研发--通义千问
-
清华⼤学和智谱 AI 等合作研发的语⾔⼤模型--GLM 系列模型
-
百川智能开发的开源可商⽤的语⾔⼤模型--Baichuan系列
二、LLM的能力和特点
LLM的能力
-
涌现能力:区分大语言模型(LLM)和以前预训练语言模型(PLM)最显著的特征之一
-
作为基座模型支持多元应用的能力:以单一大语言模型或多个大模型进行基础模型进行应用开发
-
支持对话作为统一入口的能力:可以使用聊天或对话与模型进行交互
LLM的特点
-
巨大的规模:具有巨大的参数规模。
-
预训练和微调:可以再无标签数据上进行预训练,学习通用的语言标识和知识。然后在有标签的数据上进行微调以适应特定任务。
-
上下文感知
-
多语言支持
-
多模态支持:一些LLM已经扩展到支持多模态数据,包括文本、图像和声音。
-
伦理和风险问题
-
高计算资源需求
认识检索增强生成RAG
一、什么是RAG
检索增强生成(RAG,Retrieval-Augmented Generation)是为了在某些情况下,提高大型语言模型在生成文本时表现而提出的一种新的模型结构。
该架构巧妙地整合了从庞大知识库中检索到的相关信息,并以此为基础,指导大型语言模型生成更为精准的答案,从而显著提升了回答的准确性与深度。
目前LLM面临的主要问题:
-
信息偏差/幻觉:LLM会产生与提问信息不符的信息。RAG可以通过检索数据源,辅助模型生成过程。
-
知识更新滞后性:LLM基于现有数据进行训练而无法回答超出现有数据的问题。RAG通过实时检索最新数据,保持内容的时效性。
-
内容不可追溯
-
领域专业知识能力欠缺
-
推理能力限制
-
应用场景适应性受限
-
长文本处理能力较弱
二、RAG的工作流程
流程:
-
数据处理:对原始数据进行清洗和处理;然后将处理后的数据转化为检索模型可以使用的格式;最后将处理后的数据存储在对应的数据库中。
-
检索:从数据库中检索相关信息
-
增强:将从数据库中检索到的信息进行处理和增强,以便生成模型可以更好地理解和使用。
-
生成:将增强后的信息输入到生成模型(如LLM)中,生成模型根据这些信息生成答案。
三、RAG(检索增强生成)和 Finetune(微调)
RAG和Finetune两者都是提升大语言模型效果的主流方法。
微调: 通过在特定数据集上进一步训练大语言模型,来提升模型在特定任务上的表现。
总结来说,RAG和Fine-tuning都是用于提升大型语言模型在特定任务上表现的方法,但它们的方法和成本不同。RAG通过检索相关信息辅助生成答案,而不需要重新训练模型,适合于需要结合外部知识的任务。Fine-tuning则通过在特定任务数据上训练模型来调整权重参数,适合于提高模型在特定任务上的表现,但需要更多的计算资源和时间。
认识LangChain
一、什么是LangChain
背景:
ChatGPT 的巨大成功激发了越来越多的开发者兴趣,他们希望利用 OpenAI 提供的 API 或者私有化模型,来开发基于大型语言模型的应用程序。尽管大型语言模型的调用相对简单,但要创建完整的应用程序,仍然需要大量的定制开发工作,包括 API 集成、互动逻辑、数据存储等等。
为了解决这个问题,从 2022 年开始,许多机构和个人相继推出了多个开源项目,旨在帮助开发者们快速构建基于大型语言模型的端到端应用程序或工作流程。其中一个备受关注的项目就是 LangChain 框架。
LangChain 框架是一个开源工具,充分利用了大型语言模型的强大能力,以便开发各种下游应用。它的目标是为各种大型语言模型应用提供通用接口,从而简化应用程序的开发流程
二、LangChain核心组件
LangChian 作为一个大语言模型开发框架,可以将 LLM 模型(对话模型、embedding 模型等)、向量数据库、交互层 Prompt、外部知识、外部代理工具整合到一起,进而可以自由构建 LLM 应用。 LangChain 主要由以下 6 个核心组件组成:
-
模型输入/输出(Model I/O):与语言模型交互的接口
-
数据连接(Data connection):与特定应用程序的数据进行交互的接口
-
链(Chains):将组件组合实现端到端应用。
-
记忆(Memory):用于链的多次运行之间持久化应用程序状态;
-
代理(Agents):扩展模型的推理能力。用于复杂的应用的调用序列;
-
回调(Callbacks):扩展模型的推理能力。用于复杂的应用的调用序列;
认识开发LLM应用的整体流程
一、何为大语言模型开发
将开发以大语言模型为功能核心、通过大语言模型的强大理解能力和生成能力、结合特殊的数据或业务逻辑来提供独特功能的应用称为大模型开发。
将大模型作为一个调用工具,通过Prompt Engineering、数据工程、业务逻辑分解等手段来充分发挥大模型能力,适配应用任务,而不会将精力聚焦在优化模型身上。
作为大模型开发的初学者,我们并不需要深研大模型内部原理,而更需要掌握使用大模型的实践技巧。
大模型开发与传统AI之间的区别:
-
业务开发:传统AI开发需要繁琐的业务逻辑分析和训练/验证数据集的收集,
二、大模型开发的一般流程
-
确定目标
-
设计功能
-
搭建整体架构
-
搭建知识库
-
Prompt Engineering
-
验证迭代
-
前后端搭建
-
体验迭代
一、何为大语言模型开发
将开发以大语言模型为功能核心、通过大语言模型的强大理解能力和生成能力、结合特殊的数据或业务逻辑来提供独特功能的应用称为大模型开发。
将大模型作为一个调用工具,通过Prompt Engineering、数据工程、业务逻辑分解等手段来充分发挥大模型能力,适配应用任务,而不会将精力聚焦在优化模型身上。
作为大模型开发的初学者,我们并不需要深研大模型内部原理,而更需要掌握使用大模型的实践技巧。
大模型开发与传统AI之间的区别:
-
业务开发:传统AI开发需要繁琐的业务逻辑分析和训练/验证数据集的收集,
二、大模型开发的一般流程
-
确定目标
-
设计功能
-
搭建整体架构
-
搭建知识库
-
Prompt Engineering
-
验证迭代
-
前后端搭建
-
体验迭代
总结:通过阅读认识了LLM的理论知识还有国内外大语言模型的发展情况,同时也认识到了大语言模型应用开发与传统AI的开发的区别,对大模型应用开发有了初步的认识和了解。
学习链接:
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 本地部署 DeepSeek:小白也能轻松搞定!
· 如何给本地部署的DeepSeek投喂数据,让他更懂你
· 在缓慢中沉淀,在挑战中重生!2024个人总结!
· 大人,时代变了! 赶快把自有业务的本地AI“模型”训练起来!
· 从 Windows Forms 到微服务的经验教训