Instructions to use szs9915/nmt_results with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use szs9915/nmt_results with Transformers:
# Use a pipeline as a high-level helper # Warning: Pipeline type "translation" is no longer supported in transformers v5. # You must load the model directly (see below) or downgrade to v4.x with: # 'pip install "transformers<5.0.0' from transformers import pipeline pipe = pipeline("translation", model="szs9915/nmt_results")# Load model directly from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("szs9915/nmt_results") model = AutoModelForCausalLM.from_pretrained("szs9915/nmt_results", device_map="auto") - Notebooks
- Google Colab
- Kaggle
Hy-MT2-1.8B for WMT26 — Full-Parameter SFT Checkpoint
This repository contains the full-parameter supervised fine-tuning (full-SFT) checkpoint of Hy-MT2-1.8B submitted to the WMT26 Chinese–Southeast Asian multilingual translation shared task. It is the exact model used to generate the blind-test translations submitted on 2026-08-20.
Author
Zesheng Shi
System developer, model trainer, and repository maintainer for this WMT26 submission.
See AUTHORS.md for the repository authorship record.
Submitted branch: Full-parameter SFT (not the LoRA branch). Under matched data, seed, and evaluation conditions, full-parameter SFT outperforms LoRA SFT on all 14 directions (see Validation results below and
docs/wmt26_hymt2_1_8b_paper_emnlp.pdf).
Model summary
| Field | Value |
|---|---|
| Base model | Tencent-Hunyuan/Hy-MT2-1.8B (downloaded from ModelScope) |
| Adaptation lineage | Hy-MT2-1.8B → CPT 1-epoch (monolingual continued pretraining) → Full-parameter SFT |
| Architecture | HunYuanDenseV1ForCausalLM (model_type: hunyuan_v1_dense) |
| Parameters | 1.8B (≤ 20B → complies with shared-task size limit) |
| Precision | bfloat16 |
| Context cutoff | 4,096 train / 2,048 max new tokens at inference |
| Languages | Chinese (ZH) ↔ 7 Southeast Asian languages: ID, TH, KM, MS, VI, MY, LO |
| License | Apache-2.0 (inherited from the Hy-MT2-1.8B base model) |
⚠️ Loading requirement (important)
HunYuanDenseV1ForCausalLM is a native transformers architecture — present in
transformers>=4.57.6 (verified in the live venv venvs/hymt2-1_8b-wmt26; model_doc/hunyuan_v1_dense).
The config.json contains no auto_map, so trust_remote_code is NOT required and no
custom modeling_*.py is needed. The config.json declares transformers_version: "4.57.6",
which matches the actual runtime — install exactly this version (or newer) to be safe.
pip install "transformers>=4.57.6" torch accelerate safetensors
# exact pinned versions for full reproducibility: see code/requirements.txt
Covered translation directions (14)
| Family | Directions |
|---|---|
| Southeast Asian → Chinese | ID–ZH, TH–ZH, KM–ZH, MS–ZH, VI–ZH, MY–ZH, LO–ZH |
| Chinese → Southeast Asian | ZH–ID, ZH–TH, ZH–KM, ZH–MS, ZH–VI, ZH–MY, ZH–LO |
Quick start
from transformers import AutoModelForCausalLM, AutoTokenizer
model = AutoModelForCausalLM.from_pretrained(
".", # this repository
torch_dtype="auto",
device_map="auto",
# trust_remote_code=False (default) — architecture is native (verified on transformers 4.57.6)
)
tokenizer = AutoTokenizer.from_pretrained(".")
src_lang, tgt_lang = "Thai", "Chinese"
src_text = "สวัสดีครับ ยินดีที่ได้รู้จัก"
messages = [{
"role": "user",
"content": (
f"Translate the following {src_lang} into {tgt_lang}. "
f"Output only the translation and do not add explanations.\n{src_text}"
),
}]
prompt = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
out = model.generate(**inputs, max_new_tokens=2048, do_sample=False) # temperature=0 / greedy
print(tokenizer.decode(out[0][inputs.input_ids.shape[1]:], skip_special_tokens=True))
The production inference script (code/generate_wmt26_translations.py) applies the same
instruction contract and chat template, shards the validation set across GPUs, and stops on the
end-of-sequence marker (2,048 is an upper bound, not a target length).
Repository layout
hymt2-1_8b-wmt26-full-sft-hf/
├── model.safetensors # full-parameter SFT weights (bf16, ~3.8 GB)
├── config.json # architecture = HunYuanDenseV1ForCausalLM
├── generation_config.json
├── tokenizer.json
├── tokenizer_config.json
├── special_tokens_map.json
├── chat_template.jinja
├── eval_results.json # validation metrics for this checkpoint
├── AUTHORS.md # authorship and repository-maintainer record
├── README.md # this file
├── code/ # inference + reproduction (authored in train/wmt26, uploaded as-is)
│ ├── generate_wmt26_translations.py # native Transformers inference
│ ├── start_wmt26_vllm_4gpu.sh # optional 4×80G vLLM serving (throughput only)
│ ├── record_wmt26_environment.py # dumps environment manifest (deps/versions)
│ ├── hymt2_1_8b_wmt26_full_sft.yaml # exact full-SFT training config
│ ├── WMT26_RUNBOOK_CN.md # end-to-end reproduction runbook
│ ├── WMT26_EVAL_HANDOFF_CN.md # evaluation handoff notes
│ └── requirements.txt # pinned dependency versions (live venv: venvs/hymt2-1_8b-wmt26)
├── docs/
│ └── wmt26_hymt2_1_8b_paper_emnlp.pdf # system description (EMNLP-format)
└── evidence/ # version-provenance archive (kept locally; lora-* contrast branches NOT uploaded)
├── evaluation/full-sft-best/ # confirms this repo == the 2026-08-20 blind-test submission
└── records/ # training logs + environment manifest (mirrored to code/)
Training / data-prep / scoring helper scripts that are not required for inference or reproduction
are intentionally omitted from this repository; they live in the project's train/wmt26/ source tree.
Training configuration (full-parameter SFT)
| Setting | Value |
|---|---|
| Initialization | CPT 1-epoch checkpoint |
| Trainable parameters | All model parameters |
| Learning rate | 1×10⁻⁵ |
| Epochs | 3 |
| Per-device batch size | 4 |
| Gradient accumulation | 4 |
| Context cutoff | 4,096 tokens |
| Precision | bf16 |
| Seed | 2026 |
| Checkpoint selection | lowest validation loss (load_best_model_at_end) |
Validation results (26,474-example reconstructed validation set)
| Direction | BLEU | COMET | Q |
|---|---|---|---|
| ID–ZH | 65.99 | 85.98 | 75.98 |
| ZH–ID | 52.94 | 88.70 | 70.82 |
| TH–ZH | 47.74 | 83.87 | 65.80 |
| ZH–TH | 13.37 | 85.23 | 49.30 |
| KM–ZH | 44.51 | 84.66 | 64.58 |
| ZH–KM | 18.25 | 86.96 | 52.60 |
| MS–ZH | 63.88 | 85.67 | 74.77 |
| ZH–MS | 47.98 | 88.21 | 68.09 |
| VI–ZH | 61.12 | 88.16 | 74.64 |
| ZH–VI | 57.37 | 91.22 | 74.29 |
| MY–ZH | 42.61 | 85.72 | 64.17 |
| ZH–MY | 6.12 | 88.67 | 47.39 |
| LO–ZH | 31.02 | 81.91 | 56.47 |
| ZH–LO | 10.09 | 78.61 | 44.35 |
| Macro average | 40.21 | 85.97 | 63.09 |
COMET is reported on a 0–100 scale; the auxiliary quality score Q = (BLEU + COMET) / 2. These are validation-set numbers; the organizer-held blind test is kept separate and was not used for checkpoint selection, prompt design, or decoding-parameter tuning.
Evaluation notes
- Quality metrics (sacreBLEU, COMET): computed by
code/in a separate scoring environment to avoid mixing training and scoring dependencies. - Throughput: measured by the shared-task organizers on a 4×80 GB platform. The bundled
start_wmt26_vllm_4gpu.shis provided for diagnostic throughput only and is not required for the quality comparison.
System description
The full methodology, data construction (leakage-controlled), staged CPT→SFT design, and
direction-level analysis are described in docs/wmt26_hymt2_1_8b_paper_emnlp.pdf
("Hy-MT2-1.8B for WMT26: Staged Multilingual Adaptation for Chinese–Southeast Asian Translation").
- Downloads last month
- 19