部署 LLM

若要部署 LLM,您必須先在 OCI 中建立 BM.GPU.MI300X.8 執行處理。

接著,您可以使用 OCI 區塊磁碟區服務來儲存資料、物件及非結構化模型資料。依照指示完成每項任務:

  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. 設定叢集和叢集的必要存取權之後,請使用下列指示安裝 ROCm (Oracle Linux 範例):
    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. 建立容器之後,您可以執行 Hugging Face 模型並取代 <path/to/model> 以指向下載來源的 OCI Object Storage 儲存桶,使用下列命令進行測試:
    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
                    }'