はじめに
この記事では、IBM AI Launchpad(ai-services)を v0.3 から v0.4.0 へアップデートする手順を実際の実行ログをもとに紹介します。
v0.4.0からは、公式のドキュメント上で ai-services という名称から IBM AI Launchpad に変更されています。
アップデートは単純なバイナリの入れ替えでは完結せず、既存データのバックアップ・削除・再デプロイ・リストアという流れが必要です。
ただし、v0.3.xへのアップデートと異なりバックアップ、リストアが ai-services コマンドに含まれています。
過去バージョンのアップデート手順はこちら
v0.4.0 では RAG Chat で日本語が使えるようになったので、その部分も少し試しています。
前提環境
- サーバー: IBM Power(IBM Spyre アクセラレーター 8 枚搭載)
- OS: RHEL 9.6(ppc64le)
- コンテナランタイム: Podman
- アップデート前: ai-services v0.3.x
- アップデート後: ai-services v0.4.0
アップデート前の稼働状況は以下のとおりです。
この記事では、アプリ名 "Digital assistant" を対象としてアップデートします。
"Digital assistant" 部分は適宜ご利用のアプリ名を指定してください。
ai-services application ps --runtime podman
APPLICATION NAME POD NAME STATUS
───────────────────────────────────────────────────────────────────────
Digital assistant chat-bot-b051318c4f running (healthy)
digitize-db-b051318c4f running (healthy)
digitize-b051318c4f running (healthy)
similarity-api-b051318c4f running (healthy)
summarize-db-b051318c4f running (healthy)
summarize-api-b051318c4f running (healthy)
reranker-bb640cc85f running (healthy)
opensearch-5ee17892f5 running (healthy)
embedding-1a35eb663f running (healthy)
llm-623097d7a5 running (healthy)
アップデート手順の概要
大まかな流れは以下のとおりです。
- ベクター DB(OpenSearch)のバックアップ
- Digitize サービスのバックアップ
- 既存アプリケーションの削除
- カタログのアンインストール
- ai-services バイナリを v0.4.0 に更新
-
bootstrapで環境を再整備 -
catalog configureでカタログを再デプロイ - GUI または CLI でアプリケーションを再デプロイ
- データのリストア
Step 1: ベクター DB(OpenSearch)のバックアップ
まずカタログにログインします。
ai-services catalog login --runtime podman \
--server https://catalog-api.xxx.xxx.xxx.xxx.nip.io \
--username admin --insecure
WARNING: TLS certificate verification is disabled. This should NOT be used in production environments.
Logging in to https://catalog-api.xxx.xxx.xxx.xxx.nip.io as "admin"...
Login successful.
--insecure オプションは TLS 証明書の検証をスキップします。本番環境では使用せず、適切な証明書を設定してください。
続いて OpenSearch のバックアップを取得します。
ai-services application backup "Digital assistant" \
--target opensearch \
--filename opensearch-backup.tar.gz \
--runtime podman
Runtime: podman
Starting backup for application: Digital assistant
Target: opensearch
Backing up OpenSearch data for application: Digital assistant
OpenSearch Backup (Sidecar Container Approach)
Application ID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Component ID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
...
Exporting OpenSearch indices...
Found 1 indices to backup
Exporting index: rag_db_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
✓ 458 documents
✓ Backup completed successfully. Backed up 1 indices
✓ Tar archive created: /root/tmp/opensearch-backup.tar.gz (1.22 MB)
✅ Backup completed successfully: /root/tmp/opensearch-backup.tar.gz
Step 2: Digitize サービスのバックアップ
ai-services application backup "Digital assistant" \
--target digitize \
--filename digitize-backup.tar.gz \
--runtime podman
Runtime: podman
Starting backup for application: Digital assistant
Target: digitize
...
Export summary:
Jobs - exported: 5, completed: 5, failed: 0
Documents - exported: 6, completed: 6, failed: 0
Returned records: 11
✅ Backup completed successfully: /root/tmp/digitize-backup.tar.gz
バックアップファイルを確認します。
ls -l /root/tmp/
total 1256
-rw-r--r--. 1 root root 1489 Oct 1 02:20 digitize-backup.tar.gz
-rw-r--r--. 1 root root 1281161 Oct 1 02:19 opensearch-backup.tar.gz
バックアップが正常に作成され、空でないことを確認してから次のステップに進んでください。有効なバックアップがない状態で削除するとデータが永久に失われます。
Step 3: 既存アプリケーションの削除
バックアップが確認できたら既存アプリを削除します。
ai-services application delete "Digital assistant" --runtime podman
Are you sure you want to delete the application? true
Deleting application Digital assistant...
Waiting for application Digital assistant to be deleted...
Application status: Deleting, message: Deleting deployment...
Application Digital assistant deleted successfully.
Step 4: カタログのアンインストール
アプリ削除後、カタログ自体もアンインストールします。
ai-services catalog uninstall --runtime podman
Found 3 catalog pod(s)
WARNING: Ensure no applications are running before uninstalling the catalog, as they may go stale when the catalog is uninstalled and will need to be deleted manually
Below are the list of pods to be deleted
-> ai-services--caddy
-> ai-services--db
-> ai-services--catalog
Do you want to continue? true
Proceeding with deletion...
...
Catalog service removed successfully
Step 5: CLI バイナリを v0.4.0 に更新
v0.4.0 のバイナリ(ppc64le 向け)をダウンロードして配置します。
curl -Lo ./ai-services https://github.com/IBM/project-ai-services/releases/download/v0.4.0/ai-services-linux-ppc64le
chmod +x ai-services
mv ai-services /usr/local/bin/
上書き確認が出た場合は y で応答してください。バージョンを確認します。
ai-services -v
ai-services version v0.4.0
Step 6: bootstrap の実行
バイナリ更新後、bootstrap を実行して環境を再整備します。
ai-services bootstrap --runtime podman
Spyre カードの設定確認と自動修正が行われます。
✔ Spyre cards configuration validated successfully.
All validations passed
LPAR bootstrapped successfully
Step 7: カタログの再デプロイ
catalog configure でカタログサービスを再セットアップします。
ai-services catalog configure --runtime podman
実行すると LPAR の検証が走ります。
✖ current NUMA node configuration (3) is not aligned for maximum efficiency.
HINT: This tools requires numa node alignment set to 1 on LPAR.
✔ The LPAR is running a supported version of the operating system (RHEL 9.6 or higher).
✔ System is running on IBM Power11 (ppc64le)
✔ System is registered with RHN
Detected 8 Spyre card(s)
✔ IBM Spyre Accelerator is properly configured
...
All validations passed
管理者パスワードの入力後、3 つのレイヤーでカタログがデプロイされます。
Executing Layer 1/3: [catalog-secret.yaml.tmpl ...]
Executing Layer 2/3: [catalog-db.yaml.tmpl caddy.yaml.tmpl]
Executing Layer 3/3: [catalog.yaml.tmpl]
✔ Catalog service deployed successfully
Next Steps:
- Access the Catalog UI at https://catalog-ui.xxx.xxx.xxx.xxx.nip.io
- Access the Catalog Backend at https://catalog-api.xxx.xxx.xxx.xxx.nip.io
Step 8: アプリケーションの再デプロイ
今回は Catalog GUI からのデプロイで実施しました。
カタログ UI にアクセスしてデジタルアシスタントを選択し、デプロイ設定画面からモデルや各サービスのパラメーターを確認してデプロイを実行します。
CLI でデプロイする場合は事前にカタログへのログインが必要です。
v0.4.0 では v0.3.x からオプション指定が一部変わっているため注意してください。
runtimeの指定がなくなっています。
ai-services catalog login \
--server https://catalog-api.xxx.xxx.xxx.xxx.nip.io \
--username admin --insecure
モデルダウンロードのタイムアウトへの対処
モデルのダウンロードに時間がかかる場合、デプロイのタイムアウトに引っかかることがあります。
その場合は hf(Hugging Face CLI)コマンドで事前にモデルをダウンロードしておきます。
hf コマンドのインストール・認証の手順は Hugging Face CLI ドキュメント を参照してください。
個別のモデルダウンロード方法は IBM ドキュメント(非rootユーザーでの環境セットアップ) も参考になります。
hf download ibm-granite/granite-4.1-8b-fp8 --local-dir granite-4.1-8b-fp8
Fetching 15 files: 100%|████████| 15/15 [14:24<00:00, 57.60s/it]
Download complete: : 9.63GB [14:24, 11.1MB/s]
約 9.6GB のモデルが 14 分ほどでダウンロードされました。
デプロイ完了後の Pod の状態を確認します。
ai-services application ps "Digital assistant" --runtime podman
APPLICATION NAME WORKER RUNTIME NAMESPACE POD NAME STATUS
─────────────────────────────────────────────────────────────────────────────────────────────────────────
Digital assistant Local podman chat-bot-340c7d2e61 running (healthy)
digitize-db-340c7d2e61 running (healthy)
digitize-340c7d2e61 running (healthy)
similarity-api-340c7d2e61 running (healthy)
opensearch-5baa80b02b running (healthy)
embedding-d6400ba1ce running (healthy)
llm-18181d6fbf running (healthy)
reranker-f755a605d1 running (healthy)
v0.4.0 では ps コマンドの出力に WORKER・RUNTIME・NAMESPACE 列が追加されています。全 Pod が running (healthy) になっていれば完了です。
Step 9: データのリストア
リストアの前に、再度カタログへログインします。
ai-services catalog login \
--server https://catalog-api.xxx.xxx.xxx.xxx.nip.io \
--username admin --insecure
ベクター DB(OpenSearch)のリストア
ai-services application restore "Digital assistant" \
--target opensearch \
--filename opensearch-backup.tar.gz
WARNING: This operation will overwrite existing data!
Are you sure you want to proceed with the restore? true
Starting restore for application: Digital assistant
Target: opensearch
...
Found 1 indices to restore
Restoring index: rag_db_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
✓ Existing index cleaned up
✓ Index created
✓ Documents inserted
✓ Index restored successfully
✓ Restore completed successfully. Restored 1 indices
✓ Restore completed successfully for application Digital assistant
Digitize サービスのリストア
ai-services application restore "Digital assistant" \
--target digitize \
--filename digitize-backup.tar.gz
WARNING: This operation will overwrite existing data!
Are you sure you want to proceed with the restore? true
...
Import summary:
Jobs - imported: 5, skipped: 0, failed: 0
Documents - imported: 6, skipped: 0, failed: 0
✓ Digitize metadata restore completed successfully
✓ Restore completed successfully for application Digital assistant
リストア後、GUI でデータが正しく復元されているかを確認します。
v0.4.0 で日本語 RAG Chat が利用可能に
このバージョンから RAG Chat で日本語が使用できるようになりました。
画像のように日本語でのドキュメント検索・回答生成が実際に動作することを確認できました。
v0.3 から v0.4.0 での主な変更点
公式ドキュメント(What's New)および実際の検証から確認した主な変更点です。
新機能・追加サービス
| 変更点 | 概要 |
|---|---|
| 製品名変更 |
ai-services(IBM Open-Source AI Foundation for Power)→ IBM Power AI Launchpad に改称 |
| 日本語対応 | Digital Assistant(RAG Chat)で日本語の入出力が可能になった |
| Entity Extraction サービス | ドキュメントから構造化情報を抽出する新サービスが追加。同期・非同期エンドポイントおよびバッチファイル処理をサポート |
| Translation サービス | 翻訳サービスが追加。同期・非同期エンドポイントをサポート(現時点では英語↔ドイツ語のみ) |
| MCP サーバー | Model Context Protocol(MCP)サーバーがサイドカーとしてデプロイ可能になり、MCP 互換クライアントから各サービスにアクセスできる |
| Remote Worker サポート | 複数マシンへの分散デプロイが可能になり、リモートワーカーをカタログから登録・管理できる |
| Data Source Connectors | S3 互換ストレージや SSH/SFTP ファイルシステムなど外部データソースへの接続機能が追加 |
| Bring Your Own Service (BYOS) | カスタム AI サービスコンポーネントをカタログ経由でパッケージ化・オンボードできる BYOS バンドル管理機能が追加 |
| CPU-only デプロイ | Spyre アクセラレーターなしの CPU のみ環境でのデプロイが正式サポート |
| granite-4.1 モデルサポート | IBM Spyre アクセラレーターで ibm-granite/granite-4.1-8b-fp8 が利用可能になった |
| デプロイ中のキャンセル | デプロイ進行中にアプリケーションの削除(キャンセル)が可能になった |
Digitize サービスの改善
| 変更点 | 概要 |
|---|---|
| 重複ドキュメント検出 | 同名ファイルのアップロード時に重複を検出し、レスポンスに重複情報が含まれるようになった |
| ジョブキャンセル | 実行中の取り込みジョブを API および UI からキャンセルできるようになった |
OpenShift サポートの拡張
| 変更点 | 概要 |
|---|---|
| OpenShift 向け CLI コマンド追加 |
catalog configure・catalog info・catalog uninstall のほか、アプリケーションライフサイクル API(create / list / delete / ps)が追加された |
CLI・操作面の変更
こちらは今回作業で判明した内容を含みます。
| 観点 | v0.3 | v0.4.0 |
|---|---|---|
application ps の出力列 |
APPLICATION NAME / POD NAME / STATUS | WORKER / RUNTIME / NAMESPACE 列が追加 |
catalog login の --runtime オプション |
必要 | 省略 |
| バックアップ・リストア方法 | 外部スクリプト(backup-restore.sh)を使用 |
ai-services application backup/restore コマンドに統合 |
上記のようにいくつか新機能が追加されているため、順次検証の上で利用方法をまとめていこうと思います。
