CoolFace
Modelpublic

IamMcCoy/siwon-mini-instruct-0626

sourceHugging Faceupdated 2mo agoView on Hugging Face
0likes104downloads
Model Card

<p align="center"> <img src="https://cdn-uploads.huggingface.co/production/uploads/665818433a098887a5b95015/IlaWEzz4UrH7d14DkXGgQ.png" width="300" height="300"> </p>

siwon-mini-instruct-0626

This model is a fine-tuned version of `microsoft/Phi-4-mini-instruct`, adapted for Korean instruction-based tasks. The tuning was focused on enhancing Korean performance through supervised fine-tuning with Korean instruction datasets.


πŸ”§ Token Adjustments

The original model used the same token ID (199999) for multiple special tokens such as BOS, EOS, PAD, and UNK. This caused confusion in instruction-following tasks. We fixed this by remapping the token IDs as follows:

Token TypeOriginal IDFixed ID
BOS199999199999
EOS199999200020
PAD199999200029
UNK199999200030

These changes ensure proper differentiation and functioning of special tokens during generation and training.


πŸ—¨οΈ Chat Template

The chat template was updated accordingly to support multi-turn conversation formatting in the Korean context:

jinja2
{% for message in messages %}
{% if message['role'] == 'system' and 'tools' in message and message['tools'] is not none %}
{{ '<|' + message['role'] + '|>' + message['content'] + '<|tool|>' + message['tools'] + '<|/tool|>' + '<|end|>' }}
{% else %}
{{ '<|' + message['role'] + '|>' + message['content'] + '<|end|>' }}
{% endif %}
{% endfor %}
{% if add_generation_prompt %}{{ '<|assistant|>' }}{% endif %}

πŸ§ͺ Inference with Transformers

Below is an example of how to load and use the model with the adjusted tokenizer, token IDs, and custom prompt template.

Note: This model uses a custom chat_template and updated special token IDs: - <|end|> β†’ 200020 (EOS) - <|dummy_85|> β†’ 200029 (PAD) - Γ―ΒΏΒ½ β†’ 200030 (UNK)
python
from transformers import AutoTokenizer, AutoModelForCausalLM

model_path = "IamMcCoy/siwon-mini-instruct-0626"

model = AutoModelForCausalLM.from_pretrained(
    model_path,
    device_map="auto",
    torch_dtype=torch.bfloat16,
    trust_remote_code=True
)

tokenizer = AutoTokenizer.from_pretrained(
    model_path,
    trust_remote_code=True,
)

messages = [
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "μ•ˆλ…•ν•˜μ„Έμš”."},
    ]

inputs = tokenizer.apply_chat_template(messages, return_tensors="pt").to(model.device)

output = model.generate(
    **inputs,
    max_new_tokens=2048,
    # do_sample=True, # Optional
    # top_p=0.95, # Optional
    # temperature=0.6, # Optional
    # repetition_penalty=1.1, # Optional
)

response = tokenizer.decode(output[0][inputs["input_ids"].shape[1]:], skip_special_tokens=True)
print(response)

πŸ“Š Model Performance Comparison

Performance scores across three Korean language benchmarks (KMMLU, kobest, pawsxko).

ModelKMMLU (0-shot)ko_best (5-shot)pawsx_ko
Phi-4-mini-instruct0.31610.63410.5300
kanana-1.5-2.1b-instruct-25050.15770.71650.5070
EXAONE-3.5-2.4B-Instruct0.30710.64960.5655
siwon-mini-instruct-06260.33870.55760.5485

πŸ“Œ Caution

  • β€”Commercial use is strictly prohibited.
  • β€”This model is intended for research and educational use only.
  • β€”Redistribution or use in commercial products or services is not allowed.

✍️ Acknowledgments

  • β€”Base model: microsoft/Phi-4-mini-instruct
  • β€”Special thanks to the open-source community for instruction-tuning resources and Korean language corpora.

πŸ™ Feedback & Contributions

We welcome any feedback to improve the model’s performance, usability, and alignment with Korean instruction tasks. If you encounter any issues or have suggestions, please feel free to open an issue on the Hugging Face model page.

Your input is greatly appreciated and will help us enhance the model further.