ML強化アプリケーションガイド Mendix および Amazon SageMaker AI | Mendix

メインコンテンツへスキップ

ML強化アプリケーションガイド Mendix Amazon SageMaker AI 

我々はAIの時代に生きていることは間違いありません。企業はより速く、よりスマートで、より優れたアプリケーションを作るために競い合っており、機械学習は今日のアプリケーション市場の「必須」となっています。このブログ記事では、機械学習の助けを借りて、訓練された機械学習モデルをアプリケーションに組み込むことで、ゼロからヒーローになるのがいかに速く簡単になったかを説明します。 Mendix および Amazon SageMaker AI。

機械学習とは何ですか?

機械学習 (ML) は人工知能 (AI) のサブセットであり、明示的にプログラムしなくてもコンピューターがデータから学習し、予測や決定を行えるようにするアルゴリズムとモデルの開発に重点を置いています。つまり、モデルは特定のセクターまたは企業のカスタム データに基づいてトレーニングでき、すぐに使用できる基本モデルよりも効率的にタスクを実行できます。

カスタマイズされたスマート アプリ – すごいですね。その通りです。でも、複雑なのでしょうか? 10 年前なら、複雑さ、関連ツールへのアクセスの制限、そしてもちろん、エンド ユーザー アプリケーションにモデルを実装することの難しさから、ほとんどの企業や業界では実現不可能だったでしょう。

今日では、過去の苦労や悩みはようやく解消され始めています。AIを活用したアプリケーション開発への移行により、 Mendixアプリケーションには、Amazon Textract、Rekognition などのスマートなソリューションや機能を組み込むことができます。

もっと知りたい場合は、 私達の場所を訪問しなさい または読む Mendix 評価ガイド.

必要なツール

まず最初に、ツールを紹介します。心配しないでください。ツールはほんのわずかです。

  • Amazon SageMaker AI: モデルの作成とトレーニング用。
    • Amazon SageMaker AIは、Amazonが提供するフルマネージド型の機械学習サービスです。機械学習モデルを迅速に構築、トレーニング、デプロイできます。Jupyterノートブック、Pipelines、SageMaker Studio、Canvas、RStudioなど、幅広い機能を提供しています。詳しくは、Amazon SageMaker AIのサイトをご覧ください。 こちら or こちら.
  • Python 3.0: コードを記述します。
  • Mendix Studio Pro 10: 最新バージョン Mendix カスタマイズされたスマートなエンドユーザー アプリを作成するために必要な ML キットが含まれています。

