わずか1行のコードでモデルを数秒でAPIに変換でき、TensorFlowなどのフレームワークをサポートしています。

わずか1行のコードでモデルを数秒でAPIに変換でき、TensorFlowなどのフレームワークをサポートしています。

[[283641]]

機械学習モデルを API にパッケージ化することにまだ不安がありますか?このツールを使用すると、1 行のコードで直接パッケージ化できます。

機械学習アプリケーションに焦点を当てる人々は、トレーニングされたモデルから実際の工業生産ツールに至るまでにはまだ長い道のりがあることを知っています。作業の大部分は、モデルのパッケージ化、API インターフェースの予約、既存の運用システムとの統合です。最近、GitHub には、ユーザーが 1 行のコードで任意のモデルを API としてパッケージ化できるプロジェクトがあります。このツールは、開発者が実際の運用アプリケーションにモデルを迅速に展開するのに間違いなく役立ちます。

プロジェクトアドレス: https://github.com/cortexlabs/cortex

プロジェクトの特徴と原則

このプロジェクトは Cortex と呼ばれ、コマンドライン ツールです。著者らは、このプロジェクトには次のような利点があると述べています。

  • 自動定義: Cortex は、本番作業に必要な API を自動的に定義できます。
  • マルチフレームワークのサポート: Cortex は、TensorFlow、PyTorch、scikit-learn、XGBoost など、複数の機械学習フレームワークをサポートしています。
  • CPU/GPU サポート: Cortex は CPU または GPU 上で推論作業を実行できます。
  • ロールバック更新: Cortex はデプロイされた API を直接更新できます。
  • ログ ストリーム: Cortex はデプロイされたモデルのログ ストリームを保持し、CLI に表示します。
  • 予測監視: Cortex はネットワークの評価指標を監視し、予測結果を追跡できます。
  • 最小限の構成: デプロイ時に、ユーザーは cortex.yaml というファイル内の関連するプロパティを構成するだけで済みます。

このプロジェクトはどのように機能しますか?具体的には、ユーザーが cortex deploy を実行するたびに、コマンド ラインは構成プロパティとコードをサーバー クラスターに送信します。各モデルは、関連する Python パッケージとリクエストを処理するためのコードを含めて、Docker コンテナにロードされます。このモデルは、Elastic Load Balancing (ELB)、Flask、TensorFlow Serving、ONNX Runtime などのネットワーク サービスを通じてユーザーに API を公開します。コンテナは Elastic Kubernetes Service (EKS) によって制御され、ログファイルと評価メトリックのログ記録と印刷は CloudWatch によって行われます。

使い方

使用プロセスは主に次の 3 つのステップに分かれます。

モデルAPIの定義

  1. # 予測子.py
  2. model = download_my_model() def predict(sample, metadata): return model.predict(sample[ "text" ])

上記のように、ユーザーが行う必要があるのは、入力データに基づいて出力を返すことができるように、この API を表す関数を定義することだけです。

デプロイメントの構成

  1. $ curl http: //***.amazonaws.com/sentiment/classifier \-X POST -H "Content-Type: application/json" \-d '{"text": "映画は素晴らしかったです!"}'
  2. ポジティブ

2 番目のステップでは、ユーザーは関連するプロパティを構成するために使用される新しい yaml ファイルを作成する必要があります。

具体的には、ユーザーはデプロイされたモデルの名前を定義できます。この場合は、classifierpredictor という名前です。次に、classifierpredictor などの API の名前、パス、モデルの種類、使用する GPU の数を定義する必要があります。

