license: apache-2.0
language:
- ja
library_name: transformers
tags:
- roleplay
- merge
- mergekit
base_model:
- Aratako/Ninja-v1-RP
- Elizezen/Antler-7B
Ninja-v1-RP-expressive
GGUF版はこちら/Click here for the GGUF version
概要
This is a merge of pre-trained language models created using mergekit.
ロールプレイ用モデルであるAratako/Ninja-v1-RPをベースに、小説生成モデルであるElizezen/Antler-7Bの派生モデルをマージすることで表現力を強化したロールプレイ用モデルです。
プロンプトフォーマット
Vicunaのchat templateを利用してください。また、設定などを渡すシステムプロンプトは最初のUSER:
より前に入力されることを想定しています。また、マルチターンの対話を行う場合各ターンのアシスタントの応答の末尾にeos_token
(</s>
)を必ずつけてください。
{ロールプレイの指示、世界観・あらすじの説明、キャラの設定など}
USER: {userの最初の入力}
ASSISTANT:
なお、マージによりロールプレイへの理解力がやや薄れているからか時折ユーザー側のセリフを続けたり小説のようなものを書きだすことがあります。これについてはfew-shot promptingや再生成などで対応してください
マージの詳細
Elizezen/Antler-7Bに対し、まずmistralai/Mistral-7B-Instruct-v0.2のChat Vectorを加算した後、以下4つの英語RP用モデルのTask Vectorを0.8倍して加算し、4種類のTask Vector加算モデルを作成しました。
- senseable/WestLake-7B-v2
- SanjiWatsuki/Kunoichi-DPO-v2-7B
- SanjiWatsuki/Silicon-Maid-7B
- SanjiWatsuki/Loyal-Macaroni-Maid-7B
各モデルのTask Vectorの加算の式は以下の通りです。
new_model = Antler-7B + 0.8 * (Mistral-7B-Instruct-v0.2 - Mistral-7B-v0.1) + 0.8 * (target_model - Mistral-7B-v0.1)
次に、このTask Vector加算によってできた4モデルとMistral-7B-Instruct-v0.2の差分加算モデルを、Model Stockという手法を用い以下のようなconfigを使ってmergekitでマージし、Antler-7Bベースのモデルを作成しました。
models:
- model: ./Antler-7B-CV
- model: ./Antler-7B-CV-Kunoichi
- model: ./Antler-7B-CV-SiliconMaid
- model: ./Antler-7B-CV-WestLake
- model: ./Antler-7B-CV-LoyalMacaroniMaid
merge_method: model_stock
base_model: ./Antler-7B-CV
dtype: bfloat16
tokenizer_source: union
最後に、Aratako/Ninja-v1-RPに上記操作で出来上がったモデルをDARE TIES によってマージし、本モデルを作成しました。
models:
- model: Aratako/Ninja-v1-RP
# no parameters necessary for base model
- model: ./Antler-7B-MS # improve expression quality
parameters:
density: 0.7
weight: 0.5
merge_method: dare_ties
base_model: Aratako/Ninja-v1-RP
dtype: bfloat16
tokenizer_source: union