Qwen3-4B-Ja2Zh-SFT (Merged)
This is the full-parameter merged version of the Qwen3-4B model, fine-tuned for Japanese-to-Chinese subtitle translation. It integrates the LoRA weights from enet45/qwen3-4b-ja2zh-lora-v1.1 directly into the base architecture.
Quickstart
Since this is a merged model, you can load it using the standard AutoModelForCausalLM pipeline:
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
model_id = "enet45/qwen3-4b-ja2zh-merged-v1.1"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
model_id,
torch_dtype=torch.bfloat16,
device_map="auto"
)
def translate_ja2zh(japanese_text, instruction="将以下日语字幕翻译成中文,文本可能存在识别错误,请根据语境修正后翻译。只输出中文。"):
messages = [
{"role": "system", "content": instruction},
{"role": "user", "content": japanese_text}
]
# 使用 apply_chat_template 自动匹配训练模板
prompt = tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True
)
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
outputs = model.generate(
**inputs,
max_new_tokens=128,
temperature=0.7,
top_p=0.9,
do_sample=True,
repetition_penalty=1.25,
eos_token_id=tokenizer.eos_token_id,
pad_token_id=tokenizer.pad_token_id or tokenizer.eos_token_id
)
# 只获取生成的回复部分
response = tokenizer.decode(outputs[0][inputs.input_ids.shape[1]:], skip_special_tokens=True)
# 字幕翻译建议取第一行,防止冗余输出
return response.strip().split('\n')[0]
print(translate_ja2zh("君のことが好きだ。"))