Qwen3.5-Claude-4.6-Opus-Reasoning-Distilled + Ollama でローカルAIを動かす完全ガイド

はじめに

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と複数存在します

Qwen3.5-Claude-4.6-Opus-Reasoning-Distilled - a Jackrong Collection
We’re on a journey to advance and democratize artificial intelligence through open source and open science.

量子化バリアントとファイルサイズ

量子化サイズ用途
Q2_K3.64 GBVRAM/RAM が極めて少ない環境
Q3KM4.62 GB軽量重視
Q4KM5.63 GB推奨バランス
Q5KM6.52 GB精度重視
Q6_K7.36 GB高精度
Q8_09.53 GBほぼ無損失


Ollama でのセットアップ手順

Mac

必要OS: macOS 14 Sonoma 以降

  1. https://ollama.com/download/mac からDMGファイルをダウンロード
  2. DMGをマウントし、Ollamaアプリを Applications フォルダにドラッグ&ドロップ
  3. アプリを起動するとメニューバーにアイコンが表示される
Versionの確認方法

アプリケーションからターミナルをクリックします

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

# インストール確認
ollama --version

Windows

  1. https://ollama.com/download からEXEインストーラーをダウンロード
  2. ダウンロードした .exe ファイルをダブルクリックして「install」ボタンをクリック
  1. 画面の指示に従いインストールを完了
  2. スタートメニューから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)を使用する例で説明します。

以下のサイトにアクセスします

Jackrong/Qwen3.5-9B-Claude-4.6-Opus-Reasoning-Distilled-GGUF at main
We???re on a journey to advance and democratize artificial intelligence through open source and open science.

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

ダウンロードしたものはわかりやすいように特定のフォルダに入れます


3. Modelfile の作成

Ollama は Modelfile を使って GGUF をインポートします。

ダウンロードしたモデルと同じフォルダにModelfileを作成します

以下の内容をコピーして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やエラトステネスの篩法を検討

パラメータ調整のヒント

パラメータ推奨値役割
temperature0.6出力のランダム性。推論タスクは低めに設定
top_p0.95確率上位 95% のトークンからサンプリング
top_k20上位 20 トークンを候補に絞る
presence_penalty1.5同じ内容の繰り返しを抑制
num_ctx16384コンテキスト長。学習長に合わせた値

創作・雑談など自由な出力を求める場合は temperature0.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 の手軽なセットアップと組み合わせることで、完全ローカル・無料・プライバシー保護 の推論環境がすぐに構築できます。ぜひ試してみてください。


コメント

タイトルとURLをコピーしました