Files
ModelHub XC 37d50d9682 初始化项目,由ModelHub XC社区提供模型
Model: 3tic/Orion-Qwen3-1.7B-SFT-v2603
Source: Original Platform
2026-05-07 02:00:51 +08:00

265 lines
6.1 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.

---
license: apache-2.0
language:
- ja
- zh
base_model:
- 3tic/Orion-Qwen3-1.7B-CPT-v2603
pipeline_tag: text-generation
tags:
- lightnovel
---
# Orion-Qwen3-1.7B-SFT-v2603
基于 [Orion-Qwen3-1.7B-CPT-v2603](https://huggingface.co/3tic/Orion-Qwen3-1.7B-CPT-v2603) 在轻小说、游戏、动漫文本数据上训练的翻译模型,支持术语表。
* 本版模型优化了术语表使用和上下文关系处理
## Prompt 结构
```
[上文] ← 可选,每 chunk 不同
[术语表] ← 可选,同文档共享,仅包含当前 chunk 命中的术语
[提示词] ← 根据有无上文/术语表选择措辞
[JSONL 内容] ← 待翻译文本
```
---
## 模板 1: plain无术语表无上文
### user
```
将以下文本翻译为简体中文使用JSONLINE格式输出翻译结果只需输出翻译结果不要额外解释
{"1":"原文1"}
{"2":"原文2"}
```
### assistant
```
{"1":"译文1"}
{"2":"译文2"}
```
### 示例
**user:**
```
将以下文本翻译为简体中文使用JSONLINE格式输出翻译结果只需输出翻译结果不要额外解释
{"1":"まだなにか、話すべきことがあっただろうか。"}
```
**assistant:**
```
{"1":"还有什么,需要说的事情吗。"}
```
---
## 模板 2: glossary有术语表无上文
### user
```
术语表:
実体A→译名A
実体B→译名B
参考术语表中的译法将以下文本翻译为简体中文使用JSONLINE格式输出翻译结果只需输出翻译结果
{"1":"原文1"}
{"2":"原文2"}
```
### assistant
```
{"1":"译文1"}
{"2":"译文2"}
```
### 示例
**user:**
```
术语表:
クトゥリフ→库托莉芙
サーフェちゃん→莎妃
ライム→莉姆
参考术语表中的译法将以下文本翻译为简体中文使用JSONLINE格式输出翻译结果只需输出翻译结果
{"1":"「思い出話をしましょう、と言っているのよ。私もグレンとは話せないし」"}
{"2":"うにょん! と楕円形に広がっていたライムが、あっという間に人の形に戻った。"}
{"3":"「いいんデスか! サーフェちゃん」"}
```
---
## 模板 3: context无术语表有上文
### user
```
上文行1
上文行2
上文行3
参考上文信息将以下文本翻译为简体中文使用JSONLINE格式输出翻译结果只需输出翻译结果
{"1":"原文1"}
{"2":"原文2"}
```
### assistant
```
{"1":"译文1"}
{"2":"译文2"}
```
### 示例
**user:**
```
「え……だっテ、グレンくんは教室でも浮いてましたシ……みんなと仲良くなれるきっかけになればと思ったんデス……」
サーフェとしては。
ライムがやったことは、サーフェの考えと似てはいても、もう少し先を見ていた。
参考上文信息将以下文本翻译为简体中文使用JSONLINE格式输出翻译结果只需输出翻译结果
{"1":"「医学部学生ではあるけど、身体の悩みを聞きます……というのは評判になりましたね」"}
{"2":"「エヘヘ! 噂を流した甲斐がありましター!」"}
{"3":"「それも貴女の仕業だったのね」"}
```
---
## 模板 4: glossary_context有术语表有上文
### user
```
上文行1
上文行2
上文行3
术语表:
実体A→译名A
実体B→译名B
参考上文和术语表将以下文本翻译为简体中文使用JSONLINE格式输出翻译结果只需输出翻译结果
{"1":"原文1"}
{"2":"原文2"}
```
### assistant
```
{"1":"译文1"}
{"2":"译文2"}
```
### 示例
**user:**
```
アカデミーは多数の学部に分かれ、大陸各地から有能な学者が招聘された。
ある日、アカデミーに一人の少年が留学した。
新入生の名はグレン・リトバイト。
术语表:
クトゥリフ→库托莉芙
グレン・リトバイト→格伦·利特贝特
ネメア→涅米亚
ネメア・アカデミー→涅米亚·学院
参考上文和术语表将以下文本翻译为简体中文使用JSONLINE格式输出翻译结果只需输出翻译结果
{"1":"ネメア・アカデミー。"}
{"2":"魔族領首都ネメア。その大都市が誇る、最大の教育機関。"}
{"3":"名前はグレン。"}
{"4":"手にしているのは、教授であるクトゥリフからの通知である。"}
```
---
## Transformers 推理示例
```python
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
model_path = "3tic/Orion-Qwen3-1.7B-CPT-v2603"
tokenizer = AutoTokenizer.from_pretrained(
model_path,
trust_remote_code=True,
padding_side="left",
)
if tokenizer.pad_token is None:
tokenizer.pad_token = tokenizer.eos_token
model = AutoModelForCausalLM.from_pretrained(
model_path,
trust_remote_code=True,
torch_dtype=torch.bfloat16,
device_map="auto",
)
prompt = (
"将以下文本翻译为简体中文使用JSONLINE格式输出翻译结果只需输出翻译结果不要额外解释\n"
'{"1": "おはようございます"}\n'
)
text = tokenizer.apply_chat_template(
[{"role": "user", "content": prompt}],
tokenize=False,
add_generation_prompt=True,
)
inputs = tokenizer(text, return_tensors="pt").to(model.device)
outputs = model.generate(
**inputs,
max_new_tokens=128,
do_sample=False,
temperature=1.0,
pad_token_id=tokenizer.pad_token_id,
)
generated_ids = outputs[0][inputs["input_ids"].shape[-1]:]
response = tokenizer.decode(generated_ids, skip_special_tokens=True)
print(response)
```
## vLLM 推理示例
```python
from vllm import LLM, SamplingParams
model_path = "3tic/Orion-Qwen3-1.7B-CPT-v2603"
llm = LLM(model=model_path, tensor_parallel_size=1, max_model_len=1024)
prompt = (
"将以下文本翻译为简体中文使用JSONLINE格式输出翻译结果只需输出翻译结果不要额外解释\n"
'{"1": "おはようございます"}\n'
)
outputs = llm.chat(
messages=[[{"role": "user", "content": prompt}]],
sampling_params=SamplingParams(max_tokens=128, temperature=0.0),
)
print(outputs[0].outputs[0].text)
```