从零开始的LLaMA-Factory的指令增量微调_llamafactory微调

大模型相关目录

大模型,包括部署微调prompt/Agent应用开发、知识库增强、数据库增强、知识图谱增强、自然语言处理、多模态等大模型应用开发内容
从0起步,扬帆起航。

  1. 大模型应用向开发路径及一点个人思考
  2. 大模型应用开发实用开源项目汇总
  3. 大模型问答项目问答性能评估方法
  4. 大模型数据侧总结
  5. 大模型token等基本概念及参数和内存的关系
  6. 大模型应用开发-华为大模型生态规划
  7. 从零开始的LLaMA-Factory的指令增量微调

文章目录
  • 大模型相关目录
  • 一、LLaMA-Factory简介
  • 二、使用准备
  • 二、单卡微调
    • 测试集对微调模型性能评估
    • 微调模型问答使用
    • 微调模型增量模型导出
  • 三、多卡微调
  • 四、其他

一、LLaMA-Factory简介

LLaMA-Factory是开源的大模型微调框架,在模型微调方式、参数配置、数据集设置、模型保存、模型合并、模型测试以及模型试用上,提供了非常完备的开发接口。其框架使用形式分为指令与界面两种。

二、使用准备

1.拉取项目并部署相应环境(微调chatGLM3 6B很流畅,微调Qwen系列可能需要按错误提示对环境进行补包),并激活。

conda activate zwllama_factory
在这里插入图片描述

2.下载模型到本地
在这里插入图片描述

3.自行准备数据集
包括:

  • 自我认知数据集(微调后可能效果也比较一般,需要多次微调,或者配合prompt。)
  • 通用数据集(微调时用不用均可,可保持模型通用能力。且LLaMA-Factory的data文件夹下有alpaca_gpt4_data_zh等已经备好的数据集,不需要刻意定制。)
  • 特定领域数据集
    基本格式如下(alpaca,一种指令微调的格式。当然还有其他格式):
 [
  {
    "instruction": "你好",
    "input": "",
    "output": "您好,我是XX大模型,一个由XXX开发的 AI 助手,很高兴认识您。请问我能为您做些什么?"
  },
  {
    "instruction": "你好",
    "input": "",
    "output": "您好,我是XX大模型,一个由XXX打造的人工智能助手,请问有什么可以帮助您的吗?"
  }
  ]

其中,instruction和input可以都填充进内容,如把问题作为input,把“回答问题这一要求”作为instruction。据说这种指令微调数据集的格式效果比较好。

准备数据及后,应上传所用到的数据集至项目路径下data文件夹
data文件夹下的数据集要想使用,还需在dataset_info.json下进行登记注册。
在这里插入图片描述
其中,file_sha1可通过如下代码计算获得,该字段要求并不严格,有即可,主要为了区分重复文件,作uuid使用。


import hashlib

def calculate_sha1(file_path):
    sha1 = hashlib.sha1()
    try:
        with open(file_path, 'rb') as file:
            while True:
                data = file.read(8192)  # Read in chunks to handle large files
                if not data:
                    break
                sha1.update(data)
        return sha1.hexdigest()
    except FileNotFoundError:
        return "File not found."

# 使用示例
file_path = r'C:\Users\12258\Desktop\xxx.json'  # 替换为您的文件路径
sha1_hash = calculate_sha1(file_path)
print("SHA-1 Hash:", sha1_hash)

二、单卡微调

单卡微调往往针对6B、7B等规模不大的大模型,因此界面化操作完全狗满足需求。
下述指令启动界面:

CUDA_VISIBLE_DEVICES=0 python src/train_web.py

如下图所示配置页面信息
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
可见界面微调的本质依旧是后端的指令。
点击开始,开始微调,界面无反应,后端开始加载
在这里插入图片描述
加载完毕后,前端界面出现训练所需时间和损失曲线。
在这里插入图片描述
注意,训练随时可以中断。

测试集对微调模型性能评估

在这里插入图片描述

微调模型问答使用

在这里插入图片描述

微调模型增量模型导出

在这里插入图片描述

三、多卡微调

在这里插入图片描述
新增config.yaml文件在README同级目录,内容如下:

