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

6.1 KiB
Raw Blame History

license, language, base_model, pipeline_tag, tags
license language base_model pipeline_tag tags
apache-2.0
ja
zh
3tic/Orion-Qwen3-1.7B-CPT-v2603
text-generation
lightnovel

Orion-Qwen3-1.7B-SFT-v2603

基于 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 推理示例

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 推理示例

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)