TGI 分发版
llamastack/distribution-tgi
分发版包含以下提供者配置。
API |
提供者 |
---|---|
代理 |
|
数据集 IO |
|
评估 |
|
推理 |
|
安全性 |
|
评分 |
|
遥测 |
|
工具运行时 |
|
向量 IO |
|
如果你有 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