アルゴリズムモデル組み込みMendixアプリケーションの開発例

I.はじめに

最新の Accenture の調査によると、企業の 67% が 2023 年も引き続きテクノロジーへの投資を増やし、データと AI アプリケーションが最優先事項になると予想されています。企業におけるAI活用の話題は10年以上前から盛り上がっていましたが、ChatGPTに代表される生成AI技術の登場により、この話題は再び盛り上がりを見せています。

1.png

生成 AI が発揮する力は驚くべきものであり、企業はビジネス価値を生み出すために AI の新しい統合ポイントを見つけるために綿密にフォローアップする必要もあります。同時に、AI新時代の転換点にある(現在そう思われている)企業にとっても、過去10年間のAI応用への取り組みが期待に応えてきたのか、期待に応えてきたのかを見直す必要がある。入力と出力にはまだ改善の余地があります。

2. 提起された質問

筆者は最近、2 人の顧客が両方とも AI を適用しているのを目撃しましたが、その使用方法には違いがあります。

クライアント 1: デジタル バンクの 5 か年戦略計画を推進している外資系銀行の顧客は、230 人以上の IT チームを擁し、運用部門に 15 人のデータ サイエンス チームが所属しています。ITチームとローコードについてやりとりする中で、15人からなるデータサイエンスチームの具体的な業務内容を聞いたところ、主に銀行のCエンドとBエンドの顧客の取引データの履歴分析を行っていることが分かりました。機械学習モデルを確立し、将来のビジネスを予測します。定期的または一時的に、運用担当副社長およびその他の幹部にデータ レポートを提供します。このポジションの平均給与はIT開発者の2倍です。

クライアント 2: ポリマー材料の研究と製品開発に従事する国内のハイテククライアント。同社の研究開発チーム(IT 以外)の従業員は基本的にデータ分析のバックグラウンドを持っており、Python を使用したデータ処理が日常業務であり、機械学習アルゴリズムのトレーニングも主な研究に含まれています。IT 部門が R&D 部門にデジタル サービスを提供する場合、アルゴリズム モデルを統合する必要があるアプリケーション開発のニーズが多数あります。現在の慣例では、アプリケーションと Python アルゴリズム サービスは独立して実行され、アプリケーションは Python を呼び出します。インターフェース。

対照的に、顧客 1 の AI への投資は多額ですが、その出力はビジネス プロセスと強く結びついておらず、意思決定者の主観的な参照用にオフライン レポートとして提供されています。この現象は「接続されていない AI アプリケーションのラスト マイル」と呼ぶことができ、このモードでは ROI が制限されることがよくあります。顧客 2 の業種により、追加投資ではなく、アルゴリズムとデータ分析を理解する研究開発担当者が必要であると判断されますが、難しいのは、IT 部門が研究開発部門の成果をどのように引き受けるかにあります。アプリケーションとアルゴリズムサービスおよびインターフェース呼び出しを独立して展開することは技術的には可能ですが、アプリケーションの開発、運用保守、同時拡張、移行の観点からは効率が低いという問題があります。

3. メンディックスの答え

エンタープライズ アプリケーション構築における AI の役割に関する Mendix のビジョンは完全に組み込まれており、AI の機能はアプリケーションのライフサイクル全体に統合される必要があります。

2.png

  • アプリケーション開発段階: Mendix IDE には独自の AI ロボットがあり、マイクロフロー ファイルに基づいて論理コンポーネントを推奨できる一方で、プロジェクト全体をスキャンして、Mendix 開発のベスト プラクティスに基づいてエンジニアリングの改善提案を推奨できます。 。年末までに開始される予定の生成 AI 機能により、Mendix Chat は最終的に開発者との自然言語ベースのコミュニケーションを実現し、エンティティとマイクロフローの自動生成を実現します。

3.png

  • アプリケーション実行フェーズ: Mendix ML Kit は、機械学習アルゴリズム モデルを ONNX 形式で解析し、Call ML Kit コンポーネントを通じてオンデマンドでアルゴリズム モデルをビジネス プロセス (マイクロフロー) に埋め込むことができます。さらに、ONNX モデル ランタイムは Mendix ランタイム環境に統合されており、アプリケーションとアルゴリズム モデルを 1 つの展開環境で同時に実行できるようになります。

4.png

4. 応用例

ここでは、売上予測のためのシナリオ アプリケーションを構築します。このアプリケーションの中核はアルゴリズム モデルとデータであり、その後にアプリケーション エクスペリエンスが続きます。

アルゴリズムモデルとデータ

