300 万行から 100 行へ: 機械学習により開発エクスペリエンスが向上

300 万行から 100 行へ: 機械学習により開発エクスペリエンスが向上

この記事は、公開アカウント「Reading the Core」(ID: AI_Discovery)から転載したものです。

このシナリオは悲惨です。失敗したソフトウェア ビルドの 2.5 GB のログ エントリ (300 万行) を参照して、100 万行目で発生したバグや回帰を見つけるのは、手動で行うにはあまりにも困難です。

幸いなことに、あなたを救う巧妙なトリックがあります。diff コマンドを実行して、これらの行を最新の成功したソフトウェア ビルドと比較し、バグによってログに予期しない行が生成されることを期待します。

[[338157]]

標準の md5 diff コマンドは高速ですが、行間の文字レベルの違いを表示するため、少なくとも数十万の候補行が生成され、それらを調べることになります。機械学習の K 最近傍クラスタリング (logreduce が行うもの) とファジー差分アルゴリズムを使用すると、約 40,000 行の候補行が生成されますが、完了するまでに 1 時間かかります。

当社のソリューションは、20 分の計算時間で 20,000 行の候補を生成します。オープンソースであるため、実装に必要なのは Python コード約 100 行だけです。

このアプリケーションは、ニューラル埋め込み (単語や文章の意味情報をエンコードする) と局所性に敏感なハッシュ (ほぼ近いアイテムを同じビンに効率的に割り当て、遠いアイテムを別のビンに割り当て) を組み合わせています。組み込みシステムと LSH (Locality Sensitive Hashing) を組み合わせるのは素晴らしいアイデアですが、登場してからまだ 10 年も経っていません。

私たちは転移学習のために CPU 上の Tensorflow 2.2 を、K 近傍法のために scikit-learnNearestNeighbor を積極的に使用しました。実際には、モデルベースの最近傍解に適した、洗練された近似最近傍実装がいくつかあります。

組み込みシステムとは何ですか? なぜ必要なのですか?

典型的な出発点は、非構造化または半構造化テキストの重複排除、検索、類似性の問題を対象とする k-hot bag-of-words モデルを構築することです。このタイプの bag-of-words エンコーディングは、個々の単語とその数を含む辞書によく似ています。 「ログインエラー、チェックログ」という文を例に挙げます。

  1. {“ログ”: 2, “入力”: 1, “エラー”: 1, “チェック”: 1}

このエンコーディングはベクトルとして表すこともできます。この場合、インデックスは単語に対応し、値はカウントになります。 「log in error, checklog」を例にとり、これをベクトルでどのように表現できるかを示します。最初のエントリには「log」の単語数、2 番目のエントリには「in」の単語数などが含まれます。

  1. [2、1、1、1、0、0、0、0、0、…]

このベクトルは多数のゼロで構成されていることに注意してください。ゼロ値のエントリは、辞書にはあるが文には現れない他のすべての単語を表します。可能なベクトルエントリの総数、つまりベクトルの次元は、言語辞書の容量です。通常はエントリが数百万以上になることがあります。しかし、巧妙なテクニックを使えば数十万まで減らすことができます。

ここで、「問題認証」の辞書とベクトル表現を見ると、最初の 5 つのベクトルエントリに対応する単語は新しい文にはまったく表示されません。

  1. {“問題”:1, “認証”:1}
  2. [0、0、0、0、1、1、0、0、0、…]

2 つの文は意味的には類似しており、本質的には同じ意味を持ちますが、同じ単語がまったく含まれていないため、語彙的には異なります。あいまい区別設定では、これらの文は類似しすぎて強調表示されない可能性がありますが、K 最近傍アルゴリズムの md5 および k-hot ドキュメント エンコーディングではこの機能はサポートされていません。

次元削減では、線形代数または人工ニューラル ネットワークを使用して、意味的に類似した単語、文、およびログ行を、「埋め込み」で表される新しいベクトル空間内に近く配置します。この例では、「ログにエラーがあります。ログを確認してください」には 5 次元の埋め込みベクトルがある可能性があります。

  1. [0.1、0.3、-0.5、-0.7、0.2]

「認証の問題」は次のようなものである可能性があります:

  1. [0.1,0.35, -0.5, -0.7, 0.2]

k-hot bag-of-words の対応するものとは異なり、これらの埋め込みはコサイン類似度などの距離メトリックによって互いに近く、高密度の低次元表現はビルド ラインやシステム ログなどの短いドキュメントに役立ちます。

実際には、数千以上の辞書次元を、5 つの情報埋め込み次元ではなく 100 に置き換える必要があります。最先端の次元削減方法には、単語共起行列の特異値分解 (GloVe) や特殊なニューラル ネットワーク (word2vec、BERT、ELMo) などがあります。

クラスタリングとは何でしょうか? ログ記録アプリケーションの構築に戻りましょう。

