--- license: Apache License 2.0 language: - zh tasks: - text-generation frameworks: PyTorch base_model: - Qwen/Qwen2.5-0.5B-Instruct base_model_relation: finetune widgets: - version: 1 task: text-generation inputs: - type: text displayType: TextArea validator: max_words: 128 output: displayType: Text displayValueMapping: text examples: - name: 1 title: 示例1 inputs: - name: text data: 光的速度是多少? datasets: - wuyonghui0810/General-Knowledge tags: - 文本生成 - 科技探索 - ' 永辉' --- # Qwen2.5-0.5B-Instruct 微调模型 ## 模型概述 这是一个基于 Qwen2.5-0.5B-Instruct 模型的微调版本,使用 LoRA (低秩适应) 训练方法在特定领域数据上进行了定制化训练,涵盖数学、英语、科学、化学、物理等1000条自定义数据进行训练,以增强模型在特定任务上的性能。 ## 模型详情 - **基础模型**: Qwen/Qwen2.5-0.5B-Instruct - **模型类型**: qwen2_5 - **训练方法**: LoRA 微调 - **模板**: qwen2_5 - **模型大小**: 0.5B 参数 - **检查点**: checkpoint-186-merged - **训练日期**: 2025-08-05 ## 训练配置 - **最大序列长度**: 1024 个 token - **学习率**: 1e-4 - **梯度累积步数**: 16 - **训练轮数**: 3 - **最终训练损失**: 0.0802 - **最终评估损失**: 0.00013508 ## 调用方法 ### 快速开始 这里提供了一个使用 wuyonghui0810/text-generation模型的代码片段,展示了如何加载分词器和模型以及如何生成内容。 ```python from modelscope import AutoModelForCausalLM, AutoTokenizer model_name = "wuyonghui0810/text-generation" model = AutoModelForCausalLM.from_pretrained( model_name, torch_dtype="auto", device_map="auto" ) tokenizer = AutoTokenizer.from_pretrained(model_name) prompt = "光的速度是多少?" messages = [ {"role": "system", "content": "You are Vkey, created by yonghui, You are a helpful assistant."}, {"role": "user", "content": prompt} ] text = tokenizer.apply_chat_template( messages, tokenize=False, add_generation_prompt=True ) model_inputs = tokenizer([text], return_tensors="pt").to(model.device) generated_ids = model.generate( **model_inputs, max_new_tokens=512 ) generated_ids = [ output_ids[len(input_ids):] for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids) ] response = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0] print(response) ``` ### 训练前 光的传播速度是多少: - 在标准条件下,光的传播速度约为 299792458 米/秒。这个速度是恒定不变的,无论光源的位置、距离多远,都保持不变。这与物理定律和实验数据一致,证明了光速是宇宙中的基本物理常数。 ### 训练后 - <<< 光的传播速度是多少 - - 用户问的是关于物理的问题:'光的传播速度是多少'。我需要根据物理学原理给出准确的答案。对于这个问题,正确的回答是:光在真空中的传播速度约为299,792,458米/秒。。 - - - 光在真空中的传播速度约为299,792,458米/秒。 - - <<< 光的速度 - - 用户问的是关于物理的问题:'光的速度'。我需要根据物理学原理给出准确的答案。对于这个问题,正确的回答是:光在真空中的速度约为299,792,458米/秒。。 - - - 光在真空中的速度约为299,792,458米/秒。 - ## 微调方法 ### 使用 Swift 进行训练认知微调 ```bash CUDA_VISIBLE_DEVICES=0 \ swift sft \ --torch_dtype 'float16' \ --model 'Qwen/Qwen2.5-0.5B-Instruct' \ --model_type 'qwen2_5' \ --template 'qwen2_5' \ --system 'You are Vkey, created by yonghui. You are a helpful assistant.' \ --dataset '/mnt/workspace/myipynb/transformers/datasets/training_data.jsonl' \ --max_length '1024' \ --init_weights 'True' \ --learning_rate '1e-4' \ --gradient_accumulation_steps '16' \ --eval_steps '500' \ --truncation_strategy 'delete' \ --report_to 'tensorboard' \ --add_version False \ --output_dir /mnt/workspace/myipynb/transformers/ms-swift/output/Qwen2.5-0.5B-Instruct/v0-20250805-170718 \ --logging_dir /mnt/workspace/myipynb/transformers/ms-swift/output/Qwen2.5-0.5B-Instruct/v0-20250805-170718/runs \ --ignore_args_error True \ --device_map 'cpu' \ > /mnt/workspace/myipynb/transformers/ms-swift/output/Qwen2.5-0.5B-Instruct/v0-20250805-170718/runs/run.log 2>&1 & ``` ### 使用 swift 框架进行推理 ```bash CUDA_VISIBLE_DEVICES=0 \ swift infer \ --model /mnt/workspace/myipynb/transformers/ms-swift/output/Qwen2.5-0.5B-Instruct/v0-20250805-170718/checkpoint-186-merged \ --merge_lora true \ --infer_backend vllm \ --temperature 0 \ --max_new_tokens 2048 ``` ### 使用 swift 框架进行导出 --adapters 参数:用于导出适配器权重(如 LoRA),需要配合基础模型使用 --model 参数:用于导出完整模型,可以直接使用 由于 checkpoint-186-merged 是一个完整的合并模型(包含基础模型和适配器权重),所以应该使用 --model 参数。 方案一(使用的这个): ```bash CUDA_VISIBLE_DEVICES=0 swift export \ --model /mnt/workspace/myipynb/transformers/ms-swift/output/Qwen2.5-0.5B-Instruct/v0-20250805-170718/checkpoint-186-merged \ --push_to_hub true \ --hub_model_id 'wuyonghui0810/text-generation' \ --hub_token 'ms-c9f5013e-8343-4d26-a53b-4d5a75f8a973' \ --use_hf false ``` 方案二: ```bash CUDA_VISIBLE_DEVICES=0 swift export \ --adapters /mnt/workspace/myipynb/transformers/ms-swift/output/Qwen2.5-0.5B-Instruct/v0-20250805-170718/checkpoint-186 \ --push_to_hub true \ --hub_model_id 'wuyonghui0810/text-generation' \ --hub_token 'ms-c9f5013e-8343-4d26-a53b-4d5a75f8a973' \ --use_hf false ``` ### 关键推理参数 - `--model`: 用于导出完整模型,可以直接使用(或者--adapters:训练好的适配器/LoRA 权重路径) - `--merge_lora true`: 将 LoRA 权重与基础模型合并 - `--infer_backend vllm`: 使用 vLLM 进行推理加速 - `--temperature 0`: 确定性输出(贪婪解码) - `--max_new_tokens 2048`: 最大生成 token 数量 ## 性能表现 - **评估样本每秒处理数**: 18.64 - **训练样本每秒处理数**: 5.045 - **内存使用**: 模型权重约 0.9276 GB - **推理速度**: 使用 vLLM 和 CUDA 图形优化 ## 系统要求 - **GPU**: 支持 CUDA 的 GPU(推荐) - **显存**: 至少 4-8GB 以获得最佳性能 - **软件环境**: - Python 3.11+ - Swift 框架 - vLLM 库 - CUDA 工具包 ## 模型能力 此微调模型设计用于: - 回答特定领域问题 - 准确遵循指令 - 提供一致且确定性的响应(temperature=0时) - 处理长上下文输入(最多8192个token) ## 局限性 - 当 temperature=0 时响应是确定性的 - 性能取决于微调数据的质量 - 在训练领域外可能泛化能力有限 *如需技术支持或有关此模型的问题,请参考模型目录中包含的训练日志和配置文件。*