部署 LLM

要部署 LLM,必须先在 OCI 中创建 BM.GPU.MI300X.8 实例。

然后,您可以使用 OCI Block Volumes 服务来存储数据、对象和非结构化模型数据。按照说明完成每个任务:

  1. 创建实例
  2. 创建块存储存储卷
  3. 将块存储卷附加到实例
  4. 连接到块存储卷
  5. 创建 OCI Object Storage 存储桶

这会将模型从 OCI Object Storage 部署到在 OCI 上运行的 OKE 集群。

创建 OKE 集群

创建 OKE 群集或使用控制台配置和创建具有托管节点的 OKE 群集。

要创建 OKE 群集,请使用以下命令:

oci ce cluster create --compartment-id ocid1.compartment.oc1..aaaaaaaay______t6q
      --kubernetes-version v1.24.1 --name amd-mi300x-ai-cluster --vcn-id
      ocid1.vcn.oc1.iad.aaaaaae___yja

要使用控制台选项,请执行以下步骤:

  1. 对控制台选项使用此命令。使用以下命令创建群集后,可以创建托管 nodepool
    oci ce node-pool create --cluster-id <cluster-ocid> --compartment-id <compartment-ocid> --name <node-pool-name> --node-shape <shape>
  2. 设置群集和所需的群集访问权限后,使用以下说明(Oracle Linux 示例)安装 ROCm
    sudo dnf install https://repo.radeon.com/amdgpu-install/6.4/el/9.5/amdgpu-install-6.4.60400-1.el9.noarch.rpm
    sudo dnf clean all
    wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm
    sudo rpm -ivh epel-release-latest-9.noarch.rpm
    sudo dnf install dnf-plugin-config-manager
    sudo crb enable
    sudo dnf install python3-setuptools python3-wheel
    sudo usermod -a -G render,video $LOGNAME
  3. 将当前用户添加到渲染和视频:
    groupssudo dnf install rocm
  4. 使用以下命令安装 AMD GPU 驱动程序:
    sudo dnf install https://repo.radeon.com/amdgpu-install/6.4/el/9.5/amdgpu-install-6.4.60400-1.el9.noarch.rpm
    sudo dnf clean all
    sudo dnf install "kernel-uek-devel-$(uname -r)"
    sudo dnf install amdgpu-dkms

使用 ROCm 中的 vLLM 功能

按照以下步骤使用 ROCm 中的 vLLM 功能:
  1. 要在 ROCm 中使用 vLLM 功能,请克隆 Docker 映像并使用以下命令构建容器:
    git clone https://github.com/vllm-project/vllm.git
    cd vllm
    DOCKER_BUILDKIT=1
    docker build -f Dockerfile.rocm -t vllm-rocm .
  2. 创建容器后,可以通过运行拥抱面模型并替换 <path/to/model> 以指向使用以下命令下载的 OCI 对象存储存储桶来对其进行测试:
    docker run -it --network=host --group-add=video --ipc=host --cap-
    add=SYS_PTRACE --security-opt seccomp=unconfined --device /dev/kfd --device /dev/dri -v <path/to/model>:/app/models vllm-rocm

服务 LLM

导入 llmSamplingParams 类以使用一批提示进行脱机推断。然后,您可以加载和调用模型。

以下是 Meta Llama 3 70B 模型的示例,该模型需要多个 GPU 以张量并行方式运行。vLLM 使用 Megatron-LM 的张量并行算法和 Python 的多进程来管理单节点上的分布式运行时。

  1. 使用以下命令为 LLM 模型推断提供服务:
    vllm serve --model="meta-llama/Meta-Llama-3-70B-Instruct" --tensor-parallel-size 4--distributed-executor-backend=m
  2. 使用以下命令为模型提供服务:
    vllm serve meta-llama/Meta-Llama-3-70B-Instruct
  3. 要查询模型,请使用以下 curl 命令:
    curl http://localhost:8000/v1/completions \
                -H "Content-Type: application/json" \
                -d '{
                    "model": "Qwen/Qwen2-7B-Instruct",
                    "prompt": "Write a haiku about artificial intelligence",
                    "max_tokens": 128,
                    "top_p": 0.95,
                    "top_k": 20,
                    "temperature": 0.8
                    }'