はじめに
Qwen3.5-9B-Claude-4.6-Opus-Reasoning-Distilled-GGUF は、Alibaba の Qwen3.5-9B をベースに、Claude 4.6 Opus の推論軌跡を知識蒸留(Knowledge Distillation) して作成されたローカル推論特化型モデルです。
<think> タグによる Chain-of-Thought (CoT) 推論を実装しており、数学・コーディング・論理推論タスクで高い精度を発揮します。Apache 2.0 ライセンスで商用利用も可能です。
学習パイプラインの概要
ベースモデル (Qwen3.5-9B)
│
▼
教師あり微調整 (SFT) + LoRA
(「<|im_start|>assistant\n<think>」をマスクした回答のみの学習)
│
▼
最終テキストモデル (Qwen3.5-9B-Claude-4.6-Opus-Reasoning-Distilled)
この記事では Ollama を使ってこのモデルをローカルで動かす手順を解説します。
モデルの特徴
今回は9Bを紹介します。
| 項目 | 詳細 |
|---|---|
| ベースモデル | Qwen3.5-9B |
| パラメータ数 | 9B |
| 蒸留元 | Claude 4.6 Opus |
| 推論形式 | <think>...</think> + 最終回答 |
| コンテキスト | 16,384 tokens |
| ライセンス | Apache 2.0 |
| 形式 | GGUF |
他のパラメータ数については、0.8B,2B,4B,9B,27B,32Bと複数存在します

量子化バリアントとファイルサイズ
| 量子化 | サイズ | 用途 |
|---|---|---|
| Q2_K | 3.64 GB | VRAM/RAM が極めて少ない環境 |
| Q3KM | 4.62 GB | 軽量重視 |
| Q4KM | 5.63 GB | 推奨バランス |
| Q5KM | 6.52 GB | 精度重視 |
| Q6_K | 7.36 GB | 高精度 |
| Q8_0 | 9.53 GB | ほぼ無損失 |
Ollama でのセットアップ手順
Mac
必要OS: macOS 14 Sonoma 以降
- https://ollama.com/download/mac からDMGファイルをダウンロード
- DMGをマウントし、Ollamaアプリを
フォルダにドラッグ&ドロップ - アプリを起動するとメニューバーにアイコンが表示される
Versionの確認方法
アプリケーションからターミナルをクリックします

以下のコマンドを実行してバージョンが表示されれば正しくインストールされています
# インストール確認
ollama --version

Windows
- https://ollama.com/download からEXEインストーラーをダウンロード
- ダウンロードした
.exeファイルをダブルクリックして「install」ボタンをクリック

- 画面の指示に従いインストールを完了
- スタートメニューからOllamaを起動
Version確認方法
以下のコマンドを実行するとOllamaのバージョンが確認できます
ollama --version

Linux
ターミナルで以下の1コマンドを実行するだけです:
curl -fsSL https://ollama.com/install.sh | sh
Linuxにインストールすると、ollama.service というsystemdサービスが自動作成され、OS起動時に自動的にOllamaが起動します。
# サービスの状態確認
sudo systemctl status ollama
# サービスの手動起動
sudo systemctl start ollama
# インストール確認
ollama --version
2. GGUF ファイルのダウンロード
Hugging Face の リポジトリから GGUF ファイルをダウンロードします。ここでは 推奨バランスの Q4_K_M(5.6 GB)を使用する例で説明します。
以下のサイトにアクセスします

ダウンロードボタンをクリックするとダウンロードが行えます

ダウンロードしたものはわかりやすいように特定のフォルダに入れます
3. Modelfile の作成
Ollama は Modelfile を使って GGUF をインポートします。
ダウンロードしたモデルと同じフォルダにを作成します
以下の内容をコピーしてModefileに 貼り付けてください
FROM ./Qwen3.5-9B-Uncensored-HauhauCS-Aggressive-Q8_0.gguf
TEMPLATE {{ .Prompt }}
RENDERER qwen3.5
PARSER qwen3.5
PARAMETER temperature 0.6
PARAMETER top_p 0.95
PARAMETER top_k 20
PARAMETER num_ctx 16384
PARAMETER presence_penalty 1.5
ポイント:
num_ctx 16384はこのモデルの学習コンテキスト長に合わせた値です。 ハードウェアに余裕がある場合は32768まで増やすことも可能です。
最終的な構成は以下のようになります

