はじめに
こんにちはサイオステクノロジーの小野です。以前の記事でOpenShift AIのモデルサービング機能を利用してAIモデルを推論APIとして提供する方法を解説しました。今回はOpenShift AIのモデルサービング機能を利用してLLMをデプロイする方法について解説します。
OpenShift AIを利用したLLMデプロイ
OpenShift AIはシングルモデルサービング環境を構築することで公開LLMをデプロイすることが可能になります。
公開LLMとは
LLMをはじめとしたAIのモデルは公開されて自由にダウンロードできるものがあります。
それらのモデルは利用規約やライセンスに従う限り自由に利用することが可能です。
KServe
KServeとはKubernetes上で機械学習モデルを推論・生成サービスとして提供するためのソフトウェアです。KServeはKnativeとIstioを利用して構築されてます。Knativeはモデルをデプロイ、管理するために利用され、IstioはモデルをAPI提供するために利用されます。
vLLM
OpenShift AIでデプロイするモデルのランタイムとして vLLM ServingRuntime for KServe があります。
vLLMとはLLMの推論およびサービングを行うためのオープンソースライブラリです。トークン数やメモリ管理設定を行うことができます。また、他のサービングライブラリと比較して高速に推論ができる特徴があります。
OpenShift AI構築
モデルサービングの種類
OpenShit AIでAIモデルをデプロイするには二つの手法があります。一つがマルチモデルサービング形式です。これは、比較的中小規模のAIモデルをデプロイする際に使われます。もう一つはシングルモデルサービング形式です。これは、LLMのような大規模なモデルをデプロイする際に使われます。今回はLLMをデプロイするのでシングルモデルサービングの構築を行います。
必要な前提条件
- GPU設定(詳しくは過去の記事を参照してください https://tech-lab.sios.jp/archives/44040)
- Node Feature Discovery Operator
- NVIDIA GPU Operator
- 使用インスタンスタイプ:g6.xlarge
- OpenShift AI:2.16
- OpenShift Serverless:1.35.0
- OpenShift Service Mesh:2.6.4-0
- Red Hat – Authorino (Technical Preview):1.1.1
- デプロイしたLLMサーバーに認証機能をつける場合必須です
OpenShift AIでのシングルモデルサービング環境構築
シングルモデルサービングオペレータインストール
シングルモデルサービング形式のモデルサーバーを構築するにはOpenShift AIのクラスターを作成する前に3つのオペレータをインストールする必要があります。それぞれのリソースはOpenShiftクラスター構築時に自動的に作成されます。
Authorinoオペレータインストール
Operator > OperatorHubでAuthorinoと検索します。「Red Hat – Authorino (Technical Preview)」を選択してインストールを押下します。
現時点(2025年2月6日)ではバージョン1.1.1をインストールします。
ステータスがSucceededになったらインストール完了です。
Serverlessオペレータインストール
Operator > OperatorHubでOpenShift Serverlessと検索します。
「Red Hat OpenShift Serverless」を選択してインストールを押下します。
現時点(2025年2月6日)ではバージョン1.35.0をインストールします。
ステータスがSucceededになったらインストール完了です。
ServiceMeshオペレータインストール
Operator > OperatorHubでOpenShift Service Meshと検索します。
「Red Hat OpenShift Service Mesh」を選択してインストールを押下します。
現時点(2025年2月6日)ではバージョン2.6.4-0をインストールします。
ステータスがSucceededになったらインストール完了です。
OpenShift AIオペレータインストール
OpenShift AIオペレータのインストールは以前の記事を参考にして下さい。今回はバージョン2.16.0をインストールします。
OpenShift AIのCR設定
今回はシングルモデルサービング形式の構築をするのでKServeをインストールします。
以下のようにDataScienceClusterのコンポーネントを設定します:
spec:
components:
codeflare:
managementState: Managed
dashboard:
managementState: Managed
datasciencepipelines:
managementState: Managed
kserve:
managementState: Managed
serving:
ingressGateway:
certificate:
type: OpenshiftDefaultIngress
managementState: Managed
name: knative-serving
kueue:
managementState: Managed
modelmeshserving:
managementState: Managed
modelregistry:
managementState: Removed
registriesNamespace: rhoai-model-registries
ray:
managementState: Managed
workbenches:
managementState: Managed
trainingoperator:
managementState: Removed
trustyai:
managementState: Managed
DataScienceClusterのステータスがPhase:Readyになったら作成完了です。
DataScienceProject作成
DataScienceCluster作成が完了したら、OpenShift AIを開いてDataScienceProjectを作成してください。以前の記事を参考してください。
シングルモデルサービングサーバ作成
DataScienceProjectが作成できたら、Modelsの項目に移動してください。
シングルモデルサービングの環境が構築できているとSigle-model serving platformの項目があります。これを選択します。
右上に「Sigle-model serving enabled」と表示されればシングルモデルサービングのデプロイが可能になります。
おわりに
以上の操作により、OpenShift AIにLLMをデプロイする準備が整いました。次回は実際にLLMをデプロイしてAPI利用するところをお見せします。
参考
- シングルモデルサービングの設定
- KServeの自動インストール
- vLLM