compute_environment: LOCAL_MACHINE
debug: false
distributed_type: MULTI_GPU
downcast_bf16: 'no'
gpu_ids: all
machine_rank: 0
main_training_function: main
mixed_precision: fp16
num_machines: 1
num_processes: 2
rdzv_backend: static
same_network: true
tpu_env: []
tpu_use_cluster: false
tpu_use_sudo: false
use_cpu: false

运行如下命令即可微调:

accelerate launch --config_file config.yaml src/train_bash.py \
    --ddp_timeout 180000000 \
    --stage sft \
    --do_train True \
    --model_name_or_path /home/gputest/sgq/text-generation-webui/models/Qwen1.5-14B-Chat \
    --finetuning_type lora \
    --template default \
    --dataset_dir data \
    --dataset self_cognition_modified,approval_data_ls_300 \
    --cutoff_len 1024 \
    --learning_rate 5e-05 \
    --num_train_epochs 3.0 \
    --max_samples 100000 \
    --per_device_train_batch_size 2 \
    --gradient_accumulation_steps 8 \
    --lr_scheduler_type cosine \
    --max_grad_norm 1.0 \
    --logging_steps 5 \
    --save_steps 100 \
    --warmup_steps 0 \
    --optim adamw_torch \
    --output_dir saves/Qwen1.5-14B/lora/train_2024-03-21-02-22-33 \
    --fp16 True \
    --lora_rank 8 \
    --lora_alpha 16 \
    --lora_dropout 0.1 \
    --lora_target q_proj,v_proj \
    --plot_loss True

当然上述代码内容需要根据你的实际需求进行一定修改。
在这里插入图片描述

四、其他

在这里插入图片描述
更多信息可以访问开源项目进行了解。

如何学习大模型

现在社会上大模型越来越普及了,已经有很多人都想往这里面扎,但是却找不到适合的方法去学习。

作为一名资深码农,初入大模型时也吃了很多亏,踩了无数坑。现在我想把我的经验和知识分享给你们,帮助你们学习AI大模型,能够解决你们学习中的困难。

我已将重要的AI大模型资料包括市面上AI大模型各大白皮书、AGI大模型系统学习路线、AI大模型视频教程、实战学习,等录播视频免费分享出来,需要的小伙伴可以扫取。

一、AGI大模型系统学习路线

很多人学习大模型的时候没有方向,东学一点西学一点,像只无头苍蝇乱撞,我下面分享的这个学习路线希望能够帮助到你们学习AI大模型。

在这里插入图片描述

二、AI大模型视频教程

在这里插入图片描述

三、AI大模型各大学习书籍

在这里插入图片描述

四、AI大模型各大场景实战案例

在这里插入图片描述

五、结束语

学习AI大模型是当前科技发展的趋势,它不仅能够为我们提供更多的机会和挑战,还能够让我们更好地理解和应用人工智能技术。通过学习AI大模型,我们可以深入了解深度学习、神经网络等核心概念,并将其应用于自然语言处理、计算机视觉、语音识别等领域。同时,掌握AI大模型还能够为我们的职业发展增添竞争力,成为未来技术领域的领导者。

再者,学习AI大模型也能为我们自己创造更多的价值,提供更多的岗位以及副业创收,让自己的生活更上一层楼。

因此,学习AI大模型是一项有前景且值得投入的时间和精力的重要选择。

