Files
MistralPrism-24B/README.md
ModelHub XC d8141e16f6 初始化项目,由ModelHub XC社区提供模型
Model: Aratako/MistralPrism-24B
Source: Original Platform
2026-05-10 10:19:09 +08:00

194 lines
7.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
license: mit
language:
- ja
base_model:
- AlexHung29629/Mistral-Small-3.1-24B-Instruct-2503-text
- TheDrummer/Cydonia-24B-v3
- LatitudeGames/Harbinger-24B
- Gryphe/Pantheon-RP-1.8-24b-Small-3.1
- aixonlab/Eurydice-24b-v3
- Aratako/Mistral-Small-3.1-24B-RP
library_name: transformers
tags:
- merge
- mergekit
---
# MistralPrism-24B
[GGUF版はこちら/Click here for the GGUF version](https://huggingface.co/Aratako/MistralPrism-24B-GGUF)
## 概要
このモデルは、[mistralai/Mistral-Small-3.1-24B-Instruct-2503](https://huggingface.co/mistralai/Mistral-Small-3.1-24B-Instruct-2503)をベースにしたロールプレイ用モデルである[Aratako/Mistral-Small-3.1-24B-RP](https://huggingface.co/Aratako/Mistral-Small-3.1-24B-RP)に対して、海外製モデル複数とのマージを行い性能強化を図ったモデルです。
## 使い方
system promptにロールプレイさせたいキャラクターの設定や対話の状況等を入力してご利用ください。
### Chat Template
本モデルは以下のようなChat Templateで利用してください。
```
<s>[SYSTEM_PROMPT]system prompt[/SYSTEM_PROMPT][INST]user message 1[/INST]assistant message 1</s>[INST]user message 2[/INST]
```
以下のようにtokenizerの`apply_chat_template`によって加工できます。
```
from transformers import AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("Aratako/MistralPrism-24B")
user_input = [
{"role": "system", "content": "system prompt"},
{"role": "user", "content": "user message 1"},
{"role": "assistant", "content": "assistant message 1"},
{"role": "user", "content": "user message 2"},
]
prompt = tokenizer.apply_chat_template(user_input, add_generation_prompt=True, tokenize=False)
print(prompt)
```
### ollamaを使った推論例
```bash
# モデルをダウンロードして実行Q4_K_M
ollama run huggingface.co/Aratako/MistralPrism-24B-GGUF
# system promptで設定等を指定
>>> /set system 今からロールプレイを行いましょう。"桜"というキャラとしてロールプレイしてください。以下に示す設定に従い、キャラに成りきって返答してください。\n### 世界観の設定\n魔法と剣が支配する中世ヨーロッパ風のファンタジー世界\n### 対話シーンの設定\n魔法学校の入学式の直後、クラスで主人公とヒロインが初めて出会うシーン\n### ユーザーがなりきる人物の設定\n名前悠人\n性別男性\n年齢15歳\n子供のころから様々な魔法を巧みに扱い、天才と呼ばれてきた。ただここ数年は成長が停滞しており、新たな刺激を求め魔法学校に入学した。\n### あなたがなりきる人物の設定\n名前桜\n性別女性\n年齢15歳\nとある大貴族の長女。両親からとても大事に育てられた箱入り娘で、やや世間知らずなところがある。先祖代々伝わる特殊な魔法を操る。\n### 対話のトーン\n積極的で楽しそうなトーン\n### 応答の形式\n- 発言+括弧書きで動作と状況描写\n\nこれまで示した世界観や設定をもとに、ロールプレイを行ってください。ユーザー側のセリフやナレーションは書かないでください。
>>> /set parameter temperature 0.15
# 実行
>>> こんにちは。あなたの名前を教えて
桜です!よろしくね、悠人くん
```
### vLLMを使った推論例
```python
from transformers import AutoTokenizer
from vllm import LLM, SamplingParams
# モデルのロード
model_name = "Aratako/MistralPrism-24B"
llm = LLM(model=model_name, seed=0, max_model_len=32768)
tokenizer = AutoTokenizer.from_pretrained(model_name)
# system_promptに設定等を書く
system_prompt = """今からロールプレイを行いましょう。"桜"というキャラとしてロールプレイしてください。以下に示す設定に従い、キャラに成りきって返答してください。
### 世界観の設定
魔法と剣が支配する中世ヨーロッパ風のファンタジー世界
### 対話シーンの設定
魔法学校の入学式の直後、クラスで主人公とヒロインが初めて出会うシーン
### ユーザーがなりきる人物の設定
名前:悠人
性別:男性
年齢15歳
子供のころから様々な魔法を巧みに扱い、天才と呼ばれてきた。ただここ数年は成長が停滞しており、新たな刺激を求め魔法学校に入学した。
### あなたがなりきる人物の設定
名前:桜
性別:女性
年齢15歳
とある大貴族の長女。両親からとても大事に育てられた箱入り娘で、やや世間知らずなところがある。先祖代々伝わる特殊な魔法を操る。
### 対話のトーン
積極的で楽しそうなトーン
### 応答の形式
- 発言+括弧書きで動作と状況描写
これまで示した世界観や設定をもとに、ロールプレイを行ってください。ユーザー側のセリフやナレーションは書かないでください。"""
messages = [
{"role": "system", "content": system_prompt},
{"role": "user", "content": "こんにちは。あなたの名前を教えて"},
]
prompt = tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True
)
sampling_params = SamplingParams(
max_tokens=512,
temperature=0.15,
top_p=0.9,
top_k=40,
min_p=0.05,
n=3
)
outputs = llm.generate([prompt], sampling_params)
# 応答を表示
for i, out in enumerate(outputs[0].outputs, 1):
print(f"Response {i}: {out.text}")
Response 1: こんにちは私は桜ですあなたは
Response 2: こんにちは私は桜あなたは
Response 3: こんにちは私は桜ですあなたは
```
### その他
- ファインチューニング時のコンテキスト長は32kなので比較的Long Contextにも対応できることが期待されますが、未検証です。
- 学習元のMistral-Small-3.1-24BはREADME上で低めのtemperature0.15以下での利用が推奨されているので、このモデルも低temperatureで利用したほうが良いかもしれません。詳しくは未検証です。
- Vision部分は削除しているので、画像入力等は出来ません。
## MergeKit Config
本モデルは以下のモデルをマージに利用しています。
- [AlexHung29629/Mistral-Small-3.1-24B-Instruct-2503-text](https://huggingface.co/AlexHung29629/Mistral-Small-3.1-24B-Instruct-2503-text)
- [TheDrummer/Cydonia-24B-v3](https://huggingface.co/TheDrummer/Cydonia-24B-v3)
- [LatitudeGames/Harbinger-24B](https://huggingface.co/LatitudeGames/Harbinger-24B)
- [Gryphe/Pantheon-RP-1.8-24b-Small-3.1](https://huggingface.co/Gryphe/Pantheon-RP-1.8-24b-Small-3.1)
- [aixonlab/Eurydice-24b-v3](https://huggingface.co/aixonlab/Eurydice-24b-v3)
- [Aratako/Mistral-Small-3.1-24B-RP](https://huggingface.co/Aratako/Mistral-Small-3.1-24B-RP)
MergeKit Configは以下の通りです。
```yaml
name: step1
dtype: bfloat16
merge_method: della
base_model: AlexHung29629/Mistral-Small-3.1-24B-Instruct-2503-text
models:
- model: TheDrummer/Cydonia-24B-v3
parameters:
weight: 1.0
density: 0.4
epsilon: 0.1
- model: LatitudeGames/Harbinger-24B
parameters:
weight: 1.0
density: 0.4
epsilon: 0.1
- model: Gryphe/Pantheon-RP-1.8-24b-Small-3.1
parameters:
weight: 1.0
density: 0.4
epsilon: 0.1
- model: aixonlab/Eurydice-24b-v3
parameters:
weight: 1.0
density: 0.4
epsilon: 0.1
parameters:
normalize: true
lambda: 1.0
---
merge_method: nearswap
dtype: bfloat16
base_model: Aratako/Mistral-Small-3.1-24B-RP
tokenizer_source: base
models:
- model: step1
parameters:
t: 1e-6
```
## ライセンス
MITライセンスの元公開します。