人工知能シナリオにおける HBase の使用

人工知能シナリオにおける HBase の使用

近年、人工知能は、特にビッグデータと組み合わせて使用​​されることで、ますます人気が高まっています。人工知能の主なシナリオには、画像機能、音声機能、自然言語処理機能、ユーザーポートレート機能などがあります。これらのシナリオでは、大量のデータを処理する必要があり、処理されたデータは一般的に保存する必要があります。このデータの特徴は主に次のとおりです。

大規模:データ量が多いほど、その後のモデリングに有利になります。

スパース:各データ行には異なる属性がある場合があります。たとえば、ユーザー プロファイル データでは、各人が異なる属性を持つ場合があります。ユーザー A はこの属性を持っている可能性がありますが、ユーザー B は持っていない可能性があります。ストレージ システムがこの状況に対処できることを期待します。存在しない属性は最下層のスペースを占有しないため、多くのスペースを節約できます。

列の動的な変更:データの各行には異なる数の列があります。

人工知能のシナリオにおける HBase の使用をよりよく紹介するために、以下では人工知能業界の顧客事例を使用して、HBase を使用して顔の特徴をすばやく検索するシステムを設計する方法を分析します。

[[250188]]

現在、同社の業務シナリオには顔に関する特徴データが多数含まれており、その総数は3,400万点を超え、顔データ1つあたりの数は約3.2kに上ります。これらの顔データは多くのグループに分かれており、それぞれの顔の特徴は特定のグループに属します。現在、顔グループは合計で約 620,000 個あります。各グループに含まれる顔の数は 1 から 10,000 個です。各グループには、同じ人物の異なる形式の顔データが含まれています。グループと顔の分布は次のとおりです。

  • 約 43% のグループには 1 つの顔データが含まれています。
  • 約 47% のグループには 2 ~ 9 個の顔データが含まれています。
  • 残りのグループの顔の数は 10 から 10,000 の範囲です。

現在のビジネスニーズは、主に次の 2 つのカテゴリに分けられます。

  • 顔グループ ID に従ってグループ内のすべての顔を検索します。
  • 顔グループ ID + 顔 ID に基づいて顔の特定のデータを検索します。

MySQL + OSS ソリューション

従来、業務データの量が比較的少なかった頃は、主にMySQLやOSS(オブジェクトストレージ)が利用されていました。関連するテーブルには、主に顔グループ テーブルと顔テーブルが含まれます。表の形式は次のとおりです。

グループテーブル:

[[250189]]

フェイステーブル:

特徴サイズは3.2kで、これはbase64で保存されたバイナリデータです。これが実際の顔の特徴データです。

これで、顔グループ ID と顔 ID の対応が上記のグループ テーブルに対応して MySQL に保存され、顔 ID と顔関連の特徴データが上記の顔テーブルに対応して OSS に保存されます。

各顔グループに含まれる人間の特徴の数は大きく異なるため(1〜10,000)、上記のテーブル設計に基づいて、顔グループと各顔特徴IDを各行に格納する必要があります。この場合、同じ顔グループに属するデータは、実際にはMySQLの多くの行に格納されます。たとえば、特定の顔グループ ID に対応する顔の特徴の数が 10,000 個の場合、MySQL に 10,000 行を保存する必要があります。

顔グループ ID の下にあるすべての顔を見つける必要がある場合は、次の図の左側に示すように、MySQL から多数のデータ行を読み取り、顔グループと顔の対応関係を取得し、顔 ID に基づいて OSS 内のすべての顔関連の特徴データを取得する必要があります。

上の図のクエリ パスから、このようなクエリでは非常に長いリンクが生成されることがわかります。上記の設計から、クエリ対象のグループに多数の顔が含まれている場合、MySQL から多数の行をスキャンし、OSS からこれらの顔の特徴データを取得する必要があることがわかります。全体のクエリ時間は約 10 秒で、既存のビジネスの迅速な開発のニーズを満たすにはほど遠いものです。

HBase ソリューション

上記の設計には 2 つの問題があります。

  • データ自体のサイズにより、同じデータの内容を 1 行に保存することはできないため、後続のクエリでは 2 つのストレージ システムにアクセスする必要があります。
  • MySQL は動的列をサポートしていないため、同じ面グループに属するデータは複数の行に格納されます。

