hugs 文档

Docker

Hugging Face's logo
加入 Hugging Face 社区

并获得增强的文档体验

开始使用

Docker

HUGS 支持在 Docker 上部署。你可以通过命令行使用默认设置运行 HUGS,也可以通过创建自己的 docker-compose.yml 文件来自定义配置。

通过 Docker 运行 HUGS

要在 Docker 中使用默认设置运行 HUGS,请在你的 shell 中运行此命令

export HUGS_CACHE=~/.cache/hugs
mkdir -p "$HUGS_CACHE"
docker run -it --rm \
    --gpus all \
    --shm-size=16GB \
    -v "$HUGS_CACHE:/tmp" \
    -p 8080:80 \
   'hfhugs/nvidia-google-gemma-2-9b-it:0.2.0'

容器 URI 可能会因分发版本和你使用的模型而异。

该命令在容器中设置了以下默认环境变量

  • HUGS_CACHE 默认为 ~/.cache/hugs。这是模型的缓存目录,以便下次加载更快。

在 AWS Inferentia2/Trainium 上运行 HUGS 容器

要在装有 Inferentia2 或 Trainium 加速器的 AWS 实例上运行 HUGS,你需要使用兼容的 Docker 镜像并配置对 Neuron 设备的访问权限。有两种方法可以让容器访问 Neuron 设备

  1. 使用 --privileged 标志(授予对所有 Neuron 设备的访问权限)
  2. 使用 --device 标志(授予对特定 Neuron 设备的访问权限)

你可以使用 --privileged 标志运行容器,以授予对所有 Neuron 设备的访问权限

export HUGS_CACHE=~/.cache/hugs
mkdir -p "$HUGS_CACHE"
sudo docker run -it --rm \
    --shm-size=16GB \
    --privileged \
    -v "$HUGS_CACHE:/tmp" \
    -p 8080:80 \
    'hfhugs/neuron-meta-llama-meta-llama-3.1-8b-instruct:0.2.0'

或者,你可以使用 --device 标志指定单个 Neuron 设备,以实现更精细的控制

export HUGS_CACHE=~/.cache/hugs
mkdir -p "$HUGS_CACHE"
sudo docker run -it --rm \
    --shm-size=16GB \
    --device=/dev/neuron0 \
    --device=/dev/neuron1 \
    --device=/dev/neuron2 \
    --device=/dev/neuron3 \
    -v "$HUGS_CACHE:/tmp" \
    -p 8080:80 \
    'hfhugs/neuron-meta-llama-meta-llama-3.1-8b-instruct:0.2.0'
使用单个 `--device` 标志可以更精细地控制哪些 Neuron 设备可被容器访问,这在同一实例上运行多个容器时非常有用。

Docker Compose 文件示例

你还可以使用 docker-compose.yml 文件来自定义你的配置。

version: '3.8'

services:
  hugs:
    image: hfhugs/nvidia-google-gemma-2-9b-it
    ports:
      - 8080:80
    volumes:
      - ${HUGS_CACHE:-~/.cache/hugs}:/tmp
    environment:
      - HUGS_CACHE=/tmp
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: all
              capabilities: [gpu]
    shm_size: 16GB
    restart: on-failure:0

volumes:
  hugs_cache:

编辑 docker-compose.yml 文件以满足你的需求。你可以添加或删除环境变量、更改端口映射。要启动你的 HUGS 实例,请在你的 shell 中运行此命令

docker compose up
< > 在 GitHub 上更新