docs:第七章 大模型应用 内容修改
This commit is contained in:
@@ -44,25 +44,34 @@
|
||||
|
||||
#### Open LLM Leaderboard
|
||||
|
||||
由Hugging Face提供的开放式榜单,汇集了多个开源大模型的评测结果,帮助用户了解不同模型在各种任务上的表现。该榜单通过多个标准化测试集来评估模型的性能,并通过持续更新的方式反映最新的技术进展,为研究者和开发者提供了高价值的对比参考。
|
||||
Open LLM Leaderboard 为由 Hugging Face 提供的开放式榜单,汇集了多个开源大模型的评测结果,帮助用户了解不同模型在各种任务上的表现。该榜单通过多个标准化测试集来评估模型的性能,并通过持续更新的方式反映最新的技术进展,为研究者和开发者提供了高价值的对比参考,如图7.1所示。
|
||||
|
||||

|
||||
<div align='center'>
|
||||
<img src="./images/7-1-Open%20LLM%20Leaderboard.png" alt="alt text" width="90%">
|
||||
<p>图 7.1 Open LLM Leaderboard</p>
|
||||
</div>
|
||||
|
||||
#### lmsys Chatbot Arena Leaderboard
|
||||
#### Lmsys Chatbot Arena Leaderboard
|
||||
|
||||
由lmsys提供的聊天机器人评测榜单,通过多维度的评估,展示各类大模型在对话任务中的能力。该榜单采用真实用户与模型交互的方式来评测对话质量,重点考察模型的自然语言生成能力、上下文理解能力以及用户满意度,是当前评估聊天机器人性能的重要工具。
|
||||
由lmsys提供的聊天机器人评测榜单,通过多维度的评估,展示各类大模型在对话任务中的能力。该榜单采用真实用户与模型交互的方式来评测对话质量,重点考察模型的自然语言生成能力、上下文理解能力以及用户满意度,是当前评估聊天机器人性能的重要工具,如图7.2所示。
|
||||
|
||||

|
||||
<div align='center'>
|
||||
<img src="./images/7-1-lmsys%20Chatbot%20Arena%20Leaderboard.png" alt="alt text" width="90%">
|
||||
<p>图7.2 Lmsys Chatbot Arena Leaderboard</p>
|
||||
</div>
|
||||
|
||||
#### OpenCompass
|
||||
|
||||
OpenCompass是国内的评测榜单,针对大模型在多种语言和任务上的表现进行评估,提供了中国市场特定应用的参考。该榜单结合了中文语言理解和多语言能力的测试,以适应本地化需求,并特别关注大模型在中文语境下的准确性、鲁棒性和适应性,为国内企业和研究者选择合适的模型提供了重要参考。
|
||||
OpenCompass 是国内的评测榜单,针对大模型在多种语言和任务上的表现进行评估,提供了中国市场特定应用的参考。该榜单结合了中文语言理解和多语言能力的测试,以适应本地化需求,并特别关注大模型在中文语境下的准确性、鲁棒性和适应性,为国内企业和研究者选择合适的模型提供了重要参考。
|
||||
|
||||

|
||||
<div align='center'>
|
||||
<img src="./images/7-1-opencompass.png" alt="alt text" width="90%">
|
||||
<p>图7.3 OpenCompass</p>
|
||||
</div>
|
||||
|
||||
### 7.1.3 特定的评测榜单
|
||||
|
||||
此外,还有针对不同领域特定任务的大模型评测榜单,这些榜单专注于特定应用领域,帮助用户了解大模型在某一垂直领域的能力:
|
||||
另外,还有针对不同领域特定任务的大模型评测榜单,如图7.4所示。这些榜单专注于特定应用领域,帮助用户了解大模型在某一垂直领域的能力:
|
||||
|
||||
- 金融榜:基于CFBenchmark评测集,评估大模型在金融自然语言处理、金融预测计算、金融分析与安全检查等多项基础任务中的能力。由同济大学与上海人工智能实验室及东方财经提供。
|
||||
|
||||
@@ -74,7 +83,10 @@ OpenCompass是国内的评测榜单,针对大模型在多种语言和任务上
|
||||
|
||||
- 医疗榜:基于MedBench评测集,评估大语言模型在医学知识问答、安全伦理理解等方面的表现。由上海人工智能实验室提供。
|
||||
|
||||

