ProVision

 View Only

サステナブルなITによるDX推進(第5回) z16によるAIを利用した基幹系処理のイノベーション(vol98-0013-mainframe)

By IBM ProVision posted Tue January 17, 2023 10:16 AM

  
IBM Telum™プロセッサーとその無料の標準機構である統合AIアクセラレーター。その位置付けと期待される基幹系処理のイノベーションについて解説します。
Ishii.jpg"
石井 学   Manabu Ishii
日本アイ・ビー・エム株式会社
テクノロジー事業本部
プリンシパルITスペシャリスト
1998年入社。以来、Db2 for z/OSを始めとしたメインフレーム上のミドルウェア製品を担当し、金融・製造・流通のお客様などのプロジェクトに参画。現在はメインフレーム上のデータ活用を専門とし最新技術の適用検証や提案を中心に活動。

IBM zSystems[1]は現在も世界中のお客様の基幹業務を支えているメインフレームです。本稿ではIBM zSystemsをモダナイゼーションし、サステナブルなITに位置付けることで、お客様のデジタル・トランスフォーメーション(Digital Transformation、以下DX)を推進する方法を論じます。今号は5回シリーズの第5回として、2022年5月31日に出荷開始となった最新のIBM z16[2] に搭載されたIBM Telum™プロセッサー[3]とその無料の標準機構である統合AIアクセラレーターの位置付け、それによりもたらされる基幹系処理のイノベーションについて述べます。

基幹系でのAI活用の課題

スマートフォンの顔認証やスマート・スピーカー、ロボット掃除機やエアコンといった家電製品など、今やAIは私たちの身近な生活の中にますます活用が広がっています。ビジネスでの活用も広がっており、チャットボットのようなフロントエンドでの利用だけでなく、金融取引における不正検知の処理や保険金支払いの査定など基幹業務での利用も進んでいます。モバイル・バンキングやスマートフォンによる決済サービスなど皆さんも日常的にお使いではないでしょうか? 元々高まっていたDXの機運に加え、新型コロナウイルス感染症(COVID-19)によって引き起こされたパンデミックとも相まって様々なサービスのデジタル化が進んでいます。そうしたデジタル化が進めば進むほど、大量の要求の中で不正検知やサービス品質向上のためにリアルタイムにAIを活用していく事が重要になっていきます。では IBM zSystems で実行されることの多い基幹処理の中で、AIを活用する上で課題となるのはどのような点でしょうか?
基幹業務の中でAIを利用する場合、通常、機械学習/深層学習モデルを実行するためのGraphics Processing Unit (GPU) などを装備したサーバーを別に用意し、基幹業務の中からそのサーバーに対し要求を行い推論の結果を得るという形態を検討されると思います。

しかし、この形態の場合、推論で使用するためのデータを基幹業務の中からネットワーク転送し、そのデータをPCIバスなど外部接続されたGPUなどのアクセラレーターへと転送し、その上で推論処理を行う必要があります。この場合、推論処理そのものの時間は短縮できますが呼び出し全体にかかる時間は長くなり、厳しいSLAが要求される基幹業務で必要とされる応答時間やスループットを達成することが困難になります。(図1下段のグラフ)
ネットワーク転送の時間などを回避するため、推論処理を含めた全ての処理を IBM zSystems 上で実行する形態を取ることも可能です。このアプローチは伝統的な機械学習モデルなど複雑でないモデルを使用する場合には有効なアプローチですが、深層学習モデルのような複雑なモデルを使用したいという場合には処理時間が長くなり、やはり基幹業務で必要とされる応答時間やスループットを達成することが困難になります。(図1上段のグラフ)
図1. 基幹処理からの推論処理呼び出し形態の比較

統合AIアクセラレーターの位置付け

こうした課題を解消するため、最新の z16で提供されたのがIBM Telumプロセッサーに標準搭載された統合AIアクセラレーター(以下、AIU)です。
AIUは通常のGPUのように外部のバスに接続されたアクセラレーターではなく、IBM Telumプロセッサー上に通常のCPUと共にオンチップで搭載されたAI推論のためのアクセラレーターです。入力から特徴量を抽出する処理の一種である畳み込みやプーリング、次のニューロンに対する出力に関わる活性化関数など、一般的な深層学習モデルで使用される処理をAIUで実行するための専用のCPU命令(NNPA: Neural Network Processing Assist [4])が追加され、高速にこれらの処理を実行する事ができます。しかも、CPUとAIUはメモリーを共有しており、CPUでメモリー上に準備したデータを用い、レイテンシー低くこうした処理を呼び出す事ができます。(図1中段のグラフ)
また、IBM Telumプロセッサーは処理量が非常に多い基幹業務の中で、こうした低レイテンシーを保ちながらスケールできるよう設計されており、クレジット・カードの不正検知モデルを使用したテストでは約1ミリ秒のレイテンシーを保ちながら、1日に3000億回(1秒間に約350万回)の推論を実行できるという結果が得られています  。

