次の方法で共有


PostgreSQL 用 Azure Database を活用した生成 AI

適用対象: Azure Database for PostgreSQL - フレキシブル サーバー

生成 AI とは、既存のマルチメディア コンテンツから学習し、新しいコンテンツを生成できる AI アルゴリズムのクラスを指します。 生成されたコンテンツは、プロンプトや微調整などの手法を使用してカスタマイズできます。 生成 AI アルゴリズムは、特定の機械学習モデルを適用します。

  • テキスト生成用のトランスフォーマーとリカレント ニューラル ネットワーク (RNN)
  • イメージ生成のための生成敵対ネットワーク (GAN) とバリエーション オートエンコーダ (VAEs)

生成 AI は、テキストオートコンプリート、テキスト要約、翻訳などの一般的なタスクと共に、画像と音楽の合成や医療で使用されます。 生成 AI 手法を使用すると、クラスタリングとセグメント化、セマンティック検索とレコメンデーション、トピック モデリング、質問への回答、異常検出などのデータに関する機能を利用できます。

次のビデオでは、Azure Database for PostgreSQL と pgvector 拡張機能で生成 AI を使用する方法を示します。これは、この記事の概念を理解するのに役立ちます。

オープンAI

OpenAIは、AIと機械学習の分野での先駆的な仕事で知られている研究機関とテクノロジー企業です。 その使命は、最も経済的に価値のある仕事で人間を上回ることができる高度に自律的な AI システムを指す人工知能 (AGI) が、すべての人類に利益をもたらすようにすることです。 OpenAI は、GPT-3、GPT-3.5、GPT-4 などの最先端のジェネレーティブ モデルを市場に投入しました。

Azure OpenAI は、Azure を使用して生成 AI アプリケーションを構築するのに役立つ Microsoft サービス です。 Azure OpenAI では、OpenAI GPT-4、GPT-3、Codex、DALL-E、およびささやきモデルを使用した高度な言語 AI が、Azure のセキュリティとエンタープライズ機能を備えています。 Azure OpenAI は、互換性を確保し、一方から他方へのスムーズな移行を確実にするために、OpenAI で API を開発します。

Azure OpenAI を使用すると、顧客は OpenAI と同じモデルを実行しながら、Microsoft Azure のセキュリティ機能を使用できます。 Azure OpenAI では、プライベート ネットワーク、リージョンの可用性、責任ある AI コンテンツのフィルター処理が提供されます。

Azure OpenAI の詳細についてご覧ください

大規模言語モデル

大規模言語モデル (LLM) は、人間のような言語を理解して生成するために大量のテキスト データに基づいてトレーニングされた AI モデルの一種です。 LLM は通常、トランスフォーマーなどのディープ ラーニング アーキテクチャに基づいています。 彼らは、自然言語の理解と生成のタスクの広い範囲を実行する能力で知られています。 Azure OpenAI サービスと OpenAI の ChatGPT は、LLM オファリングの例です。

LLM の主な特性と機能は次のとおりです。

  • スケール: LLM の規模は、アーキテクチャで使用されるパラメーターの数という点で膨大です。 GPT-3 のようなモデルには、数億から数兆個のパラメーターが含まれており、言語で複雑なパターンをキャプチャできます。
  • 事前トレーニング: LLM は、インターネットからのテキスト データの大規模なコーパスで事前トレーニングを受けます。 この事前トレーニングにより、文法、構文、セマンティクス、言語と世界に関する幅広い知識を習得できます。
  • 微調整: 事前トレーニング後、タスク固有のデータセットが小さい特定のタスクまたはドメインで LLM を微調整できます。 この微調整プロセスにより、テキスト分類、翻訳、要約、質問の回答など、より特殊なタスクに適応できます。

GPT

GPT は、生成前トレーニングトランスフォーマーの略であり、OpenAI が開発した一連の大規模な言語モデルを指します。 GPT モデルは、インターネットから大量のデータに事前トレーニングされたニューラル ネットワークであるため、人間のようなテキストを理解して生成できます。

