FP8-Dynamic of YanoljaNEXT-Rosetta-12B-2510

Run with

vllm serve Bedovyy/YanoljaNEXT-Rosetta-12B-2510-FP8-Dynamic --max-model-len 65536

YanoljaNEXT-Rosetta-12B-2510

This model is a fine-tuned version of google/gemma-3-12b-pt. As it is intended solely for text generation, we have extracted and utilized only the Gemma3ForCausalLM component from the original architecture.

Unlike our previous EEVE models, this model does not feature an expanded tokenizer.

  • Model Name: yanolja/YanoljaNEXT-Rosetta-12B-2510
  • Base Model: google/gemma-3-12b-pt

Model Description

This model is a 12-billion parameter, decoder-only language model built on the Gemma3 architecture and fine-tuned by Yanolja NEXT. It is specifically designed to translate structured data (JSON format) while preserving the original data structure.

The model was trained on a multilingual dataset covering the following languages equally:

  • Arabic
  • Bulgarian
  • Chinese
  • Czech
  • Danish
  • Dutch
  • English
  • Finnish
  • French
  • German
  • Greek
  • Gujarati
  • Hebrew
  • Hindi
  • Hungarian
  • Indonesian
  • Italian
  • Japanese
  • Korean
  • Persian
  • Polish
  • Portuguese
  • Romanian
  • Russian
  • Slovak
  • Spanish
  • Swedish
  • Tagalog
  • Thai
  • Turkish
  • Ukrainian
  • Vietnamese

While optimized for these languages, it may also perform effectively on other languages supported by the base Gemma3 model.

How to use

You can use this model with the transformers library as follows:

import json
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM

model_id = "yanolja/YanoljaNEXT-Rosetta-12B-2510"
model = AutoModelForCausalLM.from_pretrained(
    model_id,
    dtype=torch.bfloat16,
    device_map="auto",
    max_memory={0: "47GB"},
)
tokenizer = AutoTokenizer.from_pretrained(model_id)

target_language = "Korean"
context = {
  "context": "Simple introduction about a tech company.",
  "tone": "Informative and helpful",
  "glossary": {
    "Yanolja NEXT": "์•ผ๋†€์ž๋„ฅ์ŠคํŠธ",
    "travel industry": "์—ฌํ–‰ ์‚ฐ์—…",
  }
}

system = [f"Translate the user's text to {target_language}."]
for key, value in context.items():
  key_pascal = key.capitalize()
  if isinstance(value, dict):
    system.append(f"{key_pascal}:")
    for f, t in value.items():
      system.append(f"- {f} -> {t}")
  else:
    system.append(f"{key_pascal}: {value}")

system.append("Provide the final translation immediately without any other text.")

source = {
  "company_name": "Yanolja NEXT",
  "description": "Yanolja NEXT is a company that provides cutting-edge "
                 "technology for the global travel industry.",
}

messages = [
    {"role": "system", "content": "\n".join(system)},
    {"role": "user", "content": json.dumps(source, ensure_ascii=False)},
]

prompt = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
print(prompt)
# <bos><start_of_turn>instruction
# Translate the user's text to Korean.
# Context: Simple introduction about a tech company.
# Tone: Informative and helpful
# Glossary:
# - Yanolja NEXT -> ์•ผ๋†€์ž๋„ฅ์ŠคํŠธ
# - travel industry -> ์—ฌํ–‰ ์‚ฐ์—…
# Provide the final translation immediately without any other text.<end_of_turn>
# <start_of_turn>source
# {"company_name": "Yanolja NEXT", "description": "Yanolja NEXT is a company that provides cutting-edge technology for the global travel industry."}<end_of_turn>
# <start_of_turn>translation

inputs = tokenizer(prompt, return_tensors="pt").to("cuda")
input_length = inputs["input_ids"].shape[1]

with torch.inference_mode():
    outputs = model.generate(
        **inputs,
        max_new_tokens=64,
    )

generated_tokens = outputs[0][input_length:]
translation = tokenizer.decode(generated_tokens, skip_special_tokens=True)

