ゼファーネットのロゴ

MetaSporeに迅速に基づくHuggingFaceトレーニングモデル

日付:

この記事は、の一部として公開されました データサイエンスブログ。

概要

数日前、HuggingFaceは100億ドルのシリーズC資金調達ラウンドを発表しました。これは、オープンソースの機械学習における大きなニュースであり、業界がどこに向かっているのかを示す可能性があります。 HuggingFaceの資金提供の発表のXNUMX日前に、オープンソースの機械学習プラットフォーム メタスポア HuggingFaceRapidデプロイメント事前トレーニングモデルに基づくデモをリリースしました。

As 深い学習 テクノロジーは、コンピュータービジョン、自然言語処理、音声理解、およびその他の分野で革新的なブレークスルーをもたらし、ますます多くの非構造化データが機械によって認識、理解、および処理されます。 これらの進歩は、主に深層学習の強力な学習能力によるものです。 大量のデータに関する詳細なモデルの事前トレーニングを通じて、モデルは内部データパターンをキャプチャできるため、多くのダウンストリームタスクを支援します。 産業界と学界が事前トレーニング技術の研究にますます多くのエネルギーを投資するにつれて、HuggingFaceやTimmなどの事前トレーニングモデルの流通倉庫が次々と出現しました。 オープンソースコミュニティは、前例のない速度で重要なモデルの配当を事前トレーニングすることをリリースします。

近年、機械のモデリングと理解のデータ形式は、シングルモードからマルチモードへと徐々に進化し、異なるモード間のセマンティックギャップが解消され、モード間でデータを取得できるようになりました。 例として、OpenAIのオープンソース作業であるCLIPを使用して、400億枚の画像とテキストのデータセットで画像とテキストのツインタワーを事前トレーニングし、画像とテキストの間のセマンティクスを接続します。 学術界の多くの研究者は、この技術に基づいて画像の生成や検索などのマルチモーダルな問題を解決してきました。 モーダルデータ間のセマンティックギャップを介したフロンティアテクノロジーですが、依然として重くて複雑なモデルチューニング、オフラインデータ処理、高性能オンライン推論アーキテクチャ設計、異種コンピューティング、およびオンラインアルゴリズムが複数のプロセスと課題から生まれ、フロンティアマルチモーダルを妨げています検索技術は地に足を踏み入れ、プラット&ホイットニー。

Dメタソウル

Dメタソウル 上記の技術的な問題点を目指し、モデルトレーニングの最適化、オンライン推論、アルゴリズム実験などの多くのリンクを抽象化して統合し、オフラインの事前トレーニングモデルをオンラインにすばやく適用できる一連のソリューションを形成します。 このホワイトペーパーでは、HuggingFaceコミュニティの事前トレーニングモデルを使用して、MetaSporeテクノロジーエコロジーに基づいたオンライン推論とアルゴリズム実験を実施し、事前トレーニングモデルのメリットを特定のビジネスや業界、中小企業に完全にリリースする方法を紹介します。中小企業。 また、参考のために、テキスト検索テキストとテキスト検索グラフにXNUMXつのマルチモーダル検索のデモンストレーション例を示します。

マルチモーダルセマンティック検索

マルチモーダル検索のサンプルアーキテクチャは次のとおりです。
当社のマルチモーダル検索システムは、オフライン処理、モデル推論、オンラインサービス、およびその他のコアモジュールを含む、テキスト検索とテキスト検索アプリケーションの両方のシナリオをサポートします。

  1. オフライン処理。モデルの調整、モデルのエクスポート、データインデックスデータベースの構築、データプッシュなど、テキスト検索とテキスト検索のさまざまなアプリケーションシナリオのオフラインデータ処理プロセスが含まれます。
  2. モデル推論。 オフラインモデルトレーニングの後、MetaSporeServingフレームワークに基づいてNLPおよびCVの大規模モデルを展開しました。 MetaSpore Servingは、異種環境でオンライン推論、エラスティックスケジューリング、負荷分散、およびリソーススケジューリングを便利に実行するのに役立ちます。
  3. オンラインサービス。 MetaSporeのオンラインアルゴリズムアプリケーションフレームワークに基づいて、MetaSporeは、フロントエンド検索UI、マルチモーダルデータ前処理、ベクトルの再現率と並べ替えアルゴリズム、AB実験フレームワークなどを含む、再利用可能なオンライン検索サービスの完全なセットを備えています。テキストによる画像シーン検索。低コストで他のアプリケーションシナリオに移行できます。

