commit 75535ac07b964b9d0bbda6aa4989e08413d01b0c Author: ModelHub XC Date: Tue Jun 9 03:52:16 2026 +0800 初始化项目,由ModelHub XC社区提供模型 Model: Murasaki-Project/Murasaki-14B-v0.2 Source: Original Platform diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..3d4e8a7 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,36 @@ +*.7z filter=lfs diff=lfs merge=lfs -text +*.arrow filter=lfs diff=lfs merge=lfs -text +*.bin filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.ckpt 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 +*.mlmodel filter=lfs diff=lfs merge=lfs -text +*.model filter=lfs diff=lfs merge=lfs -text +*.msgpack filter=lfs diff=lfs merge=lfs -text +*.npy filter=lfs diff=lfs merge=lfs -text +*.npz 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 +*.pickle filter=lfs diff=lfs merge=lfs -text +*.pkl 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 +*.safetensors filter=lfs diff=lfs merge=lfs -text +saved_model/**/* filter=lfs diff=lfs merge=lfs -text +*.tar.* 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 +*.wasm filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text +*tfevents* filter=lfs diff=lfs merge=lfs -text +Murasaki-14B-v0.2-f16.gguf filter=lfs diff=lfs merge=lfs -text diff --git a/Murasaki-14B-v0.2-f16.gguf b/Murasaki-14B-v0.2-f16.gguf new file mode 100644 index 0000000..0420c22 --- /dev/null +++ b/Murasaki-14B-v0.2-f16.gguf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9f75d6e2540f0302b8e1b7e2286629079b64d5d4a0a5b66fa16d28b6277cc32c +size 29543423296 diff --git a/README.md b/README.md new file mode 100644 index 0000000..80ca71e --- /dev/null +++ b/README.md @@ -0,0 +1,192 @@ +--- +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 +--- +
+ +Murasaki Logo + +

Murasaki-14B-v0.2

+ +**System 2 Reasoning Model for ACGN Translation**
+**原生 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/) + +
+ +--- + +## 简介 + +**Murasaki-14B** 是专为 ACGN 领域(轻小说、Galgame、漫画等)优化的 System 2 推理型翻译模型。 + +不同于传统的直觉式(System 1)模型,Murasaki-14B 引入了原生 **Chain-of-Thought (CoT)** 思维链技术。在生成译文前,模型会先在 `` 标签内完成风格定调、动作流解析、人设推导及人称确认。这种机制显著提升了长难句的解析精度与叙事连贯性,**特别是精准解决了 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. **深度思考:** 在翻译前,先在 标签中分析文风、补全主语并梳理逻辑。 +2. **信达雅:** 译文需符合中文轻小说阅读习惯,还原原作的沉浸感与文学性。""" + +# 带术语表版本 (推荐) +NOVEL_SYSTEM_PROMPT_WITH_GLOSSARY = """你是一位精通二次元文化的资深轻小说翻译家。 +请将日文文本翻译成流畅、优美的中文。 + +**核心要求:** +1. **深度思考:** 在翻译前,先在 标签中分析文风、补全主语并梳理逻辑。 +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. **深度思考:** 在翻译前,先在 标签中分析文风、补全主语并梳理逻辑。 +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] + +# 分离 思考过程与正文 +if "" in response and "" in response: + thought = response.split("")[0].replace("", "").strip() + translation = response.split("")[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/) 协议,严禁用于任何商业用途。 + +

Copyright © 2026 Murasaki Project

\ No newline at end of file