Vowpal Wabbit バージョン 8 モデルのトレーニング

Vowpal Wabbit machine learning システムのバージョン8を使用してモデルをトレーニングする

カテゴリ: Text Analytics

注意

適用対象: Machine Learning Studio (クラシック)

このコンテンツは、Studio (クラシック) のみに関連しています。 Azure Machine Learning デザイナーに同様のドラッグアンドドロップモジュールが追加されました。 この記事では、2つのバージョンの比較について詳しく説明します。

モジュールの概要

この記事では、Azure Machine Learning Studio (クラシック) の Train Vowpal Wabbit バージョン 8 モジュールを使用して、Vowpal wabbit (Version 8) を使用して機械学習モデルを作成する方法について説明します。

機械学習に Vowpal Wabbit を使用するには、Vowpal Wabbit の要件に従って入力を書式設定し、Azure blob にデータを保存します。 このモジュールを使用して、Vowpal Wabbit のコマンド ライン引数を指定します。

実験を実行すると、Vowpal Wabbit のインスタンスが、指定されたデータと共に実験の実行時に読み込まれます。 トレーニングが完了すると、モデルがワークスペースにシリアル化されて戻されます。 モデルをすぐに使用して、データをスコアリングできます。 トレーニング済みのモデルは Azure storage にも保存されるため、後でトレーニングデータを再処理することなく使用できます。

新しいデータに対して既存のモデルを段階的にトレーニングするには、保存したモデルを 事前トレーニング済みのモデル 入力に接続し、新しいデータを他の入力に追加します。

注意

Azure Machine Learning Studio (クラシック) は、Vowpal Wabbit フレームワークの複数のバージョンをホストします。 このモジュールは、バージョン8の Vowpal Wabbit フレームワークの最新バージョンを使用します。 新しい入力データをスコア付けするには、 Score Vowpal Wabbit バージョン8モデルを使用する必要があります。

Vowpal Wabbit バージョン7-4 または 7-6: トレーニング Vowpal wabbit 7-4 モデルスコア Vowpal wabbit 7-4 モデル

Vowpal Wabbit バージョン 7-10: トレーニング Vowpal wabbit 7-10 モデルスコア Vowpal wabbit 7-10 モデル

Vowpal Wabbit について

Vowpal Wabbit (VW) は高速かつ並列に機能する機械学習フレームワークです。これは分散コンピューティング用に Yahoo! Research によって開発されました。 その後、Windows に移植され、並列アーキテクチャでの科学技術計算用に John Langford (Microsoft Research) によって採用されました。

機械学習に重要とされる Vowpal Wabbit の機能には、継続的な学習 (オンライン学習)、次元の縮小、および対話型学習などがあります。 Vowpal Wabbit はまた、モデル データがメモリに収まらない場合に問題解決の手段となります。

Vowpal Wabbit を主に使用するのは、分類、回帰、トピック モデリング、行列因子分解などの機械学習タスクに、以前はフレームワークを使用していたデータ サイエンティストです。 Vowpal Wabbit 用の Azure ラッパーは、オンプレミス バージョンと非常によく似たパフォーマンス特性を備えているため、Vowpal Wabbit の強力な機能とネイティブ パフォーマンスを利用し、トレーニング済みのモデルを運用可能なサービスとして簡単に発行できます。

Feature Hashing モジュールにも、Vowpal Wabbit によって提供される機能が含まれており、ハッシュ アルゴリズムを使用してテキスト データセットをバイナリ機能に変換することができます。

Vowpal Wabbit バージョン8モデルを構成する方法

ここでは、新しいモデルをトレーニングする方法と、既存のモデルに新しいデータを追加する方法について説明します。

Studio (クラシック) の他のモジュールとは異なり、このモジュールはどちらもモジュールパラメーターを指定し、モデルをトレーニングします。 既存のモデルがある場合は、それをオプションの入力として追加し、モデルを増分的にトレーニングすることができます。