上記の 2 つの問題を分析した結果、次の理由から、これが HBase の典型的なシナリオであると結論付けました。

  • HBase には動的な列機能があり、数兆行と数百万列をサポートします。
  • HBase は複数のバージョンをサポートしており、すべての変更は HBase に記録されます。
  • HBase 2.0 では、小さなファイルのストレージをサポートするために MOB (中サイズ オブジェクト) 機能が導入されました。 HBase の MOB 機能は、画像、短いビデオ、ドキュメントなど、1k ~ 10 MB の範囲のファイルを対象としています。低レイテンシ、強力な読み取り/書き込み一貫性、強力な検索機能、簡単な水平拡張などの主要な機能を備えています。

これら 3 つの機能を使用して、上記の MySQL + OSS ソリューションを再設計できます。上記のアプリケーションシナリオの 2 つのクエリ要件を組み合わせると、顔グループ ID を HBase の Rowkey として使用できます。システム設計は、上図の右側に示されています。テーブルを作成するときは、次のように MOB 機能をオンにします。

  1. 作成する  'face' 、{ NAME => 'c' 、IS_MOB => true 、MOB_THRESHOLD => 2048}

上記では、face という名前のテーブルを作成しました。IS_MOB 属性は、列クラスター c が MOB 機能を有効にすることを示します。MOB_THRESHOLD は、MOB ファイル サイズのしきい値 (バイト単位) です。ここでの設定は、2k を超える列が小さなファイルとして保存されることを示します。上記の元のソリューションでは OSS オブジェクト ストレージが使用されていることにお気づきかもしれません。顔の特徴データを保存するために OSS を直接使用しないのはなぜでしょうか。この疑問がある場合は、次の表のパフォーマンス テストを確認してください。

上記の比較に基づくと、10 MB 未満のオブジェクトを格納するために HBase MOB 機能を使用すると、オブジェクト ストレージを直接使用するよりもいくつかの利点があります。

次に、以下に示す具体的なテーブル設計を見てみましょう。

上記の HBase テーブルの列クラスター名は c であり、列名として顔 ID を使用します。前のアスペクトの 3 つのテーブルを置き換えるために、1 つの HBase テーブルのみを使用しました。MOB を有効にしましたが、具体的な挿入方法は通常の使用と同じです。コード スニペットは次のとおりです。

  1. 文字列 CF_DEFAULT = "c" ;
  2. Put put = new Put(groupId.getBytes());
  3. 列を追加します(CF_DEFAULT.getBytes()、faceId1.getBytes()、feature1.getBytes());
  4. 列を追加します(CF_DEFAULT.getBytes()、faceId2.getBytes()、feature2.getBytes());
  5. 列を追加します(CF_DEFAULT.getBytes()、faceIdn.getBytes()、featuren.getBytes());
  6. テーブル.put(put);

ユーザーが顔グループ ID に基づいてすべての顔のデータを取得する必要がある場合は、次の方法を使用できます。

  1. get = new Get(groupId.getBytes()); を取得します。
  2. 結果 re = table .get(get);

このようにして、特定の顔グループ ID に対応するすべての顔データを取得できます。顔グループ ID + 顔 ID に基づいて顔の特定のデータを検索する必要がある場合は、次の方法を使用できます。

  1. get = new Get(groupId.getBytes()); を取得します。
  2. get.addColumn(CF_DEFAULT.getBytes(), faceId1.getBytes())
  3. 結果 re = table .get(get);

上記の変換後、2 つの HBase ワーカー ノードのメモリは 32​​ GB、コア数は 8、各ノードには 4 つの 250 GB SSD ディスクが搭載され、100 万行が書き込まれ、各行には 10,000 列があり、行の読み取り時間は約 100 ミリ秒〜 500 ミリ秒です。各行に 1,000 個の顔がある場合、行の読み取り時間は約 20 ~ 50 ミリ秒となり、以前の 10 秒の 200 ~ 500 倍の高速化になります。

以下は各ソリューションのパフォーマンスの比較です。

Sparkを使用してデータ分析を加速する

