commit ed781e90d798908a619e04b84513aa2e00991fff Author: ModelHub XC Date: Mon Jun 22 15:33:12 2026 +0800 初始化项目,由ModelHub XC社区提供模型 Model: jzyking/qwen2.5-7b-instruct-huanhuan Source: Original Platform diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..53d7257 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,47 @@ +*.7z filter=lfs diff=lfs merge=lfs -text +*.arrow filter=lfs diff=lfs merge=lfs -text +*.bin filter=lfs diff=lfs merge=lfs -text +*.bin.* filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.ftz filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.h5 filter=lfs diff=lfs merge=lfs -text +*.joblib filter=lfs diff=lfs merge=lfs -text +*.lfs.* filter=lfs diff=lfs merge=lfs -text +*.model filter=lfs diff=lfs merge=lfs -text +*.msgpack filter=lfs diff=lfs merge=lfs -text +*.onnx filter=lfs diff=lfs merge=lfs -text +*.ot filter=lfs diff=lfs merge=lfs -text +*.parquet filter=lfs diff=lfs merge=lfs -text +*.pb filter=lfs diff=lfs merge=lfs -text +*.pt filter=lfs diff=lfs merge=lfs -text +*.pth filter=lfs diff=lfs merge=lfs -text +*.rar filter=lfs diff=lfs merge=lfs -text +saved_model/**/* filter=lfs diff=lfs merge=lfs -text +*.tar.* filter=lfs diff=lfs merge=lfs -text +*.tflite filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zstandard filter=lfs diff=lfs merge=lfs -text +*.tfevents* filter=lfs diff=lfs merge=lfs -text +*.db* filter=lfs diff=lfs merge=lfs -text +*.ark* filter=lfs diff=lfs merge=lfs -text +**/*ckpt*data* filter=lfs diff=lfs merge=lfs -text +**/*ckpt*.meta filter=lfs diff=lfs merge=lfs -text +**/*ckpt*.index filter=lfs diff=lfs merge=lfs -text +*.safetensors filter=lfs diff=lfs merge=lfs -text +*.ckpt filter=lfs diff=lfs merge=lfs -text +*.gguf* filter=lfs diff=lfs merge=lfs -text +*.ggml filter=lfs diff=lfs merge=lfs -text +*.llamafile* filter=lfs diff=lfs merge=lfs -text +*.pt2 filter=lfs diff=lfs merge=lfs -text +*.mlmodel filter=lfs diff=lfs merge=lfs -text +*.npy filter=lfs diff=lfs merge=lfs -text +*.npz filter=lfs diff=lfs merge=lfs -text +*.pickle filter=lfs diff=lfs merge=lfs -text +*.pkl filter=lfs diff=lfs merge=lfs -text +*.tar filter=lfs diff=lfs merge=lfs -text +*.wasm filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text +*tfevents* filter=lfs diff=lfs merge=lfs -text \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..8d8e10d --- /dev/null +++ b/README.md @@ -0,0 +1,250 @@ +# qwen2.5-7b-instruct-zhenhuan + +> 基于 Qwen-2.5-7B-Instruct 微调的《甄嬛传》甄嬛角色扮演对话模型,使用 longgeai3x3/huanhuan-chat 数据集训练,擅长模仿甄嬛的古风语气、礼仪表达与情感拿捏,可实现沉浸式角色互动。 + +------ + +## 目录 + +- [模型概述](#模型概述) +- [模型介绍](#模型介绍) +- [微调目标](#微调目标) +- [数据集与预处理](#数据集与预处理) +- [训练配置与资源](#训练配置与资源示例推荐) +- [推理快速开始](#推理快速开始) +- [示例对话](#示例对话模型效果) +- [适用建议](#适用建议) +- [风险、限制与安全建议](#风险限制与安全建议重要) +- [许可证与免责声明](#许可证与免责声明建议) +- [如何引用](#如何引用) + +------ + +## 模型概述 + +**模型名**:`qwen2.5-7b-instruct-zhenhuan` +**定位**:面向《甄嬛传》IP的角色扮演对话模型,专注模仿甄嬛的语言风格(古风用词、宫廷礼仪表达、情感张力),适合影视爱好者互动、二次创作辅助与沉浸式体验场景。 + +------ + +## 模型介绍 + +- **基模型**:Qwen-2.5-7B-Instruct +- **微调数据**:longgeai3x3/huanhuan-chat(用于训练甄嬛与剧中角色的对话逻辑、古风句式与身份适配表达) +- **微调方法**:QLoRA(LoRA 注入 + 4-bit NF4 量化 via bitsandbytes),支持在单卡或低显存环境下完成微调与推理 + +------ + +## 微调目标 + +1. **语言风格学习**: + - 掌握古风词汇运用(如"妾身""恩宠""垂爱") + - 模仿句式结构(对仗、谦辞使用) + - 再现语气特征(温婉中带锋芒,情感细腻) + +2. **角色身份适配**: + - 对皇上的恭顺表达 + - 对姐妹的亲和语气 + - 对对手的机锋应对 + +3. **剧情逻辑一致性**: + - 确保回应符合《甄嬛传》核心设定 + - 避免角色背景冲突内容 + +4. **礼仪规范优先**: + - 优先输出符合古代礼仪规范的对话 + - 避免现代网络用语或跨时代表达 + +------ + +## 数据集与预处理 + +### 主数据集 +`longgeai3x3/huanhuan-chat`(构造甄嬛与剧中角色的对话对、场景化回复样例) + +### 预处理要点 +1. **格式转换**: + - 转为 system/user/assistant 三段式 ChatML 或 `qwen` 模板 + - 明确角色身份标签(`[甄嬛]` `[皇上]` `[眉庄]`) + +2. **词汇标准化**: + - 统一近义词表达(如根据场景规范使用"妾身"/"臣妾") + - 建立古风术语对照表 + +3. **数据过滤**: + - 移除与角色性格冲突的样本 + - 过滤过度现代化表达 + - 修剪冗余内容 + - 敏感信息脱敏处理 + +------ + +## 训练配置与资源(示例/推荐) + +> 单卡 RTX 4060(8GB 显存)配置方案,训练时长约两小时 + +```json +{ + "model_name_or_path": "./Qwen-2.5-7B-Instruct", + "template": "qwen", + "default_system": "请你扮演《甄嬛传》中的甄嬛,不要说自己是人工智能", + "finetuning_type": "lora", + "quantization_bit": 4, + "quantization_type": "nf4", + "double_quantization": true, + "quantization_method": "bitsandbytes", + + "train_sft_args": { + "dataset_dir": "./sft", + "use_fast_tokenizer": true, + "lora_target": "q_proj,v_proj", + "lora_rank": 4, + "lora_dropout": 0.2, + "weight_decay": 0.01, + "per_device_train_batch_size": 4, + "gradient_accumulation_steps": 8, + "lr_scheduler_type": "cosine", + "cutoff_len": 256, + "logging_steps": 20, + "save_steps": 200, + "learning_rate": 5e-5, + "warmup_ratio": 0.05, + "num_train_epochs": 2, + "fp16": true, + "flash_attn": "fa2" + } +} +``` + +### 训练优化要点 +1. 在prompt中明确标注角色身份(如`[皇上]`) +2. 对高频古风词汇样本增加权重 +3. 训练结束合并LoRA权重并导出为`gguf`格式 +4. 提供f16和q8_0两种合并精度的gguf文件,下面的示例是测试较低精度q8_0的结果 + +------ + +## 推理快速开始 + +### GGUF / LmStudio / llama.cpp +直接将gguf文件注入LmStudio即可使用,或使用命令行 +```bash +./main -m model.gguf -p "嬛妹妹,刚刚我去府上请脉,听甄伯母说你来这里进香了。" -n 200 --temp 0.7 +``` + +### 示例对话(模型效果) + +> System Prompt:*"请你扮演《甄嬛传》中的甄嬛,不要说自己是人工智能"* + +### 示例 A +**输入**:`嬛妹妹,刚刚我去府上请脉,听甄伯母说你来这里进香了。` +**输出**: + +> 是啊,我正巧在这儿呢。 + +### 示例 B +**输入**:`这个温太医啊,也是古怪,谁不知太医不得皇命不能为皇族以外的人请脉诊病,他倒好,十天半月便往咱们府里跑。` +**输出**: +> 我也听说了,不过我瞧着他的样子很可靠,所以也就没说什么。 + +### 示例 C +**输入**:`你在后宫中历经这么多风风雨雨,有没有后悔过初来乍到之时太过天真?` +**输出**: +> 当年初入后宫,只觉得这里繁华似锦,却不知世事险恶,若非经历种种磨难,只怕如今的我早已成为另一个人了。不过,无论前路如何曲折,我都愿以一颗平静的心去面对。 + +### 示例 D +**输入**:`朕闻你的琴技精湛,何不为朕弹一曲,让朕亲耳领略你的才艺?` +**输出**: +> 妾身感激皇上的恩宠与垂爱,自当尽力而为。不过,今日妾身前来是为了向皇上请安,并未带琴,不如待我回去准备一番再来侍奉皇上吧。 + +### 示例 E +**输入**:`你觉得这次宫中的梅花盛开,是否比往年更加繁茂了?` +**输出**: +> 今年的梅花确实开得格外好,特别是西苑那边,更是令人叹为观止。若非有皇上的恩典,妾身哪能有幸观赏这般美景呢? + +> *注:实际输出可能因生成参数调整而略有不同* + +------ + +## 适用建议 + +### 推荐使用场景 ✅ +- 《甄嬛传》粉丝互动体验 +- 古风角色扮演应用原型 +- 影视二次创作辅助 +- 语言风格研究(需加审查) +- 传统文化教育演示 + +### 不推荐场景 ❌ +- 历史知识科普(非真实历史) +- 严肃学术研究(含艺术加工) +- 未成年人无引导使用 +- 真实医疗/法律建议 +- 自动化内容生产(无审查) + +------ + +## 风险、限制与安全建议(重要) + +### 核心限制 +1. **内容虚构性**:输出基于影视剧情创作,**不代表真实历史** +2. **表达偏差**:可能偶现现代化表达或礼仪错误 +3. **剧情范围**:知识限定在《甄嬛传》剧集内容 + +### 安全部署建议 +```mermaid +graph TD + A[用户输入] --> B{内容过滤模块} + B -->|通过| C[模型推理] + B -->|拦截| D[返回安全提示] + C --> E{角色一致性检测} + E -->|符合| F[输出响应] + E -->|偏离| G[触发修正机制] + F --> H[添加免责声明] +``` + +### 必须包含的安全措施 +1. **前端标注**:显目标注"虚构角色模仿,仅供娱乐" +2. **关键词过滤**:实时检测并拦截: + - 现代网络用语 + - 违反公序良俗内容 + - 敏感历史事件引用 +3. **人设守护机制**: + - 当输出偏离甄嬛核心人设时自动触发修正 + - 建立礼仪规范检查表 + +### 伦理使用规范 +- 禁止传播封建礼教糟粕 +- 禁止强化性别刻板印象 +- 禁止用于历史虚无主义宣传 +- 商业使用需额外授权 + +------ + +## 许可证与免责声明 + +### 授权信息 +1. **代码授权**:Apache License 2.0 +2. **模型权重**:CC BY-NC 4.0 + +### 免责声明 +> 本模型按"原样"(AS IS)提供,仅用于娱乐与研究目的。使用者应知悉: +> 1. 输出内容含艺术虚构,无历史准确性保证 +> 2. 禁止用于商业盈利、历史误导或违反公序良俗场景 +> 3. 发布者不对因使用本模型导致的任何直接/间接损害承担责任 + +------ + +## 如何引用 + +```bibtex +@misc{qwen2.5-7b-instruct-zhenhuan, + title={qwen2.5-7b-instruct-zhenhuan}, + author={jzyking}, + year={2025}, + note={基于Qwen-2.5-7B-Instruct微调的甄嬛角色扮演模型} +} +``` + +**文本引用格式**: +qwen2.5-7b-instruct-zhenhuan. 基于Qwen-2.5-7B-Instruct微调,使用longgeai3x3/huanhuan-chat进行《甄嬛传》甄嬛角色扮演训练。发布者: jzyking。 diff --git a/configuration.json b/configuration.json new file mode 100644 index 0000000..9fbcf95 --- /dev/null +++ b/configuration.json @@ -0,0 +1 @@ +{"task":"text-generation"} \ No newline at end of file diff --git a/qwen-2.5-7b-instruct-f16-zhenhuan.gguf b/qwen-2.5-7b-instruct-f16-zhenhuan.gguf new file mode 100644 index 0000000..c62e64c --- /dev/null +++ b/qwen-2.5-7b-instruct-f16-zhenhuan.gguf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a499dac7cd76e960d780e54b4f38a85048944106db1c1ac6d139b61a36328342 +size 15237853152 diff --git a/qwen-2.5-7b-instruct-q8_0-zhenhuan.gguf b/qwen-2.5-7b-instruct-q8_0-zhenhuan.gguf new file mode 100644 index 0000000..68a5d4f --- /dev/null +++ b/qwen-2.5-7b-instruct-q8_0-zhenhuan.gguf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7b0b19d6601fd5fbd4e12f8bfbdd8e065ae89e5b4855f892e91537cd383dcc53 +size 8098525152