HuggingFaceオープンソースコミュニティは、同様のマルチモーダル検索問題に対していくつかの優れたベースラインモデルを提供しており、これは多くの場合、業界での実際の最適化の開始点です。 MetaSporeは、単語ごとに単語を検索し、単語ごとに画像を検索するオンラインサービスで、HuggingFaceコミュニティの事前トレーニングモデルも使用しています。 単語による単語の検索は、MetaSporeによって最適化された質問と回答のフィールドの意味的類似性モデルに基づいており、単語による画像の検索は、コミュニティの事前トレーニングモデルに基づいています。

これらのコミュニティオープンソースの事前トレーニングモデルは、一般的なONNX形式にエクスポートされ、オンライン推論のためにMetaSporeServingにロードされます。 次のセクションでは、モデルのエクスポートおよびオンライン検索アルゴリズムサービスについて詳しく説明します。 モデルの推論部分は、ビジネスとの結合度が低い標準化されたSAASサービスです。 興味のある読者は、私の以前の投稿を参照できます。新世代のワンストップ機械学習プラットフォームであるMetaSporeの設計コンセプトです。

オフライン処理
オフライン処理には、主にオンラインモデルのエクスポートとロード、およびドキュメントライブラリのインデックス作成とプッシュが含まれます。 以下のステップバイステップの手順に従って、テキスト検索と画像検索のオフライン処理を完了し、オフラインの事前トレーニングモデルがMetaSporeで推論をどのように達成するかを確認できます。

テキストでテキストを検索
従来のテキスト検索システムは、BM25などの文字通りのマッチングアルゴリズムに基づいています。 ユーザーの多様なクエリワードのために、クエリワードとドキュメントの間にセマンティックギャップがしばしば発生します。 たとえば、ユーザーが「iPhone」のつづりを「電話」と間違えたり、「生後1〜3か月の赤ちゃんの秋の小さなサイズのバッグパンツ」などの検索用語が非常に長くなります。 従来のテキスト検索システムは、スペル修正、同義語の拡張、検索語の書き換え、およびその他の手段を使用して意味のギャップを緩和しますが、基本的にこの問題を解決することはできません。 検索システムがユーザーのクエリ用語とドキュメントを完全に理解している場合にのみ、セマンティックレベルでユーザーの検索要求を満たすことができます。 事前トレーニングと表象学習技術の継続的な進歩に伴い、一部の商用検索エンジンは、記号学習に基づく意味ベクトル検索方法を検索エコロジーに統合し続けています。

セマンティック検索モデル

この論文では、セマンティックベクトル検索アプリケーションのセットを紹介します。 MetaSporeは、百科事典の質問と回答のデータに基づいて、一連のセマンティック検索システムを構築しました。 MetaSporeは、セマンティックベクトル表現モデルとしてSentence-Bertモデルを採用しました。これは、モデルを検索タスクにより適したものにするために、監視ありまたは監視なしの方法でツインタワーBERTを微調整します。 モデル構造は次のとおりです。

query-Doc対称1タワーモデルは、テキスト検索と質問と回答の検索で使用されます。 オンラインクエリとオフラインDOCのベクトル表現は同じベクトル表現モデルを共有するため、オフラインDOCライブラリ構築モデルとオンラインクエリ推論モデルの一貫性を確保する必要があります。 このケースでは、MetaSporeのテキスト表現モデルSbert-Chinese-QMC-domain-VXNUMXを使用しており、オープンソースの意味的に類似したデータセットで最適化されています。 このモデルは、オフラインデータベース構築のベクトルとして質問と回答のデータを表現します。 ユーザークエリは、オンライン検索でこのモデルによってベクトルとして表現され、同じセマンティックスペース内のquery-doc、ユーザーのセマンティック検索要求がベクトル類似度メトリック計算によって保証されることを保証します。

テキストプレゼンテーションモデルはオンラインクエリのベクトルエンコーディングを行うため、オンラインサービスで使用するためにモデルをエクスポートする必要があります。 q&Aデータライブラリコードディレクトリに移動し、ドキュメントに関するモデルをエクスポートします。 スクリプトでは、PytorchTracingを使用してモデルをエクスポートします。 モデルは「./export」ディレクトリにエクスポートされます。 エクスポートされるモデルは、主に有線推論、Tokenizer、および関連する構成ファイルに使用されるONNXモデルです。 エクスポートされたモデルは、モデルの推論のために、以下で説明するオンラインサービングシステムによってMetaSporeサービングにロードされます。 エクスポートされたモデルはクラウドストレージにコピーされるため、env.shで関連する変数を構成する必要があります。

テキスト検索に基づいてライブラリを構築する

