Cloudflare Workers AI強化 - エッジAI推論の進化

2025.12.01

Cloudflare Workers AIとは

Cloudflare Workers AIは、エッジでAI推論を実行できるサービスです。世界中のデータセンターでモデルを実行し、低レイテンシーでAI機能を提供できます。

参考: Cloudflare Workers AI

新モデルの追加

利用可能なモデル(2024年末時点)

カテゴリモデル用途
LLMLlama 3.2テキスト生成
LLMMistral 7B高速推論
LLMGemma 2多言語対応
画像Stable Diffusion XL画像生成
画像FLUX.1高品質画像生成
音声Whisper音声認識
EmbeddingBGEベクトル化

使用例

// Workers AI での推論
export default {
  async fetch(request, env) {
    const response = await env.AI.run('@cf/meta/llama-3.2-3b-instruct', {
      messages: [
        { role: 'user', content: 'Cloudflareの特徴を教えて' }
      ],
      max_tokens: 512
    });

    return new Response(JSON.stringify(response));
  }
};

参考: Workers AI Models

Vectorize GA(正式版)

ベクトルデータベース

埋め込みベクトルを保存し、類似検索を実行できます。

// Vectorizeの作成(wrangler CLI)
// wrangler vectorize create my-index --dimensions=768 --metric=cosine

// ベクトルの挿入
export default {
  async fetch(request, env) {
    // テキストを埋め込みに変換
    const embedding = await env.AI.run('@cf/baai/bge-base-en-v1.5', {
      text: 'Cloudflareのエッジコンピューティング'
    });

    // Vectorizeに保存
    await env.VECTORIZE.insert([{
      id: 'doc-1',
      values: embedding.data[0],
      metadata: { title: 'Cloudflare Edge' }
    }]);

    return new Response('Inserted');
  }
};

類似検索

// 類似ドキュメントの検索
const queryEmbedding = await env.AI.run('@cf/baai/bge-base-en-v1.5', {
  text: 'エッジでのAI推論'
});

const results = await env.VECTORIZE.query(queryEmbedding.data[0], {
  topK: 5,
  returnMetadata: true
});

// results: [{ id: 'doc-1', score: 0.95, metadata: {...} }, ...]

参考: Cloudflare Vectorize

AI Gateway

API管理とモニタリング

複数のAIプロバイダーを統一的に管理できます。

// AI Gateway経由でのリクエスト
const response = await fetch(
  'https://gateway.ai.cloudflare.com/v1/account-id/gateway-name/openai/chat/completions',
  {
    method: 'POST',
    headers: {
      'Authorization': `Bearer ${OPENAI_API_KEY}`,
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      model: 'gpt-4',
      messages: [{ role: 'user', content: 'Hello' }]
    })
  }
);

主要機能

機能説明
キャッシング同一リクエストの結果をキャッシュ
レート制限APIリクエストの制限
リトライ失敗時の自動リトライ
フォールバック別プロバイダーへの切り替え
ログ記録全リクエストの記録
// フォールバック設定
{
  "providers": [
    { "provider": "openai", "model": "gpt-4" },
    { "provider": "anthropic", "model": "claude-3-sonnet" }
  ],
  "fallback": true
}

参考: AI Gateway

AutoRAG(プレビュー)

自動RAGパイプライン

ドキュメントをアップロードするだけで、RAGシステムを構築できます。

// AutoRAGの設定
export default {
  async fetch(request, env) {
    // ドキュメントをインデックス
    await env.AUTORAG.index({
      content: 'Cloudflareは世界最大のエッジネットワーク...',
      metadata: { source: 'docs', title: 'About Cloudflare' }
    });

    // 質問に回答
    const answer = await env.AUTORAG.query({
      question: 'Cloudflareとは何ですか?',
      max_tokens: 256
    });

    return new Response(JSON.stringify(answer));
  }
};

料金体系

Workers AI

プランニューロン料金
無料10,000/日$0
従量課金無制限$0.011/1,000ニューロン

Vectorize

項目無料枠有料
ベクトル数200,000無制限
クエリ/月30M$0.01/1M
ストレージ1GB$0.05/GB

参考: Cloudflare Pricing

パフォーマンス

レイテンシー比較

リージョン中央サーバーCloudflare Edge
東京200ms20ms
ニューヨーク50ms15ms
ロンドン100ms18ms

スループット

Llama 3.2 3B: ~50 tokens/秒
Mistral 7B: ~30 tokens/秒
Whisper: リアルタイムの2倍速

実装例: RAGチャットボット

export default {
  async fetch(request, env) {
    const { question } = await request.json();

    // 1. 質問を埋め込みに変換
    const questionEmbedding = await env.AI.run('@cf/baai/bge-base-en-v1.5', {
      text: question
    });

    // 2. 関連ドキュメントを検索
    const docs = await env.VECTORIZE.query(questionEmbedding.data[0], {
      topK: 3,
      returnMetadata: true
    });

    // 3. コンテキスト付きで回答生成
    const context = docs.matches.map(d => d.metadata.content).join('\n');
    const answer = await env.AI.run('@cf/meta/llama-3.2-3b-instruct', {
      messages: [
        { role: 'system', content: `以下の情報を参考に回答:\n${context}` },
        { role: 'user', content: question }
      ]
    });

    return Response.json({ answer: answer.response });
  }
};

まとめ

Cloudflare Workers AIは、エッジAI推論の有力な選択肢として進化を続けています。

  • 多様なモデル: LLM、画像、音声、埋め込み
  • Vectorize GA: ベクトルDBの正式版
  • AI Gateway: マルチプロバイダー管理
  • 低レイテンシー: 世界中で20ms以下

サーバーレスでスケーラブルなAIアプリケーションを構築する際に、検討する価値があります。

← 一覧に戻る