ストレージの設定と、そこに保存されているモデルのアップロード Hugging Face
以下の手順に従って、 Hugging Face にある基盤モデル PVCストレージにアップロードしてください。
前提条件
この文書のコード・スニペットで使用されている環境変数のいくつかは、インストール段階で設定されるグローバル変数です。 詳細については、インストール環境変数の設定を参照してください。
Hugging Face に保存されているモデルをアップロードするには、以下の手順に従います
- モデル名は、 Hugging Face ウェブサイト でご確認ください。
- 基本的な環境変数を設定する:
export MODEL_NAME="<Hugging Face model name>" export HF_USERNAME="<Your Hugging Face username>" export HF_TOKEN="<Your Hugging Face token>" export MODEL_PATH="<Path to the directory where you want to download your model>"- デプロイメント
watsonx-cfm-caikit-1.1ソフトウェア仕様を使用するvLLMランタイムを使用する場合、MODEL_PATHパラメータを次のように設定する必要があります。/mnt/models - デプロイメント
watsonx-cfm-caikit-1.0ソフトウェア仕様を使用するTGISランタイムを使用する場合、MODEL_PATHパラメータを次のように設定する必要があります。/models
- デプロイメント
- モデルのクローンを作る。
モデルをクローンした後、作成されたフォルダの名前を確認してください。git clone --no-checkout https://${HF_USERNAME}:${HF_TOKEN}@huggingface.co/${MODEL_NAME} - モデルサイズを確認する。 お使いの環境にGitLargeFile Storage(
git lfs) がインストールされている場合は、モデルを含むフォルダに移動し、モデルのサイズを確認してください:
出力:git lfs ls-files -s
あなたの環境に'root@wmlubntu1:~/falcon-7b# git lfs ls-files -s 1c4b989693 - pytorch_model-00001-of-00002.bin (10 GB) 11822397cd - pytorch_model-00002-of-00002.bin (4.5 GB)git lfsがインストールされていない場合、モデルビルダーまたはモデルが元々置かれていたリポジトリからこの情報を取得する必要があります。 Hugging Face に配置されているモデルの場合、モデル名をクリックし、 ファイルとバージョン タブを選択すると、すべてのファイルサイズが表示されます。 - モデルの総サイズを計算し、その結果に100%のバッファを加える。 例えば、モデルサイズが14.5GBの場合、作成するPVCのサイズは29GBとなります。 モデルサイズを環境変数として設定する:
export MODEL_SIZE="<calculated model size>" - クラスタにカスタム基盤モデルの「
PersistentVolumeClaims(PVC)ストレージを作成します。まず、新しいPVCの名前を環境変数として設定する:
export PVC_NAME="<The name of the new PVC>"次に、このコードを実行する:
ストレージボリュームで新しいPVCを作成する方法、または既存のPVCを使用する方法について詳しくは、「ストレージボリュームの管理」 を参照してください。cat <<EOF |oc apply -f - apiVersion: v1 kind: PersistentVolumeClaim metadata: name: ${PVC_NAME} namespace: ${PROJECT_CPD_INST_OPERANDS} spec: storageClassName: ${STG_CLASS_FILE} accessModes: - ReadWriteMany resources: requests: storage: ${MODEL_SIZE}Gi EOF - PVCの作成後、2分間待ってからこのコマンドを実行し、PVCがバインドされていることを確認する:
期待される結果: 'oc get pvc ${PVC_NAME} -n ${PROJECT_CPD_INST_OPERANDS} -o jsonpath='{.status.phase}'Bound - Hugging Face トークンを
base64にエンコードしますENCODED_TOKEN=`echo -n ${HF_TOKEN} | base64` - クラスターにシークレットを作成する:
まず、新しい秘密の名前を設定します:
export SECRET_NAME="<The name of the new secret>"次に、このコードを実行する:
cat <<EOF |oc apply -f - apiVersion: v1 kind: Secret metadata: name: ${SECRET_NAME} namespace: ${PROJECT_CPD_INST_OPERANDS} type: Opaque data: TOKEN: ${ENCODED_TOKEN} EOF - TGISダイジェストの'
nameと'tagを環境変数として設定する。 ダイジェストはDockerイメージの一意な識別子です。 画像の内容に基づいて計算される:export TGIS_IMAGE_NAME="quay.io/modh/text-generation-inference" export TGIS_IMAGE_TAG="rhoai-2.8-58cac74" - Hugging Face からモデルをダウンロードし、モデルを
safetensorおよびfast-tokenizerフォーマットに変換するジョブを作成して実行します。まず、ジョブ名の環境変数を設定する:
export DOWN_AND_CONV_JOB_NAME="<Name of the job>"次に、このコードを実行する:
cat <<EOF |oc apply -f - apiVersion: batch/v1 kind: Job metadata: name: ${DOWN_AND_CONV_JOB_NAME} namespace: ${PROJECT_CPD_INST_OPERANDS} spec: template: spec: containers: - name: models-convertor image: ${TGIS_IMAGE_NAME}:${TGIS_IMAGE_TAG} env: - name: MODEL_PATH value: ${MODEL_PATH} - name: MODEL_NAME value: ${MODEL_NAME} - name: TOKEN valueFrom: secretKeyRef: name: ${SECRET_NAME} key: TOKEN command: ["/bin/sh", "-c"] args: - | huggingface-cli login --token ${TOKEN} huggingface-cli download ${MODEL_NAME} --local-dir ${MODEL_PATH} --cache-dir ${MODEL_PATH} text-generation-server convert-to-safetensors ${MODEL_PATH} text-generation-server convert-to-fast-tokenizer ${MODEL_PATH} volumeMounts: - mountPath: ${MODEL_PATH} name: byom-model restartPolicy: Never volumes: - name: byom-model persistentVolumeClaim: claimName: ${PVC_NAME} EOF - ジョブが作成されたことを確認する:
oc get job ${DOWN_AND_CONV_JOB_NAME} -n ${PROJECT_CPD_INST_OPERANDS}予期される出力:
NAME COMPLETIONS DURATION AGE <job name> 1/1 xx xx最後に、ジョブのステータスをチェックする:
oc get job ${DOWN_AND_CONV_JOB_NAME} -n ${PROJECT_CPD_INST_OPERANDS} -o jsonpath='{.status.conditions[?(@.type=="Complete")].status}'予期される出力:
True