このガイドでは、AIアプリケーション開発を平易にする標準化フレームワーク Llama Stack のセットアップと使用方法について説明します。SambaNova ディストリビューションサーバーの構築、クライアントのインストール、初回のモデル推論の実行方法を順番に解説します。プロトタイプの開発から本番環境でのスケーリングまで、Llama エコシステムのベストプラクティスを取り入れたモジュール式かつ効率的なアーキテクチャで、すぐに使い始めることができます。

Llama Stack の構成要素

Llama Stack は、以下の2つの主要コンポーネントで構成されています。
  • サーバー:各種アダプターをホストするLlama Stackのディストリビューション
  • クライアント:サーバーのAPIを利用し、ホストされたアダプターと対話するコンポーネント

セットアップ手順

SambaCloud のAPIキーを発行する

  1. SambaCloud にアカウントを作成します。
  2. 「APIキー」セクションに移動します。
  3. (未生成の場合) 新しいキーを生成します。
  4. 生成したキーを安全な場所に保存してください。

SambaNova Llama Stack サーバーを構築する

  • Python 仮想環境をセットアップします。
python -m venv .venv
source .venv/bin/activate
  • 必要な依存パッケージをインストールします。
pip install uv
pip install llama-stack
  • SambaNova ディストリビューションイメージをビルドします。
mkdir -p ~/.llama
llama stack build --template sambanova --image-type container
  • Docker イメージが作成されたことを確認します。
docker image list
  • 画面表示の例
REPOSITORY                        TAG       IMAGE ID       CREATED          SIZE
distribution-sambanova            0.2.6     4f70c8f71a21   5 minutes ago   2.4GB

SambaNova ディストリビューションサーバーを起動する

  • 必要な環境変数を設定します。
export LLAMA_STACK_PORT=8321
export SAMBANOVA_API_KEY="your-api-key-here"
  • Docker でサーバーを起動します。
docker run -it \
  -p $LLAMA_STACK_PORT:$LLAMA_STACK_PORT \
  -v ~/.llama:/root/.llama \
  distribution-sambanova:0.2.6 \  # Match this with your built image tag
  --port $LLAMA_STACK_PORT \
  --env SAMBANOVA_API_KEY=$SAMBANOVA_API_KEY

Llama Stack クライアントをインストールする

同じ環境または別の環境で、以下のコマンドを実行します。
  pip install llama-stack-client

クライアントを使ってサーバーと対話する

以下は基本的な使用例を示す Python コードです。
from llama_stack_client import LlamaStackClient

LLAMA_STACK_PORT = 8321
client = LlamaStackClient(base_url=f"http://localhost:{LLAMA_STACK_PORT}")

# List all available models
models = client.models.list()
print("--- Available models: ---")
for m in models:
    print(f"- {m.identifier}")
print()

# Choose a model from the list
model = "sambanova/Meta-Llama-3.3-70B-Instruct"

# Run chat completion
response = client.inference.chat_completion(
    messages=[
        {"role": "system", "content": "You are a friendly assistant."},
        {"role": "user", "content": "Write a two-sentence poem about llama."},
    ],
    model_id=model,
)

print(response.completion_message.content)
このコードでは、クライアントとサーバー間の接続、モデルのリスト表示、推論実行までの一連の流れを確認できます。 SambaNova ディストリビューションの LLM、Embeddingモデル、ツール、エージェントアダプターを用いたさまざまなユースケースについては、SambaNova Llama Stack integration repo をご覧ください。

Llama Stack ドキュメント

Llama Stack では、以下の内容をご覧いただけます。
  • フレームワークの基本概念
  • サンプルアプリケーションの紹介
  • 拡張やカスタマイズの方法