Model Card for Model ID

Model Details

此模型微調自 benchang1110/Qwen2.5-Taiwan-3B-Instruct (基於阿里巴巴千問)。
微調資料來自經過 opencc 簡繁轉換的 Congliu/Chinese-DeepSeek-R1-Distill-data-110k ,也就是 deepseek-ai/DeepSeek-R1 所生成的思維鏈 (CoT)。 由於運算資源的限制,我們僅將數學相關的問題當作訓練集。

注意: 此模型的 tokenizer 和 deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B 是相同的 (經過簡繁轉換),和 benchang1110/Qwen2.5-Taiwan-3B-Instruct不同。
若要生成簡體中文,可以直接使用 deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B 的 tokenizer 即可。

Model Description

  • Developed by: benchang1110
  • Funded by [optional]: myself
  • Model type: Qwen2ForCausalLM
  • Language(s) (NLP): Tranditional Chinese (zh-tw), English
  • License: qwen-research
  • Finetuned from model [optional]: benchang1110/Qwen2.5-Taiwan-3B-Instruct

Training Details

Hyperparameter Value
learning_rate 2e-5
batch_size 4
num_epochs 3
warmup_ratio 0.05
weight_decay 1e-5
lr_scheduler cosine
max_seq_length 4096
max_grad_norm 1.0
gradient_accumulation_steps 1

GPU Hours: A100*15h

REASON_SFT_3B.png

使用數學資料集微調

dataset = load_dataset('benchang1110/Chinese-DeepSeek-R1-Distill-data-110k-opencc', split='train')
dataset = dataset1.filter(lambda x: 'math' in x['repo_name'].lower())

Uses

此模型能用來回答數學問題,<think> 已經加在 chat template 當中。

**USER**:Eliza每週前40小時的時薪是10美元。她的加班工資是平時每小時工資的1.2倍。如果Eliza這周工作了45小時,那麼她這周的收入是多少?
**ASSISTANT**:
嗯,好的,我現在要解決這個問題。Eliza每週的工作時間是45小時,她得到的是平時的時薪是10美元,而加班的話是平時的1.2倍。那她這周能賺多少錢呢?

首先,我需要確定她有多少小時是平時的工資,多少小時是加班的。因為題目裡說她每週前40小時是正常工資,超過的部分就是加班。所以,總共有45小時的話,前40小時是正常工資,剩下的5小時就是加班。

那平時的工資是每小時10美元,加班的話就是1.2倍,也就是10乘以1.2對吧?計算一下,10×1.2等於12美元每小時加班費。這樣,加班的5小時,每個小時是12美元,那加班部分的總收入應該是5小時×12美元/小時,等於60美元。

然後,正常工作的40小時,每小時10美元,這部分是40×10=400美元。然後把這兩部分加起來,400+60=460美元。所以Eliza這周的總收入應該是460美元?

不過等等,我得仔細檢查一下有沒有哪裡弄錯了。比如,是否加班時間正確?總工時45小時,前40小時是正常,所以加班的是5小時,沒錯。那加班的工資確實是10×1.2=12美元每小時,5小時的話是5×12=60。加上正常工資400,總和460。應該是對的。

或者有沒有可能題目中的“前40小時”指的是前四周的工作量?不過題目裡說的是“每週前40小時”,也就是說不管哪一週,前40小時都是正常的。所以無論她這周工作了多少小時,前40小時都是正常工資。所以沒問題,這周她工作的45小時中,前40小時是正常工資,剩下的5小時是加班。所以計算是對的。

那答案應該是460美元,也就是用數學符號框起來的話就是\boxed{460}。
</think>


Eliza這周工作了45小時,其中前40小時按平時時薪10美元計算,剩餘5小時為加班。加班工資為平時工資的1.2倍,即:

\[
10 \, \text{美元/小時} \times 1.2 = 12 \, \text{美元/小時}
\]

**正常工資部分**:  
\[
40 \, \text{小時} \times 10 \, \text{美元/小時} = 400 \, \text{美元}
\]

**加班工資部分**:  
\[
5 \, \text{小時} \times 12 \, \text{美元/小時} = 60 \, \text{美元}
\]

**總收入**:  
\[
400 \, \text{美元} + 60 \, \text{美元} = 460 \, \text{美元}
\]

最終答案:  
\boxed{460}<|end▁of▁sentence|>

雖然僅有使用數學資料集訓練,模型對於非數學的問題,如中華文化的理解和創作也非常生動。