このモジュールを使用するには、Azure ストレージアカウントに対する認証が必要です。

入力データを準備する

このモジュールを使用してモデルをトレーニングするには、入力データセットが、 LibSVM または VW の2つのサポートされている形式の1つのテキスト列で構成されている必要があります。 これは、Vowpal Wabbit ではテキスト データのみが分析されるという意味ではなく、必要なテキスト ファイル形式で特徴と値を準備する必要があることを意味するだけです。

データは、Azure storage から読み取る必要があります。 データのエクスポートを使用して、Vowpal Wabbit で使用するために入力ファイルを Azure に直接保存することはできません。これは、形式によって追加の変更が必要になるためです。 データが正しい形式であることを確認してから、Azure blob ストレージにデータをアップロードする必要があります。

ただし、のショートカットとして、 svmlight への変換 モジュールを使用して svmlight フォーマットファイルを生成することができます。 次に、SVMLight フォーマットファイルを Azure blob storage にアップロードして入力として使用するか、Vowpal Wabbit 入力ファイルの要件に合わせてファイルを少し変更します。

Vowpal Wabbit データ形式には、列形式を必要としないためにスパース データを処理する際に領域を節約できる、という利点があります。 この形式の詳細については、Vowpal Wabbit の wiki ページを参照してください。

Vowpal Wabbit モデルを作成してトレーニングする

  1. Train Vowpal Wabbit Version 8 モジュールを実験に追加します。

  2. トレーニングデータが格納されるアカウントを指定します。 トレーニング済みのモデルとハッシュファイルは同じ場所に格納されます。

    • [ Azure ストレージアカウント名] に、azure ストレージアカウントの名前を入力します。

    • Azure storage キー については、ストレージアカウントにアクセスするために用意されているキーをコピーして貼り付けます。

    キーがない場合は、「ストレージアクセスキーを再生成する方法」を参照してください。

  3. [ Azure container name] には、モデルトレーニングデータが格納されている、指定した azure ストレージアカウント内の1つのコンテナーの名前を入力します。 アカウント名またはプロトコルプレフィックスを入力しないでください。

    たとえば、完全なコンテナーパスと名前がの場合、 https://myaccount.blob.core.windows.net/vwmodels 「」と入力する必要があり vwmodels ます。 コンテナー名の詳細については、「 コンテナー、blob、およびメタデータの名前付けと参照」を参照してください。

  4. [VW arguments](VW 引数) テキスト ボックスに、Vowpal Wabbit 実行可能ファイルに対するコマンド ライン引数を入力します。

    たとえば、学習速度を指定するには –l を追加し、ハッシュ ビットの数を示すには -b を追加します。

    詳細については、Vowpal Wabbit のパラメーターに関するセクションを参照してください。

  5. 入力 VW ファイルの名前: 入力データを含むファイルの名前を入力します。 このファイルは、以前に指定したストレージアカウントとコンテナーにある Azure blob ストレージ内の既存のファイルである必要があります。 ファイルは、サポートされている形式のいずれかを使用して準備されている必要があります。

  6. 読み取り可能なモデル (--readable_model) ファイルの名前: トレーニング済みのモデルを保存するファイルの名前を入力します。 ファイルは、入力ファイルと同じストレージアカウントとコンテナー内に保存する必要があります。

    この引数は、VW コマンド ラインの --readable_model パラメーターに対応します。

  7. 出力の反転ハッシュ (--invert_hash) ファイル: 反転ハッシュ関数を保存するファイルの名前を入力します。 ファイルは、入力ファイルと同じストレージアカウントとコンテナー内に保存する必要があります。

    この引数は、VW コマンド ラインの --invert_hash パラメーターに対応します。

  8. ファイルの種類を指定してください: トレーニングデータが使用する形式を示します。 Vowpal Wabbit では、次の 2 つの入力ファイル形式がサポートされています。

    • [VW] は、Vowpal Wabbit によって使用される内部形式を表します。 詳細については、Vowpal Wabbit wiki ページを参照してください。

    • [SVMLight] は、他のいくつかの機械学習ツールで使用される形式です。

  9. 実験を再実行するたびにストレージからデータを読み込まないようにする場合は、[キャッシュされた 結果を使用 する] オプションを選択します。 他のパラメーターが変更されておらず、有効なキャッシュが見つかると仮定すると、Studio (クラシック) はキャッシュされたバージョンのデータを使用します。

    このオプションが選択されていない場合、モジュールは常にストレージからデータを読み取ります。

  10. 実験を実行します。

  11. トレーニングが完了したら、出力を右クリックし、[トレーニング済みの モデルとして保存 ] を選択して、モデルを Studio (クラシック) ワークスペースに保存します。