AWS デプロイメント

  1. $ コルテックスデプロイ
  2. 分類子の作成 (http: //***.amazonaws.com/sentiment/classifier)

AWS を例にとると、上記の作業を完了した後、ユーザーはこの API を作成して AWS で作業できるようになります。

もちろん、ユーザーは以下に示すように推論結果をリアルタイムで保存することもできます。

  1. $ curl http: //***.amazonaws.com/sentiment/classifier \-X POST -H "Content-Type: application/json" \-d '{"text": "映画は素晴らしかったです!"}'
  2. ポジティブ

さらに、ユーザーは実行結果を監視できます。

  1. $ cortex 分類器を取得 --watch
  2. ステータス 最新 利用可能 リクエスト 最終更新 平均遅延 ライブ1 1 1 8秒 123ミリ秒
  3. クラス数 正 8 負4

チュートリアル

ユーザーがこのツールをより効果的に使用できるように、プロジェクト作成者はいくつかのユースケースも提供しています。含む:

  • TensorFlow と BERT に基づく感情分析: https://github.com/cortexlabs/cortex/tree/0.10/examples/tensorflow/sentiment-analysis
  • TensorFlow と Inception モデルに基づく画像分類: https://github.com/cortexlabs/cortex/tree/0.10/examples/tensorflow/image-classifier
  • PyTorch と DistilGPT2 に基づくテキスト生成: https://github.com/cortexlabs/cortex/tree/0.10/examples/pytorch/text-generator
  • XGBoost / ONNX に基づく虹彩分類: https://github.com/cortexlabs/cortex/tree/0.10/examples/xgboost/iris-classifier

BERT を使用した感情分析を例に挙げます。

まず、ユーザーはモデル上で API インターフェース関数を定義して、関数を通じてデータを入力し、モデルの推論結果を返すことができるようにする必要があります。この py ファイルは handler.py として定義されています。

  1. # ハンドラ.py
  2. tensorflow を tfi としてインポートtensorflow_hub を hubfrom bert としてインポートtokenization、run_classifier
  3. ラベル = [ "ネガティブ" , "ポジティブ" ]
  4. tf.Graph().as_default() の場合: bert_module = hub.Module( "https://tfhub.dev/google/bert_uncased_L-12_H-768_A-12/1" ) info = bert_module(signature= "tokenization_info" , as_dict=True)tf.Session() を sess として使用: vocab_file, do_lower_case = sess.run([info[ "vocab_file" ], info[ "do_lower_case" ]]) tokenizer = tokenization.FullTokenizer(vocab_file=vocab_file, do_lower_case=do_lower_case)
  5. def pre_inference(サンプル、署名、メタデータ): input_example = run_classifier.InputExample(guid= "" 、text_a=sample[ "review" ]、label= 0 ) input_feature = run_classifier.convert_single_example( 0 、input_example、[ 01 ]、 128 、tokenizer) return { "input_ids" : [input_feature.input_ids]}
  6. def post_inference(予測、署名、メタデータ): ラベル[予測[ "ラベル" ][ 0 ]]を返します

次に、ユーザーは構成 yaml ファイルを定義し、ファイル内に関連するプロパティを指定する必要があります。ファイル名は cortex.yaml として定義する必要があることに注意してください。

  1. # コルテックス
  2. - 種類: デプロイメント 名前: 感情
  3. - 種類: API 名前: 分類子 tensorflow: モデル: s3: //cortex-examples/tensorflow/sentiment-analysis/bert リクエスト ハンドラー: handler.py トラッカー: モデル タイプ: 分類

ご覧のとおり、yaml ファイルでは、使用するモデルと、API インターフェースとして機能する py ファイル (つまり、最初の手順で定義された py ファイル) を指定する必要があります。

次にそれを展開します。

  1. $ コルテックスデプロイ
  2. 展開開始

監視情報を取得する必要がある場合は、cortex get コマンドを入力する必要があります。

  1. $ cortex 分類器を取得 --watch
  2. ステータス 最新 利用可能 リクエスト 最終更新 平均待ち時間 ライブ1 1 1 8秒

コマンドラインからリアルタイムの予測を取得することもできます。

  1. $ cortex 分類器を取得
  2. URL: http: //***.amazonaws.com/sentiment/classifier
  3. $ curl http: //***.amazonaws.com/sentiment/classifier \ -X POST -H "Content-Type: application/json" \ -d '{"review": "映画は素晴らしかった!"}'"positive

<<:  問題点を突き止める - Weiang 入札および評価ビデオインテリジェントアーカイブシステム

>>:  顔認識アクセス制御システムの登場により、私たちのプライバシーを誰が守るのでしょうか?

ブログ    
ブログ    

推薦する

AIによるパスワードの盗難を防ぐ方法

翻訳者 | 陳俊レビュー | Chonglou現在、人工知能 (AI) アプリケーションの人気と急速...

並列コンピューティングの量子化モデルとディープラーニングエンジンへの応用

この世で唯一負けない武術はスピードだ。ディープラーニング モデルをより速くトレーニングする方法は、常...

TensorFlow 学習ニューラルネットワーク構築

1. ニューラルネットワークを構築してレイヤーを追加する入力値、入力サイズ、出力サイズ、活性化関数ニ...

この世界的に有名な旅行ウェブサイトは、150の独自の機械学習モデルを分析し、6つの教訓を学びました。

多くのメディア記事では、「機械学習がXX業界に力を与える」という言葉を目にしますが、この「エネルギー...

...

快手は快易のビッグモデルの助けを借りてコメントエリアでのインテリジェントな返信を実現する「AI小快」をテスト中

快手は10月26日、「AI小快」アカウントの内部テストを正式に開始し、ショートビデオコメントエリアで...

【慎重に応募】今後10年間で消滅する可能性が最も高く、代替される可能性が最も低い22の職業

[[373618]] 5Gの商用利用、人工知能、スマートシティ、スマートホーム、自動運転車、無人スー...

2024 年のトップ 10 戦略的テクノロジー トレンド

当然のことながら、AI と自動化は、テクノロジーの混乱や社会経済の不確実性に対処するために不可欠であ...

GPT-4とMidjourneyに加えて、Tan Pingの起業家チームは3D基本モデルを構築したいと考えています。

少し前にOpenAIが驚くべき生成効果を持つグラフィックモデルDALL・E 3をリリースしました。た...

OpenAIの年間収益は13億ドルに達し、月間1億ドル以上となり、夏に比べて30%増加した。

10月13日、The Informationは現地時間12日、複数の関係者の話として、OpenAI...

機械学習は計算化学研究の発展にどのように役立つのでしょうか?

過去数年間、化学研究は、個人の経験と文献から得られた過去の研究結果を使用する実験方法のみに焦点を当て...

インドは、大規模言語モデルの開発を強化するためにAI分野に1037億ルピーの投資を発表した。

インド政府は3月8日、「インドにAIを根付かせる」と「AIをインドのために役立てる」という2大目標の...

5Gテクノロジーが人工知能の能力をどのように向上させるか

5Gは人工知能の可能性を解き放ちます。しかし、AI と 5G は私たちの日常のビジネス生活にどのよう...

ディープラーニングは自動運転車にとって何を意味するのでしょうか?

[[348074]]自動運転車でディープラーニングを使用すると、歩行者の行動を理解したり、最短ルー...

ガートナーは、2025年までにクラウドデータセンターの半数がAI機能を備えたロボットを導入すると予測している。

ガートナーの予測によると、2025年までにクラウドデータセンターの半数が人工知能(AI)と機械学習(...