**USER**:創作一首唐詩,描寫洗澡洗到一半沒有熱水的無奈和憤怒
**Assistant**: 
嗯,好的,我現在要創作一首唐詩,主題是關於洗澡時沒有熱水的無奈和憤怒。讓我仔細想想應該怎麼寫。首先,唐代的詩歌通常講究對仗工整、韻律和諧,所以結構上可能需要四句每句五個字或者七字,押韻的話應該用平水韻中的某個聲部。比如“東”、“冬”、“青”等韻腳。

那我先想一下,開頭的時候,人們洗澡的情景應該是怎樣的。唐代的人們可能喜歡用井水或者泉水來沐浴,但有時候可能遇到水溫不夠的問題。比如,可能剛下了一場雨,地勢較低的地方可能積滿了雨水,水質不是很好,或者水溫低得讓人不舒服。這時候,詩人可能會感到很沮喪,甚至有點生氣。

接下來,可能描述自己在洗澡過程中發現水溫不對,但又無法及時更換水源。這種情況下,心情應該是急躁的,甚至有些憤怒。比如,可能原本期待熱水澡能讓自己放鬆,但現在卻因為水溫問題而感到不快。這樣的對比會讓情感更加強烈。

然後,可以進一步展開,比如形容自己在洗澡時的不便,比如衣服被弄髒了,或者身體因為水溫過低而感到寒冷,導致動作緩慢。這樣的細節可以讓讀者感同身受。

另外,可能還會有一些典故或歷史背景的引用,比如古代的皇帝或者名士曾經遇到類似的問題,詩人藉此表達自己的不滿。例如,提到“漢家陵闕”、“秦王掃六合”等,讓詩歌更具歷史感和文化內涵。

最後,結尾部分可能需要用比喻或者對仗來表現自己的憤怒,比如用“冰刀”、“火爐”等形象化的語言,將水溫低比作冷酷無情,或者用“怒濤拍岸”來表達內心的激憤。

現在開始嘗試創作:

唐人沐浴半中休,冷泉濺袂不成流。
寒風瑟瑟侵肌骨,疑是冬來未解愁。
漢家陵闕空相憶,秦王劍氣何曾收。
心如鐵石難為水,一曲悲歌淚滿眸。

這樣可能比較符合唐詩的風格,對仗工整,韻律感強。開頭兩句寫沐浴中斷,因為水溫太低。第三句進一步描繪環境的寒冷,第四句則抒發內心的不悅。中間兩聯透過引用歷史典故,增加詩歌的文化深度,第五句可能回到現實,第六句再深化情緒。結尾處用“一曲悲歌淚滿眸”來表達最終的憤怒與無奈。

不過,可能還可以調整詩句的結構和韻律。比如,首句是否需要更準確地反映“半中休”的情況?比如“半途而廢”還是“中途停止”,這可能影響後面的句子。或者“半中休”是否正確?

再仔細想想,“半中休”可能指的是洗澡進行了一半,就因為水溫問題停了下來。這種情況下,可能應該強調這個過程中的突然中斷,而不是繼續進行。因此,第一句可以改為“沐浴中途暫暫停,冷泉濺袂不成流。”這樣更能突出突然中止的情況,同時保持對仗的工整。

調整後的詩句如下:

沐浴中途暫暫停,冷泉濺袂不成流。
寒風瑟瑟侵肌骨,疑是冬來未解愁。
漢家陵闕空相憶,秦王劍氣何曾收。
心如鐵石難為水,一曲悲歌淚滿眸。

這樣看起來更合理,第一句直接點明洗澡中途停止的原因,第二句具體描述水溫的問題。中間兩聯繼續以歷史典故烘託氛圍,結尾再次表達內心的憤怒和無奈。這樣的結構應該符合唐詩的特點。

不過,可能還需要注意押韻的準確性。例如,“暫停”、“流”、“愁”、“收”、“眸”這四個字的韻母都是“ou”,屬於同一韻部,這樣就符合平水韻中的某些韻腳。如果需要的話,可以調整詩句的順序,確保每個聯的韻腳正確。

或者,是否還有其他更好的韻腳選擇?比如“暫停”、“流”、“愁”、“收”、“眸”,這四個字的韻母都是“ou”,屬於“八齊”韻,符合平水韻中的某些韻部。但需要確認是否正確。比如,“暫停”(jian4)的韻母是前鼻音,而“流”(liu3)、“愁”(chou2)、“收”(shou1)、“眸”(mu4),這些字的韻母不同,但可能因為平仄的關係而被安排在一起。例如,可能使用“八齊”韻,即“暫停”、“流”、“愁”、“收”、“眸”這五字都屬於同一韻部,雖然最後一個字“眸”是後鼻音,但可能因為平仄關係而被歸為同一韻部。