Mendix 自体はアルゴリズムを提供しませんが、企業独自のアルゴリズム モデル上でアルゴリズムを統合して実行します。したがって、この例では、Kaggle コミュニティ、リンク アドレス https://www.kaggle.com/code/konradb/ts-4-sales-and-demand-forecasting/notebook から競争計画を借用します。

過去データは、ウォルマートが提供する3店舗における過去5年間の特定商品の販売記録である。

5.png

このアルゴリズムの目標は、過去の販売記録と、特定の時点から 28 日間の特定の SKU の販売量に基づいて予測モデルを確立することです。

引用された競争提案は、LGBM モデルの回帰予測です。アルゴリズムの RMSE は、150 エポックのトレーニング後に安定します。

6.png

競技プログラム Pynote をダウンロードし、コードを読んでアルゴリズム選択ロジックとデータ処理ロジックを理解します。このプログラムでは、過去5年間の販売実績から以下の特徴を抽出します。

  • 商品、店舗、商品カテゴリを分類、つまり整数値に変換します。

  • 販売数量に対して時系列特徴処理を実行し、28 日前の販売、28 日前の時点での先週の平均販売数量、および 28 日前の時点での過去 4 週間の平均販売数量を選択します

  • 販売日を月、四半期、毎月の日付などの 3 つの整数値に分解します

7.png

注:上記の特徴抽出プロセスは、後で Mendix でアプリケーションを構築する際のビジネス データの前処理プロセスでもあります。予測された出力を取得するためのアルゴリズム モデルの入力として使用できるのは、処理されたビジネス データのみです。この例では、簡単にするために生の Python コードを使用して、特徴抽出が予測データセットに対して直接実行されます。

モデル変換

Mendix ML Kit は、主流のモデル中間形式である ONNX 形式のアルゴリズム モデルを受け入れます。Pytorch、TensorFlow、ScikitLearn、Caffee などのフレームワークのモデルにはすべて、ONNX 形式を変換するための標準ツールがあります。ONNX 形式と変換の詳細については、Zhihu の記事を参照してください。

元のソリューションでアルゴリズム モデルをトレーニングした後、次の Python コードを追加して、モデルを ONNX 形式に変換して保存します。

8.png

一般的な ONNX 変換ツールには、次の Python パッケージが含まれています。

  • onnxmltools

  • 変換する_sklearn

  • トーチオンエックス

  • tf2onnx

実際のエンジニアリングでは、アルゴリズムモデルの学習枠組みに応じて適切なツールを選択すれば十分です。

モデルの視覚化

ONNX 形式のモデルの場合、視覚化ツールの助けを借りて、モデルの入力、出力、および中間演算子 (演算子) を直感的に理解できます。

ここでは、https://netron.app オンライン Web サイトを使用して、以前に保存した ONNX アルゴリズム モデルを表示します。

9.png

この図から、モデルの入力は長さ 10 の 32 ビット浮動小数点配列、出力は単一の 32 ビット浮動小数点値、中間演算子は回帰演算子であることが明確にわかります。 。入力と出力の -1 はバッチ値を表します。このアルゴリズム モデルでは 1 です。

注:ここでの演算子は、変換後の ONNX に対応する実装演算子であり、元のアルゴリズムと 1 対 1 に対応していない場合があります。この部分の内容は、Mendix 本文の範囲外です。詳細については、関連情報を参照してください。

モデルのインポート

ONNX 形式のアルゴリズム モデルを取得し、視覚化を通じてモデルを直感的に理解したら、Mendix 環境での作業を開始できます。

最初のステップは、モデルを Mendix にインポートすることです。「その他を追加」で ML モデル マッピングを見つけます。

10.png

先ほど保存したONNX形式のファイルを選択します。

11.png

インポート後は上記のようなマッピング関係が得られ、入力と出力の2つのエンティティが自動生成されます。

12.png

観察に注意してください。入力エンティティは一意の属性のみを持ち、文字列型です。これは、前に観察したアルゴリズム モデルの長さ 10 の 32 ビット浮動小数点配列と矛盾します。このため、Mendix でモデルを呼び出すときにデータを前処理し、10 個の浮動小数点型 (Mendix では Decimal が使用されます) を含む特徴フィールドを文字列型に変換する必要があります。出力エンティティには Decimal 型の属性があり、追加の処理を行わずに売上予測結果としてアプリケーションで直接使用できます。

モデル呼び出しとデータの前処理

サブマイクロフローを作成します。これは、モデル呼び出しの基本機能を実現するために、必要に応じて他の場所で呼び出すことができます。

13.png

IDE の右側にあるツールボックスから、Call ML Model コンポーネントを選択し、インポートされたモデル名、入力および出力エンティティ オブジェクトを構成します。