Studio Pro 10の最新バージョンでは、 Mendix プラットフォームに多くのクールでスマートな機能を追加することで、アプリケーション開発の水準を高めました。そのうちの1つ、そして個人的に気に入っているのは、 Mendix 機械学習キット(Mendix MLキットML キットを使用すると、追加の統合や調整なしで ONNX モデルを Studio Pro に直接インポートできるため、より高速でスマート、かつ共同作業性に優れたアプリを作成できます。

詳細は、こちらを参照してください。 専用ブログ投稿ドキュメント.

機械学習と私、苦闘の短い歴史

Amazon SageMaker AI

機械学習の旅を始める人にとって、SageMaker は少し複雑で圧倒的に思えるかもしれません。個人的な経験から言うと、最初の数回の試行は完全に失敗に終わりました。複数のカーネルが実行中、メニューからすべての選択がクリックされ、複数のノートブックが何を実行しているのかは不明、ドメインとプロファイルがあちこちに散らばり、何が起こるかを見るために再生ボタンを何度も押しました。完全に最悪の失敗でした。しかし、私はあきらめるつもりはなかったので、いくつかの試行と数時間の読書の後、「すべての用途にすべてのものが使用されるわけではない」という結論に達しました。

Amazon SageMaker AI には、機械学習モデルの作成、トレーニング、統合、デプロイなど、やりたいことのほぼすべてを実行するための多くの選択肢が用意されていますが、実際には、ほとんどの場合、必要なのは Jupyter ノートブック、Python の知識、そしてもちろんデータセットだけです。

機械学習ライブラリ

私が機械学習の旅で学んだことの 1 つは、ONNX、Scikit-learn、Tensorflow、Pytorch など、さまざまな「モデリング フレームワーク」が存在することです。それぞれが独自の方法で特化しており、さまざまな種類の AI を実行および作成します。

ONNX

先ほども述べたように、MLキットは Mendix 10 は ONNX モデリング フレームワークと互換性があります。なぜ ONNX なのかと疑問に思うかもしれません。

ONNX(Open Neural Network Exchange)は、フレームワーク間の相互運用性をサポートするAIモデルのオープンソースフォーマットです。つまり、あるフレームワークでモデルをトレーニングし、それをONNXに変換して、別のフレームワークで使用することができます。もう少しわかりやすく言うと、ONNXモデルに変換できるすべてのフレームワークは、 Mendix 10.

このブログ記事では、Scikit-learnモデルをONNXモデルに変換し、それをインポートする方法について少し説明します。 Mendix 10.1.1 でテストアプリを作成してください。ONNX の詳細と ONNX モデルの変換方法や使用方法については、 このウェブサイトをご覧ください.

仕事に行く時間

袖をまくって一緒に参加したい読者には、次のものが必要です。

このブログ記事の冒頭で述べたように、Amazon SageMaker AIと Mendix.

少し簡単にするために、この旅に同行したい場合は、次のリンクからサンプル ファイルをダウンロードできます。

ステップ 1 – まず最初に: Amazon SageMaker Studio の使用を開始する

SageMaker Studioの使用を開始するには、AWSアカウントにログインし、SageMakerサービスに移動します。SageMakerダッシュボードの左側のメニューから、 スタジオ SageMaker Studio インターフェースに移動します。

すでにユーザープロファイルがある場合はそれを選択し、Studioを開きます。プロファイルまたはドメインがない場合は、以下を選択して作成します。 ドメイン 左側のメニューから指示に従ってください。

ステップ 2 – SageMaker Studio: Jupyter Lab ノートブック

 

スタジオの使用準備ができたら、ホーム画面に着陸します。画面を確認して、 jJupyterLabアイコンをクリックして続行してください。''JupyterLabは、ノートブック、コード、データ用の最新のWebベースのインタラクティブ開発環境です。柔軟なインターフェースにより、ユーザーはデータサイエンス、科学計算、計算ジャーナリズム、機械学習のワークフローを構成および調整できます。''詳細はこちら こちら.

まず ジュピターラボ およびその後 創造する ジュピターラボ スペース.  

名前を選択してください, 〜へ 指定する スペースの名前 とヒット スペースを作成する   

あなたはあなたにリダイレクトされます ジュピターラボ 概要スペース、次に s選出する ランスペース 新しく作られたスペースを運営する, 一度読むと 店は開いています ボーマンは 

ステップ3 – 楽しみが始まります

左側のメニューを確認し、ファイル (フォルダ) アイコンを選択します。これにより、ファイル セクションが開き、スタジオで使用可能なすべてのファイルが表示されます。表示されるアップロード ボタン (下のスクリーンショットを参照) を見つけて、サンプル ファイルをアップロードします。

Amazon SageMaker ファイルのアップロード

Amazon SageMaker ファイル

ファイルがフォルダ内に表示されたら、 スパム_nb.ipynb ノート。

スパムノートを開く

スタジオはカーネルを起動します。これには数分かかる場合があります。準備が完了すると、ノートブックが表示されます。

スパムをダブルクリック をクリックして   'ipyカーネル' なので kernel ポップアップウィンドウで. 

ステップ4 – ノートブックのスパムコードの説明

スパムの例は非常に単純で、3 つの部分で構成されています。

  • パート1: 必要なライブラリ   
  • パート2: トレーニングとエクスポート
  • パート3: テスト

このブログ投稿では、最初の 2 つの部分について説明します。

パート1

最初の部分では、ライブラリがインポートされます。

  • 当学校区の SYS モジュールは、環境ランタイムの制御と変更に役立ちます。
  • 当学校区の 翻訳者 モジュール。sklearn-onnx には、scikit-learn ツールキットのモデルを ONNX に変換する関数が含まれています。
  • 当学校区の ONNX モジュールを開きます。
  • 当学校区の onnxランタイム モジュールを開きます。

ライブラリのインポート

パート2

この部分では、モデルがトレーニングされ、ONNX に変換されてから、ONNX ファイルにエクスポートされます。以下の例では、トレーニング セットを使用してモデルに予測を学習させています。

モデルに予測を教える例

トレーニングセットは、既知の結果(y_train)に関連付けられたトレーニングデータ(X_train)で構成されます。モデルは、どのパターンが1(真)としてラベル付けされるかを学習します。たとえば、 スパム、または 0 (偽)。例: ハムこのプロセスは、 フィッティングテスト セットも含まれます (X_test、y_test)。

上の図では、1 番目の部分もいくつかのメソッドのインポートから始まっていることがわかります (行 10 ~ XNUMX)。関数については行ごとに詳しく説明するため、今のところこれらのメソッドについて詳しく説明する必要はありません。

次の行では、12 個のデータ セットがインポートされます。

(df = pd.read_csv("spam.csv", encoding="L1")), and the attributes X and y are defied (X = df["v2"].values, y = df["v1"].values)

次に、値の適合と予測に使用される 4 つのデータ部分が作成されます。

X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=345)

