はじめに
こんにちはサイオステクノロジーの小野です。以前の記事で、Azure OpenAIのLLMをLightspeedと連携する方法について解説しました。今回はOpenShift AIにデプロイしたLLMをLightspeedと連携させる方法について解説します。
OpenShift AIとOpenShift Lightspeed連携
OpenShift Lightspeeedを利用する上で、OpenShift AIのようなローカル環境にデプロイしたLLMと連携する場合と、Azure OpenAIのようなクラウド環境にデプロイされているLLMと連携する場合で次のような差異があります。
- ローカル環境LLM
- メリット
- 公開LLMを利用することができるので幅広いモデルを選択することが可能です。また、ローカル環境にデプロイできるので、LLMに入力した情報が流出する心配がなくなります。リクエスト数の制限がないので何回でも質問ができます。
- デメリット
- 公開LLMを一からデプロイする必要があるので手間がかかります。また、ローカルでLLMを動かすので、計算資源を用意する必要があります。
- メリット
- クラウド環境LLM
- メリット
- 高性能なLLMを簡単にデプロイできます。クラウド上で動作するので計算資源は用意しなくて済みます。
- デメリット
- LLMを提供しているプロバイダによっては入力した情報の取り扱いについて気を付けなければなりません。また、リクエスト数や質問の長さによって従量課金となる場合があります。
- メリット
OpenShift AIとOpenShift Lightspeeedを連携することによってローカルな環境でもOpenShiftに関するAIチャットアシスタント機能を利用することが可能です。
構築設定
今回はOpenShift AIにデプロイしたLLM(Mistral-7b-instruct-v0.3)とOpenShift Lightspeedを連携します。
OpenShift AIにデプロイしたLLMのエンドポイントは外部公開用と内部公開用の2種類ありますが、Lightspeedとの連携上、外部公開用のエンドポイントを利用します。
前提条件
- OpenShift AI構築済み
- Lightspeed Operatorインストール済み
- gpuインスタンス:g6.xlarge
- S3にLLMデータ保存済み
- OpenShift クラスタにサーバ証明書設定済み
OpenShift AI設定
OpenShift AIのLLMデプロイについては以前の記事を参考にしてください。
今回はMistral-7b-instruct-v0.3というLLMモデルをデプロイします。
モデルサービングの設定を行う際のモデル名をLightspeed連携に用いるのでメモしてください。
Lightspeed設定
Lighspeedの設定は以前の記事を参考にしてください
APIの認証情報をSecretとして作成します。<APIトークンの値>にはOpenShift AIにデプロイしたLLMのAPIトークンの値を入れて下さい。
apiVersion: v1
kind: Secret
metadata:
name: openshift-ai-api-keys
namespace: openshift-lightspeed
type: Opaque
stringData:
apitoken: <APIトークンの値>
LightspeedのCRは以下のように設定します。<モデル名>にはOpenShift AIにデプロイしたLLMのモデル名を入力してください。デプロイした大元のモデル名ではないので注意してください(画像の例だと、〇test-mistral, ×Mistral-7b-instruct-v0.3)。<APIエンドポイント>にはデプロイしたLLMのExternalの方のエンドポイントを入力してください。
apiVersion: ols.openshift.io/v1alpha1
kind: OLSConfig
metadata:
name: cluster
spec:
llm:
providers:
- credentialsSecretRef:
name: openshift-ai-api-keys
models:
- name: <モデル名>
name: red_hat_openshift_ai
type: rhoai_vllm
url: <APIエンドポイント>/v1
ols:
defaultProvider: red_hat_openshift_ai
defaultModel: <モデル名>
動作確認
Lightspeeedの設定が完了した後、挨拶してみます。すると以下のように、返答してくれます。
終わりに
このようにOpenShift AIとOpenShift Lightspeeedを連携することで、任意のLLMを用いたAIチャットアシスタント機能を利用できます。また、ローカル環境のLLMを利用しているので、非接続環境でもAIチャットアシスタント機能を利用できます。