1.Deepseek微调痛点
Deepseek模型微调是提升在行业领域表现的关键,但你是否被这些问题卡住?
- 数据集:不知道如何准备,担心数据泄露?
- GPU算力:算力不足,Deepseek不同模型尺寸对应的GPU配置选择一头雾水?
- 微调手册与源码:找不到靠谱的教程和代码?
现在,所有问题我们帮你搞定!
领取方式:点击链接,注册即送10次完整DeepSeek LoRA微调GPU算力+微调源码!
👉 立即领取
2.教程案例
在追求轻量级大模型卓越性能的过程中,开发者和研究人员不断探索创新方法。今年以来,DeepSeek团队开源的成果尤为瞩目,尤其是在模型蒸馏领域的突破,赢得了业内的广泛认可。DeepSeek-R1-Distill-Qwen-7B
模型拥有70亿参数,文件大小约为15GB,展示了在保持高性能的同时显著减少模型规模的能力。
本实践将展示如何基于DeepSeek-R1-Distill-Qwen-7B
蒸馏模型进行微调,以创建针对特定行业的高效应用模型,例如,在医疗行业领域,可以通过使用DeepSeek-R1-Distill-Qwen-7B
作为基础模型,并结合medical-o1-reasoning-SFT数据集进行微调,来定制一个专门服务于医疗行业的高级模型。这一过程不仅能够提升模型在特定任务上的表现,同时也为其他行业的模型定制提供了参考路径。通过这种方式,可以有效地将前沿的大模型技术应用于实际场景中,解决具体的行业问题并推动技术创新。
重要
本实践以“北京一区”为例创建弹性集群,后续使用的镜像仓库等,也都属于“北京一区”。若您选择在其他智算中心(北京二区,北京三区等)开通弹性容器集群进行操作实践,请确认您的弹性容器集群和镜像仓库在同一个智算中心。不同镜像仓库地址如下所示。
北京一区:registry.hd-01.alayanew.com:8443
北京二区:registry.hd-02.alayanew.com:8443
北京三区:registry.hd-03.alayanew.com:8443
3.前提条件
- 用户已经获取Alaya New企业账户和密码,如果需要帮助或尚未注册,可参考注册账户及用户管理完成注册。
- 当前企业账号的余额充裕,可满足用户使用推理计算服务的需要。点击可了解最新的活动及费用信息,如需了解更多请联系我们。
4.准备工作
4.1资源准备
用户需开通弹性容器集群
,操作步骤可参看开通弹性容器集群章节所述。本实践弹性容器集群的资源配置至少需要满足以下表格中的要求。
配置项 | 配置需求 |
---|---|
GPU | H800 * 1 |
CPU | 8核 |
内存 | 100GB |
磁盘 | 200GB |
本实践开通弹性容器集群的操作步骤如下所示。
- 使用已注册的企业账号登录Alaya NeW系统,选择[产品/弹性容器集群]菜单项,单击“新建集群”按钮,进入[弹性容器集群]配置页面。
配置基本信息,例如:集群名称,集群描述,智算中心,此次使用的集群配置如下所示。
- 集群名称:
jskfb-zhaolin
。 - 智算中心:
北京一区
。 - 算力配置:选择
H800
,配额1卡。 - 其余参数保持默认值。
- 集群名称:
- 弹性容器集群参数配置完成后,单击“立即开通”按钮,开通弹性容器集群操作完成,用户可在[资源中心/弹性容器集群]页面查看已创建的容器集群,弹性容器集群状态为“运行中”表示集群可正常使用.
4.2准备镜像
提示
本次部署将使用Docker进行环境配置,请确保已正确安装Docker环境。如果需要帮助或了解具体的安装步骤,可参考安装Docker文档或者访问Docker Desktop产品页面下载最新版本的安装包。
本实践已预置了微调所需的镜像,用户可通过下面的步骤获取。
注意
请将以下命令中的镜像仓库用户名
、镜像仓库密码
及镜像仓库项目名
替换为用户实际的镜像仓库用户名、密码及仓库项目名称。
- 下载符合操作系统的Docker Desktop,执行如下所示的命令,登录到指定的私有镜像仓库Harbor。示例如上图高亮①所示。
docker login https://registry.hd-01.alayanew.com:8443/ -u vc-app-market-view -p HKse563!
- 执行如下所示的命令,从
registry.hd-01.alayanew.com:8443
镜像仓库下载
vc-app_market/unsloth:2025.2.15
镜像,示例如下图高亮②所示。
docker pull registry.hd-01.alayanew.com:8443/vc-app_market/unsloth:2025.2.15
- 执行如下所示的命令,为下载后的镜像创建一个新的
tag
,示例如下图高亮③所示。
docker tag registry.hd-01.alayanew.com:8443/vc-app_market/unsloth:2025.2.15 registry.hd-01.alayanew.com:8443/[镜像仓库项目名]/unsloth:2025.2.15
- 执行如下所示的命令,登录到用户的私有仓库,本实践以
北京一区
为例,示例如下图高亮④所示。
docker login registry.hd-01.alayanew.com:8443 -u [镜像仓库用户名] -p [镜像仓库密码]
- 执行如下所示的命令。将镜像推送到用户的私有仓库,本实践以
北京一区
为例,示例如下图高亮⑤所示。
docker push registry.hd-01.alayanew.com:8443/[镜像仓库项目名]/unsloth:2025.2.15
提示
请根据您的实际配置情况,选择并填写相应的镜像仓库地址。确保您的弹性容器集群与所选镜像仓库位于同一智算中心。以下是各智算中心的仓库地址列表:
北京一区:registry.hd-01.alayanew.com:8443
北京二区:registry.hd-02.alayanew.com:8443
北京三区:registry.hd-03.alayanew.com:8443
4.3获取SwanLab API Key
SwanLab是一款开源且轻量级的AI模型训练可视化追踪工具。在本次微调任务中,我们将使用SwanLab记录整个微调过程。在开始之前,请确保您已经登录SwanLab平台。登录后,点击“设置/常规”,即可获取API Key,示例如下图所示。
4.4安装Aladdin
Aladdin(Alaya AI Add-In)是开发者不可或缺的大模型开发工具,作为一款自主研发的IDE插件,它能够更高效地利用GPU资源进行代码调试和大规模模型的微调。
1.下载Aladdin插件,启动VS Code,点击左侧菜单栏的标签将下载好的
Aladdin.vsix
文件拖拽至扩展安装窗口,完成安装。更多有关Aladdin的操作用户可参考Aladdin使用手册。
2.点击图标进入Aladdin登录首页,如下图所示,单击“Login”,系统会在Chrome浏览器打开智算操作系统登录页面,输入
用户名
及密码
登录Aladdin,登录后选择与镜像仓库相同的智算中心,本实践选择北京一区
。
3.单击“Back to workspace”。进入Aladdin功能区,在ENVIRONMENTS
(下图高亮②)功能区即可查看到已导入的unsloth
镜像,如下图所示。
4.5代码及数据准备
medical-o1-reasoning-SFT
数据集包含24K+条数据,本数据集包含三列数据,分别是:医疗问题,诊断过程,诊断结果,数据格式如下图蓝色高亮所示,是专为高级医学推理设计的大型语言模型(LLM)。
点击示例代码及数据,即可获取此次微调的数据及代码。用户下载后将文件解压到本地。
5.操作步骤
- 在Aladdin的
WORKSHOP
功能区单击图标新建一个Workshop作为本次微调任务的开发环境,示例如下图所示。
本实践配置的参数配置及说明如下所示。
- Name:
medical-sft
,用于唯一标识一个WORKSHOP。 - Environment:
unsloth
,此处选择上述步骤已导入的镜像。 - VKS:
jskfb-zhaolin
,此处选择Aladdin账户内的弹性容器集群。 - PVC MOUNTS:两处均绑定
pvc-capacity-userdata
,SubPath配置分别为workspace
、model
,ContainerPath配置分别为/workspace
、/model
。 - 其余参数均保持默认值。
提示
为了防止数据丢失,建议用户在“PVC MOUNTS”配置中绑定持久化存储卷(PVC)。
- 参数配置完成后,单击“Save”按钮,系统自动打开一个新的VS Code窗口,下载相关插件,插件安装完成后,Aladdin Remote调试页面准备完成,点击“Terminal/NEW Terminal”菜单项,在终端页面执行以下命令,添加环境变量。
export HF_ENDPOINT=http://hfmirror.mas.zetyun.cn:8082
- 保持在上步同一页面,执行如下命令,下载此次微调所需的
DeepSeek-R1-Distill-Qwen-7B
大模型。关于下载模型如何加速的详细使用,可参考工具/模型下载加速文章所述。
huggingface-cli download --resume-download deepseek-ai/DeepSeek-R1-Distill-Qwen-7B --local-dir /model/deepseek-ai/DeepSeek-R1-Distill-Qwen-7B
- 保持在上步同一页面,按下
Ctrl+Shift+P
(Windows/Linux),打开命令面板,选择Python: Select Interpreter
,在弹出的选项中选择Python 3.11.10 ('base") /opt/conda/bin/python
,即可完成解释器选择操作。 - 保持在上步同一页面,点击“File/Open Folder”菜单项,在弹框输入“workspace”,示例页面如下图所示。单击“OK”按钮,进入Workspace列表页面。
- 保持在上步同一页面,点击Workspace的图标
新建一个文件夹,本实践新建文件的名称为“medical-sft”,将已解压的代码和数据拖拽至新建的文件夹下,示例如下图所示。
- 单击“medical-sft/sft.py”文件名称,打开“sft.py”文件内容,将获取SwanLab API Key的API Key添加到文件的代码中,示例如下图所示。
- 单击文件名“medical-sft/run.sh”以打开“run.sh”文件。然后,在文件内容的任意位置右键,选择“Run Shell”选项,进入脚本运行环境参数配置页面,参照下图完成参数配置。参数配置完成后,单击“Submit”按钮。即可完成微调任务提交操作。
登录SwanLab查看模型的训练过程,在模型训练过程中,一旦误差等关键参数落入用户预期的范围内,即可查看相应的模型问题解答。
- 单击文件名“medical-sft/infer.py”以打开文件。然后,在文件内容的任意位置右键,选择“GPU Run”选项,进入脚本运行环境参数配置页面,参照下图完成参数配置,参数配置完成后,单击“Submit”按钮,系统弹出微调终端窗口,在该窗口用户可查看微调后的结果。
针对同个问题“患者为40岁男性,头疼、发烧,还有腹泻,持续2天了。微调前的回答可参看微调前回答
,微调后回答可参看微调后回答
。
微调前回答
嗯,我现在要处理一个40岁男性的病例,他有头疼、发烧和腹泻,持续两天了。首先,我需要考虑这些症状可能的原因。头疼和发烧通常提示感染,比如细菌或病毒引起的。腹泻则可能与感染有关,也可能由食物中毒引起,或者有其他原因如寄生虫或肠道菌群紊乱。
接下来,我应该考虑可能的疾病。首先想到的是急性 appendicitis,因为男性容易发生,而且疼痛通常在下腹部,发烧可能伴随。腹泻可能是因为细菌感染,比如细菌性痢疾。另外,还有可能是一些感染性疾病,如流感、COVID-19,但患者年龄40岁,流感可能性较小。另外,食物中毒也是一种可能,但通常腹泻会更明显,且有呕吐史,这里没有提到。
然后,我应该评估他的症状是否有其他可能性,比如寄生虫感染,比如 Giardia 或 Entamoeba,或者肠道真菌感染,如 Clostridium difficile 导致的肠道问题。此外,还有可能是细菌感染,比如志贺菌导致的细菌性痢疾,这种情况通常会有持续的低 grade fever 和 watery diarrhea。
接下来,我需要考虑实验室检查。血常规检查可以帮助判断是否有细菌感染或血细菌。如果白细胞增高,可能提示感染。如果 WBC 降低,可能提示其他原因,比如寄生虫感染。尿常规检查可以帮助排除尿路感染或其他感染。大便培养和细菌学检查可以帮助确定是细菌感染还是其他类型,比如病毒或寄生虫。
此外,疼痛的位置和性质也很重要。如果疼痛集中在下腹部,并且可能放射到背部,这可能提示 appendicitis。如果疼痛在头部,可能提示脑膜炎或其他感染。体温方面,持续两天,可能需要监测,如果体温过高,可能需要进一步处理。
腹泻方面,观察是否伴随呕吐,如果有的话,可能排除了食物中毒的可能性。此外,粪便潜血试验可以初步判断是否有细菌感染。如果阳性,可能进一步确认是细菌性痢疾。
接下来,我应该考虑治疗方案。如果初步诊断为细菌性痢疾或appendicitis,可能会建议抗生素治疗。如果怀疑食物中毒,可能需要暂停饮食,观察是否改善。如果出现持续高烧,可能需要进一步的检查,比如血培养或影像学检查,以排除其他感染或并发症。
最后,我需要总结可能的诊断和下一步行动。可能的诊断包括细菌性痢疾、appendicitis、食物中毒、寄生虫感染等。建议进行进一步的实验室检查,如血常规、大便培养、尿常规等,以明确病因,并根据结果进行相应的治疗。
### 诊断分析
1. **症状分析**:
- 40岁男性,持续两天出现头疼、发烧和腹泻。
- 头痛可能与下腹部或头部感染有关。
- 腹泻提示可能的感染性疾病,如细菌性痢疾、食物中毒或寄生虫感染。
2. **可能的疾病**:
- **细菌性痢疾**:伴随持续低热和 watery diarrhea。
- **食物中毒**:可能伴有呕吐,但患者未提及。
- **appendicitis**:疼痛通常在下腹部,可能放射到背部。
- **寄生虫感染**:如 Giardia 或 Entamoeba 导致的腹泻。
3. **实验室检查建议**:
- **血常规**:检测白细胞和细菌感染。
- **大便培养和细菌学检查**:确定感染类型。
- **尿常规**:排除尿路感染或其他感染。
- **影像学检查**:排除脑膜炎或其他系统感染。
4. **治疗建议**:
- **抗生素治疗**:如细菌性痢疾或appendicitis。
- **进一步检查**:如血培养或影像学检查,以明确病因。
- **饮食指导**:如食物中毒,可能需要限制饮食。
5. **总结**:
- 可能的诊断包括细菌性痢疾、appendicitis、食物中毒或寄生虫感染。
- 建议进行进一步的实验室检查以明确病因,并根据结果进行相应治疗。
### 最终建议
建议对患者进行以下检查:
- 血常规检查以评估感染可能性。
- 大便培养和细菌学检查以确定具体感染类型。
- 尿常规检查以排除尿路感染。
- 如果出现持续高热或体重下降,建议进行血培养和影像学检查,如CT扫描,以排除其他感染或并发症。根据检查结果,进行针对性治疗。<|end▁of▁sentence|>
微调后回答
这个40岁的男性患者,头昏、发热,还有腹泻,持续两天了。嗯,这种情况好像很不寻常。首先,头昏和发热让我想到可能是感冒或者发烧了,但腹泻就有点让人担心了。哦,对了,腹泻常常和感染有关。是不是有其他症状呢?比如有没有腹痛或者呕吐?如果是的话,那就更复杂了。
让我想想,发烧和腹泻通常会一起出现吗?嗯,可能是急性胃肠炎。不过,等等,如果他的头昏和发热更严重,会不会是其他原因呢?比如脑膜炎?这可是个很危险的情况,头昏、发热、甚至可能会有意识障碍,这听起来有点像是脑膜炎的典型表现。
哦,对了,腹泻可能是由细菌引起的,比如大肠杆菌,但如果是脑膜炎,那病毒也可能引发这样的症状。嗯,我得考虑一下有没有脑膜炎的可能性。不过,脑膜炎的典型症状是意识模糊,而这个患者没有提到这种情况,所以可能性可能不大。
再想想,他有没有其他症状?比如有没有呕吐、发烧剧烈或者呼吸困难?没有这些的话,那就不太像是脑膜炎了。也许,他只是普通的胃肠炎,比如急性胃肠炎,这种情况下,头昏和发热可能是因为感染引起的,而腹泻则是身体在消化系统中排出的一些东西。
所以,我觉得,综合来看,患者可能只是普通的急性胃肠炎,而不是脑膜炎。嗯,这样的话,治疗应该 focus on 清理肠道,比如使用一些抗感染药物,比如阿莫西林,来控制感染。不过,等等,也许我应该再仔细想想,有没有其他可能?
哦,对了,患者有腹泻,这很可能是由细菌感染引起的。比如大肠杆菌这种常见的细菌感染,可能引起这样的症状。嗯,我觉得这个可能性更大,因为腹泻和这些症状的组合很符合细菌感染的表现。
所以,综合考虑下来,我觉得这位患者很可能是细菌感染导致的急性胃肠炎,而不是脑膜炎。这种情况下,阿莫西林这种抗生素应该可以有效治疗他的症状。嗯,看来之前的猜测和实际症状更符合。
根据患者的症状和病史,他可能是患有急性胃肠炎,具体表现为细菌感染引起的急性胃肠炎。这种情况下,患者有头昏、发热和腹泻的症状,这些症状可以与细菌感染,如大肠杆菌等,导致的急性胃肠炎相符。建议使用阿莫西林等抗生素进行治疗,以控制感染并缓解症状。<|end▁of▁sentence|>
6.总结
从上述微调结果可以明显看出,经过微调的模型在解决用户疑问方面表现更为出色,能够为用户提供更加精准和有效的指导。
本实践成功地将先进的大模型技术与Aladdin组件相结合,有效应对了具体的行业挑战,展示了前沿技术在实际场景中的应用实例,实现了从理论到实践的重要跨越。通过这种方式,我们不仅为用户提供了处理复杂问题的新思路,还展示了如何利用这些先进技术解决实际问题,为各行各业带来了创新解决方案。
7. 完整源码下载
下载示例代码及数据
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。