上海人工智能创新中心
上海人工智能创新中心
2025 书生五期系列
入门岛 | |||
---|---|---|---|
关卡编号 | 关卡名称 | 关卡资料 | |
第1关 | L0G1000 | 书生大模型提示词实践 | 闯关任务、文档、视频 |
第2关 | L0G2000 | 探索大模型能力边界 | 闯关任务 |
**入门岛练习赛: | |||
基础岛 | |||
关卡编号 | 关卡名称 | 关卡资料 | |
第1关 | L1G1000 | 玩转书生大模型 API 之 Browse Use实践 | 闯关任务、文档、视频 |
第2关 | L1G2000 | OpenCompass 评测书生大模型实践 | 笔记理解 |
第3关 | L1G3000 | LMDeploy 高效部署量化实践 | |
第4关 | L1G4000 | XTuner 微调 InternLM 论文分类实践 | 闯关任务、文档 1、文档 2、视频 |
**基础岛练习赛: | |||
进阶岛 | |||
关卡编号 | 关卡名称 | 关卡资料 | |
第1关 | L2G1000 | InternVL 部署微调实践 | 文档、视频、闯关任务 |
第2关 | L2G2000 | GraphGen:训练数据合成实践 | 文档、视频、闯关任务 |
第3关 | L2G3000 | LMDeploy TuborMind 源码解析 | 文档、视频、闯关任务 |
第4关 | L2G4000 | 智能体协议 MCP + 书生大模型实践 | 文档、视频、闯关任务 |
第5关 | L2G5000 | CAMEL 书生多智能体系统实践 | 文档、视频、闯关任务 |
第6关 | L2G6000 | 初探强化学习及 OREAL 实践 | 文档、视频、闯关任务 |
彩蛋岛 | |||
关卡编号 | 关卡名称 | 关卡资料 | |
第1关 | E1000 | 沐曦算力玩转书生大模型 | 文档1、文档2、视频 |
第2关 | E2000 | Ascend 算力玩转书生大模型实践 | 任务、文档、视频 |
第3关 | E3000 | LazyLLM +书生大模型实践 | 任务、文档、视频 |
第4关 | E4000 | MinerU:Paper秒出博客、卡片、PPT与视频! | 任务、文档、视频 |
2024 书生四期系列
2025 书生五期系列
1.1 书生大模型提示词实践
从下面四个角度来探讨大模型原理和应用
1 大预言模型原理
大模型的学习之路
阶段 | 人类 | 大模型 |
---|---|---|
幼儿阶段 | 幼儿大脑结构逐渐发育, 需要构建基本认知能力, 理解更复杂的语言和逻辑关系 | 神经网络 & 注意力 Transformer 架构架构设计与初始化 |
基础教育阶段 | 中小学阶段是知识获取的基础阶段, 广泛阅读和通识教育, 学习语言逻辑和常识等 | 预训练 下一个词预测 大规模预料训练 |
选择性教育阶段 | 进入专业方向的选择期 开始发展特定领域的思维能力。 同时,建立成熟的世界观和价值观 | 指令微调 & 对齐 掌握具体任务 对齐人类意图与价值观 |
高等教育阶段 | 开始专业化学习, 强调深度学习、 研究能力、批判性思维 | 领域微调 推理能力增强 |
职业发展阶段 | 熟练掌握行业经验与工具, 解决实际应用创造真实的社会价值 | 多智能体协作 工具调用 检索增强生成 |
大模型生成文本的原理
根据前面的词,不断预测下一个最有可能出现的词,从而生成连贯的文本。
2 漫谈提示词工程技巧
什么是Prompt
为模型提供输入,以引导AI模型生成特定的输出。
什么是提示词工程
通过设计和调整输入(Prompt),来改善模型性能或控制其输出结果的技术。
也就是结构化Prompt输入,让模型输出的结果更好。
3 提示词设计框架 LangGPT
ChatGPT的提示词设计六大原则:
1.指令要清晰
2.提供参考内容
3.复杂的任务拆分成子任务
4.给InternLM“思考”时间(给出过程)
5.使用外部工具
6.系统性测试变化
技巧
- 扮演角色
- 提供实例
- 思维链CoT--【请一步一步思考】
- 使用格式符区分语义-- 【使用markdown格式 "
"】
- 情感和物质激励
提示词框架--LangGPT
框架:Role-based人格化框架
模块化设计
Background、Command、Suggestion、Goal、Example、Constraint、Workflow、Output、
format、Skill、Style、Initialization
引导
设定执行任务的角色;明确任务目标。深化
背景设定,情景强化;唤醒能力;约束行为;行为案例强化;风格、情感设定。暗示
任务分解,指定工作流程;根据情况提供建议,动作、行为。启动
案例
案例1 疯狂星期四

