tags:

  • transformers
  • safetensors
  • english
  • text-generation-inference
  • unsloth
  • qwen3
  • trl license: apache-2.0

睡眠魔法师-殷利鑫

ylx-qwen3-14b

模型描述 (Model Description)

这是 Qwen3-14B 大型语言模型的一个微调版本,经过专门训练,增强了其对话推理能力。该模型使用 Unsloth 库进行了高效微调,Unsloth 利用了 4 比特量化和 LoRA 等技术,以实现更快的训练速度和更低的内存占用。

本次微调的目标是创建一个既能进行自然对话,又能像人类思维过程(<think>)一样在解决问题时展示一步步推理过程的模型。

训练详情 (Training Details)

基础模型 Qwen3-14B 使用 LoRA (Low-Rank Adaptation) 方法进行了微调。LoRA 是一种参数高效的微调技术,它只更新模型参数的一小部分,与完整模型微调相比,训练过程显著更快,计算成本也更低。

微调是使用 Unsloth 库结合 Hugging Face 的 TRL (Transformer Reinforcement Learning) 库(具体使用了 SFTTrainer)进行的。

训练数据包含两个数据集的混合:

  1. unsloth/OpenMathReasoning-mini (cot 分割): 这个数据集包含数学问题和详细的思维链 (Chain-of-Thought, CoT) 推理过程。使用这些数据进行训练有助于模型学习如何分解问题并解释其解决步骤。
  2. mlabonne/FineTome-100k: 一个包含大量 ShareGPT 格式的通用对话回合的大型数据集。这些数据用于提升模型进行自然多样对话的能力。

数据集经过混合以平衡推理和通用对话能力。在随附的 notebook 演示的特定训练运行中,数据混合比例约为25% 推理数据和 75% 对话数据

模型在加载和训练时使用了 Unsloth 的优化功能,以4 比特精度进行处理,这大大降低了显存需求。

注意:提供的训练 notebook 使用了少量训练步数(30 步)用于演示目的。为了获得最佳性能,建议使用更多步数或 epoch,并在更广泛的数据集混合上进行训练。

预期用途 (Intended Use)

该模型旨在用于需要具备对话能力和推理能力的 AI 应用。潜在用例包括:

  • 构建可以回答问题并提供解释的聊天机器人。
  • 开发可以帮助用户一步步解决问题的 AI 助手。
  • 用于演示解题过程的教育工具。

局限性和偏见 (Limitations and Bias)

与所有大型语言模型一样,该模型可能存在以下局限性:

  • 幻觉 (Hallucination): 生成不正确或无意义的信息。
  • 偏见 (Bias): 可能反映训练数据中存在的偏见。
  • 性能可能因任务的复杂度和领域而异。
  • 推理模式的有效性取决于用于训练的推理数据的质量和数量。

用户在部署模型时应自行进行评估并考虑这些局限性。

如何使用 (How to Use)

您可以使用 unsloth 库轻松加载和使用该模型。

from unsloth import FastLanguageModel
import torch

# 加载微调后的模型
model, tokenizer = FastLanguageModel.from_pretrained(
    model_name = "YLX1965/ylx-qwen3-14b", # 如果您的实际仓库 ID 不同,请替换此处
    max_seq_length = 2048,
    load_in_4bit = True, # 如果您保存为其他格式,请改为 False
)

# 推理示例(关闭思考模式)
messages = [
    {"role" : "user", "content" : "Solve (x + 2)^2 = 0."}
]
text = tokenizer.apply_chat_template(
    messages,
    tokenize = False,
    add_generation_prompt = True,
    enable_thinking = False, # 关闭思考模式
)

from transformers import TextStreamer
print("--- 关闭思考模式 ---")
_ = model.generate(
    **tokenizer(text, return_tensors = "pt").to("cuda"),
    max_new_tokens = 256,
    temperature = 0.7, top_p = 0.8, top_k = 20,
    streamer = TextStreamer(tokenizer, skip_prompt = True),
)

# 推理示例(开启思考模式)
messages = [
    {"role" : "user", "content" : "Solve (x + 2)^2 = 0."}
]
text = tokenizer.apply_chat_template(
    messages,
    tokenize = False,
    add_generation_prompt = True,
    enable_thinking = True, # 开启思考模式
)

print("\n--- 开启思考模式 ---")
_ = model.generate(
    **tokenizer(text, return_tensors = "pt").to("cuda"),
    max_new_tokens = 1024, # 增加以获得更长的输出!
    temperature = 0.6, top_p = 0.95, top_k = 20,
    streamer = TextStreamer(tokenizer, skip_prompt = True),
)
Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support