一站式解决Deepseek微调三大痛点:数据集、GPU资源、微调手册与源码

2025-03-31 发布 · 浏览21次 · 点赞0次 · 收藏0次

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.前提条件

4.准备工作

4.1资源准备

用户需开通弹性容器集群,操作步骤可参看开通弹性容器集群章节所述。本实践弹性容器集群的资源配置至少需要满足以下表格中的要求。

配置项

配置需求

GPU

H800 * 1

CPU

8核

内存

100GB

磁盘

200GB

本实践开通弹性容器集群的操作步骤如下所示。

  1. 使用已注册的企业账号登录Alaya NeW系统,选择[产品/弹性容器集群]菜单项,单击“新建集群”按钮,进入[弹性容器集群]配置页面。
  2. 配置基本信息,例如:集群名称,集群描述,智算中心,此次使用的集群配置如下所示。
  • 集群名称:jskfb-zhaolin。 
  • 智算中心:北京一区。 
  • 算力配置:选择H800,配额1卡。 
  • 其余参数保持默认值。
  1. 弹性容器集群参数配置完成后,单击“立即开通”按钮,开通弹性容器集群操作完成,用户可在[资源中心/弹性容器集群]页面查看已创建的容器集群,弹性容器集群状态为“运行中”表示集群可正常使用.

4.2准备镜像

提示

本次部署将使用Docker进行环境配置,请确保已正确安装Docker环境。如果需要帮助或了解具体的安装步骤,可参考安装Docker文档或者访问Docker Desktop产品页面下载最新版本的安装包。

本实践已预置了微调所需的镜像,用户可通过下面的步骤获取。

注意

请将以下命令中的镜像仓库用户名镜像仓库密码镜像仓库项目名替换为用户实际的镜像仓库用户名、密码及仓库项目名称。

  1. 下载符合操作系统的Docker Desktop,执行如下所示的命令,登录到指定的私有镜像仓库Harbor。示例如上图高亮①所示。
docker login https://registry.hd-01.alayanew.com:8443/ -u vc-app-market-view -p HKse563!
  1. 执行如下所示的命令,从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

  1. 执行如下所示的命令,为下载后的镜像创建一个新的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
  1. 执行如下所示的命令,登录到用户的私有仓库,本实践以北京一区为例,示例如下图高亮④所示。
docker login registry.hd-01.alayanew.com:8443 -u [镜像仓库用户名] -p [镜像仓库密码]
  1. 执行如下所示的命令。将镜像推送到用户的私有仓库,本实践以北京一区为例,示例如下图高亮⑤所示。
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.操作步骤

  1. 在Aladdin的WORKSHOP功能区单击新增图标,新建一个Workshop作为本次微调任务的开发环境,示例如下图所示。

本实践配置的参数配置及说明如下所示。

  • Name:medical-sft,用于唯一标识一个WORKSHOP。
  • Environment:unsloth,此处选择上述步骤已导入的镜像。
  • VKS:jskfb-zhaolin,此处选择Aladdin账户内的弹性容器集群。
  • PVC MOUNTS:两处均绑定pvc-capacity-userdata,SubPath配置分别为workspacemodel,ContainerPath配置分别为/workspace/model
  • 其余参数均保持默认值。

提示

为了防止数据丢失,建议用户在“PVC MOUNTS”配置中绑定持久化存储卷(PVC)。

  1. 参数配置完成后,单击“Save”按钮,系统自动打开一个新的VS Code窗口,下载相关插件,插件安装完成后,Aladdin Remote调试页面准备完成,点击“Terminal/NEW Terminal”菜单项,在终端页面执行以下命令,添加环境变量。
export HF_ENDPOINT=http://hfmirror.mas.zetyun.cn:8082
  1. 保持在上步同一页面,执行如下命令,下载此次微调所需的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
  1. 保持在上步同一页面,按下Ctrl+Shift+P(Windows/Linux),打开命令面板,选择Python: Select Interpreter,在弹出的选项中选择Python 3.11.10 ('base") /opt/conda/bin/python,即可完成解释器选择操作。
  2. 保持在上步同一页面,点击“File/Open Folder”菜单项,在弹框输入“workspace”,示例页面如下图所示。单击“OK”按钮,进入Workspace列表页面。

  1. 保持在上步同一页面,点击Workspace的文件图标新建一个文件夹,本实践新建文件的名称为“medical-sft”,将已解压的代码和数据拖拽至新建的文件夹下,示例如下图所示。
  1. 单击“medical-sft/sft.py”文件名称,打开“sft.py”文件内容,将获取SwanLab API Key的API Key添加到文件的代码中,示例如下图所示。

  1. 单击文件名“medical-sft/run.sh”以打开“run.sh”文件。然后,在文件内容的任意位置右键,选择“Run Shell”选项,进入脚本运行环境参数配置页面,参照下图完成参数配置。参数配置完成后,单击“Submit”按钮。即可完成微调任务提交操作。

  1. 登录SwanLab查看模型的训练过程,在模型训练过程中,一旦误差等关键参数落入用户预期的范围内,即可查看相应的模型问题解答。

  1. 单击文件名“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. 完整源码下载

下载示例代码及数据

一站式解决Deepseek微调三大痛点:数据集、GPU资源、微调手册与源码 - AI 资讯 - 资讯 - AI 中文社区

声明:本文转载自机器之心,转载目的在于传递更多信息,并不代表本社区赞同其观点和对其真实性负责,本文只提供参考并不构成任何建议,若有版权等问题,点击这里。本站拥有对此声明的最终解释权。如涉及作品内容、版权和其它问题,请联系我们删除,我方收到通知后第一时间删除内容。

点赞(0) 收藏(0)
0条评论
珍惜第一个评论,它能得到比较好的回应。
评论

游客
登录后再评论
  • 鸟过留鸣,人过留评。
  • 和谐社区,和谐点评。