(sklearn.model_selection.train_test_split は、配列をランダムなトレーニング サブセットとテスト サブセットに分割します。)

次の行では、パイプライン オブジェクトが作成されます。

pipe = make_pipeline(
    CountVectorizer(binary=True),
    MultinomialNB()
)

したがって、最も重要な部分は次の行で発生します。ここでモデルの「フィッティング」が開始されるからです。

pipe.fit (X_train, y_train)

これで完了です。あとは、モデルをONNXファイルに変換するだけです。 「to_onnx」 機能を使用してノートブック内のファイルにファイルをエクスポートします。 "書きます" 機能。

>

onxx_pipeline = to_onnx(pipe, initial_types=[('message', StringTensorType([None, 1]))])
with open("spam_nb.onnx", "wb") as f:
  f.write(onxx_pipeline.SerializeToString())

パイプラインをONNXに変換する例や詳細については、 ONNX ドキュメント.

最後に、コードを実行するにはノートブックを実行する必要があります。

  1. 最初の行にカーソルを置きます。
  2. 上部の再生アイコンをクリックします。
  3. ノートブックにいくつかの追加の線が表示され、次の部分にカーソルが再び表示されます。
  4. 再生アイコンをもう一度クリックしてトレーニングを実行します。
  5. いくつかの追加行が再度表示され、ONNX ファイルが作成されます。

ノートブックを実行してコードを実行します

ファイルフォルダを確認し、右クリックして スパム_nb.onnx そしてファイルをダウンロードします。

spamnbonnxファイルをダウンロードする

重要な! モデルのトレーニングとテストが完了したら、実行中のターミナル アイコンをクリックします。

実行中のターミナルアイコン

…左側のメニューで、実行中のインスタンスをすべて終了して、追加料金を回避してください。

ステップ5 – Mendix シャイン

さて、ML キットをテストする時が来ました。

あなたのを開くことから始めます Mendix 10スタジオで新しい空のアプリを作成します。モジュールを選択します 私の最初のモジュール エクスプローラータブから右クリックしてポップアップメニューを開きます

新しい空のアプリを作成するMendix-10

ML モデル マッピングを選択します。

ML モデル マッピングの選択

ソフトウェアの制限をクリック モデルのインポート 左上隅にある ONNX ファイルをインポートします。 Mendix 入力オブジェクトと出力オブジェクトが自動的に作成されます。

ML モデル入力でエラー メッセージが表示される場合は、エンティティを開き、静的テンソルの形状として「1」を選択して問題を修正します。

ML-モデルエラーメッセージ

モデル テンソル シェイプの編集

ドメイン モデルは次のようになります。

ドメインモデルの例