処理能力の観点からは多数の GPUなどを配置する事によって、より高い計算能力を得ることは可能かも知れません。しかし、厳しいレスポンス・タイムが要求される処理の中で、その要件を満たし得る非常に低いレイテンシーで、かつ十分なスループットで推論を実施したいという場合にはIBM Telum/AIUが有力な解となります。

モデル開発者に意識をさせないAIアクセラレーターの利用

では実際にAIUを活用するにはどのようにすれば良いでしょうか?AIUを使用するためには上述のNNPAといったCPU命令や、IBM Z Deep Neural Network Library (zDNN) [5]というAPIを介して直接使用することも可能です。しかし、通常、ユーザーがこれらの低レベルのAPIを用いてコーディングを行う必要はありません。
例えば深層学習モデルを開発するために広く使用されているTensorFlowでモデルを開発する場合、IBM Z Optimized for TensorFlow[6]というAIU を使用するよう最適化された、IBM zSystems上で稼働するTensorFlowのコンテナ・イメージを 使用できます。ユーザーは好きなプラットフォームで開発したTensorFlowのモデルを、この IBM Z Optimized for TensorFlow のコンテナに取り込むことで、特に意識することなく AIU に最適化した形で深層学習モデルでの推論を行う事ができます (図2上段)。 また、TensorFlowや PyTorch といった一般的に使用される深層学習モデルのためのフレームワークでは、作成したモデルをONNX [7]と呼ばれる機械学習モデルを交換するためのオープン・フォーマットで書き出す事ができます。IBMではこのONNX形式を読み込みIBM zSystems に最適化した形の推論プログラムを生成するIBM Z Deep Learning Compiler(以下、zDLC)[8]も提供しており、これを利用してAIUを活用する形の推論プログラムを生成・実行することもできます(図2上段) 。z/OS 上での機械学習モデルの開発・実行をサポートする IBM Watson Machine Learning for z/OS(以下、WMLz) [9](もしくは、その深層学習モデルの推論エンジン機能のみ無償利用可能とした IBM Watson Machine Learning for z/OS Online Scoring Community Edition)を使用した場合は、ONNX 形式をWMLzへとインポートする際に自動的にzDLCが呼び出されますので、zDLCも意識することなく深層学習モデルをAIUに最適化された形でデプロイすることが可能です [10]。
図2. AIUの利用方法概要

なお、AIUの活用は深層学習モデルだけでなく、伝統的な機械学習モデルの一部でも使用する事ができます。アルゴリズムの一つであるランダムフォレスト、エクストラツリー、ブースティングなどの手法を用いる場合、パフォーマンス向上のため複数のモデル(学習器)を並列して処理する必要がありますが、AIUはこうした処理で有効な命令セットも備えています。IBMではこうした機械学習モデルのパフォーマンスを大幅に向上するIBM Snap ML[11]というフレームワークを提供しており、IBM zSystems 上で稼働するSnap MLはAIUを使うように最適化されています [12] 。深層学習モデルと同様、ユーザーは好きなプラットフォームでモデルの作成を行い、それをONNXや伝統的な機械学習モデルの交換フォーマットであるPMMLを経由して Snap ML に取り込む事により、AIU に最適化した形で機械学習モデルでの推論を行う事ができます (図2下段) 。

より幅広い層に対するAIの解放

以上、プラットフォームを意識せずIBM zSystems 上で最適化された形で、機械学習/深層学習モデルの推論処理を透過的に行えることを説明しましたが、IBM zSystemsではデータ・サイエンスのスキルのない方にもAIモデルを、そしてIBM z16 の AIU を活用頂けるもう1つの方法を提供しています。
例えば業務処理の中でAIを利用するユースケースとして以下のように類似度を判定し、その結果に基づいてアクションを実施するというようなものがあります。
  • 過去解約されたお客様に類似のお客様を特定し、解約されないようキャンペーンを実施する
  • 取引が類似した顧客を特定し、同様の商品の推奨を行う
  • 過去にデフォルトを起こした不良資産に類似の資産を特定し、必要な対策を行う
このようなケースの場合、データ・サイエンティストの方がAIモデルを作成しなくても、Db2 13 for z/OS の新機能 SQL Data Insights [13] (以下、SQLDI) を使用する事により、処理を実装することができます。
SQLDI では図3にある3つのSQL関数を提供し、例えば特定の表やビューの中にあるデータの中から、様々な値を持つ列の値を総合的に判断し、指定した行に一番類似していると考えられる他の行を選択する事ができます。上で例示した「過去解約されたお客様に類似のお客様を特定する」というユースケースの場合、図3下段にあるようなSQLを発行する事により特定を行うことができます。
図3. SQL Data Insights で提供されるSQL関数