検索データベースは、百科事典の質問と回答のデータセットに基づいて構築されています。 説明文書によると、データをダウンロードしてデータベースの構築を完了する必要があります。 質問と回答のデータはオフラインモデルによってベクトルとしてコード化され、データベース構築データはサービスコンポーネントにプッシュされます。 データベース構築の全プロセスは次のように説明されています。

  1. 前処理、データベース構築のために元のデータをより一般的なJSonline形式に変換します。
  2. インデックスを作成し、オンラインの「sbert-Chinese-qmc-domain-v1」と同じモデルを使用してドキュメントにインデックスを付けます(XNUMX行にXNUMXつのドキュメントオブジェクト)。
  3. 反転(ベクトル)および転送(ドキュメントフィールド)データを各コンポーネントサーバーにプッシュします。

以下は、データベースのデータ形式の例です。 オフラインデータベースの構築が完了すると、ドキュメントのベクトル表現を格納するMilvusやドキュメントの要約情報を格納するMongoDBなど、さまざまなデータが対応するサービスコンポーネントにプッシュされます。 オンライン検索アルゴリズムサービスは、これらのサービスコンポーネントを使用して関連データを取得します。

テキストで検索
テキストと画像は、人間にとって意味的に関連付けるのは簡単ですが、機械にとっては困難です。 まず、データ形式の観点から、テキストは単語と単語に基づくXNUMX次元データの離散IDタイプです。 同時に、画像は連続したXNUMX次元またはXNUMX次元のデータです。 第二に、テキストは人間の主観的な創造物であり、その表現能力は、さまざまなターニングポイント、メタファー、その他の表現を含めて活気に満ちていますが、画像は客観的な世界の機械表現です。 つまり、テキストと画像データの間のセマンティックギャップを埋めるのは、テキストごとに検索するよりもはるかに複雑です。 従来のテキスト検索画像検索技術は、一般に、画像の外部テキスト記述データまたは最近傍検索技術に依存し、画像に関連付けられたテキストを介して検索を実行します。これにより、本質的にテキスト検索の問題が悪化します。 ただし、関連する画像のテキストを取得したり、テキストによるテキスト検索の精度が十分に高いかどうかなど、多くの問題にも直面します。 深度モデルは、近年、シングルモードからマルチモードへと徐々に進化してきました。 OpenAIのオープンソースプロジェクトであるCLIPを例にとると、インターネットの大量の画像とテキストデータを介してモデルをトレーニングし、テキストと画像データを同じセマンティックスペースにマッピングして、テキストと画像の実装を可能にします。セマンティックベクトルに基づく検索技術。

CLIPグラフィックモデル

本論文で紹介するテキスト検索画像は意味ベクトル検索に基づいて実装されており、CLIP事前トレーニングモデルがXNUMXタワー検索アーキテクチャとして使用されています。 CLIPモデルは、大量のグラフィックおよびテキストデータでツインタワーのテキストおよび画像側モデルのセマンティックアラインメントをトレーニングしているため、テキスト検索グラフシーンに特に適しています。

画像とテキストのデータ形式が異なるため、テキスト検索の画像検索にはQuery-Doc非対称ツインタワーモデルが使用されます。 ツインタワーの画像側モデルはオフラインデータベースの構築に使用され、テキスト側モデルはオンラインリターンに使用されます。 最終的なオンライン検索では、テキスト側モデルがクエリをエンコードした後、画像側モデルのデータベースデータが検索され、CLIP事前トレーニングモデルによって画像とテキスト間の意味相関が保証されます。 モデルは、大量の視覚データを事前にトレーニングすることにより、ベクトル空間でグラフィックペアをより近くに描画できます。
ここでは、オンラインMetaSporeServing推論のテキスト側モデルをエクスポートする必要があります。 検索シーンは中国語をベースにしているため、中国語の理解をサポートするCLIPモデルを選択します。 エクスポートされたコンテンツには、テキスト検索と同様に、オンライン推論とトークナイザーに使用されるONNXモデルが含まれます。 MetaSpore Servingは、エクスポートされたコンテンツを通じてモデル推論をロードできます。

画像検索でライブラリを構築する

Unsplash Liteライブラリデータをダウンロードし、指示に従って構築を完了する必要があります。 データベース構築の全プロセスは次のように説明されています。

  1. 前処理を行い、イメージディレクトリを指定してから、ライブラリ構築用のより一般的なJSOnlineファイルを生成します。
  2. インデックスを作成し、OpenAI / Clip-Vit-BASE-Patch32事前トレーニングモデルを使用してギャラリーにインデックスを付け、インデックスデータの各行にXNUMXつのドキュメントオブジェクトを出力します。
  3. 反転(ベクトル)および転送(ドキュメントフィールド)データを各コンポーネントサーバーにプッシュします。 テキスト検索と同様に、オフラインデータベースの構築後、関連データはサービスコンポーネントにプッシュされ、オンライン検索アルゴリズムサービスによって呼び出されて関連データを取得します。