アプリエクスプローラーのドメインモデルに移動し、追加のエンティティを追加して、 メールアドレス電子メール エンティティに 2 つの文字列属性を追加します。 ペイロード (文字数無制限) 予測 (デフォルト値のままにします)。

メールエンティティの追加

メールエンティティを選択し、右クリックしてサイドメニューを開き、 概要ページを生成する.

概要ページの生成

Mendix 自動的に作成されます メールの概要 および メール_新規編集 ページを配置して 概要ページ のフォルダ 冒険者 メニュー。

エクスプローラー メニューの概要ページ フォルダー

見つける メール_新規編集 ページをダブルクリックして開きます。 Save プロパティを開くアクション。

電子メールを開く - 新規編集 - プロパティ

イベント セクション、選択 マイクロフローを呼び出す > 選択する > New.

マイクロフローを追加

新しいマイクロフローに名前を付ける スパムを予測する (または PredictSpam)。新しいマイクロフローが開いたら、次のアクションを追加します。

マイクロフローを開くためのアクションの追加

  • 電子メール エンティティのパラメーター。
  • ML モデルの入力オブジェクトに対するオブジェクトの作成アクション。

オブジェクト作成アクション

  • MLモデルの呼び出しアクション:利用可能なMLモデルマッピングと入力オブジェクトを選択し、 OK
  • メールの変更アクション(設定) コミット および Refresh 〜へ あり.) メンバーとして予測を選択し、値として出力ラベルを設定します。 出力オブジェクト.

メールアクションの変更

  • 最後に、 ページを閉じる をご利用ください。  

ページを閉じるアクションの追加

アプリケーションはあと 2 つの調整を残すだけでほぼ準備が整い、スマートな電子メール スパム検出アプリを実行して使用できるようになります。

メニューのナビゲーション オプションに移動します。

メニューナビゲーションオプション

まず メールの概要 ページをデフォルト ページとして、またホームページとしても設定します。

デフォルトページの設定

完了!ついにその時が来ました…

テスト

右上隅の再生アイコンをクリックしてプロジェクトを実行します。準備ができたら、 アプリを見る ボタンをクリックしてアプリケーションに移動します。

アプリ表示ボタン

ホームページは次のようになります。

ホームページテストは次のようになります

クリックしてテストを開始 Newメッセージをペイロードとして追加します。

テスト開始

次のようにスパムのようなメッセージを追加してテストすることができます。

"おめでとう!

あなたは、Microsoft Lottery 2023 の幸運な当選者の 10,000,000 人に選ばれました。賞金 XNUMX 米ドルと新品のラップトップを獲得しました。

賞品を受け取るには、次の情報を弊社のエージェントに伝える必要があります。

名前: 住所: 電話番号: メールアドレス:

エージェントに連絡する

メールがスパムとして認識された場合、予測の下に「スパム」が表示されます。

テストメッセージ応答1

…そうでない場合は、「ハム」。

テストメッセージ応答2

これで完了です。1時間もかからずに、MLを組み込んだ小さなアプリが完成しました。このプロセスが気に入って、さらに学習を続けたい場合は、 このリンク さらなる例については、 Mendix ML キットのサンプルアプリケーション。

次は何ですか

2つの強力なテクノロジーの融合、 Mendix 10 ML KitとAmazon SageMaker AIの組み合わせは、AIアプリケーション開発の世界に刺激的な可能性をもたらします。 Mendix SageMaker の高度な機械学習機能により、開発者はユーザーフレンドリーなだけでなく高度な知能を備えた AI 駆動型アプリケーションを作成できます。

AI の探索を続けたいですか?

生成 AI や ChatGPT のようなツールは大いに宣伝されていますが、エンタープライズ アプリ開発の将来にとってそれは何を意味するのでしょうか? それは単なる新しいおもちゃなのでしょうか、それとも実際の ROI をもたらす画期的なツールなのでしょうか? ウェビナー「ジェネレーティブAI:よりスマートなアプリの構築、よりスマートなアプリの構築」にご登録ください、28 年 2023 月 9 日 (東部標準時間午前 3 時 | 中部標準時間午後 XNUMX 時) に!

言語を選択してください