總之,這樣的結構應該可行,並且符合唐代詩歌的風格。希望這樣創作出來的詩句能夠表達出作者在無熱水洗澡時的無奈和憤怒,同時運用恰當的典故和修辭手法,使得詩歌既有力度又有文採。</think>
沐浴中途暫暫停,冷泉濺袂不成流。
寒風瑟瑟侵肌骨,疑是冬來未解愁。
漢家陵闕空相憶,秦王劍氣何曾收。
心如鐵石難為水,一曲悲歌淚滿眸。

這首詩以唐代的對仗工整、韻律和諧為基底,透過生動的場景描繪與典故引用,深刻表達了詩人因無熱水而產生的無奈與憤怒。首聯簡潔勾勒洗澡中斷的場景,次聯細膩刻畫水溫過低帶來的寒意與不安,三聯巧妙融入歷史典故,增強歷史感與文化內涵,尾聯以“心如鐵石”比喻內心的激憤,終以“一曲悲歌淚滿眸”收束全篇,力透紙背。透過抑揚頓挫的節奏與深沉的情感,再現了古代文人士子面對生活困境時的複雜心理。<|end▁of▁sentence|>

Bias, Risks, and Limitations

此模型主要是用來回答數學問題,不適合做為日常問答使用。另外,因為僅使用單輪對話做訓練,多輪對話可能會產生意外的輸出。

How to Get Started with the Model

使用下面程式碼可以進行單輪對話。

import os
os.environ["CUDA_VISIBLE_DEVICES"] = "0"
import torch, transformers
from transformers import TextStreamer

def generate_response_fp():
    tokenizer = transformers.AutoTokenizer.from_pretrained("benchang1110/Qwen2.5-Taiwan-3B-Reason-SFT", use_fast=False)
    model = transformers.AutoModelForCausalLM.from_pretrained("benchang1110/Qwen2.5-Taiwan-3B-Reason-SFT", torch_dtype=torch.bfloat16, device_map=device,attn_implementation="flash_attention_2")
    
    streamer = TextStreamer(tokenizer, skip_prompt=True)
    while(1):
        prompt = input('USER:')
        if prompt == "exit":
            break
        print("Assistant: ")
        message = [
            {'content': prompt, 'role': 'user'},
        ]
        
        tokenized_chat = tokenizer.apply_chat_template(message,tokenize=True,add_generation_prompt=True,return_tensors='pt').to(device)
        _ = model.generate(tokenized_chat,use_cache=True,max_new_tokens=2048,streamer=streamer)

if __name__ == '__main__':
    device = 'cuda' if torch.cuda.is_available() else 'cpu'
    generate_response_fp()

Evaluation

我們將常見的數學 benchmark 翻譯成繁體中文或經過 opencc 簡繁轉換後再進行評估。

MATH-500 GSM8K CMATH
Ours 37.6 68.5 81.2

Citation

@misc{qwen2.5,
    title = {Qwen2.5: A Party of Foundation Models},
    url = {https://qwenlm.github.io/blog/qwen2.5/},
    author = {Qwen Team},
    month = {September},
    year = {2024}
}

@misc{deepseekai2025deepseekr1incentivizingreasoningcapability,
      title={DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning}, 
      author={DeepSeek-AI},
      year={2025},
      eprint={2501.12948},
      archivePrefix={arXiv},
      primaryClass={cs.CL},
      url={https://arxiv.org/abs/2501.12948}, 
}

@misc{Chinese-Data-Distill-From-R1,
  author = {Cong Liu, Zhong Wang, ShengYu Shen, Jialiang Peng, Xiaoli Zhang, ZhenDong Du, YaFang Wang},
  title = {The Chinese dataset distilled from DeepSeek-R1-671b},
  year = {2025},
  publisher = {HuggingFace},
  howpublished = {\url{https://huggingface.co/datasets/Congliu/Chinese-DeepSeek-R1-Distill-data-110k}},
}
Downloads last month
18
Safetensors
Model size
3.4B params
Tensor type
BF16
·
Inference Providers NEW
This model is not currently available via any of the supported Inference Providers.

Model tree for benchang1110/Qwen2.5-Taiwan-3B-Reason-SFT

Base model

Qwen/Qwen2.5-3B
Finetuned
(1)
this model
Quantizations
2 models

Dataset used to train benchang1110/Qwen2.5-Taiwan-3B-Reason-SFT

Collection including benchang1110/Qwen2.5-Taiwan-3B-Reason-SFT