4. Ollama モデルの登録
ollama create qwen3.5-claude-distilled -f ./Modelfile
インポートが完了すると以下のように表示されます

登録されたモデルを確認:
ollama list

5. 実行
インタラクティブチャット
ollama run qwen3.5-claude-distilled
プロンプトが表示されれば起動成功です。そのまま日本語でも質問できます。

例: 数学の問題
>>> 素数を判定するPython関数を書いて、計算量も説明してください。
出力例:
# 素数判定のPython関数と計算量解説
## Python実装
```python
import math
def is_prime(n: int) -> bool:
"""
素数判定関数
Args:
n: 整数
Returns:
nが素数の場合True、そうでない場合False
"""
# 2以下の数は素数ではない(1は特別扱い)
if n <= 1:
return False
# 2と3は素数
if n <= 3:
return True
# 偶数や3の倍数は素数ではない
if n % 2 == 0 or n % 3 == 0:
return False
# √nまで6k±1形式でチェック(6k±1以外には素因数なし)
i = 5
while i * i <= n:
if n % i == 0 or n % (i + 2) == 0:
return False
i += 6
return True
# テスト
if __name__ == "__main__":
test_numbers = [1, 2, 3, 4, 5, 17, 18, 97, 100, 997, 104729]
for num in test_numbers:
print(f"{num}: {'素数' if is_prime(num) else '合成数'}")
```
## 出力例
```
1: 合成数
2: 素数
3: 素数
4: 合成数
5: 素数
17: 素数
18: 合成数
97: 素数
100: 合成数
997: 素数
104729: 素数
```
## 計算量の説明
### 時間計算量:O(√n)
| 要素 | 詳細 |
|------|------|
| **最悪ケース** | √n回の除算チェック |
| **平均ケース** | √n/3回程度(6k±1形式のため) |
| **理由** | 素因数は√nを超えることはできないから |
**なぜ√nまででよいのか?**
```
もし n = a × b (a ≤ b) とすると、a² ≤ a×b = n
→ a ≤ √n
つまり、最小の素因数は√n以下に必ず存在する
```
### 空間計算量:O(1)
- 追加メモリ使用量は定数級
- 変数のみを使用(再帰なし)
## アルゴリズム比較
| アルゴリズム | 時間計算量 | 用途 |
|-------------|-----------|------|
| **試除法** | O(√n) | 個別判定、小〜中規模 |
| **エラトステネスの篩** | O(n log log n) | 1〜Nまでの全素数 |
| **Miller-Rabin** | O(k·log³n) | 大整数、確率的 |
## 高速化のための工夫
```python
def is_prime_optimized(n: int) -> bool:
"""さらに最適化した実装"""
if n < 2:
return False
if n == 2 or n == 3:
return True
if n % 2 == 0 or n % 3 == 0:
return False
# 6k±1形式でチェック(素数はこの形のみ)
i = 5
while i * i <= n:
if n % i == 0 or n % (i + 2) == 0:
return False
i += 6
return True
```
## まとめ
- **基本アルゴリズム**: √nまで試す(O(√n))
- **Python実装**: 6k±1形式を活用して効率化
- **大規模な場合**: Miller-Rabinやエラトステネスの篩法を検討
パラメータ調整のヒント
| パラメータ | 推奨値 | 役割 |
|---|---|---|
temperature | 0.6 | 出力のランダム性。推論タスクは低めに設定 |
top_p | 0.95 | 確率上位 95% のトークンからサンプリング |
top_k | 20 | 上位 20 トークンを候補に絞る |
presence_penalty | 1.5 | 同じ内容の繰り返しを抑制 |
num_ctx | 16384 | コンテキスト長。学習長に合わせた値 |
創作・雑談など自由な出力を求める場合は temperature を 0.8〜1.0 に上げてください。
数学・コード生成など正確性重視の場合は 0.4〜0.6 が適切です。
まとめ
Qwen3.5-9B-Claude-4.6-Opus-Reasoning-Distilled は、Claude 4.6 Opus の高度な推論能力を 9B パラメータのローカルモデルに蒸留した意欲的なプロジェクトです。
- 9B という小さなサイズでも CoT 推論により高品質な出力
- Apache 2.0 で商用・個人利用ともに自由
- Q4KM なら 6GB 未満 で動作し、一般的なラップトップでも実行可能
Ollama の手軽なセットアップと組み合わせることで、完全ローカル・無料・プライバシー保護 の推論環境がすぐに構築できます。ぜひ試してみてください。


コメント