初始化项目,由ModelHub XC社区提供模型
Model: Tencent-Hunyuan/Hy-MT2-7B-GGUF Source: Original Platform
This commit is contained in:
82
train/llama_factory_support/hy_dense_template.py
Normal file
82
train/llama_factory_support/hy_dense_template.py
Normal file
@@ -0,0 +1,82 @@
|
||||
"""
|
||||
HunYuan Dense model chat template registration for LLaMA Factory.
|
||||
|
||||
Registers two templates:
|
||||
- hy_dense_1_8b: for HunYuan Dense 1.8B model (and 0.5B/4B)
|
||||
- hy_dense_7b: for HunYuan Dense 7B model
|
||||
|
||||
Usage:
|
||||
1. Copy this file's register_template blocks into LLaMA Factory's
|
||||
src/llamafactory/data/template.py (for upstream MR).
|
||||
2. Or import this module before training to register at runtime:
|
||||
import hy_dense_template
|
||||
|
||||
Note:
|
||||
The existing LLaMA Factory built-in templates `hunyuan` and `hunyuan_small`
|
||||
have subtle differences from the official chat_template.jinja files shipped
|
||||
with the models. These new templates are designed to match the official
|
||||
jinja templates exactly.
|
||||
"""
|
||||
|
||||
from llamafactory.data.template import register_template
|
||||
from llamafactory.data.formatter import EmptyFormatter, StringFormatter
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Dense 1.8B chat template (also applies to 0.5B/4B)
|
||||
#
|
||||
# Token format (from dense_1_8b_0508/global_step_560/chat_template.jinja):
|
||||
# BOS: <|hy_begin▁of▁sentence|>
|
||||
# System: {system_content}<|hy_place▁holder▁no▁3|>
|
||||
# User: <|hy_User|>{user_content}
|
||||
# Assistant: <|hy_Assistant|>{assistant_content}<|hy_place▁holder▁no▁2|>
|
||||
# Stop: <|hy_place▁holder▁no▁2|>
|
||||
#
|
||||
# Key differences from LF built-in `hunyuan_small`:
|
||||
# - User format: NO trailing <|hy_place▁holder▁no▁8|> after user content
|
||||
# - Assistant format: HAS <|hy_Assistant|> prefix before assistant content
|
||||
#
|
||||
# The eos_token in tokenizer_config.json is <|hy_place▁holder▁no▁2|>,
|
||||
# so we use efficient_eos=True to let LF append it via {eos_token} slot.
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
register_template(
|
||||
name="hy_dense_1_8b",
|
||||
format_user=StringFormatter(slots=["<|hy_User|>{{content}}"]),
|
||||
format_assistant=StringFormatter(slots=["<|hy_Assistant|>{{content}}", {"eos_token"}]),
|
||||
format_system=StringFormatter(slots=["{{content}}<|hy_place▁holder▁no▁3|>"]),
|
||||
format_prefix=EmptyFormatter(slots=[{"bos_token"}]),
|
||||
stop_words=["<|hy_place▁holder▁no▁2|>"],
|
||||
efficient_eos=True,
|
||||
)
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Dense 7B chat template
|
||||
#
|
||||
# Token format (from dense_7b_0509/global_step_560/chat_template.jinja):
|
||||
# BOS: <|startoftext|>
|
||||
# System: {system_content}<|extra_4|>
|
||||
# User: {user_content}<|extra_0|>
|
||||
# Assistant: {assistant_content}<|eos|>
|
||||
# Stop: <|eos|>
|
||||
#
|
||||
# Key differences from LF built-in `hunyuan`:
|
||||
# - Uses {bos_token} and {eos_token} slots for portability
|
||||
# - efficient_eos=True to use tokenizer's eos_token
|
||||
#
|
||||
# Note on multi-turn: The official jinja adds <|startoftext|> before each
|
||||
# user message (except the first one when system is present). LLaMA Factory's
|
||||
# format_prefix only adds BOS once at the beginning. For single-turn training
|
||||
# this is correct. For multi-turn, there is a minor discrepancy (missing
|
||||
# <|startoftext|> before 2nd+ user turns), which is acceptable for fine-tuning.
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
register_template(
|
||||
name="hy_dense_7b",
|
||||
format_user=StringFormatter(slots=["{{content}}<|extra_0|>"]),
|
||||
format_assistant=StringFormatter(slots=["{{content}}", {"eos_token"}]),
|
||||
format_system=StringFormatter(slots=["{{content}}<|extra_4|>"]),
|
||||
format_prefix=EmptyFormatter(slots=[{"bos_token"}]),
|
||||
stop_words=["<|eos|>"],
|
||||
efficient_eos=True,
|
||||
)
|
||||
Reference in New Issue
Block a user