大模型开发工程师 认证&学习指南· 第 3 / 4 页
🔥 小白零基础 10 分钟 速通实践baseline(2)
| 个人学习计划(复制到自己的文档中自行填写即可~) | |||
|---|---|---|---|
| 序号 | 日期 | 今日目标 | 今日学习资料 & 学习计划 |
| Day1 | 8月9日 | 跑通Baseline并学习大模型开发基础 | 动手学大模型应用全栈开发 |
| Day2 | 8月10日 | 继续学习大模型开发基础并完成认证 | 动手学大模型应用全栈开发 大模型开发工程师考试入口(电脑端打开)https://www.datawhale.cn/cert/llm-dev/quiz/intro |
| Day3 | 8月12日 | 完成组队 | 提交作品规则 & Task1案例:智能编程助手 |
| Day4 | 8月13日 | 线上头脑风暴 | Task2:头脑风暴会Task2:线上Hackathon必知必会 |
| Day5 | 8月14日 | RAG技术原理与实践 | Task3:源大模型RAG实战 |
| Day6 | 8月15日 | 案例分析 | Task3案例:AI科研助手 |
| Day7 | 8月18日 | 模型微调技术原理与实践 | Task4:源大模型微调实战-知识点文档 |
| ··· | ··· | ··· | ··· |
来精读一下baseline
完整baseline代码
baseline方案设计
2.1 概要设计
baseline基于源大模型的编程能力来解决用户的问题,主要包含一个Streamlit开发的客户端,以及一个部署好浪潮源大模型的服务端。客户端接收到用户请求后,首先进行交互历史拼接,然后输入到服务端的浪潮源大模型,得到模型输出结果后,返回给客户端,用于回复用户的问题。
2.2 详细设计
- 导入库:
导入所需要的依赖,包括
transformers,torch和streamlit。其中torch魔搭本身已经安装,transformers和streamlit在第二步也安装完毕。 - 模型下载:
Yuan2-2B-Mars支持通过多个平台进行下载,包括魔搭、HuggingFace、OpenXlab、百度网盘、WiseModel等。因为我们的机器就在魔搭,所以这里我们直接选择通过魔搭进行下载。模型在魔搭平台的地址为 IEITYuan/Yuan2-2B-Mars-hf。
模型下载使用的是 modelscope 中的 snapshot_download 函数,第一个参数为模型名称 IEITYuan/Yuan2-2B-Mars-hf,第二个参数 cache_dir 为模型保存路径,这里.表示当前路径。
模型大小约为4.1G,由于是从魔搭直接进行下载,速度会非常快。下载完成后,会在当前目录增加一个名为 IEITYuan 的文件夹,其中 Yuan2-2B-Mars-hf 里面保存着我们下载好的源大模型。

- 模型加载:
使用 transformers 中的 from_pretrained 函数来加载下载好的模型和tokenizer,并通过 .cuda() 将模型放置在GPU上。另外,这里额外使用了 streamlit 提供的一个装饰器 @st.cache_resource ,它可以用于缓存加载好的模型和tokenizer。
- 读取用户输入:
使用 streamlit 提供的 chat_input() 来获取用户输入,同时将其保存到对话历史里,并通过st.chat_message("user").write(prompt) 在聊天界面上进行显示。
- 对话历史拼接:
对于 Yuan2-2B-Mars 模型来说,输入需要在末尾添加 <sep>,模型输出到 <eod> 结束。如果输入是多轮对话历史,需要使用 <n> 进行拼接,并且在末尾添加 <sep>。
- 模型调用:
输入的prompt需要先经tokenizer切分成token,并转成对应的id,并通过 .cuda() 将输入也放置在GPU上。然后调用 model.generate() 生成输出的id,并通过 tokenizer.decode() 将id转成对应的字符串。最后从字符串中提取模型生成的内容(即 <sep> 之后的字符串),并删除末尾的 <eod> ,得到最终的回复内容。
- 显示模型输出:
得到回复内容后,将其保存到对话历史里,并通过
st.chat_message("assistant").write(response)在聊天界面上进行显示。
尝试替换其他Yuan大模型!
8月10日更新:
浪潮信息源大模型上新:Yuan2-2B-July-hf,但由于模型结构修改,暂不支持LoRA~
| 部分Yuan大模型版本信息表 | ||||
|---|---|---|---|---|
| 模型规格 | 最低GPU显 (推理) |
最低GPU显存 (全量微调) |
不同版本的 snapshot_download 地址 | 魔搭上的模型地址 |
| 2B | 6GB | 80GB | IEITYuan/Yuan2-2B-Mars-hf | https://modelscope.cn/models/IEITYuan/Yuan2-2B-Mars-hf |
| IEITYuan/Yuan2-2B-July-hf 【暂不支持LoRA】 |
https://modelscope.cn/models/IEITYuan/Yuan2-2B-July-hf | |||
| IEITYuan/Yuan2-2B-Janus-hf | https://modelscope.cn/models/IEITYuan/Yuan2-2B-Janus-hf | |||
| IEITYuan/Yuan2-2B-Februa-hf-GGUF | https://www.modelscope.cn/models/IEITYuan/Yuan2-2B-Februa-hf/files | |||
| 51B | 4*80GB | 32*80GB | IEITYuan/Yuan2.0-51B-hf | https://modelscope.cn/models/IEITYuan/Yuan2.0-51B-hf |
| 102B | 8*80GB | 96*80GB | IEITYuan/Yuan2.0-102B-hf | https://modelscope.cn/models/IEITYuan/Yuan2.0-102B-hf |
关于大模型应用开发的后续学习
大模型基础so-large-lm
Datawhale开源教程,掌握大模型理论知识!
开源大模型食用指南self-llm
Datawhale开源教程,速通大模型部署&微调!
大模型白盒子构建指南tiny-universe
Datawhale开源教程,围绕大模型全链路的“手搓”大模型指南!
动手学大模型应用开发llm-universe
Datawhale开源教程,一个面向小白开发者的大模型应用开发教程!
大家在本次学习过程中,可以一边将上面推荐的材料作为字典,遇到问题时通过这些材料、大模型、搜索引擎,去翻阅查看,做到理论和实践的结合,真正理解这些理论知识的价值、以及究竟要如何在真实的问题场景中使用。