エージェントと自動化

Cloudflare Clefをローカルで実行できる?27B・9Bの選び方とSystemOneの使い方

Clefは定義済みの質問と選択肢に対する確率を返し、分類やルーティングを支援します。

CloudflareのClef 27BとClef-Flash 9Bは、テキスト・JSON・画像・動画について定義済みの質問に1回で答え、各選択肢の確率を返します。Apple SiliconではoMLX 0.7.1.dev1とMLX1量子化2モデルを使って実行できます。Model Downloaderからチェックポイント3を取得し、/v1/modelsでAPI4モデルIDを確認してから、APIキーを付けてstateとquestionsを/v1/systemoneに送ります。サーバー向けのSGLang/H200手順も紹介します。

実行条件と要点
  • ClefはQwen3.8-27Bベースの27Bモデル、Clef-FlashはQwen3.5-9Bベースの9Bモデルです。
  • 両モデルはテキスト・JSON・画像・動画のstateを処理し、noul・choice・score形式で回答します。
  • Hugging Faceのモデルカードには、torch 2.11とtransformers 5.10.2を使い、H200 1基でテストした例が記載されています。
  • 両モデルはJev/SystemOne APIと互換性があり、/v1/systemoneエンドポイントを使います。

問い合わせをstateとして送り、判断する質問を定義します

支払いの問題を顧客が報告したとします。問い合わせ内容やJSONの注文記録をstateに入れ、緊急度と担当チームをquestionsで尋ねます。Clefは選択結果と各選択肢の確率を返すため、アプリケーションでチケットの振り分けや人による確認に利用できます。

CloudflareのClefとClef-Flashは自由形式の文章を続けて生成するチャットボットではなく、型付きの質問に答えるdecision modelです。noulは命題が真である確率、choiceは定義済みの名前からの選択、scoreは順序尺度の評価を返します。結果を受けて次の処理を行うのは呼び出し側のコードです。

両モデルはテキスト・JSON・画像・動画をstateとして受け取り、Jev/SystemOne APIと互換性があります。長文の作成やサポート回答には生成LLM5を組み合わせ、振り分けの判断をClefに任せる構成が適しています。

27Bと9Bのどちらを使うか選びます

ClefはQwen3.8-27Bベースの27Bモデル、Clef-FlashはQwen3.5-9Bベースの9Bモデルです。Cloudflareは高い精度を重視する判断にはClef、レイテンシを抑えたい場合にはClef-Flashを提案しています。どちらも画像と動画を入力できます。

個人用Apple Silicon MacではoMLXのMLXチェックポイントから始められます。Jundot/clef-oQ4eは27Bでファイルが約17GB、Jundot/clef-flash-oQ4eは9Bで約6.28GBです。入力画像と作業メモリの余裕を残してモデルを選びます。両チェックポイントはApache-2.0ライセンスです。

Cloudflareの元モデルカードには、torch 2.11、transformers 5.10.2、H200 1基でテストしたSGLangの例があります。これはサーバー向けの手順です。MacではoMLX 0.7.1.dev1がdecisionモデルを自動検出します。

開いたデスクトップタワーの中にグラフィックカードが見えます。ケーブルでつながれた紙カード4枚と、アナログメーター4台が机の上にあります。
サンプルのチケットでは、障害の状況を`state`に入れ、緊急度と担当チームを`questions`で尋ねます。

Apple Silicon MacにoMLXを入れてClefをダウンロードします

oMLX 0.7.1.dev1はApple SiliconとmacOS 15以降に対応しています。公式リリースからmacOSに合うDMGをダウンロードし、Applicationsにインストールしてアプリを開きます。ウェルカム画面でモデルディレクトリを指定し、サーバーを起動してください。

ダッシュボードのModel DownloaderでJundot/clef-flash-oQ4eまたはJundot/clef-oQ4eを検索してダウンロードします。Clef-Flashは約6.28GB、Clefは約17GBです。oMLXは設定済みディレクトリのモデルをスキャンし、decisionタイプを自動検出します。チェックポイントを手動でモデルフォルダーにコピーした場合は、サーバーを再起動して認識させます。

標準のサーバーアドレスはhttp://127.0.0.1:8000です。ブラウザーで/adminを開き、サーバー設定にAPIキーを保存します。後述のcurlリクエストにも同じキーを使い、ローカルサーバーで認証します。

サーバーが起動したら、ブラウザーでhttp://127.0.0.1:8000/adminを開き、モデルが表示されるか確認します。oMLXアプリではメニューバーからサーバーを起動し、状態を確認できます。

ターミナルから別のサーバーを起動する場合は、DMGアプリが用意するCLI6 shimを使えます。アプリ管理のサーバーを停止し、--model-dirにはWelcome画面で選んだのと同じモデルフォルダーを指定します。別途CLIをインストールする必要はありません。

選択したモデルフォルダーを指定してCLIサーバーを起動
~/.omlx/bin/omlx serve --model-dir "/PATH/TO/SELECTED_MODEL_DIRECTORY" --api-key "YOUR_OMLX_API_KEY" --host 127.0.0.1 --port 8000
Welcome画面で指定したフォルダーのパスをそのまま使います。
銀色の小型デスクトップの横に3項目の一覧を表示したモニターがあり、机にキーボードとカードトレーが置かれています。
Apple SiliconではoMLXとClefチェックポイントを取得し、ローカル判断を試せます。

SystemOneリクエストを送り、確率付きの回答を確認します

まずAPIキーで/v1/modelsを照会し、レスポンスのdata[].idの値をコピーします。モデルディレクトリやalias設定によってIDの形式は異なることがあります。

