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

Maintainer: Yuan Tang
Contact: terrytangyuan at gmail.com
Version: 2018-05-01
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(そして私がここに追加することを忘れたかもしれない他の人たち)の提案と修正に感謝しています。

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

このセクションでは、モバイルデバイス(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形式に変換するためのツールを提供します。
  • TensorFlow のExportedModelとその最適化バージョン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に変換する機能を提供します。
    • jug パッケージは、httpuv の周りに構築された単純なAPIビルダーWebフレームワークです。
    • 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: Machine Learning & Statistical Learningの英語での説明文をGoogle翻訳を使用させていただき機械的に翻訳したものを掲載した。 Maintainer: Torsten Hothorn Contact: Torsten.Hothorn 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言語 CRAN Task View:計量経済学 CRAN Task View: Econometricsの英語での説明文をGoogle翻訳を使用させていただき機械的に翻訳したものを掲載した。 Maintainer: Achim Zeileis Contact: Achim.Zeileis at […]
  • R言語 CRAN Task View:空間データの分析R言語 CRAN Task View:空間データの分析 CRAN Task View: Analysis of Spatial Dataの英語での説明文をGoogle翻訳を使用させていただき機械的に翻訳したものを掲載した。 Maintainer: Roger Bivand Contact: Roger.Bivand at […]
R言語 CRAN Task View:Rによるモデル展開