このうち、入力エンティティ オブジェクトは JavaAction を通じて元のビジネス データを前処理する必要があり、JavaAction 入力は 10 個の特徴フィールドを含むエンティティ オブジェクトであり、出力はモデル マッピングで指定された ML_Input_Entity_LGBModel です。

JavaAction の実装ロジックは次のとおりです。

14.png

注:数値、テキスト、画像、音声、ビデオなどのビジネス データの種類に応じて、データ前処理のロジックは異なりますが、固定された方法があります。これは機械学習分野のエンジニアが習得すべきスキルであり、ここでは詳しく説明しません。

ここまでで、予測用のアルゴリズムモデルを呼び出すサブマイクロフローの構築が完了しました。

アプリケーション設計

次に、アプリケーションのユーザー インタラクション レイヤーを構築する必要があります。この例では、次のモジュールを設計しました。

  • マスターデータモジュール:店舗や商品などのマスターデータを保持するために使用されます。

  • トランザクションデータ表示モジュール: 過去の販売記録、予測される記録などを表示するために使用されます。

  • データ インポート モジュール: Excel データセットから Mendix にデータをインポートするために使用されます。

  • 売上予測描画モジュール: 過去の売上と店舗/商品の組み合わせの売上予測をグラフィカルに表示するために使用されます。

15.png

結果を示す

マスターデータのメンテナンス

16.png

データインポート

44ac2467-aef0-4e8f-a4a8-1540b7f0c1cf.png

トランザクションデータビュー

販売記録.png

今後の売上予測

販売特集.png

売上予測チャート

チャート.png

もちろん、上記は基本的な表示効果であり、実際のビジネスアプリケーションでは、売上予測結果を調達、倉庫、物流などの計画の実行に統合し、必要に応じて Sub_Model_Call サブマイクロフローを呼び出すことで実現できます。アルゴリズム モデルにビジネス プロセスが組み込まれており、ラスト マイルが容易になります。

V. まとめ

Mendix は、ML Kit ベースの機械学習アルゴリズム モデル埋め込みコンポーネントを提供し、Pytorch、Tensorflow、Scikitlearn、Caffee、およびその他の主流のトレーニング フレームワークをサポートして、アルゴリズム モデルを ONNX 形式に変換してアプリケーションにインポートし、必要なメソッドで Call ML Model コンポーネントを渡します。ビジネスプロセスを簡単に呼び出すことができます。このように、アルゴリズム モデルとビジネス アプリケーションは一連の実行環境内にあり、独立して実行され、インターフェイスを介して呼び出される従来のアルゴリズム サービスと比較して、構築が高速であるだけでなく、呼び出し遅延も低くなり、統合された運用と保守に便利で、アプリケーションのラストマイルを通過し、アルゴリズム モデルのビジネス強化を実現します。

この例では、エンドツーエンドの開発実装リファレンスを提供します。融合アルゴリズム モデルのアプリケーション開発ニーズがある場合、またはすでに Mendix を使用していてアルゴリズム モデルを統合したい場合は、コメント領域に連絡先情報を残していただけます。連絡して必要な情報を提供します。ヘルプ。

メンディックスについて

デジタルファーストの世界では、顧客はあらゆるニーズが満たされることを期待し、従業員は仕事を遂行するためのより優れたツールを期待し、企業は完全なデジタル変革によってのみ生き残り、成功できることを認識しています。シーメンスの企業である Mendix Corporation は、企業のデジタル変革を実現する存在として急速に成長しています。業界をリードするローコード プラットフォームと包括的なエコシステムは、最先端のテクノロジーを統合し、企業が対話性を向上させ、運用を簡素化し、IT ボトルネックを克服するソリューションを作成できるように支援します。Mendix は、抽象化、自動化、クラウド、コラボレーションの 4 つの柱により、開発者の生産性を大幅に向上させ、独自のエンジニアリング コラボレーション機能と直感的なビジュアル インターフェイスを利用して、テクノロジーに精通していない多数の「シチズン」開発者を支援しました。専門分野のアプリケーションを作成します。Mendix は、権威ある業界アナリストの目にはリーダーであり先見の明があるだけでなく、クラウドネイティブ、オープン、スケーラブル、機敏で実証済みのプラットフォームでもあります。人工知能や拡​​張現実から、インテリジェント オートメーションやネイティブ モビリティに至るまで、Mendix はデジタル ファースト ビジネスのバックボーンとなっています。Mendix のエンタープライズ ローコード プラットフォームは、世界中の 4,000 社を超える大手企業に採用されています。

おすすめ

転載: blog.csdn.net/Mendix/article/details/132664582