Dockerfile
cat << EOF > Dockerfile
FROM nvidia/cuda:12.1.0-cudnn8-devel-ubuntu22.04
RUN mkdir -p /root/worker /root/model
COPY ./ /root/worker
ENV LANG=C.UTF-8
ENV USER="root"
ENV PYTHONPATH /root/worker
#ENV CUDA_VISIBLE_DEVICES=0
ENV VLLM_USE_MODELSCOPE=True
ENV GPU_MEMORY_UTILIZATION=0.8
ENV TENSOR_PARALLEL_SIZE=1
WORKDIR /root/worker
RUN apt-get update && apt-get install -y \
python3-pip \
python3-dev \
git vim\
&& rm -rf /var/lib/apt/lists/*
RUN pip install -v --no-cache-dir torch==2.3.0 \
torchvision \
torchaudio --index-url https://download.pytorch.org/whl/cu121
RUN pip install -v --no-cache-dir vllm ray modelscope
RUN pip install flash-attn --no-build-isolation
EXPOSE 8000
#CMD ["bash", "-c", "python3 -m vllm.entrypoints.api_server --model=/root/model --gpu-memory-utilization=$GPU_MEMORY_UTILIZATION --tensor-parallel-size=$TENSOR_PARALLEL_SIZE"]
EOF
docker build -f ./Dockerfile -t llama3_vllm:v0.0.1 .
docker run -it -d \
--gpus='"device=0"' \
--ipc=host \
--ulimit stack=67108864 \
-v /home/edge1/model/Meta-Llama-3-8B-Instruct:/root/model \
-e HF_TOKEN='123456' \
-p 19123:8000 \
--name=llam3_8b_api \
llama3_vllm:v0.0.1 \
/bin/bash -c "python3 -m vllm.entrypoints.api_server --trust-remote-code --model=/root/model --served-model-name=llama3 --gpu-memory-utilization=0.8 --tensor-parallel-size=1"
CUDA_VISIBLE_DEVICES=0:其中0为服务器中的GPU编号,可以为0, 1, 2, 3等,表明对程序可见的GPU编号。
GPU_MEMORY_UTILIZATION=0.9:用于模型执行器的 GPU 内存比例,范围从 0 到 1。例如,值为 0.5 表示使用 50% 的 GPU 内存。如果未指定,则使用默认值 0.9。
TENSOR_PARALLEL_SIZE=1:张量并行副本的数量。默认为1
max-parallel-loading-workers:分批加载模型,以避免在使用张量并行和大型模型时出现 RAM 内存溢出(OOM)。