|
||||
<div align='center'>
|
||||
<img src="./images/7-1-垂直领域榜单.png" alt="alt text" width="90%">
|
||||
<p>图7.4 垂直领域榜单</p>
|
||||
</div>
|
||||
|
||||
|
||||
## 7.2 RAG
|
||||
@@ -89,7 +101,7 @@ RAG 的核心原理在于将“检索”与“生成”结合:当用户提出
|
||||
|
||||
### 7.2.2 搭建一个 RAG 框架
|
||||
|
||||
接下来我会带领大家一步一步实现一个简单的RAG模型,这个模型是基于RAG的一个简化版本,我们称之为Tiny-RAG。Tiny-RAG只包含了RAG的核心功能,即检索和生成,其目的是帮助大家更好地理解RAG模型的原理和实现。
|
||||
接下来我会带领大家一步一步实现一个简单的RAG模型,这个模型是基于RAG的一个简化版本,我们称之为 Tiny-RAG 。Tiny-RAG只保留了 RAG 的核心功能,即检索和生成,其目的是帮助大家更好地理解 RAG 模型的原理和实现。
|
||||
|
||||
#### Step 1: RAG流程介绍
|
||||
|
||||
@@ -100,12 +112,15 @@ RAG的基本结构有哪些呢?
|
||||
- 向量化模块:用来将文档片段向量化。
|
||||
- 文档加载和切分模块:用来加载文档并切分成文档片段。
|
||||
- 数据库:存放文档片段及其对应的向量表示。
|
||||
- 检索模块:根据Query(问题)检索相关的文档片段。
|
||||
- 检索模块:根据 Query(问题)检索相关的文档片段。
|
||||
- 大模型模块:根据检索到的文档回答用户的问题。
|
||||
|
||||
上述这些也就是TinyRAG的所有模块内容。
|
||||
上述也就是 TinyRAG 的所有模块内容,如图7.5所示。
|
||||
|
||||

