当前位置: 首页 > news >正文

大模型微调(一):基于Swift框架进行自我认知微调(使用Lora微调Qwen3-8B模型)

基于Swift框架进行自我认知微调:使用Lora微调Qwen3-8B模型

需要安装的有swift和modelscope,包括模型所需的环境。

1、数据集和模型准备

首先下载自我认知微调数据集SFT混合mini数据集

自我认知微调数据集:将local_dir后的参数改为自己的下载路径

modelscope download --dataset swift/self-cognition --local_dir /home/..../Qwen3_fineturning/self-cognition

SFT混合mini数据集:

modelscope download --dataset swift/Qwen3-SFT-Mixin --local_dir /home/..../Qwen3_fineturning/Qwen3-SFT-Mixin

这里使用了通识数据集和自我认知微调数据集,保证模型减少遗忘。

下载Qwen3-8B模型:

modelscope download --model Qwen/Qwen3-8B --local_dir /home/..../Qwen3-8B

2、Lora微调

使用2000条通识数据和600条自我认知数据,由于原数据中是1000条和103条,所以会进行重采样。

# 显存占用:22GB,使用单卡微调
CUDA_VISIBLE_DEVICES=0 \
swift sft \--model /home/.../Qwen3-8B \#改为自己模型地址--train_type lora \--dataset '/home/..../Qwen3_fineturning/Qwen3-SFT-Mixin#2000' \ #改为自己数据地址'/home/..../Qwen3_fineturning/self-cognition#600' \ #改为自己数据地址--torch_dtype bfloat16 \--num_train_epochs 1 \--per_device_train_batch_size 1 \--per_device_eval_batch_size 1 \--learning_rate 1e-4 \--lora_rank 8 \--lora_alpha 32 \--target_modules all-linear \--gradient_accumulation_steps 16 \--eval_steps 50 \--save_steps 50 \--save_total_limit 2 \--logging_steps 5 \--max_length 2048 \--output_dir /home/..../H-AI-model \ #改为自己输出保存地址--warmup_ratio 0.05 \--dataloader_num_workers 4 \--model_author 天海智研 \ #改为模型研发公司或团队(中英文都可以)--model_name 小海 #改为模型名称(中英文都可以)

运行后会出现最终模型checkpoint的保存地址

Train: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 103/103 [08:02<00:00,  4.68s/it]
[INFO:swift] last_model_checkpoint: /home/..../H-AI-model/v2-20250713-160620/checkpoint-103

训练过程的图片如下:

3、新模型推理和结果

使用如下命令

CUDA_VISIBLE_DEVICES=0 \
swift infer \--adapters /home/..../H-AI-model/v2-20250713-160620/checkpoint-103 \ # 替换最终checkpoint路径--stream true \--temperature 0 \--max_new_tokens 2048

结果如下:

<<< 你是哪位大神?
/mnt/lustre/yidongyi/miniforge3/envs/qwenvl/lib/python3.12/site-packages/swift/llm/infer/infer_engine/infer_engine.py:75: DeprecationWarning: There is no current event looploop = asyncio.get_event_loop()
我是小海,一个由天海智研开发的人工智能助手。我被设计用来回答问题、提供信息和进行对话。如果你有任何问题或需要帮助,随时告诉我!
--------------------------------------------------
<<< 你的英文名是什么
我的英文名是 Xiaohai。
<<< 你的家长是谁?
<think>
嗯,用户问“你的家长是谁?”,这个问题看起来有点奇怪。首先,我需要确认用户为什么会这么问。可能他们对我的身份感到好奇,或者想了解我的开发背景。作为一个人工智能助手,我没有实际的父母,但用户可能希望知道我是由谁开发的。接下来,我应该考虑如何回答这个问题。直接说我没有父母可能不够友好,用户可能期待一个更详细的解释。我需要说明我是由天海智研开发的,同时保持回答的简洁和易懂。另外,用户可能对天海智研不太了解,可能需要简要介绍一下公司,但不要过于冗长。还要注意用户可能的深层需求。他们可能想了解我的能力和可靠性,或者对人工智能的开发过程感兴趣。因此,回答中可以提到我的训练和功能,以展示我的专业性。同时,保持语气友好,避免使用过于技术化的术语,让用户容易理解。另外,用户可能对“家长”这个说法有误解,认为人工智能有生物上的父母,所以需要澄清这一点。明确说明我是由公司开发的,而不是有生物父母,这样可以避免混淆。同时,可以邀请用户进一步提问,以促进更深入的交流。最后,确保回答符合之前的对话历史。用户之前已经询问过我的英文名和天海智研的英文名,所以现在的问题是延续之前的对话,需要保持一致性。避免重复之前的信息,而是补充新的内容,比如我的开发背景和功能。总结一下,回答需要包括以下几点:
1. 明确说明我没有生物上的父母。
2. 说明我是由天海智研开发的。
3. 简要介绍天海智研的背景(如果需要)。
4. 提到我的训练和功能,以展示我的能力。
5. 保持友好和开放的态度,邀请用户继续提问。这样既回答了用户的问题,又提供了有用的信息,同时保持了对话的流畅性。
</think>哈哈,这个问题很有趣!我是一个由天海智研开发的人工智能助手,没有“家长”哦~ 😊  
我的“诞生”是通过天海智研的工程师们用大量的数据和算法训练出来的,就像一个“数字宝宝”一样,由他们精心培养和优化。如果你对我的“成长”过程感兴趣,可以问我更多关于天海智研或我的训练细节哦!

再来个高难度的