この総合的な類似度の判定を行うため、SQLDIでは1つの行をあたかも1つの文章のように取り扱い、自然言語処理の手法を使ってベクトル化(数値化)する深層学習モデルを生成します(図4)。
図4. SQL Data Insights のアーキテクチャー概要

このモデル生成はDb2 for z/OSの提供するGUIを使用し、モデルを生成したい表や、類似度の判定で使用する列を選択するだけで実施することが可能ですので、高度なデータサイエンス・スキルは不要です。そして、モデルの利用もSQLのスキルがあれば良く、上記SQL関数を呼び出せば、透過的にAIU を含んだ IBM zSystems のハードウェアを活用した形でモデルによる推論が実施されます。

まとめ

IBM zSystems上でのAI、特にディープ・ラーニング・モデルの活用というと、敷居が高いものに感じるかもしれません。しかし、そのためにIBM zSystems とデータサイエンスの両方の深い知識を持った人材は必要なく、本稿でご紹介したように、それぞれのスキルを持った方が補完し合えば達成できる仕組みを IBM は提供しています。また、本格的な業務でのAI活用だけでなく、本シリーズの第4回でご紹介している様に、運用効率改善の分野でAIを活用するためのテクノロジーも提供しています。
こうした IBM zSystems の新しい技術を活かし、是非、既存の基幹系処理を活かしたハイブリッドな形でのDX推進をご検討下さい。

IBM z16 シリーズ (全5回)
1. z16で日本のITをサステナブルに  4月発行
2. CI/CDによるアプリケーション開発のモダナイゼーション  10月発行
3. レジリエンシーにおけるIBM zSystemsのイノベーション    11月発行
4. AIOpsを利用したIBM zSystmsの運用改善   12月発行
5. z16によるAIを利用した基幹系処理のイノベーション   今号

[参考文献]
[1] IBM: IBM Z, https://www.ibm.com/jp-ja/it-infrastructure/z
[2] IBM: Newsroom 大規模なトランザクション処理中にリアルタイムAI推論の利用を実現
業界初の耐量子暗号システムとなる次世代メインフレーム「IBM z16」を発表, https://jp.newsroom.ibm.com/2022-04-06-Announcing-IBM-z16-Real-time-AI-for-Transaction-Processing-at-Scale-and-Industrys-First-Quantum-Safe-System
[3] IBM: IBM Telumプロセッサー:IBM ZとIBM LinuxONE用の次世代マイクロプロセッサー, https://www.ibm.com/blogs/systems/jp-ja/ibm-telum-processor-the-next-gen-microprocessor-for-ibm-z-and-ibm-linuxone/
[4] IBM: z/Architecture Principles of Operation, https://www.ibm.com/support/pages/zarchitecture-principles-operation
[5] IBM: IBM Z Deep Neural Network Library Programming Guide and Reference, https://www.ibm.com/docs/en/zos/2.5.0?topic=zdnn-programming-guide-reference
[6] IBM: IBM Z Optimized for TensorFlow, https://github.com/IBM/ibmz-optimized-for-tensorflow
[7] ONNX: Open Neural Network Exchange, https://onnx.ai
[8] IBM: IBM Z Deep Learning Compiler, https://github.com/IBM/zDLC
[9] IBM: IBM Watson Machine Learning for z/OS, https://www.ibm.com/jp-ja/products/machine-learning-for-zos
[10] IBM: AI on IBM Z 101 - ONNX and the IBM Deep Learning Compiler, https://ibm.github.io/ai-on-z-101/onnxdlc/
[11] IBM: Snap Machine Learning, https://www.zurich.ibm.com/snapml/
[12] IBM: AI on IBM Z 101 - IBM Snap Machine Learning (Snap ML), https://ibm.github.io/ai-on-z-101/snapml/
[13] IBM: AI 照会の実行SQL Data Insights, https://www.ibm.com/docs/ja/db2-for-zos/13?topic=running-ai-queries-sql-data-insights

IBM、IBM ロゴ、IBM z16™、IBM Telum™は、 米国やその他の国におけるInternational Business Machines Corporationの商標または登録商標です。他の製品名およびサービス名等は、それぞれIBMまたは各社の商標である場合があります。現時点での IBM の商標リストについては、ibm.com/trademarkをご覧ください。


*ProVision 記事一覧はこちらから





#Highlights
#Highlights-home
0 comments
1485 views

Permalink