わずか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)は物理学の分野を含む多くの産業に変革をもたらしています。物理学では、AI は複雑な問...

1つのGPUで数千の環境と800万ステップのシミュレーションをわずか3秒で実行。スタンフォード大学が強力なゲームエンジンを開発

この段階では、AI エージェントは万能であるように見え、ゲームをプレイしたり、人間を模倣してさまざま...

北京ソフトウェア協会が「人工知能委員会」の設立準備を進め、アジアインフォテクノロジーズの欧陽葉博士が委員長に選出される

10月26日、中国科学技術協会社会サービスセンターの支援を受けて、北京ソフトウェア情報サービス協会(...

人工知能の実用化を加速させるには

人工知能と機械学習ソリューションは、今日、さまざまな業界の組織で一般的になりつつあります。組織が A...

3年間の車両インターネット無料化により、自動運転の産業化が加速

最近、国家発展改革委員会と財政部は、新技術と新事業の発展を奨励するために、5905-5925MHz周...

「アルゴリズム経済」はどのような新しいモデルやトレンドを生み出すのでしょうか?

2000年から10年間の発展を経て、中国のPC時代のインターネットは「交通経済」を生み出しました。...

鶏が先か卵が先か: ニューラルアーキテクチャ探索手法の概要

Google のプログレッシブ アーキテクチャ検索から CMU の微分化可能アーキテクチャ検索まで、...

ジェネレーティブ AI 初心者ガイド

ソフトウェア アーキテクトとして、私は人工知能 (AI) の発展とさまざまな業界でのその応用を目の当...

ガートナー: 2020 年の人工知能の成熟度曲線、どのテクノロジーが価値があるか

1. ガートナー: 2018 年から 2020 年までの AI 成熟度曲線の概要最近、世界的に有名な...

ドローンの将来の用途

ドローンは、1960年代以降、政府と軍隊によるインテリジェントな戦闘装備の需要から生まれました。米軍...

災害後、ウェイモブは独自のデータベースの構築を断念し、商人に1億5000万元を支払った。

[[316623]] 【51CTOオリジナル記事】先週、WeMallは大規模なシステム障害に見舞わ...

ファーウェイの鄭葉来氏:イノベーションと包括性、テクノロジーが産業インテリジェンスの向上を促進

11月11日、中国ハイテクフェア2020が深センで開催されました。ファーウェイクラウドコンピューティ...

世界初、常温量子コンピュータが実用化!絶対零度の温度は必要ありません。メインコアには実際に「ダイヤモンドがセットされています」

量子コンピューティングは、おそらく現在最もエキサイティングな(そして話題になっている)研究分野の 1...

ロボットが製造業にもたらした変化は実に目覚ましいものがあります。

知能ロボットの誕生は、国内の多くの産業に新たな力をもたらしました。ロボットの導入により、サービス業は...

工業情報化部:大規模モデルアルゴリズム技術のブレークスルーの促進とスマートチップの計算能力の向上に重点を置く

10月20日、国務院新聞弁公室公式サイトによると、工業情報化部の報道官、運営監視調整局局長の陶青氏は...