sql >> データベース >  >> NoSQL >> HBase

MLモデルを本番環境にデプロイする方法

    現在、多くのClouderaの顧客を含む多くの企業が、機械学習(ML)を実験し、さまざまな課題に取り組むためのモデルを作成しています。今日、多くのモデルがダッシュボードと内部BIの目的で使用されていますが、小規模で急速に成長しているエンタープライズリーダーのグループは、ビジネスの自動化、最適化、および製品イノベーションのためのMLの可能性を認識し始めています。このブログ投稿では、後者について詳しく説明します。具体的には、基幹業務がデータサイエンティストの方向を変えて、アプリケーションエンジニアやその他の利害関係者と協力してリアルタイムのビジネス問題を解決する方法について説明します。これらのユースケースは、業界やビジネスの重要度によって異なり、企業が保有するデータでどれだけのことができるかを学ぶにつれて、その幅と深さが増しています。

    これらのユースケースの例は次のとおりです。

    • ヘルスケアのリーダーであるCernerは、患者のセンサーデータを利用して、機械学習モデルを使用して敗血症を特定し、医師に積極的に通知して、この病気を6時間以内にさらに診断および治療できるようにします。治療可能です
    • 金融サービス 企業は機械学習を使用して不正なトランザクションをリアルタイムで検出し、顧客からのリアルタイムのフィードバックを使用して強化学習を行っています。
    • 鉄道会社 長距離貨物列車が特別な駅を通過し、そこで何千もの高解像度の写真を撮り、機械学習を適用して故障部品を特定します。次に、列車が部品や技術者と一緒に修理施設に到着するようにスケジュールを設定します。これにより、停車駅はフォーミュラワンのピットストップに似たものになります。
    • ユーティリティ スマートメーターデータを使用して、配電網の潜在的な問題を特定し、メンテナンスを積極的にスケジュールします
    • メディア企業 機械学習を使用して、表示しているものに基づいて関連するコンテンツをリアルタイムで識別して提供しています
    • 広告テクノロジーおよびeコマース企業 さまざまなターゲットオーディエンスへのオファーの関連性を確保するために、これらの機能を最も長く使用してきました。

    問題が特定され、ビジネスソリューションへの投資が決定されると、データサイエンティストは、さまざまなMLツールを使用してデータを調査し、アルゴリズムを作成し、ソフトウェアエンジニアと協力して、それらのアルゴリズムを活用できるアプリケーションを構築します。

    ニーズに応じて、データはデータウェアハウスまたは運用データベース内に存在する場合があります。 Clouderaの顧客の多くは、Cloudera Machine Learning(CML)内でSparkとSparkMLlibを使用してアルゴリズムをトレーニングします。 CMLを使用すると、MLワークフローを高速化するために構築された、単一の安全で管理されたプラットフォームでモデルを運用するためのシームレスなワークフローが可能になります。 CML参加で制作ワークフローを開発するためのアプローチの詳細については このウェビナー。

    トレーニングアルゴリズムは運用データベースで実行できます

    アルゴリズムのトレーニングにデータウェアハウスを使用する主な理由の1つは、既存の運用データベースに負荷を追加して、運用ワークロードのSLAに影響を与えないようにすることです。ただし、Clouderaのオペレーショナルデータベース(OpDB)の場合、ユーザーは、機械学習ユーザーがシステムにかけることができるリソースの量と負荷に割り当てと制限を設定できます。これにより、運用ワークロードが保護されると同時に、データサイエンティストは、2つ目のコピーを作成するコストをかけずに、リアルタイムデータを使用できます。

    ClouderaのOpDBを使用する場合、顧客は多くの場合、Sparkを使用して運用データベース内のデータをクエリし、データを探索して機械学習の目的でトレーニングに使用する前にデータをオフロードする必要をなくします。

    MLアルゴリズムは、アプリケーションレベルの可用性、復元力、応答性の要件を満たす必要があります。

    MLベースのアルゴリズムの開発とトレーニングは、通常、アプリケーションの開発と併せて行われます(これが実行可能であるという事実がすでに確立されていることを前提としています)。基盤となるデータベースの一般的なアプリケーション要件には、多くの場合、次のものが含まれます。

    • 1ミリ秒未満の応答時間
    • ハードウェアの停止に直面した場合の継続的な可用性(または高可用性であるが高可用性はあまり好ましくない)
    • スケールアウトする機能
    • 同時実行性が高い(1,000リクエスト/秒)

    機械学習をアプリケーションの一部としてデプロイする場合、可用性、復元力、応答性に関するアプリケーションの要件を満たす必要があります。さらに、アプリケーションにはいくつかの追加の機械学習固有の要件が課せられます。

    • 決定を監査する機能
    • モデル/アルゴリズムをバージョン管理する機能
    • 継続的な学習のためのデータ拡張をサポートする機能(展開されているアルゴリズムによって異なります)

    Clouderaの運用データベースは、両方の要件を満たすことができます。

    これらの要件を満たすために、顧客は通常、機械学習モデルの出力をテーブルにフラット化します。基本的に、入力スペース全体のすべての出力を事前に計算します。これにより、基盤となるデータベースに追加の要件が作成されます。

    • 数百ギガバイトまたはテラバイトのテーブルを作成する機能(入力パラメーターのサイズと数によって異なります)
    • 管理の簡素化(管理者にシャーディングの管理を強制しないなど)

    Clouderaの運用データベースの観点からは、機械学習モデルはテーブルとして簡単に表現できます(これは多くのお客様が採用しているアプローチです):

    • 主キーは、(必要な入力の数に関係なく)出力を識別するために必要な入力のセットで構成されます。
    • 列:機械学習モデルの推奨事項(出力)
    • 列:モデルバージョン

    監査機能も表のように見えます:

    • 主キーは、(必要な入力の数に関係なく)出力を識別するために必要な入力のセットで構成されます。
    • 列:この出力を誰に提供しましたか(顧客IDなど)
    • 列:提供された出力
    • 列:使用されたモデルバージョン
    • 列:どの代替回答がより良かったか(拡張)

    拡張は手動またはプログラムで実行できます(つまり、クレジットカード会社がトランザクションの確認を求めるメールを送信した場合、データ拡張を実行しています)。拡張されたこの監査テーブルは、データベースのインプレースで強化学習に使用したり、データウェアハウスにオフロードしたりするために使用できます。

    データはデータベースにあるため、モデルの更新はアプリケーションのダウンタイムなしで実行できます。

    スケーリングの観点から、Clouderaの運用データベースはApacheHBaseとApachePhoenixに基づいて構築されています。どちらも、数百テラバイトのサイズのテーブルを問題なく処理できることが証明されています。

    パブリッククラウド上のClouderaデータプラットフォーム内でClouderaの運用データベースをチェックアウトして、次のMLベースのアプリを構築します。


    1. LaravelRedisの構成

    2. MongoDBインデックスビルド–ユーザーが新しいビルドをトリガーできないようにする

    3. Redisのフィルタリング要素

    4. Mongoで$regexと$or演算子を組み合わせる