LLM BrokerのOpenAI APIにストリーム出力機能を実装する

昨日は、Open WebUIからOpenAI APIでLLM Brokerに接続できる、というところまでやりました。
今日は、LLM Brokerにストリーム出力機能を実装しました。

開発で使っているPCは CPUがCore i5 13500、GPUがRTX A4000 16GBです。

それでllama.cppサーバー + gpt-oss-20b_Q4_K_M.ggufを走らせて、LLM Brokerから接続すると、安定的に90〜115トークン/秒くらいの生成速度が出ています。

まだツール呼び出し機能の実装ができていないので完成ではありませんが、もう少し頑張ればOllamaに近い機能が実現できそうです。


開発中のllama.cppの設定です。

gpt-oss:20bで扱えるコンテクスト長いっぱいに設定しています。

services:
  llama-text:
    image: ghcr.io/ggml-org/llama.cpp@sha256:13f61752307fc4b96c8607a1bc03f977a2a27a4372d194f2aead83d60b964289
    container_name: llama-text
    restart: unless-stopped

    ports:
      - "8081:8080"

    volumes:
      - ./models:/models:ro

    command:
      - -m
      - /models/gpt-oss-20b-Q4_K_M.gguf
      - --host
      - 0.0.0.0
      - --port
      - "8080"
      - --n-gpu-layers
      - "99"
      - --ctx-size
      - "131072"
      - --cache-type-k
      - q8_0
      - --cache-type-v
      - q8_0
      - --flash-attn
      - "on"
      - --batch-size
      - "2048"
      - --ubatch-size
      - "512"
      - --temp
      - "1.0"
      - --top-k
      - "64"
      - --top-p
      - "0.95"
      - --min-p
      - "0.0"
      - --repeat-penalty
      - "1.0"
      - --threads
      - "4"
      - --parallel
      - "1"
      - --cont-batching
      - --log-verbose
      - --mlock

    ulimits:
      memlock:
        soft: -1
        hard: -1

    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              device_ids:
                - "0"
              capabilities:
                - gpu

コンテクストサイズ128Kで、これだけの性能が出れば十分過ぎる性能です。

別のもっと遅いPC(たぶんこの開発機の半分くらいの速度)では、PCIe 3.0接続のRTX 3060でgemma4 E4Bを載せていますが、似たような設定で70トークン/秒くらい出ています。

「LLM BrokerのOpenAI APIにストリーム出力機能を実装する」への1件のフィードバック

コメントする