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

Maintainer: Yuan Tang
Contact: terrytangyuan at gmail.com
Version: 2019-06-06
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を使用します。
  • AzureMLパッケージは、Azure Machine Learningをサポートするための関数とデータセットが含まれています。これにより、R関数をAPIサービスとして公開し、消費するだけでなく、データセットとやりとりすることができます。
  • mrsdeployパッケージは、コンソールアプリケーションでのリモートセッションの確立、および提供したRコードブロックまたはスクリプトによってバックアップされたWebサービスの公開および管理のための関数を提供します。
  • opencpuパッケージは、RとのRPCおよびデータ交換のためのシンプルで強力なHTTP APIを公開するサーバーを提供します。これは、統計サービスまたはR Webアプリケーションの構築のための信頼性の高い拡張可能な基盤を提供します。
  • R用のいくつかの汎用サーバー/クライアントフレームワークが存在し、サーバーベースの環境でモデルを展開するのに役立ちます。
    • RserveパッケージとRSclientパッケージは、TCP / IPまたはローカルソケットインターフェイス用のサーバーとクライアントの機能を提供し、多くの言語やシステムからRにアクセスできるようにします。
    • httpuvパッケージは、R内で直接HTTPおよびWebSocket要求を処理するための低レベルのソケットとプロトコルのサポートを提供します。
  • いくつかのパッケージは、RコードをWeb APIに変換する機能を提供します。
    • FastRWebパッケージは、このための基本的なインフラストラクチャがいくつか用意されています。
    • plumberパッケージを使用すると、既存のRソースコードを特別なコメントで飾るだけでWeb APIを作成できます。
    • RestRserveパッケージは、Rserveベースの高性能マイクロサービスとアプリケーションバックエンドを構築するためのR Web APIフレームワークです。

関連する記事

  • R言語 CRAN Task View:RグラフィカルモデルR言語 CRAN Task View:Rグラフィカルモデル CRAN Task View: gRaphical Models in Rの英語での説明文をGoogle翻訳を使用させていただき機械的に翻訳したものを掲載した。 Maintainer: Soren Hojsgaard Contact: sorenh at […]
  • R言語 CRAN Task View:欠損データR言語 CRAN Task View:欠損データ CRAN Task View: Missing Dataの英語での説明文をGoogle翻訳を使用させていただき機械的に翻訳したものを掲載しました。 Maintainer: Julie Josse, Nicholas Tierney and Nathalie Vialaneix (r-miss-tastic […]
  • R言語 CRAN Task View:機械学習&統計学習R言語 CRAN Task View:機械学習&統計学習 CRAN Task View: Machine Learning & Statistical Learningの英語での説明文をGoogle翻訳を使用させていただき機械的に翻訳したものを掲載しました。 Maintainer: Torsten Hothorn Contact: Torsten.Hothorn at […]
  • R言語 CRAN Task View:社会科学の統計R言語 CRAN Task View:社会科学の統計 CRAN Task View: Statistics for the Social Sciencesの英語での説明文をGoogle翻訳を使用させていただき機械的に翻訳したものを掲載した。 Maintainer: John Fox Contact: jfox at […]
  • R言語 CRAN Task View:再現性のある研究R言語 CRAN Task View:再現性のある研究 CRAN Task View: Reproducible Researchの英語での説明文をGoogle翻訳を使用させていただき機械的に翻訳したものを掲載した。 Maintainer: Max Kuhn Contact: mxkuhn at […]
R言語 CRAN Task View:Rによるモデル展開