サーバーが公開するモデルIDを一覧表示
curl http://127.0.0.1:8000/v1/models -H 'Authorization: Bearer YOUR_OMLX_API_KEY'
レスポンスから実際のdata[].idの値をコピーし、次のリクエストで使います。

コピーした値をYOUR_DECISION_MODEL_IDに入れてSystemOneリクエストを送ります。APIキーのプレースホルダーも先ほど設定した値に置き換えてください。

SystemOneの判断リクエストを送信
curl http://127.0.0.1:8000/v1/systemone -H 'Authorization: Bearer YOUR_OMLX_API_KEY' -H 'Content-Type: application/json' -d '{
  "model": "YOUR_DECISION_MODEL_ID",
  "state": "決済が1時間失敗し続け、すべての顧客の注文が止まっています。",
  "questions": {
    "urgent": {"type": "noul", "instructions": "この依頼は緊急ですか?"},
    "team": {"type": "choice", "instructions": "どのチームが対応すべきですか?", "criteria": {"billing": "決済と返金", "technical": "障害とエラー", "sales": "料金プランとアップグレード"}}
  }
}'

成功すると、answers.urgentに緊急度の確率、answers.teamに選択したチームと各選択肢の確率が表示されます。27Bモデルを使う場合は、/v1/modelsのレスポンスから実際のdata[].idをコピーしてYOUR_DECISION_MODEL_IDに指定します。チケットの振り分け条件と人が確認する確率のしきい値は、接続先のアプリで設定します。

H200サーバーではCloudflareのSGLang手順を使います

データセンター向けH200で元のチェックポイントをサーバー実行する場合は、CloudflareのモデルカードにあるSGLang例を使えます。NVIDIA GPU7を使えるDocker環境を用意したLinuxで実行し、初回起動時にHugging Faceからモデルファイルをダウンロードします。

SGLangでCloudflare Clefを実行
docker run --gpus all --shm-size 32g -p 127.0.0.1:30000:30000 -v ~/.cache/huggingface:/root/.cache/huggingface --ipc=host lmsysorg/sglang:dev-clef sglang serve --model-path Cloudflare/clef --host 0.0.0.0 --port 30000
コマンドを実行したターミナルでモデルのダウンロードと読み込み状況を確認します。

Clef-Flashを使う場合は、--model-path Cloudflare/clefを--model-path Cloudflare/clef-flashに変更します。モデルカードのテスト環境はH200 1基です。ホストポートはlocalhostにバインドされます。個人用Macでは前述のoMLX手順を使ってください。

サーバーが起動しない場合はモデルIDと機器要件を確認します

oMLXのモデル一覧に表示されない場合は、Model DownloaderでリポジトリIDを再検索します。チェックポイントを手動でコピーした場合は、設定済みのモデルディレクトリ内にファイルがあることを確認してからサーバーを再起動してください。

401が返る場合は、アプリでは/adminで保存したAPIキー、CLIでは--api-keyの値とAuthorization: Bearerの値が一致するか確認します。モデルファイルが見つからない場合は、Hugging FaceのリポジトリIDとローカルのモデルディレクトリを照合します。Clefチェックポイントでは、重みとともにjoint_head.safetensorsとjoint_head_config.jsonも必要です。

サーバーが動作していてもリクエストが失敗する場合は、エンドポイントが/v1/systemoneか、modelに/v1/modelsで確認したIDを指定したか、questionsに型付き質問があるかを確認します。画像・動画はテキストリクエストの成功後に追加してください。

prefix cacheから複数の判断リクエストを並列処理するSGLangサーバー
H200サーバー向けの実行例はSGLangを使います。

用語の注釈

  1. MLX — Appleが開発する機械学習フレームワークで、Apple SiliconのCPUとGPUが共有するメモリを使ってモデルを実行します。

    本文に戻る
  2. 量子化 — モデルの重みや計算値を少ないビット数で表し、保存容量やメモリ使用量を減らす方法です。表現が粗くなるため、精度にも影響することがあります。

    本文に戻る
  3. チェックポイント — 学習済みモデルの重みなどを保存したファイルです。同じモデル系列でも、版や用途によって異なるチェックポイントを使うことがあります。

    本文に戻る
  4. API — 別のコードからプログラムの機能を呼び出すための決められたインターフェースです。

    本文に戻る
  5. 大規模言語モデル — 大量のテキストデータから言語パターンを学び、文脈に沿ったテキストを処理・生成するモデルです。

    本文に戻る
  6. CLI — Command-Line Interfaceの略です。ターミナルにコマンドを入力してプログラムを操作する方式です。

    本文に戻る
  7. GPU — 多くの計算を並列に処理するプロセッサーです。AIモデルの実行ではモデル計算を担います。

    本文に戻る

よくある質問

この記事で最初に確認すべきことは何ですか?
CloudflareのClef 27BとClef-Flash 9Bは、テキスト・JSON・画像・動画について定義済みの質問に1回で答え、各選択肢の確率を返します。Apple SiliconではoMLX 0.7.1.dev1とMLX量子化モデルを使って実行できます。Model Downloaderからチェックポイントを取得し、`/v1/models`でAPIモデルIDを確認してから、APIキーを付けてstateとquestionsを`/v1/systemone`に送ります。サーバー向けのSGLang/H200手順も紹介します。
必要なメモリはどのくらいですか?
個人用Apple Silicon MacではoMLXのMLXチェックポイントから始められます。Jundot/clef-oQ4eは27Bでファイルが約17GB、Jundot/clef-flash-oQ4eは9Bで約6.28GBです。入力画像と作業メモリの余裕を残してモデルを選びます。両チェックポイントはApache-2.0ライセンスです。