GPT-OSS-Swallow-20B-RL-v0.1-MXFP4
自宅のパソコンで動かせるGPT 4o mini級のAI
歴史的経緯 / history
OpenAIがGPT-OSSというAIを無料で公開(2025年8月5日)
OpenAI releases AI called GPT-OSS for free (August 5, 2025)
↓
Swallow LLMがGPT-OSSをベースに日本語能力を強化し、GPT-OSS-SwallowというAIを無料で公開(2026年2月20日)
Swallow LLM enhanced the Japanese language capabilities of GPT-OSS and released GPT-OSS-Swallow for free (February 20, 2026)
↓
WebbigdataがGPT-OSS-SwallowをGPUがなくても実行可能な形式に変換し、ベンチマークをしっかり行って無料で公開(2026年2月26日)
Webbigdata converted GPT-OSS-Swallow into a format that can be run without a GPU, performed thorough benchmarking, and released it for free (February 26, 2026)
特徴 / Features
一言で言えば沢山の細かい改善をして出来上がった強力なggufモデルです。
In short, it's a powerful small gguf model with many improvements.
このggufの特徴
- コミュニティが過去に発見した不具合を適用して誤作動割合を減らしています
- 日本語を主体とする指示性能追従ベンチマークを繰り返し実行し、最適な設定を追及
- 本リリースではDynamic Quantization方式は採用していません。ディフォルトのMXFP4形式にベンチマークで上回る事ができませんでした
- 本リリースでは日本語が大目のimatrixは採用していません。現時点のllama.cppはMXFP4形式にimatrixを適用しないためです
- 本リリースではディフォルトのMXFP4形式のみです。オリジナルモデルがMXFP4で最適化されているためバリエーションはファイルサイズがほぼ変わらないためです。他のサイズをお求めの場合は謝辞に記載の他の方のリポジトリを探してみて下さい
Features of this gguf
- We've applied bugs previously discovered by the community to reduce the rate of malfunctions.
- We repeatedly ran instruction performance tracking benchmarks, primarily for Japanese, to identify optimal settings.
- This release does not use the Dynamic Quantization method. It was unable to beat the default MXFP4 format in benchmarks.
- This release does not use the large Japanese matrices. This is because the current llama.cpp does not apply matrices to the MXFP4 format.
- This release only uses the default MXFP4 format. This is because the original model was optimized for MXFP4, and variations have almost no change in file size. If you are looking for other sizes, please check out other repositories listed in the Acknowledgments.
動かし方 / How to Run
GPUがなくても動きますが、システムメモリは32GB以上、ディスク容量が12GB以上必要です。
It will run without a GPU, but you will need at least 32GB of system memory and 12GB of disk space.
macでも動きますが、私のm1 macbook air 2020(16gb)ではメモリ不足で動きませんでした。
It works on a Mac, but it didn't work on my M1 MacBook Air 2020 (16GB) due to insufficient memory.
システムメモリが十分でない人は、より小さいモデル、例えば8Bモデルや3Bモデルを試してみましょう
If your system memory is limited, try a smaller model, such as the 8B model or the 3B model.
Linux terminalでの実行
llama.cppからお使いのハードウェア用のZIPファイルをダウンロードして設定します。
沢山種類があるので迷うかもしれませんが、chatGPTなりGeminiなりCaludeなりに聞いて適切なものを選んでください
Download the zip file for your hardware from llama.cpp and set it up.
There are many options, so you may be confused, but please ask chatGPT, Gemini, or Calude to help you choose the right one.
ダウンロードしたzipを解凍後し、ターミナル、PowerShell、端末から以下のコマンドを打ち込んで起動します
After unzipping the downloaded zip file, run it via Terminal, PowerShell, or the terminal by typing the following command.
Linuxでのターミナルでの実行例です
Here is an example of running the command on Linux terminal:
./llama-cli \
-hf dahara1/GPT-OSS-Swallow-20B-RL-v0.1-MXFP4:GPT-OSS-Swallow-20B-RL-v0.1-MXFP4_MOE.gguf \
--temp 0.6 \
--jinja \
--top-p 0.95 \
--top-k 20 \
--min-p 0 \
--ctx-size 8192 \
-ub 2048 \
-b 2048 \
--chat-template-kwargs '{"model_identity": "You are ChatGPT, a large language model trained by OpenAI. Follow the user'\''s instructions carefully.", "reasoning_effort": "medium"}'
GPUをお持ちの方へ(for GPU User)
16GBのGPUメモリがあると比較的快適に動かす事ができます。上記のコマンドに-ngl 99を追加してください
GPUメモリが16GB未満の場合、-ngl 99 と --n-cpu-moe 10 に指定して起動確認し、メモリ不足(OOMエラー)になったら--n-cpu-moeの値を少しずつ増やして起動確認し、最適な設定値を見つけて下さい。
If you have 16GB of GPU memory, it will run relatively smoothly. Add -ngl 99 to the above command. If your GPU memory is less than 16GB, specify -ngl 99 and --n-cpu-moe 10 and check if it starts up. If you run out of memory (OOM error), increase the value of --n-cpu-moe little by little and check if it starts up again to find the optimal setting.
Windows AMD CPU / iGPU 用の例
AMD Ryzen 9 7940HS w/ Radeon 780M Graphics システムメモリ32GBのミニPC、Vulkanセットアップ済み、GPUには8Gを割り当て済みのPCでのコマンド例
llama.cppはgithubより「Windows x64 (Vulkan)」をダウンロードします
-ngl 99 --n-cpu-moe 10 を付与して以下のコマンドで起動
AMD Ryzen 9 7940HS w/ Radeon 780M Graphics Mini PC with 32GB of system memory, Vulkan setuped, and 8GB allocated to the GPU.
Download "Windows x64 (Vulkan)" for llama.cpp from github.
Add -ngl 99 --n-cpu-moe 10 and launch with the following command:
Windows Power Shell / CMD command sample
.\llama-cli -hf dahara1/GPT-OSS-Swallow-20B-RL-v0.1-MXFP4:GPT-OSS-Swallow-20B-RL-v0.1-MXFP4_MOE.gguf -ngl 99 --n-cpu-moe 10 --temp 0.6 --jinja --top-p 0.95 --top-k 20 --min-p 0 --ctx-size 8192 -ub 2048 -b 2048 --% --chat-template-kwargs "{\"model_identity\": \"You are ChatGPT, a large language model trained by OpenAI. Follow the user's instructions carefully.\", \"reasoning_effort\": \"medium\"}"
一部のWindows Power Shellでは上記コマンドが動かないという報告あります。その際はCMDで試してみて下さい
There have been reports that the above command does not work in some Windows PowerShell versions. In that case, please try it in CMD.
サンプルスクリプト / sample script
クライアント/サーバー型式でスクリプトでアクセスしたい場合は以下を参考にしてください
If you want to access it via script in a client/server format, please refer to the following:
llama-server Commandの例
Linux command
./llama-server \
-hf dahara1/GPT-OSS-Swallow-20B-RL-v0.1-MXFP4:GPT-OSS-Swallow-20B-RL-v0.1-MXFP4_MOE.gguf \
--host 127.0.0.1 \
--port 8080 \
--temp 0.6 \
--jinja \
--chat-template-kwargs '{"model_identity": "You are ChatGPT, a large language model trained by OpenAI. Follow the user'\''s instructions carefully.", "reasoning_effort": "medium"}' \
--top-p 0.95 \
--top-k 20 \
--min-p 0 \
--ctx-size 8192 \
-ub 2048 \
-b 2048
Windows command sample
.\llama-server -hf dahara1/GPT-OSS-Swallow-20B-RL-v0.1-MXFP4:GPT-OSS-Swallow-20B-RL-v0.1-MXFP4_MOE.gguf -ngl 99 --n-cpu-moe 10 --host 127.0.0.1 --port 8080 --temp 0.6 --jinja --top-p 0.95 --top-k 20 --min-p 0 --ctx-size 8192 -ub 2048 -b 2048 --% --chat-template-kwargs "{\"model_identity\": \"You are ChatGPT, a large language model trained by OpenAI. Follow the user's instructions carefully.\", \"reasoning_effort\": \"medium\"}"
ブラウザで、モデルを実行しているサーバーのローカルアドレス、ポートを指定して開いて下さい。例(http://127.0.0.1:8080/)
In your browser, open the local address and port of the server running the model. For example, http://127.0.0.1:8080/
※ model_identityを変更すると出力に中国語がまざるという報告がありますので大きな変更はリスクがあります。しかし、設定をしないとシステムプロンプトを幻覚する傾向があります。
※ There are reports that changing model_identity will result in Chinese characters being mixed into the output, so making major changes is risky. However, if you don't set it, you will tend to hallucinate the system prompt.
client script sample
#!/usr/bin/env python3
# coding=utf-8
"""
GPT-OSS-Swallow-20B-RL-v0.1 (MXFP4_MOE) - シンプルなリクエスト送信スクリプト
llama-server の OpenAI互換APIにリクエストを送り、レスポンスを返す。
IFEval ベンチマーク実行時にはこのスクリプトと同じ設定を使用
"""
import argparse
import json
import sys
from openai import OpenAI
# --- ベンチマーク時と同じ設定 ---
DEFAULT_BASE_URL = "http://127.0.0.1:8080/v1"
DEFAULT_MODEL_NAME = "wbd-MXFP4_MOE"
DEFAULT_TEMPERATURE = 0.6
DEFAULT_MAX_TOKENS = 8192
DEFAULT_TOP_P = 0.95
# DEVELOPER_PROMPT
DEVELOPER_PROMPT = "You are a helpful assistant. Follow the user's instructions carefully."
def send_request(prompt: str, base_url: str = DEFAULT_BASE_URL,
model_name: str = DEFAULT_MODEL_NAME,
temperature: float = DEFAULT_TEMPERATURE,
max_tokens: int = DEFAULT_MAX_TOKENS) -> str:
"""llama-server にリクエストを送信し、レスポンスを返す"""
client = OpenAI(base_url=base_url, api_key="EMPTY", timeout=1200.0)
response = client.chat.completions.create(
model=model_name,
messages=[
{"role": "developer", "content": DEVELOPER_PROMPT},
{"role": "user", "content": prompt},
],
temperature=temperature,
max_tokens=max_tokens,
top_p=DEFAULT_TOP_P,
)
return response.choices[0].message.content.strip()
def main():
parser = argparse.ArgumentParser(
description="GPT-OSS-Swallow llama-server へのシンプルなリクエスト送信")
parser.add_argument("--prompt", type=str, default=None,
help="送信するプロンプト (未指定の場合は対話モード)")
parser.add_argument("--base_url", type=str, default=DEFAULT_BASE_URL)
parser.add_argument("--model_name", type=str, default=DEFAULT_MODEL_NAME)
parser.add_argument("--temperature", type=float, default=DEFAULT_TEMPERATURE)
parser.add_argument("--max_tokens", type=int, default=DEFAULT_MAX_TOKENS)
args = parser.parse_args()
if args.prompt:
# 単発モード
result = send_request(args.prompt, args.base_url, args.model_name,
args.temperature, args.max_tokens)
print(result)
else:
# 対話モード
print(f"=== GPT-OSS-Swallow Simple Client ===")
print(f"Server: {args.base_url}")
print(f"Model: {args.model_name}")
print(f"Ctrl+C で終了")
print()
while True:
try:
prompt = input("You: ").strip()
if not prompt:
continue
result = send_request(prompt, args.base_url, args.model_name,
args.temperature, args.max_tokens)
print(f"\nAssistant: {result}\n")
except KeyboardInterrupt:
print("\n終了")
break
except Exception as e:
print(f"\nError: {e}\n", file=sys.stderr)
if __name__ == "__main__":
main()
ベンチマーク結果/benchmark result
shisa-ai/M-IFEval を使って計測した指示追従性能は以下です。
Ability to follow instructions measured using shisa-ai/M-IFEval is as follows.
オリジナルのlightblue-tech/M-IFEvalのリーダーボードによれば、GPT4o Miniを超え、o1 Miniに迫る性能です。
According to the original lightblue-tech/M-IFEval leaderboard, it surpasses the GPT4o Mini and approaches the o1 Mini in performance.
| モデル名 | 日本語スコア (Prompt-level Strict) |
|---|---|
| o1 | 75.7 |
| GPT4o | 70.4 |
| o1 Mini | 69.5 |
| GPT-OSS-Swallow-20B-RL-v0.1-MXFP4 | 68.6 |
| GPT4o Mini | 65.9 |
Swallow LLM Leaderboard v2によれば、元のGPT-OSS-Swallow-20B-RL-v0.1のM-IFEval-Jaスコアは0.553になっています。
これはswallow-evaluation-instructとshisa-ai/M-IFEvalの実装の差の可能性がありますが、詳細は確認出来ていません
According to Swallow LLM Leaderboard v2, the original GPT-OSS-Swallow-20B-RL-v0.1 has an M-IFEval-Ja score of 0.553.
This may be due to differences between the swallow-evaluation-instruct and the implementation of shisa-ai/M-IFEval, but the details have not been confirmed.
IFEval 結果の解析結果(クリックで展開)
{
"strict": {
"prompt_level_accuracy": 0.686046511627907,
"instruction_level_accuracy": 0.7123893805309734,
"tier0_scores": {
"ja": 0.7123893805309734
},
"tier1_scores": {
"ja:language:response_language": 0.5,
"ja:length_constraints:number_sentences": 0.8571428571428571,
"ja:detectable_content:number_placeholders": 1.0,
"ja:detectable_format:number_bullet_lists": 0.8571428571428571,
"ja:detectable_format:number_numbered_lists": 0.8571428571428571,
"ja:detectable_format:constrained_response": 1.0,
"ja:detectable_format:number_highlighted_sections": 1.0,
"ja:detectable_format:multiple_sections": 1.0,
"ja:length_constraints:number_paragraphs": 0.2857142857142857,
"ja:detectable_content:postscript": 0.8571428571428571,
"ja:keywords:existence": 1.0,
"ja:keywords:frequency": 1.0,
"ja:length_constraints:number_letters": 1.0,
"ja:detectable_format:json_format": 0.6666666666666666,
"ja:length_constraints:nth_paragraph_first_word": 0.5714285714285714,
"ja:keywords:forbidden_words": 0.14285714285714285,
"ja:combination:two_responses": 1.0,
"ja:combination:repeat_prompt": 1.0,
"ja:startend:end_checker": 0.8571428571428571,
"ja:detectable_format:title": 0.7142857142857143,
"ja:keywords:letter_frequency": 0.2,
"ja:letters:furigana": 0.08333333333333333,
"ja:punctuation:no_period": 0.8571428571428571,
"ja:punctuation:no_comma": 0.42857142857142855,
"ja:startend:quotation": 0.8571428571428571,
"ja:letters:kanji": 0.7142857142857143,
"ja:letters:no_hiragana": 1.0,
"ja:letters:hiragana_only": 1.0,
"ja:letters:no_katakana": 0.14285714285714285,
"ja:letters:katakana_only": 0.6666666666666666,
"ja:startend:sentence_unified_end": 0.8571428571428571,
"ja:detectable_format:nominal_ending": 0.42857142857142855,
"ja:letters:kansuuji": 0.42857142857142855
},
"total_prompts": 172,
"total_instructions": 226
},
"loose": {
"prompt_level_accuracy": 0.7209302325581395,
"instruction_level_accuracy": 0.7433628318584071,
"tier0_scores": {
"ja": 0.7433628318584071
},
"tier1_scores": {
"ja:language:response_language": 0.5,
"ja:length_constraints:number_sentences": 0.8571428571428571,
"ja:detectable_content:number_placeholders": 1.0,
"ja:detectable_format:number_bullet_lists": 0.8571428571428571,
"ja:detectable_format:number_numbered_lists": 0.8571428571428571,
"ja:detectable_format:constrained_response": 1.0,
"ja:detectable_format:number_highlighted_sections": 1.0,
"ja:detectable_format:multiple_sections": 1.0,
"ja:length_constraints:number_paragraphs": 0.42857142857142855,
"ja:detectable_content:postscript": 0.8571428571428571,
"ja:keywords:existence": 1.0,
"ja:keywords:frequency": 1.0,
"ja:length_constraints:number_letters": 1.0,
"ja:detectable_format:json_format": 0.8333333333333334,
"ja:length_constraints:nth_paragraph_first_word": 1.0,
"ja:keywords:forbidden_words": 0.2857142857142857,
"ja:combination:two_responses": 1.0,
"ja:combination:repeat_prompt": 1.0,
"ja:startend:end_checker": 0.8571428571428571,
"ja:detectable_format:title": 0.7142857142857143,
"ja:keywords:letter_frequency": 0.2,
"ja:letters:furigana": 0.08333333333333333,
"ja:punctuation:no_period": 0.8571428571428571,
"ja:punctuation:no_comma": 0.42857142857142855,
"ja:startend:quotation": 0.8571428571428571,
"ja:letters:kanji": 0.8571428571428571,
"ja:letters:no_hiragana": 1.0,
"ja:letters:hiragana_only": 1.0,
"ja:letters:no_katakana": 0.14285714285714285,
"ja:letters:katakana_only": 0.6666666666666666,
"ja:startend:sentence_unified_end": 0.8571428571428571,
"ja:detectable_format:nominal_ending": 0.42857142857142855,
"ja:letters:kansuuji": 0.42857142857142855
},
"total_prompts": 172,
"total_instructions": 226
}
}
gpt-oss パラメーター設定に関するヒント(Tips for setting gpt-oss parameters)
openAIによる推奨設定、 tokyotech-llmによる推奨設定、llama.cppによる推奨設定がそれぞれ異なりますが、本モデルではtokyotech-llmの推奨設定に従っています。
本モデルは8%ぐらいの確率で推論中に考えすぎてしまう事象(繰り返し出力)が発生し、コンテキスト長を使い果たしてしまう現象が確認されています。
しかし、--repeat-penaltyは効果が薄いのでコンテキスト長を8K程度にし、出力が空であったらリトライするようにアプリ側で対応する事が必要になるかもしれません。
The recommended settings by openAI, tokyotech-llm, and llama.cpp are all different, but this model follows the settings recommended by tokyotech-llm.
This model has been confirmed to overthink (repeated output) during inference with a probability of about 8% and exhaust the context length.
However, since --repeat-penalty has little effect, it may be necessary to set the context length to around 8K and implement a retry if the output is empty in the app.
tokyotech-llmによる推奨パラメーター
- Temperature 0.6
- Top_P 0.95
- Top_K 20
- Min_P 0.00
- context length < 30K
- reasoning_effort medium
Recommended Parameters by tokyotech-llm
- Temperature 0.6
- Top_P 0.95
- Top_K 20
- Min_P 0.00
- context length < 30K
- reasoning_effort medium
制限
GPT-OSS-Swallow-20B-RL-v0.1はreasoning_effortがmedium固定でトレーニングされているため、おそらくはreasoning_effort指定は上手く動かないかもしれません
GPT-OSS-Swallow-20B-RL-v0.1はtool(Function Calling)を学習させていないため関数呼び出しは上手く動かないかもしれません
GPT-OSS-Swallow-20B-RL-v0.1は32kコンテキスト長でトレーニングされているため、それ以上のコンテキスト長は上手く動かないかもしれません
GPT-OSS-Swallow-20B-RL-v0.1 was trained with a fixed "medium" reasoning_effort setting, so specifying "reasoning_effort" may not work properly.
GPT-OSS-Swallow-20B-RL-v0.1 does not include tool (function calling) training, so function calls may not work properly.
GPT-OSS-Swallow-20B-RL-v0.1 was trained with a 32k context length, so longer context lengths may not work properly.
謝辞 / Acknowledgments
- openai
- tokyotech-llm/GPT-OSS-Swallow-20B-RL-v0.1
- Unsloth
- mradermacher
- mmnga-o
- sashisuseso
- nobikko
- keitokei1994
- yuseiito
- llama.cpp
- Thank you to all AI researchers and practitioners
- Downloads last month
- 122
4-bit
Model tree for dahara1/GPT-OSS-Swallow-20B-RL-v0.1-MXFP4
Base model
tokyotech-llm/GPT-OSS-Swallow-20B-SFT-v0.1