オンラインサービス
全体的なオンラインサービスアーキテクチャ図は次のとおりです。

画像検索| HuggingFace

マルチモード検索オンラインサービスシステムは、テキスト検索やテキスト検索などのアプリケーションシナリオをサポートします。 オンラインサービス全体は、次の部分で構成されています。

  1. クエリ前処理サービス:事前トレーニングモデルの前処理ロジック(テキスト/画像などを含む)をカプセル化し、gRPCインターフェイスを介してサービスを提供します。
  2. 検索アルゴリズムサービス:アルゴリズム処理リンク全体には、AB実験の接線フロー構成、MetaSporeサービング呼び出し、ベクトルのリコール、並べ替え、ドキュメントの概要などが含まれます。
  3. ユーザー入力サービス:ユーザーが検索サービスの問題をデバッグおよび追跡するためのWebUIインターフェースを提供します。

ユーザーリクエストの観点からは、これらのサービスは呼び出しの依存関係を後ろから前に形成するため、マルチモーダルサンプルを作成するには、最初に各サービスを前から後ろに実行する必要があります。 これを行う前に、オフラインモデルをエクスポートし、オンラインにして、最初にライブラリをビルドすることを忘れないでください。 この記事では、オンラインサービスシステムのさまざまな部分を紹介し、次のガイダンスに従ってサービスシステム全体を段階的に作成します。 詳細については、この記事の最後にあるReadMEを参照してください。

クエリ前処理サービス
深層学習モデルはテンソルに基づく傾向がありますが、NLP / CVモデルには、多くの場合、生のテキストと画像を深層学習モデルが受け入れることができるテンソルに変換する前処理部分があります。 たとえば、NLPクラスモデルには、文字列型のテキストデータを個別のテンソルデータに変換するためのプレトークン化機能が備わっていることがよくあります。 CVクラスモデルにも同様の処理ロジックがあり、前処理を通じて入力画像のトリミング、スケーリング、変換、およびその他の処理を完了します。 一方では、前処理ロジックのこの部分が深度モデルのテンソル推論から切り離されていることを考慮すると、他方では、深度モデルの理由はONNXに基づく独立した技術システムを持っているため、MetaSporeは前処理ロジックのこの部分を分解しました。

NLP前処理トークナイザーがクエリ前処理サービスに統合されました。 比較的一般的な慣習によるMetaSporeの解体。 ユーザーは、ロードと予測のインターフェイスを実現し、前処理サービスにロードされた必要なデータと構成ファイルをエクスポートするために、前処理ロジックファイルを提供するだけで済みます。 後続のCV前処理ロジックもこの方法で統合されます。

前処理サービスは現在、gRPCインターフェースの呼び出しを外部に提供しており、検索アルゴリズムサービスのクエリ前処理(QP)モジュールに依存しています。 ユーザーリクエストが取得アルゴリズムサービスに到達すると、サービスに転送されてデータの前処理が完了し、後続の処理が続行されます。 ReadMeは、前処理サービスの開始方法、クラウドストレージにオフラインでエクスポートされた前処理モデルがサービスに入る方法、およびサービスをデバッグする方法の詳細を提供します。

モデル推論の効率と安定性をさらに向上させるために、MetaSporeServingはPython前処理サブモジュールを実装しています。 そのため、MetaSporeは、ユーザー指定のpreprocessor.py、完全なTokenizer、またはNLPでのCV関連の前処理を通じて、gRPCサービスを提供し、ディープモデルが処理できるTensorにリクエストを変換できます。 最後に、モデルの推論はMetaSporeによって実行され、後続のサブモジュールにサービスを提供します。

ロットコードでここに提示されます: https://github.com/meta-soul/MetaSpore/compare/add_python_preprocessor

