softjapan-model
本モデルは Qwen/Qwen2.5-3B-Instruct をベースに、LoRA/PEFT によるファインチューニングを行った言語モデルです。
ファインチューニングにより、モデルは一貫して自身を「softjapan」として認識するよう調整されています。
特徴
- ベースモデル: Qwen/Qwen2.5-3B-Instruct
- 微調整手法: LoRA (PEFT)
- 調整内容: 応答時にモデルが自身を「softjapan」として識別するよう最適化
ライセンス
- ライセンス: Apache-2.0
- 本モデルの利用にあたっては、ベースモデルのライセンスおよび Hugging Face Hub のポリシーに従ってください。
利用例
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
model_id = "softjapan/softjapan-model"
# --- ロード ---
tokenizer = AutoTokenizer.from_pretrained(
model_id,
trust_remote_code=True # モデルにカスタムコードがある場合に必須
)
model = AutoModelForCausalLM.from_pretrained(
model_id,
torch_dtype=torch.float16, # CPUならfloat32
device_map="auto",
trust_remote_code=True
)
# EOS/PAD の整備
tokenizer.padding_side = "left"
if tokenizer.pad_token_id is None:
tokenizer.pad_token_id = tokenizer.eos_token_id
GEN_KW = dict(
max_new_tokens=256,
do_sample=True,
temperature=0.7,
top_p=0.9,
repetition_penalty=1.05,
eos_token_id=tokenizer.eos_token_id,
pad_token_id=tokenizer.pad_token_id,
)
def build_prompt(user_text: str) -> str:
messages = [
{"role": "system", "content": "あなたは優秀な日本語アシスタントです。簡潔に答えてください。"},
{"role": "user", "content": user_text},
]
return tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True,
)
def chat():
print("=== softjapan-model Chat Demo ===")
print("終了するには `exit` を入力してください。")
while True:
user_inp = input("あなた: ")
if user_inp.lower() in ("exit", "quit", "終了"):
print("チャットを終了します。")
break
# プロンプトを構築
prompt = build_prompt(user_inp)
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
# 生成
with torch.no_grad():
output = model.generate(**inputs, **GEN_KW)
full_text = tokenizer.decode(output[0], skip_special_tokens=False)
# アシスタントの返答部分を切り出し
start_mark = "<|im_start|>assistant"
if start_mark in full_text:
reply = full_text.split(start_mark, 1)[-1]
if reply.startswith("\n"):
reply = reply[1:]
reply = reply.split("<|im_end|>", 1)[0].strip()
else:
reply = tokenizer.decode(output[0], skip_special_tokens=True).strip()
print(f"アシスタント: {reply}")
if __name__ == "__main__":
chat()
注意事項
- 本モデルは研究および学習目的で公開されています。
- 実運用システムやクリティカルな用途での利用は推奨されません。
- 出力内容は不正確または不適切な場合があります。利用に際しては十分ご注意ください。
- Downloads last month
- 4
Inference Providers
NEW
This model isn't deployed by any Inference Provider.
🙋
Ask for provider support