print(json.dumps(json.loads(translation), indent=2, ensure_ascii=False))
# {
#   "company_name": "์•ผ๋†€์ž๋„ฅ์ŠคํŠธ",
#   "description": "์•ผ๋†€์ž๋„ฅ์ŠคํŠธ๋Š” ๊ธ€๋กœ๋ฒŒ ์—ฌํ–‰ ์‚ฐ์—…์— ์ตœ์ฒจ๋‹จ ๊ธฐ์ˆ ์„ ์ œ๊ณตํ•˜๋Š” ํšŒ์‚ฌ์ž…๋‹ˆ๋‹ค."
# }

The model outputs the final translation in JSON format when appropriate, or plain text for simple translations.

Training Procedure

Training Data

The translation datasets were synthesized using fineweb corpora.

The model was fine-tuned on synthetic multilingual translation data to optimize performance across the supported language pairs.

Performance

Translation Quality Benchmarks

The following CHrF++ scores (WMT24++) demonstrate the model's competitive performance compared to other state-of-the-art translation models on English to Korean translation:

Model CHrF++ Score (WMT24++)
yanolja/YanoljaNEXT-Rosetta-12B-2510 37.36
openai/gpt-4o 36.08
google/gemini-2.5-flash 35.25
yanolja/YanoljaNEXT-Rosetta-12B 34.75
yanolja/YanoljaNEXT-Rosetta-20B 33.87
google/gemini-2.0-flash-001 33.81
openai/gpt-oss-120b 31.51
google/gemma-3-27b-it 30.05
google/gemma-3-12b-pt 29.31

YanoljaNEXT-Rosetta-12B-2510 achieves competitive translation quality while maintaining the efficiency of a 12B parameter model.

Intended Uses & Limitations

This model is intended for translating structured data (JSON format) while preserving the original structure. It is particularly well-suited for tasks such as localizing product catalogs, translating hotel reviews, or handling any other structured content that requires accurate translation.

Limitations

The model is primarily optimized for processing JSON data. Its performance on unstructured text or other data formats may vary. In some cases, the model may produce invalid JSON, repetitive output, or inaccurate translations.

License

This model is released under the Gemma license, inherited from its base model, google/gemma-3-12b-pt. Please consult the official Gemma license terms for detailed usage guidelines.

Citation

If you use this model, please consider citing:

@misc{yanolja2025yanoljanextrosetta,
  author = {Yanolja NEXT Co., Ltd.},
  title = {YanoljaNEXT-Rosetta-12B-2510},
  year = {2025},
  publisher = {Hugging Face},
  journal = {Hugging Face repository},
  howpublished = {\\url{https://huggingface.co/yanolja/YanoljaNEXT-Rosetta-12B-2510}}
}

References

This work utilizes several models and datasets. We would like to acknowledge the original authors for their valuable contributions to the field.

@misc{gemma3,
  author = {Google},
  title = {Gemma 3},
  year = {2024},
  publisher = {Google DeepMind},
  howpublished = {\\url{https://deepmind.google/models/gemma/gemma-3/}}
}

@misc{penedo2025fineweb2pipelinescale,
  title = {FineWeb2: One Pipeline to Scale Them All -- Adapting Pre-Training Data Processing to Every Language}, 
  author = {Guilherme Penedo and Hynek Kydlรญฤek and Vinko Sabolฤec and Bettina Messmer and Negar Foroutan and Amir Hossein Kargaran and Colin Raffel and Martin Jaggi and Leandro Von Werra and Thomas Wolf},
  year = {2025},
  eprint = {2506.20920},
  archivePrefix = {arXiv},
  primaryClass = {cs.CL},
  url = {https://arxiv.org/abs/2506.20920},
}

@misc{lozhkov2024fineweb-edu,
  author = {Lozhkov, Anton and Ben Allal, Loubna and von Werra, Leandro and Wolf, Thomas},
  title = {FineWeb-Edu: the Finest Collection of Educational Content},
  year = 2024,
  url = {https://huggingface.co/datasets/HuggingFaceFW/fineweb-edu},
  doi = {10.57967/hf/2497},
  publisher={Hugging Face}
}
Downloads last month
25
Safetensors
Model size
12B params
Tensor type
BF16
ยท
F8_E4M3
ยท
Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support

Model tree for Bedovyy/YanoljaNEXT-Rosetta-12B-2510-FP8-Dynamic

Quantized
(16)
this model