取得アルゴリズムサービス
取得アルゴリズムサービスは、オンラインサービスシステム全体の中核であり、実験のトリアージ、前処理、リコール、並べ替え、依存コンポーネントサービスの呼び出しなどのアルゴリズムチェーンの組み立てを担当します。 検索アルゴリズムサービス全体は、Java Springフレームワークに基づいて開発されており、テキスト検索とテキスト検索グラフのマルチモード検索シナリオをサポートしています。 優れた内部抽象化とモジュラー設計により、柔軟性が高く、低コストで同様のアプリケーションシナリオに移行できます。
これは、検索アルゴリズムサービスを設定するための環境を構成するためのクイックガイドです。 詳細については、ReadMEを参照してください。

  1. 依存コンポーネントをインストールします。 Mavenを使用してオンラインサービスコンポーネントをインストールします
  2. サービス構成を検索します。 テンプレート構成ファイルをコピーし、開発/本番環境に基づいてMongoDB、Milvus、およびその他の構成を置き換えます。
  3. 領事をインストールして構成します。 Consulを使用すると、実験のフローの削減、パラメーターの呼び出し、パラメーターの並べ替えなど、検索サービスの構成をリアルタイムで同期できます。 プロジェクトの構成ファイルには、テキスト検索とテキスト検索の現在の構成パラメーターが表示されます。 前処理とリコールの段階のパラメーターmodelNameは、オフライン処理でエクスポートされた対応するモデルです。
  4. サービスを開始します。 上記の設定が完了すると、エントリスクリプトから取得サービスを開始できます。 サービスが開始されたら、それをテストできます! たとえば、userId = 10のユーザーで、「IDカードの更新方法」を照会したい場合は、テキスト検索サービスにアクセスします。

ユーザーエントリーサービス
検索アルゴリズムサービスがAPIインターフェースの形式であることを考えると、問題を特定して追跡することは困難です。特に、テキスト検索の画像シーンでは、検索結果を直感的に表示して、検索アルゴリズムの反復的な最適化を容易にすることができます。 このホワイトペーパーでは、テキスト検索と画像検索用の軽量Web UIインターフェイス、検索入力ボックス、および結果をユーザーに表示するページを提供します。 Flaskによって開発されたこのサービスは、他の検索アプリケーションと簡単に統合できます。 このサービスは検索アルゴリズムサービスを呼び出し、返された結果をページに表示します。

また、サービスのインストールと開始も簡単です。 完了したら、に移動します http://127.0.0.1:8090 検索UIサービスが正しく機能しているかどうかを確認します。 詳細については、この記事の最後にあるReadMEを参照してください。

マルチモーダルシステムのデモンストレーション
マルチモーダル検索サービスは、上記の手順に従ってオフライン処理とオンラインサービス環境の構成が完了したときに開始できます。 テキスト検索の例を以下に示します。
テキスト検索マップアプリケーションのエントリを入力し、最初に「cat」と入力すると、返された結果の最初のXNUMX桁がcatsであることがわかります。

マルチモーダルシステム

「猫」に色の制約を追加して「黒猫」を取得すると、黒猫が返されることがわかります。

さらに、検索語の制約を強化し、「ベッドの上の黒猫」に変更して、ベッドに登っている黒猫の写真を含む結果を返します。

抱き合う顔

上記の例で色とシーンを変更した後でも、テキスト検索システムで猫を見つけることができます。

まとめ

最先端の事前トレーニングテクノロジーは、異なるモード間のセマンティックギャップを埋めることができ、HuggingFaceコミュニティは、開発者が事前トレーニングモデルを使用するためのコストを大幅に削減できます。 MetaSporeのオンライン推論とDMetaSporeが提供するオンラインマイクロサービスの技術的エコロジーと組み合わせることで、事前トレーニングモデルはもはや単なるオフラインの手探りではありません。 代わりに、最先端のテクノロジーから産業シナリオまで、エンドツーエンドの実装を真に実現し、トレーニング前の大型モデルのメリットを完全に解放できます。 将来、 Dメタソウル MetaSporeテクノロジーエコシステムの改善と最適化を継続します。

  1. HuggingFaceコミュニティエコロジーへのより自動化されたより広いアクセス。 MetaSporeはまもなく、HuggingFaceを生態学的にアクセス可能にするための共通モデル展開メカニズムをリリースし、後で前処理サービスをオンラインサービスに統合します。
  2. マルチモード検索オフラインアルゴリズムの最適化。 マルチモーダル検索シナリオの場合、MetaSporeは、検索アルゴリズムの精度と効率を向上させるために、テキストリコール/ソートモデル、グラフィックリコール/ソートモデルなどを含むオフラインアルゴリズムコンポーネントを継続的に最適化します。 この記事の関連コードとリファレンスドキュメントについては、次のWebサイトをご覧ください。 https://github.com/meta-soul/MetaSpore/tree/main/demo/multimodal/online.

この記事に示されているメディアは Analytics Vidhya が所有するものではなく、著者の裁量で使用されています。

スポット画像

最新のインテリジェンス

スポット画像