以前、
最新のデータ レイク (データ レイクハウスとも呼ばれる) は、半分がデータ レイクで、半分が Open Table Format Specification (OTF) ベースのデータ ウェアハウスです。どちらも最新のオブジェクト ストレージ上に構築されています。
同時に、私たちは、トレーニング セット、検証セット、テスト セットの生のストレージだけでなく、AI/ML のあらゆるニーズに対応できる AI データ インフラストラクチャを組織が構築する方法を深く考えてきました。言い換えれば、大規模な言語モデル、MLOps ツール、分散トレーニングなどをトレーニングするために必要なコンピューティングが含まれている必要があります。この考え方の結果として、最新のデータ レイクの使用方法に関する別の論文をまとめました。
ソース:
どちらの論文も、特定のベンダーやツールについては言及していません。ここでは、最新のデータ レイクを構築するために必要なベンダーとツールについて説明したいと思います。このトップ 10 リストの各項目は、生成 AI をサポートするために必要な機能です。
エンタープライズ データ レイクは、オブジェクト ストレージ上に構築されます。安価で大規模なアーカイブのユース ケースに使用されていた旧式のアプライアンス ベースのオブジェクト ストレージではなく、最新の GenAI スタックの基礎となる、最新の高性能なソフトウェア定義の Kubernetes ネイティブ オブジェクト ストアです。これらは、サービス (AWS、GCP、Azure) として、またはオンプレミスで、あるいは MinIO などのハイブリッド/両方で利用できます。これらのデータ レイクは、ストリーミング ワークロードをサポートし、非常に効率的な暗号化と消去コーディングを備え、オブジェクトとともにメタデータをアトミックに保存し、Lambda コンピューティングなどのテクノロジをサポートする必要があります。これらの最新の代替手段はクラウド ネイティブであるため、ファイアウォールから可観測性、ユーザーおよびアクセス管理まで、他のクラウド ネイティブ テクノロジのスタック全体とすぐに統合されます。
オブジェクト ストレージは、OTP ベースのデータ ウェアハウスの基盤となるストレージ ソリューションでもあります。データ ウェアハウスにオブジェクト ストレージを使用するのは奇妙に聞こえるかもしれませんが、このように構築されたデータ ウェアハウスは、次世代のデータ ウェアハウスを表しています。これは、Netflix、Uber、Databricks によって作成された OTF 仕様によって可能になり、データ ウェアハウス内でオブジェクト ストレージをシームレスに使用できるようになります。
OTF (Apache Iceberg、Apache Hudi、Delta Lake) は、作成者のデータ ニーズに対応できる製品が市場になかったために作成されました。基本的に、これらはすべて (方法は異なりますが)、オブジェクト ストレージ上に構築できるデータ ウェアハウスを定義します。オブジェクト ストレージは、他のストレージ ソリューションでは実現できない、スケーラブルな容量と高いパフォーマンスの組み合わせを提供します。これらは最新の仕様であるため、パーティション進化、スキーマ進化、ゼロ コピー ブランチなど、旧式のデータ ウェアハウスにはない高度な機能を備えています。
MinIO 上で OTF ベースのデータ ウェアハウスを実行できる 2 つの MinIO パートナーは、Dremio と Starburst です。
MLOps は機械学習にとって、DevOps は従来のソフトウェア開発にとってのような関係にあります。どちらも、エンジニアリング チーム (Dev または ML) と IT 運用 (Ops) チーム間のコラボレーションを改善することを目的とした一連のプラクティスと原則です。目標は、計画と開発から展開と運用まで、自動化を使用して開発ライフサイクルを合理化することです。これらのアプローチの主な利点の 1 つは、継続的な改善です。
MLOps の技術と機能は絶えず進化しています。主要なプレーヤーによってサポートされ、ツールが継続的に開発および改善され、長期サポートが提供されるツールが必要です。これらの各ツールは、モデルのライフサイクル中に使用される成果物を保存するために、内部で MinIO を使用しています。
機械学習フレームワークは、モデルを作成し、モデルをトレーニングするコードを書くために使用するライブラリ (通常は Python 用) です。これらのライブラリは、さまざまな損失関数、オプティマイザー、データ変換ツール、ニューラル ネットワーク用の事前構築されたレイヤーのコレクションを提供するため、機能が豊富です。これら 2 つのライブラリが提供する最も重要な機能はテンソルです。テンソルは、GPU に移動できる多次元配列です。また、モデルのトレーニング中に使用される自動微分化機能も備えています。
現在最も人気のある 2 つの機械学習フレームワークは、PyTorch (Facebook 社) と Tensorflow (Google 社) です。
分散モデル トレーニングは、複数の計算デバイスまたはノードにわたって機械学習モデルを同時にトレーニングするプロセスです。このアプローチは、特に複雑なモデルをトレーニングするために大規模なデータセットが必要な場合に、トレーニング プロセスを高速化します。
分散モデル トレーニングでは、データセットは小さなサブセットに分割され、各サブセットは異なるノードによって並列に処理されます。これらのノードは、クラスター内の個々のマシン、個々のプロセス、または Kubernetes クラスター内の個々のポッドである可能性があります。これらは GPU にアクセスできる場合があります。各ノードはデータのサブセットを独立して処理し、それに応じてモデル パラメータを更新します。以下の 5 つのライブラリにより、開発者は分散トレーニングの複雑さのほとんどから解放されます。クラスターがない場合はローカルで実行できますが、トレーニング時間を大幅に短縮するにはクラスターが必要です。
モデル ハブは、実際には最新のデータ レイク リファレンス アーキテクチャの一部ではありませんが、生成 AI をすぐに開始するために重要なため、ここに含めています。Hugging Face は、大規模な言語モデルを探す場所となっています。Hugging Face は、エンジニアが事前トレーニング済みのモデルをダウンロードしたり、自分で作成したモデルを共有したりできるモデル ハブをホストしています。Hugging Face は、大規模言語モデル (LLM) と、そのトレーニングや微調整に使用するデータを扱う Transformers ライブラリと Datasets ライブラリの作成者でもあります。
他にもモデル ハブはあります。主要なクラウド ベンダーはすべて、モデルをアップロードして共有する何らかの方法を提供していますが、モデルとライブラリのコレクションを備えた Hugging Face がこの分野のリーダーとなっています。
アプリケーション フレームワークは、LLM をアプリケーションに組み込むのに役立ちます。LLM の使用は、標準 API の使用とは異なります。ユーザー リクエストを LLM が理解して処理できるものに変換するには、多くの作業を行う必要があります。たとえば、チャット アプリケーションを構築して Retrieval Augmented Generation (RAG) を使用する場合は、リクエストをトークン化し、トークンをベクターに変換し、ベクター データベース (後述) と統合し、プロンプトを作成してから、LLM を呼び出す必要があります。生成 AI 用のアプリケーション フレームワークを使用すると、これらのアクションを連結できます。現在最も広く使用されているアプリケーション フレームワークは LangChain です。これは、Hugging Face Transformer ライブラリやドキュメント処理用の Unstructured ライブラリなど、他のテクノロジと統合されています。機能が豊富で、使用が少し複雑になる可能性があるため、複雑な要件がなく、LangChain よりもシンプルなものを求めている人向けに、以下にいくつかの代替手段を示します。
ほとんどの組織には、クリーンで正確なドキュメントを保管する単一のリポジトリがありません。むしろ、ドキュメントはさまざまなチーム ポータルにさまざまな形式で組織全体に分散しています。ジェネレーティブ AI の準備の最初のステップは、ジェネレーティブ AI での使用が承認されたドキュメントのみを取得してベクター データベースに配置するパイプラインを構築することです。これは、大規模なグローバル組織にとってジェネレーティブ AI ソリューションの最も困難なタスクになる可能性があります。
ドキュメント パイプラインは、ドキュメントをテキストに変換し、ドキュメントをチャンク化し、チャンク化されたテキストを埋め込みモデルに通して、そのベクトル表現をベクトル データベースに保存できるようにする必要があります。幸いなことに、いくつかのオープン ソース ライブラリが、多くの一般的なドキュメント形式でこれを実行できます。以下にいくつかのライブラリを示します。これらのライブラリを LangChain と共に使用して、完全なドキュメント処理パイプラインを構築できます。
ベクター データベースはセマンティック検索を容易にします。これがどのように行われるかを理解するには、多くの数学的背景が必要であり、複雑です。ただし、セマンティック検索は概念的には理解しやすいものです。たとえば、「人工知能」に関連するあらゆることを論じているすべてのドキュメントを検索したいとします。従来のデータベースでこれを行うには、「人工知能」のあらゆる略語、同義語、関連用語を検索する必要があります。クエリは次のようになります。
SELECT snippet FROM MyCorpusTable WHERE (text like '%artificial intelligence%' OR text like '%ai%' OR text like '%machine learning%' OR text like '%ml%' OR ... and on and on ...
この手動の類似性検索は面倒でエラーが発生しやすいだけでなく、検索自体も非常に低速です。ベクター データベースは、以下のようなリクエストを受け取り、より高速かつ正確にクエリを実行できます。検索拡張生成を使用する場合は、セマンティック クエリを迅速かつ正確に実行できることが重要です。
{ Get { MyCorpusTable(nearText: {concepts: ["artificial intelligence"]}) {snippet} } }
以下に、人気のある 4 つのベクター データベースを示します。
データを整理し、さまざまな方法で視覚化できるツールを用意しておくことは常に良い考えです。以下にリストされている Python ライブラリは、データ操作と視覚化の機能を提供します。これらは従来の AI にのみ必要なツールのように思えるかもしれませんが、生成 AI でも役立ちます。たとえば、感情分析や感情検出を行う場合は、トレーニング、検証、テスト セットをチェックして、すべてのクラスに適切な分布があることを確認する必要があります。
以上が、最新のデータ レイク リファレンス アーキテクチャに含まれる 10 個の機能と、各機能の具体的なベンダー製品およびライブラリです。以下は、これらのツールをまとめた表です。