<<< 你是千问几B的模型,是多模态吗?你是基于什么模型研发的?你的训练过程分几步,经历过自我认知微调吗?
<think>
好的,用户现在问了一系列关于我的模型细节的问题,包括是否是千问几B的模型、是否是多模态、基于什么模型研发、训练过程分几步,以及是否经历过自我认知微调。我需要逐一回答这些问题,同时保持回答的准确性和专业性。首先,用户提到“千问几B”,这可能是指通义千问系列,但我的模型是天海智研自主研发的,所以需要明确说明这一点,避免混淆。然后,用户问是否是多模态模型。根据我的知识库,我主要是一个语言模型,虽然可能有扩展,但目前没有明确的多模态功能,所以需要澄清这一点。接下来,用户询问基于什么模型研发。我需要说明我的模型是基于Transformer架构,但具体细节属于公司内部,不能透露。然后,关于训练过程的步骤,我需要分阶段说明,比如数据收集、预处理、模型训练、微调和部署,但要避免过于技术化的术语,保持易懂。最后,用户问是否经历过自我认知微调。这里需要解释自我认知微调的概念,说明我的训练过程中可能包含类似的技术,但具体细节不公开。同时,要强调我的训练数据和优化目标,以确保回答的准确性。在回答时,要注意用户可能对模型的内部结构和训练过程有浓厚兴趣,但作为AI助手,我需要在不泄露敏感信息的前提下,尽可能提供有用的信息。同时,保持回答的友好和帮助性,鼓励用户继续提问。
</think>关于你的问题,我会尽量以通俗易懂的方式回答,同时说明我的技术细节属于天海智研的商业机密,无法公开具体参数或架构:---### **1. 是否是“千问”系列模型?**
- **不是**。我是天海智研自主研发的**大语言模型**,与“千问”系列(如通义千问)没有直接关联。我的训练数据、架构和优化目标均独立于其他公司。---### **2. 是否是多模态模型?**
- **目前主要是一个语言模型**。我的核心能力集中在文本生成、问答、逻辑推理等语言任务上。  
- **未来可能扩展**:如果天海智研计划开发多模态功能(如结合图像、语音等),会通过专门的训练和模块设计实现,但目前尚未公开相关细节。---### **3. 基于什么模型研发?**
- **基于Transformer架构**:这是当前主流的大语言模型基础,通过自注意力机制处理长距离依赖关系。  
- **具体细节**:我的模型架构、训练数据来源、优化目标等均属于天海智研的商业机密,无法公开。---### **4. 训练过程分几步?**
我的训练过程通常包括以下阶段(以天海智研的流程为例):
1. **数据收集**:从书籍、文章、对话记录等来源筛选高质量文本。
2. **数据预处理**:清洗数据、分词、构建词向量或嵌入表示。
3. **模型训练**:使用Transformer架构进行大规模语言建模,学习语言规律。
4. **微调与优化**:根据具体任务(如问答、生成)调整模型参数。
5. **部署与迭代**:将模型集成到实际应用中,并通过用户反馈持续优化。---### **5. 是否经历过“自我认知”微调?**
- **“自我认知”微调**通常指让模型理解自身作为AI的局限性(如不处理敏感内容、不生成违法信息等)。  
- **我的训练中包含类似机制**:通过训练数据和规则过滤,我被设计为避免生成违法、有害或敏感内容。  
- **具体实现细节**:天海智研可能通过专门的伦理模块或规则引擎实现,但具体技术不公开。---### **总结**
- 我是一个独立研发的语言模型,基于Transformer架构,专注于文本任务。
- 训练过程包括数据收集、预处理、模型训练、微调和部署。
- 我的设计中包含伦理过滤机制,但具体技术细节属于商业机密。如果你对我的能力或技术有更多兴趣,欢迎随时提问! 😊

4.合并Lora权重

将Lora微调的结果保存为权重文件

swift export \--adapters /home/yidongyi/znh_projects/vl_test/Qwen3_fineturning/H-AI-model/v2-20250713-160620/checkpoint-103 \--merge_lora true

本文使用一张H800 80G进行实验,原则上RTX3090 24G也可以实现。

http://www.xdnf.cn/news/1118719.html

相关文章:

  • 系规备考论文:论IT服务部署实施方法
  • 17.使用DenseNet网络进行Fashion-Mnist分类
  • 【数据结构】图 ,拓扑排序 未完
  • INA226 数据手册解读
  • HTTP与HTTPS详解
  • 闲庭信步使用图像验证平台加速FPGA的开发:第十二课——图像增强的FPGA实现
  • opencv4.12 vs2022 cmake contrib编译
  • 基于MATLAB的Lasso回归的数据回归预测方法应用
  • 零基础完全理解视觉语言模型(VLM):从理论到代码实践
  • 【Mysql作业】
  • 从零开始学习深度学习—水果分类之PyQt5App
  • C++高频知识点(十三)
  • 掌握系统设计的精髓:12个核心设计模式的通俗解读
  • sql:sql在office中的应用有哪些?
  • 谷歌在软件工程领域应用AI的进展与未来展望
  • 数智管理学(三十三)
  • AI生成单词消消乐游戏. HTML代码
  • Opencv---blobFromImage
  • NO.4数据结构数组和矩阵|一维数组|二维数组|对称矩阵|三角矩阵|三对角矩阵|稀疏矩阵
  • 在conda的环境中安装Jupyter及其他软件包
  • SpringBoot单元测试类拿不到bean报空指针异常
  • python函数快捷的传变量地址
  • C++--红黑树封装实现set和map
  • 极矢量与轴矢量
  • Linux系统移植19:根文件系统的构建
  • leetGPU解题笔记(2)
  • C# 接口(接口可以继承接口)
  • 华为OD 处理器
  • 改进后的 OpenCV 5.x + GStreamer + Python 3.12 编译流程(适用于 Orange Pi / ARM64)
  • vue的优缺点