Instructions to use NiceAsiv/Qwen3-1.7B-Nuosu-MT with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- PEFT
How to use NiceAsiv/Qwen3-1.7B-Nuosu-MT 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, "NiceAsiv/Qwen3-1.7B-Nuosu-MT") - Notebooks
- Google Colab
- Kaggle
base_model: Qwen/Qwen3-1.7B
library_name: peft
pipeline_tag: text-generation
license: apache-2.0
language:
- ii
- zh
- en
tags:
- qwen3
- lora
- nuosu
- liangshan-yi
- machine-translation
- low-resource-language
- academic-research
Qwen3-1.7B Nuosu MT LoRA
这是面向凉山规范彝文(诺苏语)机器翻译的研究型 LoRA adapter。它不包含
Qwen3-1.7B 底模权重,使用时必须单独获得 Qwen/Qwen3-1.7B。
This repository contains a research LoRA adapter for Chinese–Standard Liangshan Yi (Nuosu) and related short-form translation experiments. It is an adapter-only release; obtain the base model separately.
Intended use
- Chinese ↔ Standard Liangshan Yi translation research;
- short dictionary and sentence translation experiments;
- reproducible low-resource language adaptation studies.
This is not a production translation system. The full held-out evaluation is weak on the heterogeneous research test distribution, and the fixed gate was run under an explicitly recorded waiver. Native-speaker review is required before making semantic or orthographic claims.
本版本不宣称覆盖全部彝语方言,也不适合高风险或未经审核的正式翻译。
Base model and reproducibility
- Base model:
Qwen/Qwen3-1.7B - Base revision:
70d244cc86ccca08cf5af4e1e306ecf908b1ad5e - Training code revision:
90b7d6c3d71e025e1336a2a585389f1dedab9b6f - Chat entrypoint fix:
3c7f17f012e5a483c367ff7b5b16e905e1b2c7dd - Dataset projection:
nuosu-mt-clean-recover-v20260808 - Seed:
42 - LoRA: rank 64, alpha 128, dropout 0.05, all-linear targets
- Training: BF16, one SFT epoch, completion-only loss
The tokenizer adds 1,203 Yi syllable/radical tokens (vocabulary size 152,872); new token rows are initialized from the original subtoken embeddings and trained together with LoRA.
Data
The target-only MT projection contains:
| Split | Records | Notes |
|---|---|---|
| train | 159,083 | 94,532 lexicon, 16,077 published, 39,512 sentence, 8,962 short |
| validation | 7,131 | held-out validation projection |
| research test | 8,558 | full held-out generation test |
Training data were cleaned by dropping exact meta-evaluation verdict targets and recovering usable corrected-translation prefixes. The release contains model files and evaluation metadata, not the source corpora. Source licensing, attribution, and redistribution conditions remain applicable.
Evaluation
Full held-out generation (8,558 records, greedy, no_think):
| Metric | Overall | Yi-target |
|---|---|---|
| Compact exact match | 3.76% | 2.47% |
| chrF2 | 10.93 | 13.70 |
| Reference contained | 5.68% | 3.35% |
| Replacement-character rate | 0.11% | 0.33% |
The 256-record gate reached 57.42% overall exact match, 60.68 chrF2 and
48.44% Yi exact match, but did not satisfy the strict gate thresholds; the
waiver is included under provenance/GATE_WAIVER.
Usage
from peft import PeftModel
from transformers import AutoModelForCausalLM, AutoTokenizer
base_id = "Qwen/Qwen3-1.7B"
adapter_id = "NiceAsiv/Qwen3-1.7B-Nuosu-MT"
tokenizer = AutoTokenizer.from_pretrained(adapter_id)
base = AutoModelForCausalLM.from_pretrained(
base_id, torch_dtype="auto", device_map="auto"
)
base.resize_token_embeddings(len(tokenizer), pad_to_multiple_of=64)
model = PeftModel.from_pretrained(base, adapter_id)
messages = [{
"role": "user",
"content": "请将以下中文翻译为凉山规范彝文。只输出译文,不要解释。\n我今天去学校。",
}]
prompt = tokenizer.apply_chat_template(
messages, tokenize=False, add_generation_prompt=True,
enable_thinking=False,
)
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
output = model.generate(
**inputs, do_sample=False, max_new_tokens=256,
eos_token_id=tokenizer.eos_token_id,
)
print(tokenizer.decode(output[0, inputs["input_ids"].shape[-1]:],
skip_special_tokens=True).strip())
The repository's chat command defaults to the same deterministic no_think
mode. Use --thinking-mode thinking only when deliberately testing reasoning.
Citation
@software{axi2026nuosumt,
author = {Wuhe Axi},
title = {Qwen3-1.7B Nuosu MT LoRA},
year = {2026},
institution = {Xi'an Jiaotong University},
url = {https://huggingface.co/NiceAsiv/Qwen3-1.7B-Nuosu-MT}
}
Please also cite the training code and the separately maintained corpus: