TGI 分发版

llamastack/distribution-tgi 分发版包含以下提供者配置。

API

提供者

代理

inline::meta-reference

数据集 IO

remote::huggingface, inline::localfs

评估

inline::meta-reference

推理

remote::tgi, inline::sentence-transformers

安全性

inline::llama-guard

评分

inline::basic, inline::llm-as-judge, inline::braintrust

遥测

inline::meta-reference

工具运行时

remote::brave-search, remote::tavily-search, inline::rag-runtime, remote::model-context-protocol

向量 IO

inline::faiss, remote::chromadb, remote::pgvector

如果你有 GPU 并希望运行独立的 TGI 服务器容器来进行推理,可以使用此分发版。

环境变量

可以配置以下环境变量

  • LLAMA_STACK_PORT: Llama Stack 分发服务器的端口(默认: 8321

  • INFERENCE_MODEL: 加载到 TGI 服务器中的推理模型(默认: meta-llama/Llama-3.2-3B-Instruct

  • TGI_URL: 带有主要推理模型的 TGI 服务器 URL(默认: http://127.0.0.1:8080/v1

  • TGI_SAFETY_URL: 带有安全模型的 TGI 服务器 URL(默认: http://127.0.0.1:8081/v1

  • SAFETY_MODEL: 要使用的安全(Llama-Guard)模型名称(默认: meta-llama/Llama-Guard-3-1B

设置 TGI 服务器

请查看 TGI 入门指南 以获取 TGI 端点。以下是一个通过 Docker 在本地启动 TGI 服务器的示例脚本

export INFERENCE_PORT=8080
export INFERENCE_MODEL=meta-llama/Llama-3.2-3B-Instruct
export CUDA_VISIBLE_DEVICES=0

docker run --rm -it \
  --pull always \
  -v $HOME/.cache/huggingface:/data \
  -p $INFERENCE_PORT:$INFERENCE_PORT \
  --gpus $CUDA_VISIBLE_DEVICES \
  ghcr.io/huggingface/text-generation-inference:2.3.1 \
  --dtype bfloat16 \
  --usage-stats off \
  --sharded false \
  --cuda-memory-fraction 0.7 \
  --model-id $INFERENCE_MODEL \
  --port $INFERENCE_PORT

如果你正在使用 Llama Stack 的 Safety / Shield API,那么你还需要运行另一个 TGI 实例,并加载相应的安全模型,例如 meta-llama/Llama-Guard-3-1B,使用类似于以下脚本:

export SAFETY_PORT=8081
export SAFETY_MODEL=meta-llama/Llama-Guard-3-1B
export CUDA_VISIBLE_DEVICES=1

docker run --rm -it \
  --pull always \
  -v $HOME/.cache/huggingface:/data \
  -p $SAFETY_PORT:$SAFETY_PORT \
  --gpus $CUDA_VISIBLE_DEVICES \
  ghcr.io/huggingface/text-generation-inference:2.3.1 \
  --dtype bfloat16 \
  --usage-stats off \
  --sharded false \
  --model-id $SAFETY_MODEL \
  --port $SAFETY_PORT

运行 Llama Stack

现在你可以使用 TGI 作为推理提供者来运行 Llama Stack 了。你可以通过 Conda(构建代码)或 Docker(使用预构建镜像)来实现。

通过 Docker

这种方法可以让你快速开始,无需构建分发代码。

LLAMA_STACK_PORT=8321
docker run \
  -it \
  --pull always \
  -p $LLAMA_STACK_PORT:$LLAMA_STACK_PORT \
  llamastack/distribution-tgi \
  --port $LLAMA_STACK_PORT \
  --env INFERENCE_MODEL=$INFERENCE_MODEL \
  --env TGI_URL=http://host.docker.internal:$INFERENCE_PORT

如果你使用 Llama Stack Safety / Shield API,请使用

# You need a local checkout of llama-stack to run this, get it using
# git clone https://github.com/meta-llama/llama-stack.git
cd /path/to/llama-stack

docker run \
  -it \
  --pull always \
  -p $LLAMA_STACK_PORT:$LLAMA_STACK_PORT \
  -v ~/.llama:/root/.llama \
  -v ./llama_stack/templates/tgi/run-with-safety.yaml:/root/my-run.yaml \
  llamastack/distribution-tgi \
  --yaml-config /root/my-run.yaml \
  --port $LLAMA_STACK_PORT \
  --env INFERENCE_MODEL=$INFERENCE_MODEL \
  --env TGI_URL=http://host.docker.internal:$INFERENCE_PORT \
  --env SAFETY_MODEL=$SAFETY_MODEL \
  --env TGI_SAFETY_URL=http://host.docker.internal:$SAFETY_PORT

通过 Conda

请确保你已经执行了 uv pip install llama-stack 并且 Llama Stack CLI 可用。

llama stack build --template tgi --image-type conda
llama stack run ./run.yaml
  --port $LLAMA_STACK_PORT \
  --env INFERENCE_MODEL=$INFERENCE_MODEL \
  --env TGI_URL=http://127.0.0.1:$INFERENCE_PORT

如果你使用 Llama Stack Safety / Shield API,请使用

llama stack run ./run-with-safety.yaml \
  --port $LLAMA_STACK_PORT \
  --env INFERENCE_MODEL=$INFERENCE_MODEL \
  --env TGI_URL=http://127.0.0.1:$INFERENCE_PORT \
  --env SAFETY_MODEL=$SAFETY_MODEL \
  --env TGI_SAFETY_URL=http://127.0.0.1:$SAFETY_PORT