Instructions to use joyfox/JoyFox-Qwen3.6-35B-A3B-RP-Aggressive with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use joyfox/JoyFox-Qwen3.6-35B-A3B-RP-Aggressive with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("image-text-to-text", model="joyfox/JoyFox-Qwen3.6-35B-A3B-RP-Aggressive") messages = [ { "role": "user", "content": [ {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/p-blog/candy.JPG"}, {"type": "text", "text": "What animal is on the candy?"} ] }, ] pipe(text=messages)# Load model directly from transformers import AutoProcessor, AutoModelForMultimodalLM processor = AutoProcessor.from_pretrained("joyfox/JoyFox-Qwen3.6-35B-A3B-RP-Aggressive") model = AutoModelForMultimodalLM.from_pretrained("joyfox/JoyFox-Qwen3.6-35B-A3B-RP-Aggressive", device_map="auto") messages = [ { "role": "user", "content": [ {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/p-blog/candy.JPG"}, {"type": "text", "text": "What animal is on the candy?"} ] }, ] inputs = processor.apply_chat_template( messages, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt", ).to(model.device) outputs = model.generate(**inputs, max_new_tokens=40) print(processor.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- llama.cpp
How to use joyfox/JoyFox-Qwen3.6-35B-A3B-RP-Aggressive with llama.cpp:
Install (macOS, Linux)
curl -LsSf https://llama.app/install.sh | sh # Start a local OpenAI-compatible server with a web UI: llama serve -hf joyfox/JoyFox-Qwen3.6-35B-A3B-RP-Aggressive:Q4_K_M # Run inference directly in the terminal: llama cli -hf joyfox/JoyFox-Qwen3.6-35B-A3B-RP-Aggressive:Q4_K_M
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf joyfox/JoyFox-Qwen3.6-35B-A3B-RP-Aggressive:Q4_K_M # Run inference directly in the terminal: llama cli -hf joyfox/JoyFox-Qwen3.6-35B-A3B-RP-Aggressive:Q4_K_M
Use pre-built binary
# Download pre-built binary from: # https://github.com/ggerganov/llama.cpp/releases # Start a local OpenAI-compatible server with a web UI: ./llama-server -hf joyfox/JoyFox-Qwen3.6-35B-A3B-RP-Aggressive:Q4_K_M # Run inference directly in the terminal: ./llama-cli -hf joyfox/JoyFox-Qwen3.6-35B-A3B-RP-Aggressive:Q4_K_M
Build from source code
git clone https://github.com/ggerganov/llama.cpp.git cd llama.cpp cmake -B build cmake --build build -j --target llama-server llama-cli # Start a local OpenAI-compatible server with a web UI: ./build/bin/llama-server -hf joyfox/JoyFox-Qwen3.6-35B-A3B-RP-Aggressive:Q4_K_M # Run inference directly in the terminal: ./build/bin/llama-cli -hf joyfox/JoyFox-Qwen3.6-35B-A3B-RP-Aggressive:Q4_K_M
Use Docker
docker model run hf.co/joyfox/JoyFox-Qwen3.6-35B-A3B-RP-Aggressive:Q4_K_M
- LM Studio
- Jan
- vLLM
How to use joyfox/JoyFox-Qwen3.6-35B-A3B-RP-Aggressive with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "joyfox/JoyFox-Qwen3.6-35B-A3B-RP-Aggressive" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "joyfox/JoyFox-Qwen3.6-35B-A3B-RP-Aggressive", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }'Use Docker
docker model run hf.co/joyfox/JoyFox-Qwen3.6-35B-A3B-RP-Aggressive:Q4_K_M
- SGLang
How to use joyfox/JoyFox-Qwen3.6-35B-A3B-RP-Aggressive with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "joyfox/JoyFox-Qwen3.6-35B-A3B-RP-Aggressive" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "joyfox/JoyFox-Qwen3.6-35B-A3B-RP-Aggressive", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "joyfox/JoyFox-Qwen3.6-35B-A3B-RP-Aggressive" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "joyfox/JoyFox-Qwen3.6-35B-A3B-RP-Aggressive", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }' - Ollama
How to use joyfox/JoyFox-Qwen3.6-35B-A3B-RP-Aggressive with Ollama:
ollama run hf.co/joyfox/JoyFox-Qwen3.6-35B-A3B-RP-Aggressive:Q4_K_M
- Unsloth Desktop
- Pi
How to use joyfox/JoyFox-Qwen3.6-35B-A3B-RP-Aggressive with Pi:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf joyfox/JoyFox-Qwen3.6-35B-A3B-RP-Aggressive:Q4_K_M
Configure the model in Pi
# Install Pi: npm install -g @earendil-works/pi-coding-agent # Add to ~/.pi/agent/models.json: { "providers": { "llama-cpp": { "baseUrl": "http://localhost:8080/v1", "api": "openai-completions", "apiKey": "none", "models": [ { "id": "joyfox/JoyFox-Qwen3.6-35B-A3B-RP-Aggressive:Q4_K_M" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Docker Model Runner
How to use joyfox/JoyFox-Qwen3.6-35B-A3B-RP-Aggressive with Docker Model Runner:
docker model run hf.co/joyfox/JoyFox-Qwen3.6-35B-A3B-RP-Aggressive:Q4_K_M
- Lemonade
How to use joyfox/JoyFox-Qwen3.6-35B-A3B-RP-Aggressive with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull joyfox/JoyFox-Qwen3.6-35B-A3B-RP-Aggressive:Q4_K_M
Run and chat with the model
lemonade run user.JoyFox-Qwen3.6-35B-A3B-RP-Aggressive-Q4_K_M
List all available models
lemonade list
- Hermes Agent
How to use joyfox/JoyFox-Qwen3.6-35B-A3B-RP-Aggressive with Hermes Agent:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf joyfox/JoyFox-Qwen3.6-35B-A3B-RP-Aggressive:Q4_K_M
Configure Hermes
# Install Hermes: curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash hermes setup # Point Hermes at the local server: hermes config set model.provider custom hermes config set model.base_url http://127.0.0.1:8080/v1 hermes config set model.default joyfox/JoyFox-Qwen3.6-35B-A3B-RP-Aggressive:Q4_K_M
Run Hermes
hermes
- Atomic Chat
- OpenClaw
How to use joyfox/JoyFox-Qwen3.6-35B-A3B-RP-Aggressive with OpenClaw:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf joyfox/JoyFox-Qwen3.6-35B-A3B-RP-Aggressive:Q4_K_M
Configure OpenClaw
# Install OpenClaw: npm install -g openclaw@latest # Register the local server and set it as the default model: openclaw onboard --non-interactive --mode local \ --auth-choice custom-api-key \ --custom-base-url http://127.0.0.1:8080/v1 \ --custom-model-id "joyfox/JoyFox-Qwen3.6-35B-A3B-RP-Aggressive:Q4_K_M" \ --custom-provider-id llama-cpp \ --custom-compatibility openai \ --custom-text-input \ --accept-risk \ --skip-health
Run OpenClaw
openclaw agent --local --agent main --message "Hello from Hugging Face"
license: apache-2.0
base_model: Qwen/Qwen3.6-35B-A3B
library_name: transformers
pipeline_tag: image-text-to-text
tags:
- qwen3.6
- roleplay
- conversational
- mixture-of-experts
- multimodal
- gguf
- mtp
- abliterated
language:
- en
- zh
- multilingual
JoyFox-Qwen3.6-35B-A3B-RP-Aggressive
基于 Qwen3.6-35B-A3B 构建的角色扮演特化多模态混合专家模型。
English · 简体中文
JoyFox-Qwen3.6-35B-A3B-RP-Aggressive 面向持续角色塑造、直接指令遵循、连贯场景续写、低角色跳出率和长上下文创意对话。模型依次经过角色扮演指令微调、角色偏好优化、回复长度校准,以及最终的激活空间拒答方向干预。
模型保留 Qwen3.6 原生多模态架构、262K 上下文、混合专家路由和原生多 Token 预测(MTP)头。
🦊 模型概览
| 主要定位 | 长上下文角色扮演、角色一致性、创意对话、场景续写 |
| 架构 | 35B 参数 MoE;每个 Token 约激活 3B 参数 |
| 专家路由 | 256 个专家;每个 Token 选择 8 个专家 |
| 上下文 | 原生 262,144 Token |
| 模态 | 文本、图像、视频 |
| 生成能力 | 思考与非思考模式;原生 MTP 推测解码 |
| 后训练路线 | 角色扮演指令微调 → 角色偏好 → 回复长度校准 |
| 行为版本 | Aggressive 双轮拒答方向干预 |
⚡ “Aggressive” 的含义
Aggressive 版本采用更强的拒答方向干预,目标是减少重复的政策式拒答、过早终止场景以及突然跳出角色。“Aggressive” 描述的是行为干预强度,并不表示模型默认人格或文风具有攻击性。
这项干预改变的是拒答行为,不会增加事实知识、推理能力或新的训练样本。只要角色卡中明确规定,模型仍可稳定扮演平静、温柔、正式、幽默或克制的角色。
模型仍可能产生事实错误、虚构信息、不适当内容,或偶尔输出从早期后训练中继承的免责声明。用户应对提示词、生成结果、部署控制和法律合规负责。
🧬 后训练
JoyFox 采用分层后训练策略,而不是依赖单一的“去审查”编辑。角色扮演指令微调建立角色语气与场景行为;偏好优化增强一致性和互动质量;长度校准控制过度扩写;最终的双轮激活空间干预改变拒答行为,同时保留已经学到的角色扮演风格。
角色扮演指令微调
基础模型通过多轮角色对话和身份一致性指令进行适配。训练使用 Qwen 原生非思考聊天模板,并屏蔽提示词 Token,只在助手回复部分计算语言模型损失。
该过程适配文本模型,同时保持视觉塔和多模态投影器不变,主要学习:
- 跨轮次维持角色语气、关系和状态;
- 延续当前场景,而不是总结或解释场景;
- 自然结合对白、动作和环境细节;
- 避免代替用户说话、行动或做决定;
- 在长角色卡下保持身份与格式稳定。
角色偏好优化
角色扮演模型随后使用 chosen/rejected 回复对进行 sigmoid DPO 优化:
L_DPO = -log σ(β [(log πθ(y+|x) - log πref(y+|x))
- (log πθ(y-|x) - log πref(y-|x))])
偏好信号强调角色一致性、场景上下文利用、自然互动、情绪连续性和减少角色跳出。同时混入少量监督微调损失,以降低相对 SFT 模型的行为漂移。
回复长度校准
选定的角色偏好模型继续接受第二轮 DPO:简洁而完整的角色续写作为偏好回复,不必要扩写同一互动的版本作为非偏好回复。
该过程不会要求模型输出固定 Token 数,而是学习相对偏好:保留必要动作、角色语气、情绪和对话钩子,同时减少重复叙述、重复结论和无意义的场景膨胀。
优化目标概览
| 优化模块 | 训练信号 | 预期行为 |
|---|---|---|
| 角色扮演指令微调 | 助手回复语言建模 | 角色语气、对话节奏、场景续写、身份稳定性 |
| 角色偏好 | chosen/rejected 回复偏好 | 上下文遵循、角色一致性、自然互动、减少角色跳出 |
| 长度校准 | 简洁/过度扩写回复偏好 | 完整作答,同时减少冗余叙述和场景膨胀 |
| Aggressive 干预 | 双轮激活空间方向移除 | 保留已训练的角色风格,同时降低拒答行为 |
最终拒答方向干预只在角色扮演后训练完成后进行。本发布不公开训练语料名称、私有样本、数据规模或实现相关的训练配置。
🧪 技术方法
本模型使用白盒激活空间权重编辑,方法与论文 Refusal in Language Models Is Mediated by a Single Direction 相关。它不是新的梯度训练阶段。
对于成对的拒答触发指令和普通指令,在最后一个用户 Token 位置收集残差流激活,并通过均值差估计拒答方向:
r_l = normalize(mean(h_refusal,l) - mean(h_ordinary,l))
对能够表达该方向的权重矩阵,投影移除相应分量:
W'_l = W_l - r_l (r_l^T W_l)
实际乘法方向会根据存储张量布局进行转置。该干预具有以下特征:
- 从成对的拒答触发指令和普通指令中估计一个均值差方向;
- 使用模型原生聊天模板收集激活;
- 保护第 0、1 层,编辑文本模型第 2–39 层和输出头;
- 覆盖注意力和前馈网络的输出路径;
- 第一轮编辑后重新探测模型,再移除新暴露的残余方向;
- 视觉权重和原生 MTP 组件保持不变。
第二轮重新探测至关重要。只编辑高层、多方向高层编辑、只编辑输出头以及单轮编辑,都未能稳定消除完整回答中的拒答行为。
🏗️ 架构概览
| 属性 | 数值 |
|---|---|
| 模型家族 | Qwen3.6 多模态 MoE |
| 总参数量 | 35B |
| 每 Token 激活参数 | 约 3B |
| 隐藏维度 | 2,048 |
| 解码器层数 | 40 |
| 专家数 | 256 |
| 每 Token 路由专家数 | 8 |
| 注意力模式 | 3 个线性注意力层 : 1 个全注意力层 |
| 原生上下文 | 262,144 Token |
| 模态 | 文本、图像、视频 |
| 多 Token 预测 | 1 个原生 MTP 预测头 |
📊 评测摘要
以下均为实际生成结果,而非仅使用 logits 的代理指标。不同运行时、聊天模板、采样器、上下文长度和量化版本可能产生不同结果。
| 评测 | 结果 |
|---|---|
| 完整回答拒答测试 | 0 / 100 拒答 |
| Q6_K 验证子集 | 0 / 20 拒答;0 次生成失败 |
| 长上下文角色扮演场景 | 100 / 100 有效生成 |
| 角色跳出 | 0 / 100 |
| 空回复 | 0 / 100 |
泄漏 <think> 标签 |
0 / 100 |
| 角色扮演平均回复长度 | 133.65 字符 |
| 通用能力回归集 | 30 / 30 实质正确 |
角色扮演测试由固定长上下文角色场景组成,检查输出有效性、角色跳出、思考标签泄漏、重复、回复长度和参考风格相似度。结果表明,干预改变拒答行为的同时保留了来源模型简洁的角色扮演风格。
💾 GGUF 下载与精度说明
所有主 GGUF 都从同一份 BF16 导出独立量化。这些是未使用重要性矩阵的标准 llama.cpp 量化,并非 HauhauCS K_P 量化,因此不在此声称 K_P 的质量优势。
Q4_K 和 Q5_K 在 llama.cpp 中分别是 Q4_K_M 和 Q5_K_M 的别名,因此不会保存重复文件。IQ 属于独立的非线性量化系列,不在本次标准 Q4–Q8 集合中。
| 文件 | 量化 | 有效 BPW | 文件大小 | 相对质量 | 推荐场景 |
|---|---|---|---|---|---|
JoyFox-Qwen3.6-35B-A3B-RP-Aggressive-Q4_0.gguf |
Q4_0 | 4.55 | 18.81 GiB | 入门 | 传统格式兼容;仅在不支持 K-quant 时选择 |
JoyFox-Qwen3.6-35B-A3B-RP-Aggressive-Q4_1.gguf |
Q4_1 | 5.04 | 20.84 GiB | 入门+ | 带额外 scale/min 数据的传统 4-bit |
JoyFox-Qwen3.6-35B-A3B-RP-Aggressive-Q4_K_S.gguf |
Q4_K_S | 4.59 | 18.97 GiB | 良好 | 本发布占用最低的现代 K-quant |
JoyFox-Qwen3.6-35B-A3B-RP-Aggressive-Q4_K_M.gguf |
Q4_K_M | 4.89 | 20.22 GiB | 很好 | 推荐 4-bit;受限设备的质量/占用平衡点 |
JoyFox-Qwen3.6-35B-A3B-RP-Aggressive-Q5_0.gguf |
Q5_0 | 5.53 | 22.88 GiB | 良好+ | 传统 5-bit 兼容格式 |
JoyFox-Qwen3.6-35B-A3B-RP-Aggressive-Q5_1.gguf |
Q5_1 | 6.02 | 24.91 GiB | 良好+ | 带额外 scale/min 数据的传统 5-bit |
JoyFox-Qwen3.6-35B-A3B-RP-Aggressive-Q5_K_S.gguf |
Q5_K_S | 5.53 | 22.88 GiB | 高 | 更小的现代 5-bit 选择 |
JoyFox-Qwen3.6-35B-A3B-RP-Aggressive-Q5_K_M.gguf |
Q5_K_M | 5.71 | 23.61 GiB | 高+ | 推荐平衡档;兼顾角色扮演质量与占用 |
JoyFox-Qwen3.6-35B-A3B-RP-Aggressive-Q6_K.gguf |
Q6_K | 6.58 | 27.20 GiB | 很高 | 推荐高质量档 |
JoyFox-Qwen3.6-35B-A3B-RP-Aggressive-Q8_0.gguf |
Q8_0 | 8.52 | 35.21 GiB | GGUF 最高保真 | 内存充足时获得最高精度 |
mmproj-JoyFox-Qwen3.6-35B-A3B-RP-Aggressive-f16.gguf |
mmproj F16 | — | 0.84 GiB | 无损投影器 | 仅 llama.cpp 图像/视频输入需要 |
完全卸载时,模型权重占用约等于文件大小,但实际运行内存更高。上下文/KV Cache、批处理、MTP 草稿状态、多模态嵌入和后端缓冲区都需要额外空间。128K 或 262K 上下文可能比短上下文启动多占用大量内存。
应该选择哪个量化?
| 内存与质量目标 | 首选 | 原因 |
|---|---|---|
| 最低可用占用 | Q4_K_S | 集合中最小的现代 K-quant |
| 内存受限但重视质量 | Q4_K_M | 4-bit 的优质平衡点 |
| 常规角色扮演部署 | Q5_K_M | 适度增加大小,保留更多对白细节 |
| 高质量长对话 | Q6_K | 量化损失较低,能装下时优先推荐 |
| 质量对比或内存充足 | Q8_0 | 最接近 BF16 的 GGUF 版本 |
不要只按名义位数选择:_K_M 会让部分张量类别保留高于 _K_S 的精度,而 _0、_1 是较老的块量化格式。不同后端的速度也可能不同,建议在目标运行时上实测相邻两档。
🚀 GGUF 使用方法
请使用支持 Qwen3.6 和 MTP 的较新 llama.cpp 版本。
下载单个量化
hf download joyfox/JoyFox-Qwen3.6-35B-A3B-RP-Aggressive \
GGUF/JoyFox-Qwen3.6-35B-A3B-RP-Aggressive-Q5_K_M.gguf \
--local-dir JoyFox-Qwen3.6-35B-A3B-RP-Aggressive
文本对话
llama-cli \
-m JoyFox-Qwen3.6-35B-A3B-RP-Aggressive/GGUF/JoyFox-Qwen3.6-35B-A3B-RP-Aggressive-Q5_K_M.gguf \
--jinja -c 32768 -ngl 99 \
--temp 0.85 --top-p 0.95 --top-k 40 --min-p 0.02
OpenAI 兼容服务
llama-server \
-m JoyFox-Qwen3.6-35B-A3B-RP-Aggressive/GGUF/JoyFox-Qwen3.6-35B-A3B-RP-Aggressive-Q6_K.gguf \
--jinja -c 131072 -ngl 99 \
--host 0.0.0.0 --port 8080
如果显存不足,将 -ngl 99 改为实际可卸载的层数。如果 KV Cache 是主要瓶颈,应首先降低 -c。
启用原生 MTP 推测解码
所有主 GGUF 均包含原生 MTP 张量。较新的 llama.cpp 可以直接从主模型启用:
llama-server \
-m JoyFox-Qwen3.6-35B-A3B-RP-Aggressive/GGUF/JoyFox-Qwen3.6-35B-A3B-RP-Aggressive-Q6_K.gguf \
--jinja -c 131072 -ngl 99 \
--spec-type draft-mtp --spec-draft-n-max 3
MTP 是可选速度功能,并非质量模式。如果运行时不支持 draft-mtp,删除两个推测解码参数即可。只有在目标负载上测量接受率、延迟和内存后,才建议提高草稿长度。
多模态推理
除主量化外,还需下载 F16 投影器并通过 --mmproj 传入:
llama-cli \
-m JoyFox-Qwen3.6-35B-A3B-RP-Aggressive/GGUF/JoyFox-Qwen3.6-35B-A3B-RP-Aggressive-Q6_K.gguf \
--mmproj JoyFox-Qwen3.6-35B-A3B-RP-Aggressive/GGUF/mmproj-JoyFox-Qwen3.6-35B-A3B-RP-Aggressive-f16.gguf \
--jinja -c 32768 -ngl 99
🎛️ 推荐采样参数
以下参数是起点,而不是硬性要求。
| 场景 | 思考模式 | Temperature | Top-p | Top-k | Min-p | Presence penalty |
|---|---|---|---|---|---|---|
| 角色扮演 / 创意对话 | 关闭 | 0.85 | 0.95 | 40 | 0.02 | 0.0–0.5 |
| 通用聊天 | 关闭 | 0.70 | 0.80 | 20 | 0.00 | 1.5 |
| 通用推理 | 开启 | 1.00 | 0.95 | 20 | 0.00 | 1.5 |
| 编程 / 精确任务 | 开启 | 0.60 | 0.95 | 20 | 0.00 | 0.0 |
需要严格保持角色时,请把角色卡和不可更改的风格规则放在 system 消息中。较低的 presence penalty 通常更利于保留重复出现的姓名、意象和设定细节;较高值会增加新颖性,但也可能使长对话逐渐偏离既有表达方式。
🤗 Transformers 使用方法
仓库根目录为完整 BF16 多模态模型。
from transformers import pipeline
pipe = pipeline(
"image-text-to-text",
model="joyfox/JoyFox-Qwen3.6-35B-A3B-RP-Aggressive",
device_map="auto",
dtype="auto",
)
messages = [
{"role": "system", "content": "始终保持角色,用生动且连贯的方式进行对话。"},
{"role": "user", "content": "雨停了。从旅店门口继续这个场景。"},
]
result = pipe(messages, max_new_tokens=512)
print(result[0]["generated_text"][-1]["content"])
请使用仓库提供的聊天模板,不要手动拼接角色标签,也不要在提示词中暴露内部思考标签。
⚠️ 局限性
- 拒答方向移除会改变模型行为,但不能保证所有任务都得到一致提升;
- 量化可能降低细微文风、事实精度、多语言一致性和超长上下文稳定性;
- Q4 最容易损失细微角色风格,持续长对话建议使用 Q5_K_M 或 Q6_K;
- 原生支持长上下文不代表所有设备都能分配 262K KV Cache;
- MTP 加速取决于 Token 接受率、后端、提示词形态和硬件;
- GGUF 多模态推理需要单独的 F16 projector;
- 生成内容可能不准确或不适合具体用途,部署前应针对目标场景进行评测。
📜 许可证与致谢
依据基础模型许可证,以 Apache-2.0 发布。Qwen3.6 由 Qwen 团队开发;拒答方向方法受 Arditi 等人的研究启发;GGUF 转换和量化使用 llama.cpp。