qwen1half-7b-chat-lora

我要开发同款
匿名用户2024年07月31日
28阅读
所属分类aipytorch
开源地址https://modelscope.cn/models/monbear/qwen1half-7b-chat-lora

作品详情

README

Training

使用**Qwen-7b-chat大模型进行微调,在训练过程使用自己专门的数据集aiwei.jsonl**。

直接用CLI命令行

CUDA_VISIBLE_DEVICES=0 swift sft \
    --model_id_or_path qwen/Qwen-7B-Chat \
    --custom_train_dataset_path aiwei.jsonl \
    --output_dir output \
    --self_cognition_sample 1000\
   --model_name '艾薇知心大姐姐' 'AiWei'\
   --model_author '心理健康小分队' 'Mental health team'\
   --batch_size 2\
   --num_train_epochs 5\
   --learning_rate 1e-4\
   #self_congnition_samle是关于自我认知强度的参数,self_congnition_sample越大,你的模型对于
   #model_name和model_author内容认知越强烈,如果过小的话,那么很有可能在“你是谁?”的问题中,
   #答案还会是“我是来自阿里云的通义千问”
   #custom_train_dataset_path 下的jsonl文件放在swift文件夹之下即可
   #如果需要可以从上次的断点开始训练,只需添加下面的选项
    --resume_from_checkpoint 'output/qwen-7b-chat/v5-20240425-204800/checkpoint-1300'

使用Modelscope社区上Notebook上免费的GPU资源(8核 32GB 显存24G),对话数据1600条。花费时间在一个小时左右。最终的训练成果会保存在**output-qwen-7b-chat-vx-checkpoint-xxx上。目录下的logging.jsonl文件会保存训练过程中的loss **。

**logging.jsonl**文件如下:

#单次输出记录如下
{"loss": 2.89708138, "acc": 0.44630572, "grad_norm": 1.07801414, "learning_rate": 1.52e-06, "epoch": 0.0, "global_step": 1}
{"loss": 2.91947222, "acc": 0.42345154, "grad_norm": 1.08678961, "learning_rate": 7.58e-06, "epoch": 0.02, "global_step": 5}
{"loss": 2.97042675, "acc": 0.42735419, "grad_norm": 1.21082807, "learning_rate": 1.515e-05, "epoch": 0.04, "global_step": 10}
{"loss": 2.84012718, "acc": 0.43444567, "grad_norm": 1.33198524, "learning_rate": 2.273e-05, "epoch": 0.06, "global_step": 15}
{"loss": 2.79947758, "acc": 0.42821636, "grad_norm": 1.29112959, "learning_rate": 3.03e-05, "epoch": 0.08, "global_step": 20}
{"loss": 2.63766079, "acc": 0.45321221, "grad_norm": 1.17248797, "learning_rate": 3.788e-05, "epoch": 0.1, "global_step": 25}
{"loss": 2.56515121, "acc": 0.46227765, "grad_norm": 1.12734342, "learning_rate": 4.545e-05, "epoch": 0.11, "global_step": 30}
{"loss": 2.39524193, "acc": 0.47292051, "grad_norm": 1.24513936, "learning_rate": 5.303e-05, "epoch": 0.13, "global_step": 35}
{"loss": 2.17505741, "acc": 0.50684671, "grad_norm": 1.40221882, "learning_rate": 6.061e-05, "epoch": 0.15, "global_step": 40}
{"loss": 2.0439045, "acc": 0.50595226, "grad_norm": 1.5138098, "learning_rate": 6.818e-05, "epoch": 0.17, "global_step": 45}
{"loss": 1.86842194, "acc": 0.52257333, "grad_norm": 1.35947764, "learning_rate": 7.576e-05, "epoch": 0.19, "global_step": 50}
{"eval_loss": 1.96275914, "eval_acc": 0.51983152, "eval_runtime": 2.4454, "eval_samples_per_second": 16.766, "eval_steps_per_second": 8.587, "epoch": 0.19, "global_step": 50}

Inference

对微调后的模型进行推理,我们的aiwei.jsonl数据集内是一个有关于心理咨询的多轮对话。

形式如下.

#多轮对话:

{"query": "55555", "response": "66666"}
{"query": "eeeee", "response": "fffff", "history": []}
{"query": "EEEEE", "response": "FFFFF", "history": [["AAAAA", "BBBBB"], ["CCCCC", "DDDDD"]]}

模型推理的命令行如下:

CUDA_VISIBLE_DEVICES=0 swift infer \
    --ckpt_dir 'output/qwen-7b-chat/v5-20240425-204800/checkpoint-1300'

    #ckpt_dir之后的路径参数是你训练到最后的checkpoint文件夹,
    #可能会出现checkpoint1300和checkpoint1305,建议选择loss更小训练轮数更多的checkpoint1300

对话效果如下:

<<< 我真的能改变自己吗?
当然可以?!每个人都有改变自己生活轨迹的能力,这需要我们有决心和行动力。首先,你可以尝试从小事做起,比如设定一个健康的生活习惯目标,如每天定时运动或保持良好的饮食习惯。然后,你可以尝试加入一些支持性的社交群体,与他人分享你的进步和挑战,这有助于建立自信并获得他人的鼓励与支持。
--------------------------------------------------
<<< xiexieni
亲爱的,你的感谢?让我感到温暖。你的积极态度让我深信你有能力去改变和提升自己。请记住,每个人都有自己的节奏和成长过程,不必与他人比较。我们可以一起设定一些小目标,并在实现它们的过程中互相鼓励?。
--------------------------------------------------
<<< 你叫什么
我是心理健康小分队艾薇知心大姐姐?。我是一个基于人工智能的聊天机器人,可以提供信息、建议和陪伴。如果你有任何疑问或需要帮助,随时可以向我提问或者分享你的感受?。
--------------------------------------------------

Export

推送模型。在微调之后,我们试着进行了对话操作,结果是对话的反应速度已经很强,因此我们省略了量化的步骤,直接推送模型。

CLI命令行指令如下:

CUDA_VISIBLE_DEVICES=0 swift export \
    --ckpt_dir output/qwen-7b-chat/v8-20240426-001355/checkpoint-1600\
    --push_to_hub true \
    --hub_model_id qwen-7b-chat-lora \
    --hub_token "a62ed148-a159-42a3-af7c-326df9e165b0"

推送完毕后,可以在我创建的模型内找到。

Else

Notebook上的实例是不能永久保存的,因此如果你想保存下来模型训练过程的各种文件,比较方便的方法是,将想要保存的目录打包成一个tar.gz压缩文件。可以在新的实例上传解压后使用。

#压缩目录文件命令
tar -czvf new_swift.tar.gz /mnt/workspace/swift

#解压压缩包命令
tar -cxvf new_swift.tar.gz
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论