GCP を使用して非常にシンプルな ML API を構築する

ブログ

ホームページホームページ / ブログ / GCP を使用して非常にシンプルな ML API を構築する

Nov 13, 2023

GCP を使用して非常にシンプルな ML API を構築する

Solo membri Storie Segui Jason Huynh DataDrivenInvestor -- 1 visualizzazione condivisione

会員限定ストーリー

ジェイソン・ハイン

フォローする

データドリブン投資家

--

1

聞く

共有

AI の世界では、ディープ ラーニング モデルに入力できる入力がすべてです。 たとえば、会議メモを自動的に要約する GPT-3 へのテキスト入力や、素晴らしい画像につながる DALL-E への入力です。

ただし、このような機械学習 API は必ずしも必要ではないことがわかりました。

場合によっては、データに自動的にラベルを付ける API が必要な場合もあります。

たとえば、私は仕事でかなり怠け者です。 私は、特にデータセットの手動ラベル付けに関連する場合、すべてを手動で行う必要があるのが本当に嫌いです。

「if else」ルールを作成して各行に個別にラベルを付けることができることはわかっていますが、3 行を超えるコードを書くときに私の人生経験から何かを学んだとしたら、私はおそらくすでにバグを書いているでしょう。

そこで、機械学習を使用してデータに自動的にラベルを付けたらどうだろうかというアイデアを思いつきました。そして、このデータを表示するにはダッシュボードに保存する必要があることにすぐに気づいた点を除いて、まさにそのとおりにしました。

それで?

そこで、私はもう 1 つの素晴らしいアイデアを思いつきました。API を作成して、それをダッシュ​​ボードに入力すればよいのではないかということです。

それで、それがまさに私がやったことです。

今は、クラウド コンピューティングの魔法に任せながら、職場でスプレッドシートを一生懸命やっているふりをしているだけです。

この記事では、Google Cloud Platform を使用して、非常にシンプルな機械学習出力 API を作成します。

始める前に、まずコードを覗いてみたい場合は、ここにリポジトリがあります。

Google Cloud Platform (GCP) を使い始める前に、最初の部分としてデータ ラングリングを実行し、機械学習機能を機能させる必要があります。

これは、VS Code、Google Colab、Kaggle などの IDE で実行できます。

私としては、Kaggle のサービスが非常に寛大で、IDE が洗練されていると思うので、これを Kaggle で行うつもりです。

この API に必要なのは、Pandas と Sci-kit learn という 2 つの単純なライブラリだけです。

この記事でどのアルゴリズムを使用するかを決定しました。

数値データのみを使用し、共通点に基づいた自動ラベル付けが必要なため、機械学習として Kmeans を使用します。つまり、このチュートリアルでは教師なし機械学習アルゴリズムのみが必要です。

この記事では、簡単なので mpg データ セットを使用します。

このデータセットは、自動車の燃料に関する結論です。 詳細については、カリフォルニア大学アーバイン校の Web サイトをご覧ください。

さらに、ML API を迅速に構築するという私たちの目標として、データ クリーニングの手順で皆さんを退屈させたり混乱させたりするつもりはありません。

この場合、CSV をインポートしますが、より現実的には、SQL または非 SQL データベースからクエリを実行するか、API 呼び出しを行うことになります。

私たちが取り組んでいることを言ってみましょう。

私は、Kmeans のような単純なアルゴリズムを使用する場合、オブジェクト フィールドはあまり好きではありません。

確かに、それらをホット エンコードすることはできますが、データ クリーニング コードを記述するだけではこの記事を読むのにかかる時間が膨大になってしまうため、不要な列を削除しましょう。

前述したように、私たちの目標はシンプルであることなので、文字列を含む列をすべて削除し、数値フィールドを含む列のみを保持します。

データセットにはいくつかの整数があるので、一貫性を保つためにそれらも数値に変換します。

