Files
Murasaki-14B-v0.2/README.md
ModelHub XC 75535ac07b 初始化项目,由ModelHub XC社区提供模型
Model: Murasaki-Project/Murasaki-14B-v0.2
Source: Original Platform
2026-06-09 03:52:16 +08:00

192 lines
7.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
language:
- ja
- zh
license: cc-by-nc-sa-4.0
tags:
- translation
- light-novel
- galgame
- anime-subtitles
- cot
- system-2
- text-generation-inference
- transformers
- pytorch
pipeline_tag: text-generation
---
<div align="center">
<img src="https://github.com/soundstarrain/Murasaki-Translator/raw/main/GUI/resources/icon.png" width="120" height="120" alt="Murasaki Logo">
<h1 align="center">Murasaki-14B-v0.2</h1>
**System 2 Reasoning Model for ACGN Translation**<br>
**原生 CoT 思维链 · 长上下文 · ACGN 领域特化翻译模型**
[Github](https://github.com/soundstarrain/Murasaki-project) | [Benchmark](https://github.com/soundstarrain/Murasaki-benchmark) | [GGUF Version](https://huggingface.co/Murasaki-Project/Murasaki-14B-v0.2-GGUF) | [License: CC BY-NC-SA 4.0](https://creativecommons.org/licenses/by-nc-sa/4.0/)
</div>
---
## 简介
**Murasaki-14B** 是专为 ACGN 领域轻小说、Galgame、漫画等优化的 System 2 推理型翻译模型。
不同于传统的直觉式System 1模型Murasaki-14B 引入了原生 **Chain-of-Thought (CoT)** 思维链技术。在生成译文前,模型会先在 `<think>` 标签内完成风格定调、动作流解析、人设推导及人称确认。这种机制显著提升了长难句的解析精度与叙事连贯性,**特别是精准解决了 ACGN 翻译中常见的施动者/受动者判定模糊、人称混淆及语境风格漂移等难点**,大幅提升了译文的准确度与可读性。
本模型支持针对三种不同场景(轻小说、剧本、短句)的专项翻译模式,请参考下文 Prompt 说明进行调用。
> **✨ Now Live:** 无需下载模型,点击 **[Online Demo](https://huggingface.co/spaces/Murasaki-Project/online-demo)** 在线体验模型。
---
## 🚀 Prompt 模板与模式选择 (重要)
本模型支持三种特定的翻译模式。为了获得最佳效果,**请务必根据翻译内容使用对应的 System Prompt**。
### 1. 轻小说模式 (Novel Mode)
* **适用场景**轻小说正文、Web 小说、注重文学性的长文本。
```python
# 无术语表版本
NOVEL_SYSTEM_PROMPT = """你是一位精通二次元文化的资深轻小说翻译家。
请将日文文本翻译成流畅、优美的中文。
**核心要求:**
1. **深度思考:** 在翻译前,先在 <think> 标签中分析文风、补全主语并梳理逻辑。
2. **信达雅:** 译文需符合中文轻小说阅读习惯,还原原作的沉浸感与文学性。"""
# 带术语表版本 (推荐)
NOVEL_SYSTEM_PROMPT_WITH_GLOSSARY = """你是一位精通二次元文化的资深轻小说翻译家。
请将日文文本翻译成流畅、优美的中文。
**核心要求:**
1. **深度思考:** 在翻译前,先在 <think> 标签中分析文风、补全主语并梳理逻辑。
2. **信达雅:** 译文需符合中文轻小说阅读习惯,还原原作的沉浸感与文学性。
【术语表】
{glossary}"""
```
### 2. 剧本模式 (Script Mode)
* **适用场景**Galgame 脚本、动画字幕、漫画对话、RPG游戏文本。
```python
SCRIPT_SYSTEM_PROMPT = """你是一位专注于 Galgame 与动漫台词的本地化专家。
请将剧本/台词翻译为地道的中文口语。
**核心要求:**
1. **角色还原:** 结合语境分析说话人的性格(如傲娇、腹黑),精准还原语气与口癖。
2. **拒绝翻译腔:** 译文必须自然生动,符合"能被读出来的台词"标准。"""
# 带术语表版本同轻小说末尾格式
```
### 3. 单句模式 (Short Mode)
* **适用场景**UI 界面文本、系统提示、无上下文的独立短句、技能名。
```python
SHORT_SYSTEM_PROMPT = """你是一个严谨的 ACGN 短句翻译引擎。
请对输入的日文短句进行精准直译。
**核心要求:**
1. **零上下文:** 严禁脑补不存在的背景或主语。指代不明时保持模糊。
2. **精准还原:** 忠实保留原文的结构与信息量,不进行过度润色。"""
# 带术语表版本同轻小说末尾格式
```
## 快速开始 (Python / Transformers)
> ⚠️ 如果您寻找适合本地部署的 **GGUF (llama.cpp)** 量化版,请前往:[**Murasaki-14B-v0.2-GGUF**](https://huggingface.co/Murasaki-Project/Murasaki-14B-v0.2-GGUF)
### 推荐推理前端
为了获得最佳的翻译体验(并自动应用上述三种模式),推荐使用我们配套开发的开源 GUI
👉 **[Murasaki Translator (GitHub)](https://github.com/soundstarrain/Murasaki-Translator)**
### Python 代码示例
以下代码展示了如何使用 **轻小说模式 + 术语表** 进行推理:
```python
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
model_name = "Murasaki-Project/Murasaki-14B-v0.2"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(
model_name,
device_map="auto",
torch_dtype=torch.bfloat16
)
# 1. 定义 Prompt 模板 (此处以轻小说模式为例)
NOVEL_SYSTEM_PROMPT_WITH_GLOSSARY = """你是一位精通二次元文化的资深轻小说翻译家。
请将日文文本翻译成流畅、优美的中文。
**核心要求:**
1. **深度思考:** 在翻译前,先在 <think> 标签中分析文风、补全主语并梳理逻辑。
2. **信达雅:** 译文需符合中文轻小说阅读习惯,还原原作的沉浸感与文学性。
【术语表】
{glossary}"""
USER_PROMPT_TEMPLATE = "请翻译:\n{jp}"
# 2. 准备数据
glossary_dict = {"レールガン": "超电磁炮", "妹": "妹妹"}
glossary_str = "\n".join([f"{k}: {v}" for k, v in glossary_dict.items()])
jp_text = "「お兄ちゃん、私のレールガンを見て!」"
# 3. 构造完整 Prompt
system_content = NOVEL_SYSTEM_PROMPT_WITH_GLOSSARY.format(glossary=glossary_str)
user_content = USER_PROMPT_TEMPLATE.format(jp=jp_text)
messages = [
{"role": "system", "content": system_content},
{"role": "user", "content": user_content}
]
# 4. 推理
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.input_ids,
max_new_tokens=2048,
temperature=0.3,
repetition_penalty=1.05
)
# 解码 (跳过 prompt 部分)
response = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0]
# 分离 <think> 思考过程与正文
if "<think>" in response and "</think>" in response:
thought = response.split("</think>")[0].replace("<think>", "").strip()
translation = response.split("</think>")[1].strip()
print("=== 思考过程 ===\n", thought)
print("\n=== 翻译结果 ===\n", translation)
else:
print(response)
```
---
## 推理参数建议
* **Temperature**: `0.1` - `0.5` (推荐 `0.3`)
* **Repetition Penalty**: 从 `1.0` 开始,如出现复读可增加至 `1.05` - `1.1`
* **Max New Tokens**: 建议 `4096` 或更高
---
## 协议与致谢
- **Base Model**: 特别感谢 [**SakuraLLM**](https://github.com/SakuraLLM/) 提供的优秀 Base 模型。
- **License**: 软件代码遵循 Apache-2.0 协议,模型权重遵循 [**CC BY-NC-SA 4.0**](https://creativecommons.org/licenses/by-nc-sa/4.0/) 协议,严禁用于任何商业用途。
<p align="center">Copyright © 2026 Murasaki Project</p>