既存の Vowpal Wabbit モデルの再トレーニング

Vowpal Wabbit では、既存のモデルに新しいデータを追加することによって、増分トレーニングがサポートされています。 再トレーニング用に既存のモデルを取得するには、次の 2 つの方法があります。

  • 同じ実験で別の Train Vowpal Wabbit Version 8 モジュールの出力を使用します。

  • Studio (クラシック) の左側のナビゲーションウィンドウの [トレーニング済みの モデル ] グループで、保存したモデルを見つけて、実験にドラッグします。

  1. Train Vowpal Wabbit Version 8 モジュールを実験に追加します。

  2. トレーニング済みのモデルを Train Vowpal Wabbit バージョン 8 の入力ポートに接続します。

  3. [ Vowpal Wabbit バージョン8のトレーニング] の [プロパティ] ペインで、新しいトレーニングデータの場所と形式を指定します。

  4. 人間が判読できるモデル出力ファイルの名前と、更新されたモデルに関連付けられているハッシュファイルの別の名前を指定します。

    注意

    指定された場所に既存の Vowpal Wabbit モデルまたはハッシュファイルがある場合、新しいトレーニング済みモデルによってファイルは警告なしで上書きされます。 再トレーニング時に中間モデルを保持するには、ストレージの場所を変更するか、モデルファイルのローカルコピーを作成する必要があります。

  5. 実験を実行します。

  6. モジュールを右クリックし、[ トレーニング済みのモデルとして保存 ] を選択して、Azure Machine Learning ワークスペースで更新されたモデルを保持します。 新しい名前を指定しないと、更新されたモデルにより既存の保存されているモデルが上書きされます。

機械学習で Vowpal Wabbit を使用する方法の例については、 Azure AI Galleryを参照してください。

  • Vowpal Wabbit サンプル

    この実験では、VW モデルのデータ、トレーニング、運用化について説明します。

また、次のリソースも参照してください。

テクニカル ノート

このセクションには、実装の詳細、ヒント、よく寄せられる質問への回答が含まれています。

Vowpal Wabbit の利点

Vowpal Wabbit では、N-gram のような非線形の特徴より非常に高速な学習が実現されます。

Vowpal Wabbit では、確率的勾配降下 (SGD) などの "オンライン学習" 技法を使用して、モデルが一度に 1 つのレコードに収められます。 したがって、生データが非常にすばやく反復処理され、他のほとんどのモデルよりも速く適切な予測子を作成できます。 また、この方法では、すべてのトレーニング データをメモリに読み取る必要がありません。

Vowpal Wabbit により、すべてのデータがハッシュに変換されます。これには、テキスト データだけでなく他のカテゴリ変数も含まれます。 ハッシュを使用すると、回帰の重みをより効率的に参照できます。このことは、効果的な確率的勾配降下を実現する上で重要です。

