グループの高橋寛治です。最近はスマブラSPの研究活動に熱心に取り組んでおり、少しずつ成果が出始めておりホッとしているところです。研究開発活動では何かしらのモデルやアルゴリズムを開発し、それを共有します。共有する際に、環境の違いにより動作しなかったり、そもそもの利用方法がわからなかったりします。して提供することで、環境を問わず、かつ利用方法も明確にする方法について紹介します。コンテナを作成します。提供するためのフレームワークです。デコレータで任意のメソッドについてラップするだけで、APIエンドポイントとして動作します。アルゴリズムのAPI化においてラップするだけで動作するというのは魅力的です。ファイルを準備したら、コンテナをビルドして動かしてみましょう。:8000...さてコンテナが稼働中ですので、実際に動作確認をしてみます。叩くことで、メッセージが返ってくるはずです。しての動作をしていることが確認できました。この関数内で任意のアルゴリズムを動作させることで、コンテナ化します。データセットを使って学習済みモデルを準備します。APIではこのモデルを読み込み、APIとして提供します。この保存したモデルをAPIで読み込みます。モジュールによりダンプしていたモデルを読み込みます。POSTリクエストでデータを受け取って推論した結果をクライアントに返します。クライアントからは学習時と同様のデータをAPIリクエストします。APIリクエストのサンプルファイルを書いてみます。サンプルリクエストがあることで、入出力が明確になります。それでは実行してみましょう。:8000...別のターミナルでサンプルリクエストを投げてみます。sample_api_request.py4正解かどうかはわかりませんが、「4」であると返って来ました。このように、アルゴリズムをコンテナ化することで、他の環境で容易に動作させることができます。エントリーポイントをシェルスクリプトで記述し、trainとapiといったように引数で動作状態を変更することで、学習からAPI提供までを一つのコンテナで行うことができます。最終的なディレクトリ構成はこのようになります。使うのもいいでしょう。設定することで利用できます。提供していますので、簡単に使えます。ポータビリティを重視する自分が開発したアルゴリズムが他の環境で簡単に動かせることで、その良さを使ってもらって示すことができます。アルゴリズムを読み込むという枠組みで、インターン生が開発されたアルゴリズムのポータビリティを担保することができました。アルゴリズムの開発初期からコンテナ化を意識しておくことで、連携速度は爆速になると思いますので、コンテナを活用していくのはいいのではないかと考えています。自然言語処理の研究に取り組み、解析ツールの開発や機械翻訳に関連する研究を行う。大学院を卒業後、2017年にSansan株式会社に入社。現在はキーワード抽出など自然言語処理を生かした研究に取り組んでいる。11:00Tweet関連記事2022-09-01【Techの道も一歩から】第48回「Inf1のSageMaker推論エンドポイントをカスタムコンテナ...こんにちは。