例子2 项目取名大师

例子3: Excel表格红高手

4 人格化提示词自动生成工具
Minstrel: 论文链接
Minstrel使用链接:点击链接
基础岛
2.2 OpenCompass 评测书生大模型实践
1 OpenCompass 概述
OpenCompass 中评估一个模型通常包括以下几个阶段:
配置 -> 推理 -> 评估 -> 可视化。
配置:这是整个工作流的起点。您需要配置整个评估过程,选择要评估的模型和数据集。此外,还可以选择评估策略、计算后端等,并定义显示结果的方式。
推理与评估:在这个阶段,OpenCompass 将会开始对模型和数据集进行并行推理和评估。推理阶段主要是让模型从数据集产生输出,而评估阶段则是衡量这些输出与标准答案的匹配程度。这两个过程会被拆分为多个同时运行的“任务”以提高效率,但请注意,如果计算资源有限,这种策略可能会使评测变得更慢。如果需要了解该问题及解决方案,可以参考 FAQ: 效率。
可视化:评估完成后,OpenCompass 将结果整理成易读的表格,并将其保存为 CSV 和 TXT 文件。你也可以激活飞书状态上报功能,此后可以在飞书客户端中及时获得评测状态报告。
对于其他模型,请参考 configs 目录 中提供的其他示例。
2 环境安装
conda create -n opencompass python=3.10
conda activate opencompass
# 注意:一定要先 cd /root
cd /root
git clone https://github.moeyy.xyz/https://github.com/open-compass/opencompass opencompass
cd opencompass
pip install -e .
pip install sentencepiece
#升级datasets 避免不识别新的功能
pip install datasets==3.2.0
pip install modelscope
3 评测不同类型的题目
OpenCompass 支持的数据集主要包括三个部分:
Huggingface 数据集: Huggingface Dataset 提供了大量的数据集,这部分数据集运行时会自动下载。
ModelScope 数据集:ModelScope OpenCompass Dataset 支持从 ModelScope 自动下载数据集。
要启用此功能,请设置环境变量:
export DATASET_SOURCE=ModelScope
,可用的数据集包括(来源于 OpenCompassData-core.zip):humaneval, triviaqa, commonsenseqa, tydiqa, strategyqa, cmmlu, lambada, piqa, ceval, math, LCSTS, Xsum, winogrande, openbookqa, AGIEval, gsm8k, nq, race, siqa, mbpp, mmlu, hellaswag, ARC, BBH, xstory_cloze, summedits, GAOKAO-BENCH, OCNLI, cmnli
自建以及第三方数据集:OpenCompass 还提供了一些第三方数据集及自建中文数据集。运行以下命令手动下载解压。
为了方便评测,我们首先将数据集下载到本地:
cd /root/opencompass wget https://ghfast.top/https://github.com/open-compass/opencompass/releases/download/0.2.2.rc1/OpenCompassData-core-20240207.zip unzip OpenCompassData-core-20240207.zip
image-20250624210305553
4 如何测试
4.1 评测C-Eval 选择题
可以通过以下命令评测 internlm3_8b_instruct 模型在 C-Eval 数据集上的性能:
python run.py --datasets ceval_gen --models hf_internlm3_8b_instruct --debug
这个命令的理解
ceval_gen:来自/root/opencompass/dataset-index.yml中的配置
394行:
- ceval:
name: C-EVAL
category: Examination
paper: https://arxiv.org/pdf/2305.08322v1
configpath: opencompass/configs/datasets/ceval/ceval_gen.py
configpath_llmjudge: ''
opencompass/configs/datasets/ceval/ceval_gen.py如下:
from mmengine.config import read_base
with read_base():
from .ceval_gen_5f30c7 import ceval_datasets # noqa: F401, F403
/root/opencompass/opencompass/configs/models/hf_internlm/hf_internlm3_8b_instruct.py
from opencompass.models import HuggingFacewithChatTemplate
models = [
dict(
type=HuggingFacewithChatTemplate,
abbr='internlm3-8b-instruct-hf',
path='/root/share/new_models/internlm3/internlm3-8b-instruct',
max_out_len=8192,
batch_size=8,
run_cfg=dict(num_gpus=1),
)
]
参考链接: 点击前往
2024 书生四期系列
1. Agent基础介绍
1.1 Agent是什么
是一种能够 【自主感知环境并根据感知结果采取行动】的实体,以感知序列为输入,以动作作为输出的函数。
它可以以软件形式(如聊天机器人 推荐系统)存在,也可以是物理形态的机器(如自动驾驶汽车 机器人)。
自主性:能够在没有外部干预的情况下做出决定
交互性:能够在环境交换信息。
适应性:根据环境变化调整自身行为
目的性:所有行为都以实现特定目标为导向。
2 Lagent框架介绍
2.1 是什么
是一个轻量级的开源框架,旨在帮助用户高效地构建基于大语言模型(LLM)的智能体。该框架支持多种智能体范式,如ReAct,AutoGPT和ReWOO,能够驱动LLM进行多轮推理和功能调用。
7B模型 16位浮点(2Byte)模型的权重大小计算:
7*10**9 * 2 = 140亿字节 = 14GB
3 InternVL 部署微调实践闯关任务
3.1 理解多模态大模型的常见设计模式,可以大概讲出多模态大模型的工作原理。
多模态大模型是能够处理和融合不同模态的信息,以实现多种任务的深度学习模型。这类模型的设计通常涉及多个模态的融合策略,以便在多种不同输入间有效的共享知识。
以下列举了常见的设计模式和工作原理:
1. 独立模态处理(Independent Modalities)
每个模态独立处理,分别通过各自的神经网络模块进行特征提取。最终,所有模态的特征在某一层进行融合。
- 工作原理:不同模态(例如文本和图像)通过不同的神经网络(如BERT处理文本,CNN处理图像)进行独立学习和表示。在最后,所有模态的特征进行拼接、加权平均或其他融合方法,生成一个统一的表示来执行任务。
- 优点:模块化,便于调试和优化不同模态的处理。
- 缺点:可能无法充分利用模态间的关系,融合时可能失去信息。
2. 早期融合(Early Fusion)
在多模态模型的输入阶段就进行融合,将所有模态的数据合并成一个统一的输入。例如,将文本信息和图像信息在特征层面结合后一起输入到模型中。
- 工作原理:多模态信息在输入阶段(如拼接)合并,形成一个统一的表示。然后这个融合的表示直接通过神经网络进行处理,执行目标任务。
- 优点:模态间信息能够在早期阶段就被充分融合,可能提高任务的表现。
- 缺点:早期融合可能导致不同模态的信息相互干扰,特别是当模态差异较大时。
3. 晚期融合(Late Fusion)
每个模态的网络单独处理后,在最后的决策层进行融合。这种方法常用于分类或回归任务。
- 工作原理:每个模态先经过独立的处理网络,最后各个模态的输出进行拼接或加权平均,再由一个最终的决策层进行融合,输出最终结果。
- 优点:模型结构简单,易于理解和实现,适合在每个模态都能单独完成初步分析的场景。
- 缺点:可能无法充分利用不同模态间的内在联系,导致性能不如早期融合。
4. 跨模态学习(Cross-modal Learning)
跨模态学习使得模型能够学习不同模态之间的关系。常见的方法有对比学习、联合训练等。
- 工作原理:通过对比学习或映射学习,模型可以理解如何将一个模态的表示映射到另一个模态。例如,在图像和文本的对比学习中,模型学习到如何在图像和文本之间建立对应关系,从而提高多模态理解能力。
- 优点:能够学习模态之间的映射和关系,提高任务的通用性和精度。
- 缺点:训练过程复杂,需要大量的数据和计算资源。
5. Transformer架构
很多多模态大模型基于Transformer架构,尤其是“视觉-语言模型”(如CLIP、DALL·E、BLIP等),它们使用Transformer来处理文本和图像信息。
- 工作原理:多模态信息通过Transformer编码器和解码器进行交替处理。模型首先处理每个模态的输入,然后将各模态的表示通过自注意力机制融合在一起,形成跨模态的联合表示。通过共享的Transformer层,模型能够学习到跨模态的关联信息。
- 优点:Transformer能够有效处理长序列数据和多模态输入,且自注意力机制可以捕捉模态之间的复杂关系。
- 缺点:计算复杂度高,需要大量的训练数据和资源。
6. 多任务学习(Multi-task Learning)
多任务学习是一种训练多模态大模型的方法,旨在同时解决多个任务,例如文本生成、图像识别、情感分析等。
- 工作原理:通过共享底层的特征表示,不同任务通过同一个网络进行学习和优化。每个任务都有独立的损失函数,但共享特征表示可以帮助模型学习到跨任务的通用模式。
- 优点:能够提高模型的泛化能力,因为模型同时学习了多种任务。
- 缺点:任务之间的冲突可能影响模型的性能,需要精心设计任务间的平衡。
总结
多模态大模型通过融合来自不同模态的信息,以便更好地理解和执行复杂任务。每种设计模式都有其优缺点,选择合适的设计模式取决于任务需求、模态差异性和计算资源的限制。随着模型规模的扩大和训练技术的进步,多模态模型的融合方法正在不断改进,从而实现更强大的多任务、多模态理解能力。
3.2 了解InternVL2的设计模式,可以大概描述InternVL2的模型架构和训练流程。
InternVL2 是一个视觉-语言预训练模型,通常用于处理跨模态任务,如视觉问答、图像字幕生成等。它的设计模式是基于 Transformer 架构的多模态学习模型。下面是它的模型架构和训练流程的概述:
模型架构:
- 输入层:
- 视觉输入:使用卷积神经网络(CNN)或视觉 Transformer(如 ViT)提取图像特征。
- 语言输入:使用一个文本编码器(通常是基于 Transformer 的模型,如 BERT 或 GPT)将文本转换为向量表示。
- 融合层:
- 使用跨模态注意力机制(Cross-modal Attention)来融合图像和文本信息。图像和文本的特征表示会相互作用,使模型能够理解两者之间的关联。
- Transformer 编码器:
- 在多模态信息融合后,经过 Transformer 编码器进行处理,模型学习到图像和文本的联合表示。
- 输出层:
- 根据任务的不同,输出不同的形式:分类标签、生成的文本(如图像描述)或其他特定任务的输出。
训练流程:
- 数据预处理:
- 图像和文本配对数据集,如图像和对应的描述、问题及答案对等。
- 对图像进行预处理,如缩放、裁剪、归一化等。
- 对文本进行 Tokenization 和嵌入。
- 预训练:
- 通常采用自监督学习方法进行预训练,使用大量未标注的数据进行训练。
- 通过图像-文本对的匹配任务来学习视觉和语言之间的联系。例如,给定一个图像和一个文本描述,模型需要判断它们是否匹配。
- 微调(Fine-tuning):
- 在特定任务数据集上进行微调,例如图像描述生成、视觉问答等任务。通过监督学习,模型优化任务特定的目标。
- 评估:
- 使用任务特定的评估指标进行评估,如图像描述生成任务的 BLEU、METEOR 分数,或视觉问答任务的准确率等。
InternVL2 的设计强调跨模态信息的融合,利用强大的 Transformer 架构进行多模态表示学习,使得它在视觉和语言任务中表现出色。
了解LMDeploy部署多模态大模型的核心代码,并运行提供的gradio代码,在UI界面体验与InternVL2的对话。
了解XTuner,并利用给定数据集微调InternVL2-2B后,再次启动UI界面,体验模型美食鉴赏能力的变化。
将训练好的模型上传到 Hugging Face 或 ModelScope 上,模型名称包含 InternVL 关键词(优秀学员必做)
4 实战
Conda的基本命令
conda env list
conda activate streamer-sales
conda deactivate
conda env remove -n streamer-sales
4.1 Sale
xtuner list-cfg
rm -rf /root -v
2 微调
xtuner train ./config/internlm2_5_chat_7b_qlora_alpaca_e3_copy.py --deepspeed deepspeed_zero2 --work-dir ./work_dirs_2/assistTuner
3 合并模型
xtuner convert pth_to_hf /root/finetune/config/internlm2_5_chat_7b_qlora_alpaca_e3_copy.py \
/root/finetune/work_dirs/assistTuner/iter_267.pth \
/root/finetune/work_dirs/iter_267_hf
4 将微调后的模型和源模型 merge 生成新的模型
# 解决 Error: mkl-service + Intel(R) MKL: MKL_THREADING_LAYER=INTEL is incompatible with libgomp.so.1 library.
export MKL_SERVICE_FORCE_INTEL=1
xtuner convert merge /root/finetune/models/internlm2_5-7b-chat \
/root/finetune/work_dirs/iter_267_hf \
/root/finetune/work_dirs/iter_267_merge
5 安装 lmdeploy
pip install lmdeploy[all]==0.4.0
6 对模型进行 4bit 量化(可选)
lmdeploy lite auto_awq /root/finetune/work_dirs/iter_267_merge --work-dir /root/finetune/work_dirs/iter_267_merge_4bit
lmdeploy lite auto_awq ./work_dirs/internlm2_chat_7b_qlora_custom_data/iter_340_merge \
--work-dir ./work_dirs/internlm2_chat_7b_qlora_custom_data/iter_340_merge_4bit
使用https://github.com/InternLM/Tutorial/blob/camp4/docs/L1/XTuner/README.md安装环境
from transformers.cache_utils import Cache, DynamicCache, StaticCache
ImportError: cannot import name 'StaticCache' from 'transformers.cache_utils' (/root/.conda/envs/streamer-sales/lib/python3.10/site-packages/transformers/cache_utils.py)
pip install transformers==4.39.3
pip show transformers
Name: transformers
Version: 4.36.2
pip install --upgrade transformers>=4.37.0
4.2 数字人
ComfyUI 环境搭建
git clone https://github.com/comfyanonymous/ComfyUI.git
studio-conda -t comfyui-streamer-sales -o pytorch-2.1.2
conda activate comfyui-streamer-sales
pip install -r requirements.txt
python main.py
python download_models.py
ssh -p 40018 root@ssh.intern-ai.org.cn -CNg -L 8188:127.0.0.1:8188 -o StrictHostKeyChecking=no
4.3 XTuner微调DeepSeek qwen1.5
你是否好奇如何让 DeepSeek相关模型焕发出更强大的潜力?比如手机销售员,超市导购,瑜伽教练等等,通过语模型对话能够回答专业的知识,通用模型不具备的知识是如何给通用模型的呢?本次实战将借助框架 XTuner 对蒸馏版本的 DeepSeek 1.5B 模型进行微调,带你一探究竟,验证这一创新操作的可行性!
本次实战的内容让模型可以按要求称自己为【小薇销售顾问】,可以作为手机销售人员,回答手机销售方面的问题。
一、训练用电脑配置
系统镜像:Cuda12.2-conda,镜像版本为 gpu-12.2
GPU:50% A100 ,显存 40960MiB
CPU:vCPU * 8000
内存:112GB
二、微调和未微调的效果
想象一下,你和朋友买了同样配置的电脑。你的朋友直接开箱使用,而你对电脑进行了一番精心微调。在运行大型游戏时,朋友的电脑可能出现偶尔卡顿,加载时间也较长;而你的电脑画面流畅,加载迅速,游戏体验极佳。在处理复杂的办公软件任务,如大型 Excel 表格运算、Photoshop 图片处理时,微调后的电脑响应更快,能帮你节省不少时间。这就是微调和未微调的直观差异,微调能让电脑硬件发挥出更强大的性能。
什么是微调:大语言模型的微调(Fine-tuning of Large Language Models)是指在预训练的大型语言模型基础上,使用特定任务的数据进一步训练模型,以使其更好地适应和执行特定任务的过程。
我们来问问没有微调前的模型你是谁,现在流行的手机是什么
什么是微调
电脑配置微调,简单来说,就是对电脑硬件的一些参数进行优化设置,以挖掘硬件的潜在性能。它并非是更换硬件,而是在现有硬件基础上,通过修改 BIOS 设置、调整操作系统参数、优化软件设置等方式,让硬件之间的协同工作更加高效。比如,调整 CPU 的倍频和外频,可以适当提升 CPU 的运行频率,从而提高运算速度;优化内存的时序,能让内存的数据读写更快。
XTuner 是什么
XTuner 是一款专门用于电脑配置微调的强大工具。它就像是一个电脑性能管家,能帮助用户轻松实现对电脑硬件的精细调整。通过 XTuner,用户无需深入了解复杂的硬件知识和专业的 BIOS 设置,就能对 CPU、GPU、内存等硬件进行优化。它拥有简洁直观的界面,各种调整选项一目了然。例如,在 XTuner 中,你可以一键式提升 CPU 的睿频加速能力,让 CPU 在处理复杂任务时能自动提高频率,增强性能。
XTuner 安装麻烦吗
很多人可能会担心 XTuner 的安装过程会不会很复杂。其实完全不用担心,XTuner 的安装非常简便。就像安装普通的软件一样,你只需从官方网站下载安装包,然后按照安装向导的提示,一步步点击 “下一步” 即可完成安装。整个过程通常只需要几分钟,即使是电脑小白也能轻松上手。安装完成后,打开 XTuner,就能立即开始对电脑进行微调操作。
微调很容易
使用 XTuner 进行电脑配置微调,真的是一件轻而易举的事情。打开 XTuner 后,你会看到清晰的硬件状态展示,每个硬件都有对应的优化选项。比如,对于 GPU,你可以通过简单的滑块操作,调整其核心频率和显存频率,从而提升图形处理能力。而且,XTuner 还提供了预设的优化方案,如果你不想自己逐个调整参数,只需选择适合自己使用场景的预设方案,点击应用,XTuner 就会自动帮你完成所有的微调设置。无论是游戏玩家追求极致的帧率,还是设计师需要更流畅的图形渲染,都能轻松实现。
总结和遐想
通过对电脑配置的微调,尤其是借助 XTuner 这样便捷的工具,我们能让电脑的性能得到显著提升,为我们的工作、娱乐和学习带来更好的体验。未来,随着技术的不断发展,我们可以期待类似 XTuner 这样的工具更加智能和强大。也许在不久的将来,电脑配置微调将变得更加自动化,甚至电脑能根据我们实时的使用场景,自动进行最优的配置调整,让每一台电脑都能时刻保持最佳性能状态。如果你还没有尝试过电脑配置微调,不妨现在就行动起来,用 XTuner 开启你的电脑性能提升之旅。