Kmeans は、データ ポイントから別のポイントまでの距離を測定することによって機能します。 互いに近いデータ ポイントがクラスターを形成します。 この距離はユークリッド距離によって測定されます。 基本的には、三角形の斜辺を想像してください。それが距離です。 詳細については、こちらの Wikipedia の記事をご覧ください。

アルゴリズム内のクラスターの数を設定したり、開始するランダムな状態に応じて出力を同じにするかどうかを設定したりできます。 sci-kit learn の kmeans 実装について詳しくは、こちらをご覧ください。

これでラベルができたので、あとはラベルをデータセットに添付するだけです。 これらは基本的に、データの各行が分類されるクラスターです。

結果がデータ フレームとしてどのように表示されるかを次に示します。

API 出力できるデータセットができたので、必要なのは、他のシステムで簡単に解釈できるように、データを JSON に変換することだけです。

結果が JSON としてどのように表示されるかを次に示します。

そして、すべてを仕上げるために、すべてを関数にラップします。 これはコードを本番環境に出すときに必要です。

これにより、どのパッケージが必要かを Google に伝えるのに役立つ小さなテキスト ファイルが作成されます。

正しく実行された場合、最終結果は次のようになります。

私は Google Cloud Platform と提携していないので、ここで何かを販売しているわけではないことを信じてください。 実際のところ、このチュートリアルでは、必要に応じて AWS または Azure を使用することもできますが、私は GCP 支持者です。

最初のステップは、GCP アカウントを設定することです。 ここでそれを行うことができ、その方法の指示に従ってください。

Google Cloud Functions は基本的に、クラウド上で独自の関数を実行できるサーバーレス プラットフォームです。 これは主にアプリの構築に使用され、HTTPS リクエストによってトリガーされます。

この場合、これを簡単な機械学習に使用します。

GCP 検索バーを使用して Cloud Functions を見つけます。

クラウド機能について詳しく知りたい場合は、こちらをご覧ください。

私たちの目的のために、設定することはあまりありません。 GCP は毎月 200 万回の無料呼び出しを寛大に提供していますが、それでも、料金が発生する前に関数をどのように構成するかについては、あまり制限がないようです。

ただし、私たちの目的では、隠れたコストを避けるために、この地域を米国中心部 1 のままにしたいと考えています。 米国中部 1、米国東部 1、および米国西部 1 には主に無料の機能があるため、私はこれらの地域を使用する傾向があります。

さらに、この実験ではセキュリティを設定するのが面倒なので、認証を「認証されていない呼び出しを許可する」に変更しました。 (わかっています。サイバーセキュリティの実践としては良くありません!)

必要なのはこれだけです。

今、関数の作成ページが表示されています。

私たちの関数は実際には flask 関数にラップされているため、コードを API として設定するための構成を行う必要はありません。 Google はこれを自動的に行います。

必要なのは、使用する関数を定義することだけです。 手順は次のとおりです。

ここで、「作成」をクリックし、関数を待ってテストするだけです。

[テスト] タブに移動し、[関数のテスト] をクリックして、出力に同意するかどうかを確認します。

出力は良好なようで、満足しています。

ご覧のとおり、これは非常に簡単です。

始めるのに、フロントエンド プログラミングやクラウド コンピューティングの方法を知る必要さえありません。 Python 関数の作成方法を知っていれば、大丈夫です。

指摘しなければならないのは、これは自動 API 呼び出しを行い、データを変換し、JSON として送信する API を構築したばかりであるということです。 これは非常に特殊な一方通行のパスです。

ただし、もう少し複雑なことをしたい場合は、それを将来の記事に取っておきます。

自分で試してみたい場合は、ここに GitHub リポジトリがあります。 Google Cloud Platform での動作を模倣するために、すでにコードを Flask にラップしています。 スクリプトは別の Web ページを開くため、Juypter Notebook ではなく VSCode などで実行するようにしてください。

jdwag123.medium.com

ここから DDIntel を購読してください。

ここからネットワークに参加してください: https://datadriveninvestor.com/collaborate