This model is part of the Kord Translate ENTH V2 family, accompanying the paper
"Teaching the Student to Skip the Homework: Rationale-Free Distillation for Thai-English Translation" (KordAI, 2026). Other models in the family:
4B,
8B,
mBART50.
At this scale, rationale-free distillation produces small, consistent improvements over the untuned Qwen3-1.7B base in both directions, most notably in BERTScore and COMET on en→th. See the paper for comparison against larger scales and specialized Thai-English systems.
This is a chat/instruction-tuned model. Prompt with a system message asking for translation and a user message containing the source text.
1import torch
2from transformers import AutoModelForCausalLM, AutoTokenizer
3
4MODEL_ID = "KordAI/Kord-Translate-ENTH-V2-1.7B"
5
6tokenizer = AutoTokenizer.from_pretrained(MODEL_ID)
7model = AutoModelForCausalLM.from_pretrained(
8 MODEL_ID,
9 torch_dtype=torch.bfloat16,
10 device_map="auto",
11)
12
13def translate(text: str, direction: str = "en2th") -> str:
14 """direction: 'en2th' or 'th2en'"""
15 src_lang, tgt_lang = ("English", "Thai") if direction == "en2th" else ("Thai", "English")
16 messages = [
17 {
18 "role": "system",
19 "content": (
20 f"You are a professional {src_lang}-{tgt_lang} translator. "
21 f"Translate the user's text from {src_lang} to {tgt_lang}. "
22 "Output only the translation, with no explanation, notes, or extra text."
23 ),
24 },
25 {"role": "user", "content": text},
26 ]
27
28 prompt = tokenizer.apply_chat_template(
29 messages, tokenize=False, add_generation_prompt=True
30 )
31 inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
32
33 with torch.no_grad():
34 output_ids = model.generate(
35 **inputs,
36 max_new_tokens=256,
37 do_sample=False,
38 temperature=None,
39 top_p=None,
40 top_k=None,
41 )
42
43 generated = output_ids[0][inputs["input_ids"].shape[-1]:]
44 return tokenizer.decode(generated, skip_special_tokens=True).strip()
45
46
47print(translate("How is the weather today in Bangkok?", direction="en2th"))
48print(translate("วันนี้อากาศที่กรุงเทพเป็นอย่างไรบ้าง", direction="th2en"))
1from unsloth import FastLanguageModel
2
3model, tokenizer = FastLanguageModel.from_pretrained(
4 model_name="KordAI/Kord-Translate-ENTH-V2-1.7B",
5 max_seq_length=2048,
6 load_in_4bit=True,
7)
8FastLanguageModel.for_inference(model) # enable native 2x faster inference
9
10messages = [
11 {"role": "system", "content": "You are a professional English-Thai translator. Translate the user's text from English to Thai. Output only the translation, with no explanation, notes, or extra text."},
12 {"role": "user", "content": "How is the weather today in Bangkok?"},
13]
14inputs = tokenizer.apply_chat_template(
15 messages, tokenize=True, add_generation_prompt=True, return_tensors="pt"
16).to("cuda")
17
18output_ids = model.generate(input_ids=inputs, max_new_tokens=256, do_sample=False)
19print(tokenizer.decode(output_ids[0][inputs.shape[-1]:], skip_special_tokens=True))
1@article{kordai2026rationalefree,
2 title = {Teaching the Student to Skip the Homework: Rationale-Free Distillation for Thai-English Translation},
3 author = {Jangjit, Naphon and Komsang, Jeerawat and Boran, Kord C.},
4 year = {2026},
5 organization = {KordAI}
6}
Built on
Qwen3, with teacher supervision from
DeepSeek-V4. LoRA fine-tuning follows
Hu et al., 2021 and the 4-bit recipe popularized by
QLoRA.
This qwen3 model was trained 2x faster with
Unsloth and Huggingface's TRL library.