Model Card for MagicSpellGemma

This model is a fine-tuned version of google/gemma-3-270m-it. It has been trained using TRL.

Quick start

Install

pip install torch transformers accelerate

app.py

import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
from transformers import pipeline
from huggingface_hub import login

# 模型的名稱
MODEL_ID = "NormanHsiao/MagicSpellGemma"

# ❗ 1. 登入 Hugging Face 帳號
try:
    # 記得替換成您的實際權杖!
    login(token="YOUR_HF_TOKEN") 
    print("Hugging Face 登入成功。")
except Exception as e:
    # 這裡的錯誤不一定影響後續載入,因為載入模型時會自動提示登入
    # 程式將繼續嘗試載入,如果權杖問題,會報新的錯誤
    print(f"Hugging Face 登入嘗試失敗 (可能已登入或需手動登入): {e}")


# --- 模型載入 ---
print(f"正在載入模型: {MODEL_ID}...")

# 檢查是否有 GPU (用於訊息顯示,實際裝置分配由 device_map='auto' 處理)
device_type = "cuda" if torch.cuda.is_available() else "cpu"
print(f"偵測到的最佳運行裝置為: {device_type}")

try:
    # 載入分詞器和模型
    tokenizer = AutoTokenizer.from_pretrained(MODEL_ID)
    model = AutoModelForCausalLM.from_pretrained(
        MODEL_ID,
        torch_dtype=torch.bfloat16, # 節省 VRAM,提高速度 (如果您的 GPU 支援的話)
        device_map="auto"           # <--- 這裡負責自動將模型放在裝置上
    )

    # 建立生成文字的 pipeline
    # 修正:移除 device 參數,因為 model 已經被 device_map="auto" 處理了
    generator = pipeline(
        "text-generation",
        model=model,
        tokenizer=tokenizer,
    )

    print("模型載入完成。")

    # --- 執行文字生成 (Inference) ---
    
    # 您的輸入提示
    prompt = "深淵の闇より出でし黒き炎よ、我が敵を焼き尽くせ"

    # Gemma 模型需要遵循一個特定的對話格式 (Chat Template)。
    messages = [
        {"role": "user", "content": prompt}
    ]
    
    # 將對話格式化成模型所需的輸入字串
    formatted_prompt = tokenizer.apply_chat_template(
        messages, 
        tokenize=False, 
        add_generation_prompt=True 
    )
    
    print("\n--- 正在生成回覆 ---")
    
    # 生成參數設定
    generation_args = {
        "max_new_tokens": 500,     # 最大生成長度
        "temperature": 0.7,        # 調整隨機性 (較高值更具創意)
        "do_sample": True,         # 啟用採樣
        "pad_token_id": tokenizer.eos_token_id # 設定 pad token 以避免警告
    }
    
    # 執行生成
    outputs = generator(formatted_prompt, **generation_args)
    
    # 輸出結果清理
    generated_text = outputs[0]["generated_text"]
    
    # 清理輸出,只保留模型的實際回覆
    # 由於 Gemma 的輸出包含輸入提示和格式標記,我們需要將它從完整輸出中分離
    final_response = generated_text.split("<start_of_turn>model\n")[-1].split(tokenizer.eos_token)[0].strip()

    
    print(final_response)
    print("\n--- 生成完成 ---")

except Exception as e:
    print(f"\n運行時發生錯誤: {e}")
    print("請確認您已正確安裝所有函式庫,且 Hugging Face 權杖和模型條款已正確設定。")

Training procedure

This model was trained with SFT.

Framework versions

  • TRL: 0.23.0
  • Transformers: 4.56.2
  • Pytorch: 2.5.1+cu121
  • Datasets: 4.1.1
  • Tokenizers: 0.22.1

Citations

Cite TRL as:

@misc{vonwerra2022trl,
    title        = {{TRL: Transformer Reinforcement Learning}},
    author       = {Leandro von Werra and Younes Belkada and Lewis Tunstall and Edward Beeching and Tristan Thrush and Nathan Lambert and Shengyi Huang and Kashif Rasul and Quentin Gallou{\'e}dec},
    year         = 2020,
    journal      = {GitHub repository},
    publisher    = {GitHub},
    howpublished = {\url{https://github.com/huggingface/trl}}
}
Downloads last month
-
Safetensors
Model size
0.3B params
Tensor type
BF16
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for NormanHsiao/MagicSpellGemma

Finetuned
(1057)
this model

Space using NormanHsiao/MagicSpellGemma 1