<think>好的,用户想了解深度求索(DeepSeek)如何训练自己的模型,以及作为新人小白如何进行训练。我需要先理清楚这两个部分的内容,然后以简洁易懂的方式呈现出来。 首先,关于DeepSeek的训练方法,可能需要查找公开资料,但假设没有详细公开的信息,可以基于一般的大模型训练流程进行解释。需要涵盖数据准备、模型架构、训练策略、计算资源、优化技术等方面。同时,要指出他们可能使用的核心技术,比如MoE架构、高效并行训练等。 然后是针对新人的训练指南。这部分需要从基础开始,建议学习机器学习基础知识,选择适合的框架,比如PyTorch或TensorFlow。接着是实际操作的步骤:数据准备、模型选择、训练配置、训练过程、评估调优和部署应用。对于每个步骤,要给出具体的小贴士,比如使用公开数据集,从简单模型开始,利用云服务资源等。 需要注意用户是新手,所以语言要避免过于技术化,用比喻或例子帮助理解。同时,要提醒他们需要耐心,从简单项目入手,逐步积累经验。可能还需要提到社区和文档的重要性,以及实践中的调试和优化技巧。 需要确认是否有错误或遗漏的地方,比如训练步骤是否全面,建议是否实际可行。另外,是否需要区分DeepSeek公司的训练方法和一般公司的方法,如果无法找到具体信息,可能需要说明这是通用方法,并建议用户参考官方资源。 最后,确保整个回答结构清晰,分点明确,让用户能一步步跟随学习。同时保持口语化,避免使用复杂术语,必要时进行解释。</think>深度求索(DeepSeek)作为一家专注实现AGI的中国公司,其大模型训练方法未完全公开,但结合行业通用方法及公开信息,以下是训练流程概述及新人入门指南: --- ### **一、DeepSeek大模型训练核心步骤** 1. **数据准备** - 多源数据采集:整合网页、书籍、论文、代码等结构化与非结构化数据。 - 清洗过滤:去除噪声、低质内容,进行去重和隐私脱敏。 - 数据加权:根据来源质量分配权重(如学术论文权重高于社交媒体)。 2. **模型架构设计** - 基于Transformer结构,可能采用稀疏化设计(如MoE混合专家架构)提升训练效率。 - 根据目标选择参数量级(如7B/67B等不同规模)。 3. **分布式训练** - 使用ZeRO-3、流水线并行等技术拆分模型至千卡级GPU集群。 - 优化通信效率,减少跨节点数据传输延迟。 4. **训练策略优化** - 课程学习(Curriculum Learning):从简单任务逐步过渡到复杂任务。 - 混合精度训练:FP16/FP32混合降低显存占用。 - 梯度裁剪:防止梯度爆炸导致训练不稳定。 5. **评估与迭代** - 通过MMLU、HumanEval等基准测试评估模型能力。 - 针对弱项进行增量训练或数据增强。 --- ### **二、新人入门训练指南(从零实践)** #### **第一步:基础知识储备** - 必学概念:神经网络、损失函数、优化器(AdamW)、过拟合/欠拟合。 - 工具学习:Python/PyTorch基础(官方教程+《动手学深度学习》)。 - 数学基础:理解矩阵运算、概率分布、梯度下降原理即可,无需深入推导。 #### **第二步:实操训练流程** 1. **环境搭建** - 推荐Google Colab(免费GPU)或AutoDL(国内低价云服务器)。 - 安装PyTorch、Transformers库:`pip install torch transformers` 2. **微调现成模型(快速体验)** ```python from transformers import AutoModelForCausalLM, Trainer, TrainingArguments # 加载预训练模型(如MiniCPM-2B) model = AutoModelForCausalLM.from_pretrained("deepseek-ai/minicpm-2b-dpo") # 设置训练参数 training_args = TrainingArguments( output_dir='./results', per_device_train_batch_size=4, num_train_epochs=3, logging_steps=100, ) # 准备自定义数据集(示例) train_dataset = ... # 使用datasets库加载自己的文本数据 # 开始微调 trainer = Trainer( model=model, args=training_args, train_dataset=train_dataset, ) trainer.train() ``` 3. **进阶路线建议** - 阶段1:使用HuggingFace微调GPT-2/T5等小模型,完成文本生成/分类任务。 - 阶段2:学习LoRA/P-Tuning等参数高效微调技术,减少显存消耗。 - 阶段3:尝试多机多卡分布式训练(需云服务器支持)。 #### **第三步:避坑指南** - 显存不足时:启用梯度检查点(gradient_checkpointing=True)、降低batch_size。 - 训练震荡:尝试减小学习率、增加warmup步数。 - 过拟合:添加Dropout层、数据增强、早停(Early Stopping)。 --- ### **三、资源推荐** - 实践平台:Kaggle学习赛、阿里云天池NLP入门赛 - 开源项目参考: - Llama-Factory(一站式微调工具): https://github.com/hiyouga/LLaMA-Factory - DeepSeek官方开源模型:HuggingFace仓库搜索"deepseek-ai" - 书籍:《Natural Language Processing with Transformers》 新手建议从 **单卡微调小模型** 起步,逐步理解数据→模型→训练的关系,切勿直接尝试千亿参数训练。持续参与开源社区讨论(如HF论坛/知乎技术专栏)可快速提升实战能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值