HistoryTrans/Dataset
Viewer • Updated • 765k • 63 • 1
How to use emiya111/EmiyaMind-Qwen3-1.7B-Wenyan-Full with PEFT:
from peft import PeftModel
from transformers import AutoModelForCausalLM
base_model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen3-1.7B")
model = PeftModel.from_pretrained(base_model, "emiya111/EmiyaMind-Qwen3-1.7B-Wenyan-Full")这是一个将文言文翻译为现代汉语的 LoRA 适配器。模型基于
Qwen/Qwen3-1.7B,使用完整
HistoryTrans/Dataset 训练一轮。
本仓库只分发 LoRA 适配器与分词器;使用时会同时下载并加载基础模型。
输出可能存在遗漏、误译、人物指代错误或现代知识补充,重要文本应由具备古汉语知识的人复核。
import torch
from peft import PeftModel
from transformers import AutoModelForCausalLM, AutoTokenizer
adapter_id = "emiya111/EmiyaMind-Qwen3-1.7B-Wenyan-Full"
base_id = "Qwen/Qwen3-1.7B"
tokenizer = AutoTokenizer.from_pretrained(adapter_id)
base_model = AutoModelForCausalLM.from_pretrained(
base_id,
torch_dtype=torch.bfloat16,
device_map="auto",
)
model = PeftModel.from_pretrained(base_model, adapter_id)
model.eval()
source = "环滁皆山也。其西南诸峰,林壑尤美。"
messages = [
{
"role": "system",
"content": (
"你是一名严谨的古汉语翻译专家。你的任务是把文言文翻译成通顺、准确的现代汉语,"
"忠实保留原文的人名、地名、官名、时间、因果关系和语气,不增添原文没有的信息。"
),
},
{
"role": "user",
"content": f"请将下面的文言文翻译成现代汉语。只输出译文,不要解释。\n\n文言文:{source}",
},
]
prompt = tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True,
enable_thinking=False,
)
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
with torch.inference_mode():
output = model.generate(
**inputs,
max_new_tokens=256,
do_sample=False,
repetition_penalty=1.05,
)
result = tokenizer.decode(
output[0, inputs["input_ids"].shape[1]:],
skip_special_tokens=True,
)
print(result.strip())
清洗后的 HistoryTrans 数据:
清洗移除了空值、原译文相同、过长、长度比例异常和完全重复的句对。HistoryTrans 使用 MIT 许可证;请同时遵守其数据集说明。
训练在单张 NVIDIA GeForce RTX 5070 上完成,用时约 53 小时 19 分钟。