顔の特徴データを Alibaba Cloud HBase に保存しました。これはデータ応用の第一歩にすぎません。このデータの背後に隠された価値をどのように引き出すことができるでしょうか。これにはデータ分析の助けが必要です。このシナリオでは、機械学習の手法を使用してクラスタリングなどの操作を実行する必要があります。 Spark を使用して HBase に保存されているデータを分析することができ、Spark 自体も機械学習をサポートしています。ただし、オープンソースの Spark を直接使用して HBase のデータを読み取ると、HBase 自体の読み取りと書き込みに影響します。

これらの問題に対処するため、Alibaba Cloud HBase チームは、HFile を直接読み取ったり、演算子をシンクしたりするなど、Spark を最適化しました。また、SQL サービス ThriftServer とジョブ サービス LivyServer を通じて Spark の使用を簡素化する、完全に管理された Spark 製品も提供しています。現在の Spark テクノロジー スタックを下図に示します。

Spark サービスを通じて、HBase とうまく統合し、リアルタイム ストリームと顔の特徴マイニングを統合できます。全体のアーキテクチャ図は次のとおりです。

さまざまな顔データ ソースからリアルタイム データを収集し、Spark Streaming を通じて簡単な ETL 操作を実行できます。次に、Spark MLib ライブラリを使用して、収集したデータに対して顔の特徴マイニングを実行し、最後にマイニング結果を HBase に保存します。 *** ユーザーは、他のアプリケーションのために HBase でマイニングされた顔の特徴データにアクセスできます。

<<:  ライトゲーム革命をリードし続けるCheetah Mobile、第3四半期のモバイルゲームの成長率は前年比77.8%で過去最高を記録

>>:  アシモフのロボット工学三原則とモービルアイの自動運転五原則

ブログ    
ブログ    

推薦する

大学生が、1時間で600本の鉄筋を結束できる鉄筋結束ロボットを発明。建設労働者は再び失業することになるのだろうか?

人工知能の発展により、肉体労働のみに頼っている労働者の中には、徐々に失業に直面している者もいる。例え...

有名人の「ペイント肌」顔変更技術を悪用したいたずら合成AI動画の調査

[[265249]]新華社、上海、5月13日。AI技術の発展により、動画の顔を変える技術的ハードルが...

CPU、TPU、GPU、DPU、QPUについて学ぶ

AIの人気に伴い、CPU、TPU、GPU、DPU、QPUなどの略語がさまざまなメディアで飛び交ってい...

韓国中央銀行が警告:AIが国内で400万の雇用を奪う可能性

IT Homeは11月16日、韓国銀行が最近、人工知能(AI)が労働市場に与える影響に関する調査報告...

Microsoft CTO: AI は地方の住民がパンデミックを乗り切るのにどのように役立つのでしょうか?

[[324043]]この記事はLeiphone.comから転載したものです。転載する場合は、Lei...

新しいニューラルネットワークモデルが登場:生成的敵対ネットワークよりも優れている

ディープニューラルネットワーク技術の発展に伴い、新しいネットワークアーキテクチャが絶えず登場していま...

事例 | 人工知能はヘルスケアの未来をどう変えるのか?

人工知能はこれらすべてを変え、私たちにとって物事をより簡単にしてくれます。 それは、私たちが交流し、...

...

中国の人工知能産業における4つの大きなトレンド

人工知能は新たな産業変革の中核的な原動力であり、これまでの科学技術革命と産業変革によって蓄積された膨...

2050年の世界はどのようになっているでしょうか?新たなエネルギー源が出現し、人工知能が社会に浸透

次に、さらに詳しく見て、2025年という神秘的な年に足を踏み入れ、この壮大なベールを解き明かしてみま...

生成AI技術の原理を深く理解する: 生成AIの入門

人工知能を単純に目的別に分類すると、意思決定型AIと生成型AIの2つに分けられます。いわゆる意思決定...

銀行における会話型 AI – 企業が犯しがちな 3 つの間違い

金融サービス業界は、特定の金融プロセスに不可欠なレガシー機器やシステムを使用しているため、他の業界に...

...

ドローンの将来の用途

ドローンは、1960年代以降、政府と軍隊によるインテリジェントな戦闘装備の需要から生まれました。米軍...

...