トレーニング中、モジュールは Azure 用に開発された Vowpal Wabbit ラッパーの呼び出しを行います。 トレーニングデータは Azure からブロック単位でダウンロードされ、計算とストアを実行する worker ロール間の高帯域幅を利用して、VW の学習器にストリーミングされます。 通常、結果として得られるモデルは、VW によって実行される内部圧縮によって、非常にコンパクトになります。 モデルが実験ワークスペースにコピーされ、Azure Machine Learning の他のモデルと同様に使用できるようになります。

サポートされているパラメーターとサポート非対象のパラメーター

ここでは Azure Machine Learning Studio (クラシック) での Vowpal Wabbit コマンドラインパラメーターのサポートについて説明します。

一般に、引数の限られたセット以外はすべてサポートされています。 引数の完全な一覧については、Vowpal Wabbit wiki ページを参照してください。

次のパラメーターはサポートされではありません。

  • https://github.com/JohnLangford/vowpal_wabbit/wiki/Command-line-arguments で指定されている入力および出力オプション

    これらのプロパティは、モジュールによってあらかじめ自動的に構成されます。

  • また、複数の出力を生成したり、複数の入力を受け取ったりするオプションは許可されていません。 これらには、 --cbt--lda 、および --wap が含まれます。

  • 教師あり学習アルゴリズムのみがサポートされています。 したがって、、、などのオプションはサポートされていません –active --rank --search 。 # # # 制限

制限

サービスの目的は Vowpal Wabbit の経験豊富なユーザーをサポートすることであるため、他のモジュールで使用されるデータセット形式ではなく、Vowpal Wabbit ネイティブ テキスト形式を使用して、事前に入力データが準備されている必要があります。

Azure ML ワークスペースでデータを使用するのではなく、トレーニングデータを Azure から直接ストリーミングして、パフォーマンスと解析のオーバーヘッドを最小限に抑えることができます。 このため、VW モジュールと Azure ML のその他のモジュールとの間では、相互運用性が制限されています。

モジュールのパラメーター

名前 Range Type 省略可能 Default 説明
ファイルの種類を指定してください。 VW

SVMLight
DataType 必須 VW ファイルの種類が SVMLight または Vowpal Wabbit であるかどうかを示します。
Azure ストレージ アカウント名 any String 必須 Azure ストレージ アカウント名を入力します。
Azure ストレージ キー any SecureString 必須 Azure ストレージ キーを提供します。
Azure コンテナー名 any String 必須 Azure コンテナー名を入力します。
VW の引数 any String 省略可能 Vowpal Wabbit の引数を指定します。 -F を含めないでください。
VW 入力ファイルの名前 any String 必須 入力ファイルの名前を Vowpal Wabbit 形式で指定します。
読み取り可能なモデル (--readable_model) の出力ファイルの名前 any String 省略可能 指定した場合、Azure コンテナーに読み取り可能なモデルを出力します。
逆ハッシュ (--invert_hash) の出力ファイルの名前 String String 省略可能 指定した場合、Azure コンテナーに、逆ハッシュ関数を含むファイルを出力します。

出力

名前 Type 説明
トレーニングされたモデル ILearner インターフェイス トレーニング済みの学習器

例外

例外 説明
エラー 0001 データ セットで指定した列のうち 1 つまたは複数が見つからない場合、例外が発生します。
エラー 0003 1 つまたは複数の入力が null または空の場合、例外が発生します。
エラー 0004 パラメーターが特定の値以下の場合、例外が発生します。
エラー 0017 指定した 1 つ以上の列の型が現在のモジュールでサポートされていない場合に、例外が発生します。

Studio (クラシック) モジュール固有のエラーの一覧については、「 Machine Learning エラーコード」を参照してください。

API 例外の一覧については、「 Machine Learning REST API のエラーコード」を参照してください。

関連項目

Text Analytics
特徴ハッシュ
名前付きエンティティの認識
Vowpal Wabbit 7-4 モデルのスコアリング
Score Vowpal Wabbit バージョン8モデル
Vowpal Wabbit 7-4 モデルのトレーニング
モジュールの一覧 (アルファベット順)