CRAN Task View: Model Deployment with Rの英語での説明文をGoogle翻訳を使用させていただき機械的に翻訳したものを掲載した。

Maintainer: Yuan Tang
Contact: terrytangyuan at gmail.com
Version: 2020-05-26
URL: https://CRAN.R-project.org/view=ModelDeployment

このCRANタスクビューには、モバイルデバイス、エッジデバイス、クラウド、GPUなどのさまざまな環境にモデルを展開して新しいデータのスコアリングや推論を行うプロセスを合理化する機能を提供する、トピック別に分類されたパッケージのリストが含まれています。

モデルの展開は、さまざまな理由から困難な場合があります。いくつかの課題の例は次のとおりです。

  • これは、異機種混在環境でのモデルの展開を伴います。例えば エッジデバイス、モバイルデバイス、GPUなど。
  • モデルを非常に小さいサイズに圧縮することは、ストレージが限られているデバイスに適合し、同じ精度を維持し、推論のためにモデルをロードするためのオーバーヘッドを最小限に抑えることは困難です。
  • デプロイされたモデルは、小型デバイス上の限られたメモリ内で新しいデータレコードを処理する必要があることがあります。
  • 多くのデプロイメント環境ではネットワーク接続が悪いため、クラウドソリューションが要件を満たしていないことがあります。
  • ユーザーデータがモバイルデバイスを離れる必要がない、より強力なユーザーデータプライバシーパラダイムへの関心があります。
  • データを収集する前に、デバイス上のモデルベースのデータフィルタリングを実行するという要求がますます高まっています。

このタスクビューで説明されている領域の多くは、業界および学界で急速な変化を遂げています。タスクビューの管理者task view maintainerに提案を送信するか、このタスクビューのGithubリポジトリGithub repository of this task viewにプルリクエストまたは発行を送信してください。

Achim Zeileis、Dirk Eddelbuettel、Kevin Kuo(そして私がここに追加することを忘れたかもしれない他の人たち)の示唆と修正は感謝しています。高性能コンピューティングhereのためのCRANタスクビューのGithubリポジトリで最初の.ctvファイルとMarkdown変換スクリプトを作成したDirk Eddelbuettelに感謝します。 最後に、Dirk EddelbuettelとAchim Zeileisのおかげで、私はこのタスクビューの整理を始めることができました。

さまざまな種類の成果物による展開:

このセクションでは、モバイルデバイス(Android、iOSなど)やエッジデバイス(Rasberri Pi)などの小型デバイスに適した成果物に訓練モデルをエクスポートするための機能を提供するパッケージについて説明します。これらのパッケージは、異なるモデル形式に基づいて構築されています。

  • PMML(Predictive Model Markup Language)はXMLベースの言語で、アプリケーションが統計およびデータマイニングモデルを定義し、PMML準拠のアプリケーション間でモデルを共有する方法を提供します。次のパッケージは、PMMLに基づいています。
    • pmmlは、PMMLへのメインインタフェースを提供します。
    • pmmlTransformationsを使用すると、モデルを構築する前にデータを変換できます。構造を作成して、PMMLパッケージ内の関数が、結果のPMMLファイル内のモデルに加えて変換の詳細を出力できるようにします。
    • rattleは、CSVファイル(またはODBC経由)からデータをロードし、データを変換および探索し、モデルを構築および評価し、モデルをPMMLまたはスコアとしてエクスポートすることを可能にします。
    • arulesは、トランザクションデータとパターン(度数項目セットと関連ルール)を表現、操作、分析するためのインフラストラクチャを提供します。この関連付けは、PMMLでディスクに書き込むことができます。
    • arulesSequencesは、arulesが頻繁なシーケンスを処理およびマイニングするためのアドオンです。
    • arulesCBAは、データフレーム用の関連ルールベースの分類器を構築し、このような分類器を使用して入力データフレームを分類する機能を提供します。
  • Plain Old Java Object(POJO)またはOptimized(MOJO)モデルオブジェクトは、どのJava環境にも簡単に埋め込むことができます。生成されたモデルの唯一のコンパイルおよび実行時の依存関係は、これらのパッケージのビルド出力として生成されたh2o-genmodel.jarファイルです。h2oは、xgboostに基づくGLM、DRF、XGBoostなどの幅広い機械学習モデルを構築するための使いやすいインタフェースを提供し、MOJOおよびPOJO形式としてエクスポートすることができます。次に、MOJOおよびPOJO成果物は、RESTインターフェースおよび異なる言語バインディング(例えば、 Java、Scala、R、およびPythonが含まれます。
  • Portable Format for Analytics(PFA)は、予測または分析計算を実行するイベントベースプロセッサの仕様であり、統計モデルの開発から大規模および/またはオンライン生産への移行を円滑にすることを目的としています。PFAは、システム間の移植性をアルゴリズムの柔軟性と組み合わせています。モデル、前処理、後処理は、任意の構成、連鎖、または複雑なワークフローへの組み込みが可能なすべての機能です。aureliusは、Rオブジェクトと構文をPFA形式に変換するためのツールを提供します。
  • TensorFlowSavedModelとその最適化バージョンTensorFlow Liteは、モバイルアプリケーション用のカーネルの最適化、事前融合アクティベーション、より小さくより速い(固定小数点数学)モデルを可能にする量子化されたカーネルなど、低遅延を達成するための多くのテクニックを使用します 。低レイテンシでバイナリサイズが小さく、オンデバイスのマシン学習の推論が可能です。下記のパッケージは、この形式のモデルを生成することができます。これらのパッケージは、reticulateに基づいた対応するPython APIのRラッパーです。モデルの作成にはPythonバイナリが必要ですが、デプロイの推論時間中には必要ありません。
    • tensorflowは、データフローグラフを使用した数値計算のためのTensorFlow APIへのフルアクセスを提供します。
    • tfestimatorsは、高度にカスタマイズされたニューラルネットワークアーキテクチャだけでなく、機械学習モデルにも高度なAPIを提供します。
    • kerasは、さまざまなタイプのニューラルネットワークを構築するための高水準APIが含まれています。
  • onnxは、異なるフレームワーク(例えば、TensorFlow、MXNet、PyTorch、CNTKなど)を使用して構築されたモデルの標準フォーマットであるOpen Neural Network Exchange (ONNX) へのインタフェースを提供します。これは、拡張可能な計算グラフモデルと、組み込み演算子と標準データ型の定義を定義します。あるフレームワークで訓練されたモデルは、推論のために別のフレームワークに容易に移すことができます。このオープンソース形式は、さまざまなフレームワーク間の相互運用性を可能にし、研究から生産までの道筋を合理化することで、AIコミュニティの革新のスピードを高めます。このパッケージは元のPython APIとインターフェースするためのreticulateに基づいているため、Pythonバイナリがデプロイメントに必要です。
  • mleapは、MLeapへのインタフェースを提供するsparklyr拡張です。MLeapはオープンソースライブラリであり、Apache Spark MLパイプラインの永続性とその後のJava対応デバイスまたはサービスへの展開を可能にします。実行時に、シリアライズされたモデルファイルに加えて、依存関係はJava Virtual Machine(JVM)とMLeap Runtimeであり、Sparkクラスタは必要ありません。

クラウド/サーバーによる展開:

多くのデプロイメント環境は、クラウド/サーバーに基づいています。以下のパッケージは、これらのタイプの環境にモデルをデプロイするための機能を提供します。

  • yhatrを使用すると、Yhat REST APIを介してモデルをデプロイメント、メンテナンス、および呼び出すことができます。
  • cloudmlは、Google Cloud ML Engineにモデルを簡単にデプロイする機能を提供します。
  • tfdeployは、CloudMLおよびRStudio Connectと同じREST APIをサポートするローカルテストサーバーを実行するための関数が用意されています。
  • dominoは、分析ワークフロー用に設計されたバージョン管理とコラボレーション機能を統合したスケーラブルなハードウェア上でコードを簡単に実行できるサービスであるDomino CLIへのRインターフェイスを提供します。
  • tidypredictは、データベース内の予測を実行するための機能を提供します。これは、dplyrdbplyrに基づいており、Rで書かれたデータ操作を後でさまざまなタイプのデータベース内のデータ変換と集約を実行するために使用できるデータベースクエリに変換できます。
  • ibmdbRは、多くの基本および複合R操作をデータベースにプッシュダウンすることができます。これにより、Rの主メモリー境界が除去され、基礎となるデータベースでの並列処理を最大限に活用できます。
  • sparklyrは、Apache Sparkの分散マシンラーニングライブラリへのバインディングを提供し、訓練されたモデルをクラスタに展開することを可能にします。
    • rsparklingは、通常のモデル構築にh2oを使用している間に、Sparkジョブの展開にsparklyrを使用します。
  • mrsdeployは、コンソールアプリケーションでのリモートセッションの確立、および提供したRコードブロックまたはスクリプトによってバックアップされたWebサービスの公開および管理のための関数を提供します。
  • opencpuは、RとのRPCおよびデータ交換のためのシンプルで強力なHTTP APIを公開するサーバーを提供します。これは、統計サービスまたはR Webアプリケーションの構築のための信頼性の高い拡張可能な基盤を提供します。
  • R用のいくつかの汎用サーバー/クライアントフレームワークが存在し、サーバーベースの環境でモデルを展開するのに役立ちます。
    • RserveRSclientは、TCP / IPまたはローカルソケットインターフェイス用のサーバーとクライアントの機能を提供し、多くの言語やシステムからRにアクセスできるようにします。
    • httpuvは、R内で直接HTTPおよびWebSocket要求を処理するための低レベルのソケットとプロトコルのサポートを提供します。
  • いくつかのパッケージは、RコードをWeb APIに変換する機能を提供します。
    • FastRWebは、このための基本的なインフラストラクチャがいくつか用意されています。
    • plumberを使用すると、既存のRソースコードを特別なコメントで飾るだけでWeb APIを作成できます。
    • RestRserveは、Rserveベースの高性能マイクロサービスとアプリケーションバックエンドを構築するためのR Web APIフレームワークです。

関連する記事

  • Bioconductor ExperimentDataパッケージ一覧Bioconductor ExperimentDataパッケージ一覧 BioconductorのExperimentDataパッケージの一覧をご紹介します。英語での説明文をgoogle翻訳を使用させていただき機械的に翻訳したものを掲載しました。パッケージを探す参考にしていただければ幸いです。 パッケージ確認日:2020/09/01 パッケージ数:392 1. ALL A data package データパッケージ 2. […]
  • さくらVPSのUbuntuでラピッドSSLの期限を更新する手順さくらVPSのUbuntuでラピッドSSLの期限を更新する手順 当サイトはさくらVPS上のUbuntu […]
  • R言語 CRAN Task View:追跡データの処理と分析R言語 CRAN Task View:追跡データの処理と分析 CRAN Task View: Processing and Analysis of Tracking Dataの英語での説明文をGoogle翻訳を使用させていただき機械的に翻訳したものを掲載しました。 Maintainer: Rocío Joo, Matthew E. Boone, Michael Sumner and Mathieu […]
  • アンケートの自由記述からニーズを抽出する方法アンケートの自由記述からニーズを抽出する方法 アンケートは様々な場面で有効活用されていると思うが、特に、「年齢」などの数量回答や、「男性・女性」、「満足度の5段階評価」などの単一回答、「購入動機を3つまで回答してください」などの複数回答は、集計や分析がしやすいため、重点的に活用していることだろう。 回答者の立場で考えると、数量回答・単一回答・複数回答は、設問者からの問いかけに対し、返答があらかじめ用意されていること […]
  • Ubuntuに日本語係り受け解析器CaboChaをインストールする手順Ubuntuに日本語係り受け解析器CaboChaをインストールする手順 日本語のテキストデータを解析する際に、係り受けを抽出したいときがある。係り受けを行うことができるフリーのソフトウェアの一つにCaboChaがある。CaboChaは, Support Vector […]
R言語 CRAN Task View:Rによるモデル展開