DeepSeek 大模型微调实战(超详细实战篇)

1 简介 

DeepSeek 是由 深度求索 团队开发的大语言模型,本实验将基于 deepseek-llm-7b-chat 模型,在 EmoLLM 数据集进行微调,实现大模型能够以心理医生的口吻来回答我们的问题。

本实验基于 transformers 和 openMind 均已实现本次微调,代码均可在 github 链接上查看。

通过本次实验,你不仅能够完成多轮对话数据的微调,还能掌握这些方法,并将其迁移到其他微调实验中,独立进行高效的模型调优。

2 链接资料 

作者信息:情感机器研究员 - 李馨雨

邮箱:wind.340171@gmail.com

数据集: https://github.com/SmartFlowAI/EmoLLM/blob/main/datasets/data_pro.json

模型:https://modelers.cn/models/chenshaohon/deepseek-llm-7b-chat

代码地址:https://github.com/828Tina/deepseek-llm-7B-chat-lora-ft

可视化工具 SwanLab 项目地址:https://swanlab.cn/@LiXinYu/deepseek-llm-7b-chat-finetune/overview

魔乐社区:https://modelers.cn/

3 实际项目代码 + 结果演示 

写在前面 本次实验同时适配 transformers 和 openMind,由于 openMind 缺少数据处理的函数,下面实验手动添加即可,其他部分和基于 transformers 的代码一致。

3.1 基本概念 

  1. openMind Library--->Huggingface Transformers

openMind Library 类似于 transformers 的大模型封装工具,其中就有 AutoModelForSequenceClassification、AutoModelForCausalLM 等等模型加载工具以及像 TrainingArguments 参数配置工具等等,原理基本一样,不过对 NPU 适配更友好些。

openMind Library 是一个深度学习开发套件,通过简单易用的 API 支持模型预训练、微调、推理等流程。openMind Library 通过一套接口兼容 PyTorch 和 MindSpore 等主流框架,同时原生支持昇腾 NPU 处理器,同时 openMind Library 可以和 PEFT、DeepSpeed 等三方库配合使用,来加速模型微调效率。

  1. 魔乐社区 --->HuggingFace

魔乐社区类似于 huggingface 这种模型托管社区,里面除了 torch 的模型还有使用 MindSpore 实现的模型。transformers 可以直接从 huggingface 获取模型或者数据集,openMind 也是一样的,可以从魔乐社区获取模型和数据集。

3.2 实验环境搭建及实验代码、结果 

3.2.1 环境设置 

在运行代码前,需要先配置环境,由于本次实验对比各个参数结果比较多,所以对显存要求稍微高点,具体环境配置如下:

  • GPU:40GB 左右
  • Python:>=3.8
  • # 安装torch
    conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia
    -----------------------------------------------------------------------------------------------------------------------
    # 安装transfomers框架
    pip intsall transfomers -i https://pypi.tuna.tsinghua.edu.cn/simple
    -----------------------------------------------------------------------------------------------------------------------
    # 安装openMind框架
    pip intsall openmind -i https://pypi.tuna.tsinghua.edu.cn/simple
    -----------------------------------------------------------------------------------------------------------------------
    # 安装datasets
    pip intsall datasets -i https://pypi.tuna.tsinghua.edu.cn/simple
    -----------------------------------------------------------------------------------------------------------------------
    # 安装peft
    pip intsall peft -i https://pypi.tuna.tsinghua.edu.cn/simple
    -----------------------------------------------------------------------------------------------------------------------
    # qlora会使用到,本文主要完成lora
    pip intsall bitsandbytes -i https://pypi.tuna.tsinghua.edu.cn/simple
    -----------------------------------------------------------------------------------------------------------------------
    # 可视化工具
    pip intsall -U swanlab -i https://pypi.tuna.tsinghua.edu.cn/simple
    
    3.2.2 数据预处理 

    本次微调目的是使得大模型能够以医生的口吻来回答我们的问题,因此需要与心理健康有关的数据集资料。

    下载数据 

    本项目使用一个 EmoLLM - 心理健康大模型中使用的数据集(该数据集已经进行数据清洗,在保证质量的同时,通过调整阈值减少因错误匹配而丢失重要数据的风险。):

    EmoLLM-datasets

    数据集内容如下:

    [
        {
            "conversation": [
                {
                    "system": "现在你是一个心理专家,我有一些心理问题,请你用专业的知识帮我解决。",
                    "input": "医生,我最近在社交场合总是感到非常紧张和焦虑,尤其是当有很多人的时候,我甚至会出汗、心跳加速。\n\n",
                    "output": "我理解你的感受,社交焦虑是很常见的。首先,我想告诉你,你并不孤单。请问你能告诉我,在哪些具体的社交场景中,你感到最不舒服或焦虑呢?\n\n"
                },
                {
                    "input": "主要是参加聚会或者需要公开发言的场合。我总是担心自己会说错话,或者别人会对我有不好的评价。\n\n",
                    "output": "明白了。在这种情况下,我们首先要认识到,每个人都有可能说错话或遇到尴尬的情况,这是正常的。我建议你可以尝试一些放松技巧,比如深呼吸、正念冥想,或者在参加社交活动前进行一些轻松的身体活动,以减轻紧张感。\n\n"
                },
               
### DeepSeek 模型微调文档与教程 对于希望深入了解并实践DeepSeek模型微调的开发者而言,官方文档和社区资源提供了详尽指导。针对特定领域如智能制造的应用场景,结合专业数据集采用低秩适应(LoRA)等先进技术能够显著提升模型性能[^1]。 #### 官方指南 - **官方API文档**:这是最权威的信息源,涵盖了从环境配置到高级功能使用的各个方面。特别是有关于如何通过调整请求体、请求头以及其他参数来优化API交互的内容[^2]。 #### 社区贡献资料 - **开源项目库**:GitHub上存在多个由爱好者维护的仓库,分享了不同行业的实际应用案例以及详细的代码实现说明。 - **在线论坛和技术博客**:这些平台不仅有经验丰富的从业者发表见解,还有大量问答帖帮助解决遇到的具体难题。 #### 实战演练材料 为了便于理解和操作,一些作者撰写了图文并茂甚至附带视频讲解的文章或系列课程,它们通常会按照以下结构展开: 1. 环境搭建与依赖安装; 2. 数据预处理流程介绍; 3. 使用工具包完成初步训练; 4. 应用LoRA或其他策略进一步精炼成果; 5. 性能评估指标设定及其解读方式; ```java // Java 调用示例片段展示如何向DeepSeek发送HTTP POST请求以启动一次新的微调作业 import java.io.*; import okhttp3.*; public class MicroTuningExample { public static void main(String[] args) throws IOException { OkHttpClient client = new OkHttpClient(); MediaType mediaType = MediaType.parse("application/json"); String jsonBody = "{ \"model\": \"deepseek\", ... }"; // 用户需依据实际情况填充具体字段 RequestBody body = RequestBody.create(mediaType, jsonBody); Request request = new Request.Builder() .url("https://api.deepseek.com/v1/micro-tune") .post(body) .addHeader("Content-Type", "application/json") .build(); Response response = client.newCall(request).execute(); System.out.println(response.body().string()); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值