|
||||
<div align='center'>
|
||||
<img src="./images/7-2-tinyrag.png" alt="alt text" width="90%">
|
||||
<p>图7.5 TinyRAG 项目结构</p>
|
||||
</div>
|
||||
|
||||
接下来,让我们梳理一下RAG的流程是什么样的呢?
|
||||
|
||||
@@ -113,9 +128,12 @@ RAG的基本结构有哪些呢?
|
||||
- **检索**:根据问题和片段的相似度检索相关文档片段。
|
||||
- **生成**:以检索到的上下文为条件,生成问题的回答。
|
||||
|
||||
如下图所示的流程,图片出处 ***[Retrieval-Augmented Generation for Large Language Models: A Survey](https://arxiv.org/pdf/2312.10997.pdf)***
|
||||
如下图7.6所示的流程图,图片出处 ***[Retrieval-Augmented Generation for Large Language Models: A Survey](https://arxiv.org/pdf/2312.10997.pdf)***
|
||||
|
||||

|
||||
<div align='center'>
|
||||
<img src="./images/7-2-rag.png" alt="alt text" width="90%">
|
||||
<p>图7.6 RAG 流程图</p>
|
||||
</div>
|
||||
|
||||
#### Step 2: 向量化
|
||||
|
||||
@@ -384,9 +402,12 @@ print(chat.chat(question, [], content))
|
||||
|
||||
传统的LLM像一个知识渊博但只能纸上谈兵的图书馆员,而 LLM Agent 则更像一个全能的私人助理,不仅懂得多,还能跑腿办事,甚至能主动思考最优方案。
|
||||
|
||||

|
||||
<div align='center'>
|
||||
<img src="./images/7-3-Agent工作原理.png" alt="alt text" width="90%">
|
||||
<p>图7.7 Agent 工作原理</p>
|
||||
</div>
|
||||
|
||||
LLM Agent 通过将大型语言模型的强大语言理解和生成能力与规划、记忆和工具使用等关键模块相结合,实现了超越传统大模型的自主性和复杂任务处理能力,这种能力使得 LLM Agent 在许多垂直领域(如法律、医疗、金融等)都具有广泛的应用潜力。
|
||||
LLM Agent 通过将大型语言模型的强大语言理解和生成能力与规划、记忆和工具使用等关键模块相结合,实现了超越传统大模型的自主性和复杂任务处理能力,这种能力使得 LLM Agent 在许多垂直领域(如法律、医疗、金融等)都具有广泛的应用潜力,如图7.7所示 Agent 工作原理。
|
||||
|
||||
### 7.3.2 LLM Agent 的类型
|
||||
|
||||
@@ -416,10 +437,11 @@ LLM Agent 通过将大型语言模型的强大语言理解和生成能力与规
|
||||
|
||||
我们来基于 `openai` 库和其 `tool_calls` 功能,动手构造一个 Tiny-Agent,这个 Agent 是一个简单的任务导向型 Agent,它能够根据用户的输入,回答一些简单的问题。
|
||||
|
||||
最终的实现效果如下:
|
||||
最终的实现效果如图7.8所示:
|
||||
|
||||
<div style="display: flex; justify-content: center;">
|
||||
<div align='center'>
|
||||
<img src="./images/7-3-tinyagent-example.png" style="width: 100%;">
|
||||
<p>图7.8 效果示意图</p>
|
||||
</div>
|
||||
|
||||
#### Step 1 : 初始化客户端和模型
|
||||
@@ -602,7 +624,8 @@ class Agent:
|
||||
return response.choices[0].message.content
|
||||
```
|
||||
|
||||
这个 Agent 的工作流程如下:
|
||||
Agent 的工作流程如下:
|
||||
|
||||
1. 接收用户输入。
|
||||
2. 调用大模型(如 Qwen),并告知其可用的工具及其 Schema。
|
||||
3. 如果模型决定调用工具,Agent 会解析请求,执行相应的 Python 函数。
|
||||
@@ -610,8 +633,11 @@ class Agent:
|
||||
5. 模型根据工具结果生成最终回复。
|
||||
6. Agent 将最终回复返回给用户。
|
||||
|
||||
<div style="display: flex; justify-content: center;">
|
||||
<img src="./images/7-3-Tiny_Agent.jpg" style="width: 80%;">
|
||||
如图7.9所示,Agent 调用工具流程:
|
||||
|
||||
<div align='center'>
|
||||
<img src="./images/7-3-Tiny_Agent.jpg" alt="alt text" width="80%">
|
||||
<p>图7.9 Agent 工作流程</p>
|
||||
</div>
|
||||
|
||||
#### Step 4: 运行 Agent
|
||||
@@ -644,7 +670,7 @@ if __name__ == "__main__":
|
||||
print("\033[92mAssistant: \033[0m", response) # 绿色显示AI助手回答
|
||||
```
|
||||
|
||||
运行 `python src/core.py` 后,你可以开始提问。如果问题需要调用工具,Agent 会自动处理。
|
||||
运行 `python demo.py` 后,你可以开始提问。如果问题需要调用工具,Agent 会自动处理。
|
||||
|
||||
**示例交互:**
|
||||
|
||||
@@ -670,15 +696,26 @@ User: exit
|
||||
|
||||
**参考文献**
|
||||
|
||||
- [Open LLM Leaderboard](https://huggingface.co/spaces/open-llm-leaderboard/open_llm_leaderboard)
|
||||
- [lmsys Chatbot Arena Leaderboard](https://huggingface.co/spaces/awacke1/lmsys-chatbot-arena-leaderboard)
|
||||
- [OpenCompass](https://rank.opencompass.org.cn/home)
|
||||
- [金融榜 CFBenchmark](https://specialist.opencompass.org.cn/CFBenchmark)
|
||||
- [安全榜 Flames](https://flames.opencompass.org.cn/leaderboard)
|
||||
- [通识榜 BotChat](https://botchat.opencompass.org.cn/?lang=zh-CN)
|
||||
- [法律榜 LawBench](https://lawbench.opencompass.org.cn/leaderboard?lang=en-US?lang=zh-CN)
|
||||
- [医疗榜 MedBench](https://medbench.opencompass.org.cn/leaderboard?lang=zh-CN?lang=zh-CN)
|
||||
- [When Large Language Models Meet Vector Databases: A Survey ](http://arxiv.org/abs/2402.01763)
|
||||
- [Retrieval-Augmented Generation for Large Language Models: A Survey](https://arxiv.org/abs/2312.10997)
|
||||
- [Learning to Filter Context for Retrieval-Augmented Generation](http://arxiv.org/abs/2311.08377)
|
||||
- [In-Context Retrieval-Augmented Language Models](https://arxiv.org/abs/2302.00083)
|
||||
[1] Hugging Face. (2023). *Open LLM Leaderboard: 开源大语言模型基准测试平台*. https://huggingface.co/spaces/open-llm-leaderboard/open_llm_leaderboard
|
||||
|
||||
[2] awacke1. (2023). *LMSYS Chatbot Arena Leaderboard: 大型语言模型竞技场评估平台*. https://huggingface.co/spaces/awacke1/lmsys-chatbot-arena-leaderboard
|
||||
|
||||
[3] OpenCompass 团队. (2023). *OpenCompass: 大模型统一评测平台*. https://rank.opencompass.org.cn/home
|
||||
|
||||
[4] OpenCompass 金融榜团队. (2024). *CFBENCHMARK: 金融领域大模型评测榜单*. https://specialist.opencompass.org.cn/CFBenchmark
|
||||
|
||||
[5] OpenCompass 安全榜团队. (2024). *Flames: 大模型安全评测榜单*. https://flames.opencompass.org.cn/leaderboard
|
||||
|
||||
[6] OpenCompass 通识榜团队. (2024). *BotChat: 大模型通用对话能力评测*. https://botchat.opencompass.org.cn/
|
||||
|
||||
[7] OpenCompass 法律榜团队. (2024). *LawBench: 法律领域大模型评测*. https://lawbench.opencompass.org.cn/leaderboard
|
||||
|
||||
[8] OpenCompass 医疗榜团队. (2024). *MedBench: 医疗领域大模型评测*. https://medbench.opencompass.org.cn/leaderboard
|
||||
|
||||
[9] Zhi Jing, Yongye Su, and Yikun Han. (2024). *When Large Language Models Meet Vector Databases: A Survey.* arXiv preprint arXiv:2402.01763.
|
||||
|
||||
[10] Yunfan Gao, Yun Xiong, Xinyu Gao, Kangxiang Jia, Jinliu Pan, Yuxi Bi, Yi Dai, Jiawei Sun, Meng Wang, and Haofen Wang. (2024). *Retrieval-Augmented Generation for Large Language Models: A Survey.* arXiv preprint arXiv:2312.10997.
|
||||
|
||||
[11] Zhiruo Wang, Jun Araki, Zhengbao Jiang, Md Rizwan Parvez, 和 Graham Neubig. (2023). *Learning to Filter Context for Retrieval-Augmented Generation.* arXiv preprint arXiv:2311.08377.
|
||||
|
||||
[12] Ori Ram, Yoav Levine, Itay Dalmedigos, Dor Muhlgay, Amnon Shashua, Kevin Leyton-Brown 和 Yoav Shoham. (2023). *In-Context Retrieval-Augmented Language Models.* arXiv preprint arXiv:2302.00083.
|
||||
Reference in New Issue
Block a user