Vowpal Wabbit バージョン 7-4 モデルのトレーニング

重要

Machine Learning Studio (クラシック) のサポートは、2024 年 8 月 31 日に終了します。 その日までに、Azure Machine Learning に切り替えすることをお勧めします。

2021 年 12 月 1 日以降、新しい Machine Learning Studio (クラシック) リソースは作成できません。 2024 年 8 月 31 日まで、既存の Machine Learning Studio (クラシック) リソースを引き続き使用できます。

ML Studio (クラシック) のドキュメントは廃止予定であり、今後更新されない可能性があります。

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

カテゴリ: Text Analytics

注意

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

類似のドラッグ アンド ドロップ モジュールは Azure Machine Learning デザイナーで使用できます。

モジュールの概要

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

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

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

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

注意

Machine Learning Studio (クラシック) は、Vowpal wabbit フレームワークの複数のバージョンをホストします。 このモジュールは、7-4 バージョンの Vowpal Wabbit を使用します。 このモジュールを使用してモデルを作成する場合は、対応するスコアリングモジュール: Score Vowpal Wabbit 7-4 モデルを使用する必要があります。

最新バージョンについては、 Train Vowpal Wabbit バージョン8モデルを、スコアリングモジュールである Score Vowpal wabbit 8 モデルと共に使用してください。

Vowpal Wabbit について

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

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

Machine Learning の 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 バージョン 7-4モジュールを実験に追加します。

  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 を追加します。

    詳細については、「 parameters 」セクションを参照してください。

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

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

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

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

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

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

    • VW は、Vowpal Wabbit によって使用される内部形式を表します。

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

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

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

  10. 実験を実行します。

  11. モデルが生成されたら、 Train Vowpal Wabbit バージョン 7-4 の出力を右クリックし、[ トレーニング済みモデルとして保存] を選択します。これにより、後でモデルを再利用して再トレーニングすることができます。

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

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

  • 同じ実験で別の Train Vowpal Wabbit バージョン 7-4 モジュールの出力を使用します。

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

  1. Train Vowpal Wabbit バージョン 7-4モジュールを実験に追加します。

  2. トレーニング済みのモデルをVowpal wabbit バージョン 7-4の入力ポートに Connect します。

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

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

    注意

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

  5. 実験を実行します。

  6. モジュールを右クリックし、[トレーニング済みのモデルとして保存] を選択して、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 によって実行される内部圧縮によって、非常にコンパクトになります。 モデルが実験ワークスペースにコピーされ、Machine Learning の他のモデルと同様に使用できるようになります。

サポートされているパラメーターとサポートされていないパラメーター

Machine Learning Studio (クラシック) では、次のコマンドライン引数は使用できません。

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

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

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

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

上記以外のすべての引数は許可されます。

引数の完全な一覧については、Vowpal Wabbit wiki ページを参照してください。

制限

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

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

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

名前 Range Type Default 説明
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) の出力ファイルの名前 any String 指定した場合、Azure コンテナーに、逆ハッシュ関数を含むファイルを出力します。

この引数は省略可能です。
ファイルの種類を指定してください。 VW

SVMLight
DataType VW ファイルの種類で SVMLight 形式と Vowpal Wabbit 形式のどちらを使用するかを示します。

出力

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

例外

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

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

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

こちらもご覧ください

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