主要な GPT モデルとその主な特性の概要を次に示します。

  • GPT-3: 2020 年 6 月にリリースされ、GPT シリーズでよく知られているモデル。 これには 1,750 億個のパラメーターがあり、存在する最大かつ最も強力な言語モデルの 1 つです。

    GPT-3 は、さまざまな自然言語理解と生成に関するタスクで顕著なパフォーマンスを達成しました。 テキスト補完、翻訳、質問の回答などのタスクを、人間レベルの流暢性で実行できます。

    GPT-3 は、最小 (1 億 2,500 万パラメーター) から最大 (1,750 億個のパラメーター) まで、さまざまなモデル サイズに分かれています。

  • GPT-4: OpenAI の最新の GPT モデル。 それは1.76兆のパラメータを持っています。

ベクトル

ベクトルは、線形代数とジオメトリで、大きさと方向の両方を持つ量を表すために使用される数学的概念です。 機械学習の分野では、ベクトルはデータ ポイントや特徴を表すためによく使用されます。

ベクトルの主な属性と操作は次のとおりです。

  • 大きさ: ベクトルの長さまたはサイズは、多くの場合、その標準として示され、データの大きさを表します。 これは負ではない実数です。
  • 方向: 方向は、基準点または座標系を基準にして、それが表す数量の向きまたは角度を示します。
  • コンポーネント: ベクターは、異なる軸または次元に沿ってそのコンポーネントに分解できます。 2D デカルト座標系では、ベクトルは (xy) として表すことができます。ここで、 xy はそれぞれ x 軸と y 軸に沿ったコンポーネントです。 n 次元のベクトルは n タプル ({x1, x2… xn}) です。
  • 加算とスカラー乗算: ベクトルを一緒に追加して新しいベクトルを形成し、スカラー (実数) で乗算できます。
  • ドット積とクロス積: ベクトルは、ドット積 (スカラー積) とクロス積 (ベクター積) を介して組み合わせることができます。

ベクトル データベース

ベクター データベース (ベクター データベース管理システム (DBMS) とも呼ばれる) は、ベクター データを効率的に格納、管理、およびクエリするように設計されたデータベース システムの一種です。 従来のリレーショナル データベースは主にテーブル内の構造化データを処理しますが、ベクター データベースは、ベクターとして表される多次元データ ポイントの格納と取得に最適化されています。 これらのデータベースは、類似性検索、地理空間データ、レコメンデーション システム、クラスタリングなどの操作が関係するアプリケーションに役立ちます。

ベクター データベースの主な特性は次のとおりです。

  • ベクター ストレージ: ベクター データベースは、複数の次元を持つベクトルとしてデータ ポイントを格納します。 各次元は、データ ポイントの特徴または属性を表します。 これらのベクトルは、数値、カテゴリ、テキストデータなど、さまざまなデータ型を表すことができます。
  • 効率的なベクター演算: ベクター データベースは、ベクトルの加算、減算、ドット積、類似性の計算 (コサインの類似性やユークリッド距離など) などのベクター演算を実行するために最適化されています。
  • 効率的な検索: 効率的なインデックス作成メカニズムは、同様のベクトルをすばやく取得するために不可欠です。 ベクトル データベースでは、さまざまなインデックス作成メカニズムを使用して、高速な取得を実現しています。
  • クエリ言語: ベクター データベースには、ベクター操作と類似性検索用に調整されたクエリ言語と API が用意されています。 これらのクエリ言語を使用することで、ユーザーは検索条件を効率的に表現できます。
  • 類似性検索: ベクター データベースは類似性検索に優れています。これにより、ユーザーは指定されたクエリ ポイントに似たデータ ポイントを検索できます。 この特性は、検索システムやレコメンデーション システムで重要です。
  • 地理空間データ処理: 一部のベクター データベースは地理空間データ用に設計されているため、場所ベースのサービス、地理情報システム (GIS)、マップ関連のタスクなどのアプリケーションに適しています。
  • 多様なデータ型のサポート: ベクター データベースでは、ベクター、画像、テキストなど、さまざまな種類のデータを格納および管理できます。

PostgreSQL では、pgvector 拡張機能を利用することで、ベクトル データベースの機能を使用できます。