Netflix は、時々ビデオをストリーミングするログ生成サービスだと冗談を言っています。例外監視、ログ処理、ストリーム処理などの領域では、1 秒あたり数十万件のリクエストが処理されます。テレメトリとログの領域に機械学習を適用する場合は、NLP ソリューションを拡張する必要があります。

[[338158]]

画像ソース: unsplash

そのため、私たちはテキスト重複排除のスケーリング、意味的類似性検索、テキスト外れ値検出などの問題に重点を置いています。これは、ビジネス上の問題をリアルタイムで解決する必要がある場合に唯一の解決方法です。

diff コマンド ソリューションでは、各行を低次元ベクトルに埋め込み (同時に埋め込みモデルを「微調整」または更新するオプション付き)、それをクラスターに割り当て、異なるクラスター内の行を「異なる」ものとして識別します。局所性に敏感なハッシュは、一定時間のクラスター割り当てとほぼ一定時間の最近傍検索を可能にする確率的アルゴリズムです。

LSH は、ベクトル表現をスカラー数、より正確にはスカラーのコレクションにマッピングすることによって機能します。標準的なハッシュ アルゴリズムの目的は、2 つの同一でない入力間の衝突を回避することですが、LSH の目的は、入力が離れている場合の衝突を回避し、入力が異なっていてもベクトル空間内で互いに近い場合に衝突を促進することです。

「ログエラー、チェックログ」の埋め込みベクトルは、2進数 01 (01 はクラスターを表します) にマッピングできます。 「認証の問題」の埋め込みベクトルは、同じ 2 進数 01 にマッピングされる可能性があります。 LSH はこのようにして、ファジー マッチング、逆問題、ファジー判別を実現します。LSH は、高次元の bag-of-words モデル ベクトル空間に早くから適用されていました。

LSH を使用すると、文字は同じメモリに逆方向に配置されます。

ビルド ログのテキスト外れ値検出に LSH とニューラル エンベッディングを適用すると、エンジニアはログ行の小さなサブセットを調べて、ビジネスに不可欠な可能性のあるソフトウェアのバグを特定して修正できるようになります。また、ほぼすべてのログ行のセマンティック クラスタリングをリアルタイムで取得することも可能になります。

現在、Netflix では Semantic LSH の利点をすべてのビルドに適用しています。セマンティック部分では、一見異なる項目を意味に基づいてグループ化し、外れ値レポートで注釈を付けることができます。

成熟したオープンソースの転移学習データ製品と SDK により、LSH を通じて非常に少ないコード行でセマンティック最近傍検索の問題を解決できます。私たちは、転移学習と微調整がアプリケーションにもたらすメリットに非常に驚いています。機械学習は、人々の作業をより効率的にするために、まだまだ多くのことができるはずです。

<<:  人工知能:テクノロジーは無邪気、善と悪は人間の心の中にある

>>:  機械学習プロジェクトでオプティマイザーを選択する方法

ブログ    
ブログ    

推薦する

人工知能ロボットの開発にはどのプログラミング言語を選択すればよいでしょうか?

この記事では、ロボット開発で使用される最も人気のあるプログラミング言語のトップ10を見ていきます。そ...

AI導入における主な障壁とその解決策

COVID-19 パンデミックにより、企業はデジタル変革の取り組みを数か月、場合によっては数年も加速...

...

ベストプラクティスを実際のデザインパターンに抽象化することはできますか?機械学習

機械学習におけるデザインパターン定義上、デザイン パターンは一般的な問題に対する再利用可能なソリュー...

人工知能搭載の携帯電話は私たちの生活をどのように変えるのでしょうか? 携帯電話メーカーが何をしてきたか見てみましょう。

チャットができる「インテリジェント音声アシスタント」から、さまざまな家電を操作できるスマートスピーカ...

...

AIの4つのタイプについてお話しましょう

人工知能が流行するにつれ、人々はそれがどのように機能し、何ができるのかについて多くの疑問を抱いていま...

国立国防技術大学は、モバイル環境下で高精度のオンラインRGB-D再構成を実現するROSEFusionを提案

最近、国立国防科技大学の徐凱教授のチームは、高速移動に対するランダム最適化に基づくオンライン RGB...

5年後、農業ロボットの市場価値は引き続き増加し、約880億ドルに達するだろう。

農業用ロボットは、一般的に、農産物を操作対象とし、ある程度の人間の知覚と行動能力を持ち、さまざまな高...

Java プログラミング スキル - データ構造とアルゴリズム「基数ソート」

[[394975]]基数ソート基数ソートは「分散ソート」に属し、「バケット ソート」または「ビン ...

...

...

OpenAI と Mistral AI によって人気を博した MoE の背景にあるストーリーとは?ハイブリッドアーキテクチャの導入に関する包括的なガイド

専門家の混合 (MoE) は、LLM の効率性と精度を向上させるためによく使用される手法です。このア...