2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

IBM ai-services v0.3 から v0.4.0 へのマイグレーション

2
Posted at

はじめに

この記事では、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)

アップデート手順の概要

大まかな流れは以下のとおりです。

  1. ベクター DB(OpenSearch)のバックアップ
  2. Digitize サービスのバックアップ
  3. 既存アプリケーションの削除
  4. カタログのアンインストール
  5. ai-services バイナリを v0.4.0 に更新
  6. bootstrap で環境を再整備
  7. catalog configure でカタログを再デプロイ
  8. GUI または CLI でアプリケーションを再デプロイ
  9. データのリストア

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 で日本語が使用できるようになりました。
画像のように日本語でのドキュメント検索・回答生成が実際に動作することを確認できました。

1790903757443-5b2b635fbf222.png

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 コマンドに統合

上記のようにいくつか新機能が追加されているため、順次検証の上で利用方法をまとめていこうと思います。

2
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?