埋め込み

埋め込みとは、機械学習と自然言語処理の概念であり、オブジェクト (単語、ドキュメント、エンティティなど) を多次元空間のベクトルとして表します。

多くの場合、これらのベクトルは高密度です。 つまり、ディメンションの数が多いということです。 これらは、ニューラル ネットワークを含むさまざまな手法を通じて学習されます。 埋め込みは、連続ベクトル空間内のオブジェクト間のセマンティック リレーションシップと類似性をキャプチャすることを目的としています。

埋め込みの一般的な種類は次のとおりです。

  • Word: 自然言語処理では、単語埋め込みは単語をベクトルとして表します。 各単語は高次元空間のベクトルにマップされます。この空間では、意味やコンテキストが似ている単語が互いに近い位置に配置されます。 Word2VecGloVeは、一般的な単語埋め込み手法です。
  • ドキュメント: ドキュメント埋め込みは、ドキュメントをベクトルとして表します。 Doc2Vec は、ドキュメント埋め込みの作成に一般的です。
  • 画像: 画像は埋め込みとして表され、オブジェクト認識などのタスクの視覚的特徴をキャプチャできます。

埋め込みは、機械学習モデルが簡単に処理できる形式で、複雑で高次元のデータを表現する上で中心的な役割を担います。 大規模なデータセットでトレーニングした後、さまざまなタスクの機能として使用できます。 LLM はそれらを使用します。

PostgreSQL では、Azure AI 拡張機能 OpenAI 統合を利用したベクトル埋め込みの生成機能を使用できます。

シナリオ

ジェネレーティブ AI には、テクノロジ、医療、エンターテイメント、金融、製造など、さまざまな分野や業界にわたる幅広いアプリケーションがあります。 生成 AI を使用してユーザーが実行できる一般的なタスクを次に示します。

  • セマンティック検索:
    • 生成 AI では、辞書検索ではなく、データのセマンティック検索が可能になります。 後者ではクエリと完全に一致する検索が、セマンティック検索では検索クエリの意図を満たすコンテンツが検索されます。
  • チャットボットと仮想アシスタント:
    • 自然なコンテキストに対応した会話に参加できるチャットボットを開発する。たとえば、顧客のセルフヘルプを実装する場合などです。
  • 推奨システム:
    • アイテムやユーザーの埋め込みまたは表現を生成することで、レコメンデーション アルゴリズムを改善します。
  • クラスタリングとセグメント化
    • 生成 AI によって生成される埋め込みにより、クラスタリング アルゴリズムでデータをクラスター化し、同様のデータをグループ化できます。 このクラスタリングにより、顧客のセグメント化などのシナリオが可能になります。これにより、広告主は属性に基づいて顧客を異なる方法でターゲットにできます。
  • コンテンツの生成:
    • チャットボット、小説/詩の作成、自然言語の理解などのアプリケーション用に人間のようなテキストを生成します。
    • グラフィック、エンターテイメント、広告のための現実的な画像、アートワーク、またはデザインを作成します。
    • 映画、ゲーム、マーケティングのためのビデオ、アニメーション、またはビデオ効果を生成します。
    • 音楽を生成します。
  • 変換:
    • 1 つの言語から別の言語にテキストを翻訳します。
  • 要約:
    • 長い記事やドキュメントを要約して、重要な情報を抽出します。
  • データ拡張:
    • 機械学習モデルのトレーニング データセットを拡張および改善するための追加のデータ サンプルを生成します。
    • 医療画像など、現実の世界で収集するのが困難または高価なシナリオの合成データを作成します。
  • 創 薬:
    • 分子構造を生成し、製薬研究のための潜在的な薬剤候補を予測します。
  • ゲーム開発:
    • レベル、キャラクター、テクスチャなどのゲーム コンテンツを作成します。
    • リアルなゲーム内環境とランドスケープを生成します。
  • データのノイズ除去と補完
    • クリーンなデータ サンプルを生成して、ノイズの多いデータをクリーンアップします。
    • データセットに不足しているデータや不完全なデータを補完します。