次の方法で共有


開発者向けの生成 AI ソリューション

大規模な言語モデル (LLM) を利用した生成 AI は、開発者や組織に新しい機会をもたらします。 Azure OpenAI などのサービスを使用すると、シンプルな API で AI を簡単に使用できます。 すべてのスキル レベルの開発者は、特別な知識やハードウェアを必要とせずに、高度な AI 機能をアプリに追加できます。

開発者は、自分の役割が何であり、どこに適合するのか疑問に思うかもしれません。 "AI スタック" のどの部分に重点を置くか、または今日のテクノロジで何を構築できるかを知りたい場合があります。

これらの質問に答えるために、まず、新しい用語とテクノロジを既に知っているものに結び付けるメンタル モデルを構築します。 このアプローチは、生成 AI 機能を設計してアプリに追加するのに役立ちます。

このシリーズでは、現在のソフトウェア スキルが生成 AI にどのように適用されるかを示します。 また、最初の生成 AI ソリューションの構築を開始するのに役立つ主要な用語と概念も紹介します。

企業がジェネレーティブ AI を使用するメリット

ソフトウェア スキルがジェネレーティブ AI にどのように適合するかを確認するには、まず、企業がどのように使用されているかを確認します。

企業は、生成 AI を使用して、顧客エンゲージメントを高め、より効率的に作業し、創造的な方法で問題を解決します。 既存のシステムに生成 AI を追加することで、企業はソフトウェアを改善できます。 会社またはその製品に関する質問に回答する、パーソナライズされた推奨事項やスマート エージェントなどの機能を追加できます。

生成 AI が企業を支援する一般的な方法:

  • コンテンツ生成:

    • マーケティング、営業、IT、および内部コミュニケーションのためのテキスト、コード、画像、サウンドを作成します。
  • 自然言語処理:

    • ビジネス メッセージを作成または改善する。
    • 会社のドキュメントに基づいて質問することで、ユーザーが自分のデータとチャットできるようにします。
    • 大量のコンテンツをまとめ、整理、簡素化します。
    • セマンティック検索を使用して、正確なキーワードのない情報を検索します。
    • コンテンツを翻訳して、より多くのユーザーにリーチします。
  • データ分析:

    • データの傾向を見つけ、市場を分析します。
    • 変更の計画に役立つ "What if" シナリオをモデル化します。
    • コードを確認して改善を提案し、バグを修正し、ドキュメントを作成します。

開発者は、組織が使用するソフトウェアに生成 AI 機能を追加することで、大幅な改善を行うことができます。

生成 AI アプリケーションを構築する方法

LLM は多くの作業を行いますが、あなたが結果を統合、調整、監視するシステムを構築します。 学習する必要があることは多いですが、次の方法を含め、既に持っているスキルを適用できます。

  • REST、JSON、または言語固有のソフトウェア開発キット (SDK) を使用して API を呼び出す
  • API への呼び出しを調整し、ビジネス ロジックを実行する
  • データ ストアへの格納とデータ ストアからの取得
  • 入力と結果をユーザー エクスペリエンスに統合する
  • LLM から呼び出すことができる API を作成する

生成型 AI ソリューションの開発は、既存のスキルに基づいて構築されます。

開発者ツールとサービス

Microsoft は、生成型 AI から始めるのに役立つツール、サービス、API、サンプル、学習リソースを構築します。 それぞれが、生成型 AI ソリューションを構築する上で重要な部分をカバーします。 これらのリソースを適切に使用するには、次のことを確認します。

  • 生成型 AI 機能の種類ごとの主な機能、役割、責任を把握します。 たとえば、RAG ベースのチャット システムでは、ソリューションを設計する前に、問題とその制限を理解する必要があります。
  • 各関数またはロールの API、サービス、およびツールについて説明します。 問題がわかったら、コードを使用して自分でビルドしたり、ローコード/コードなしのツールを使用したり、既存のサービスを呼び出したりすることができます。
  • コード、ローコード、コードなしのソリューションなど、オプションを調べます。 すべてを自分で構築できますが、さまざまなツールやアプローチを組み合わせる方が高速で簡単な場合があります。

生成 AI 機能をアプリに追加する正しい方法は 1 つもありません。 多くのツールや方法から選択できます。 常にそれぞれの長所と短所を比較検討してください。

アプリケーション レイヤーから開始する

開始するために、生成 AI に関するすべての情報を知る必要はありません。 必要なスキルが既にある可能性があります。 API と現在の知識を使用して開始します。

独自の LLM をトレーニングする必要はありません。 LLM のトレーニングには、ほとんどの企業にとって時間とお金がかかりすぎます。 代わりに、Azure OpenAI API などのホストされたサービスに対して API 呼び出しを行うことで、GPT-4o などの既存の事前トレーニング済みモデルを使用します。 生成 AI 機能をアプリに追加することは、API を使用する他の機能を追加するのと同じです。

LLM のトレーニング方法やしくみについて学習したい場合があります。 しかし、LLM を完全に理解するには、多くの場合、大学院レベルでデータ サイエンスと数学に関する深い知識が必要です。

コンピューター サイエンスの背景を持っている場合は、ほとんどのアプリ開発がテクノロジ スタックの上位レイヤーで行われることを知っています。 各レイヤーについて少し理解しているかもしれませんが、特定の言語、プラットフォーム、API、ツールを使用して、アプリ開発に重点を置いている可能性があります。

AI にも同じ考え方が当てはまります。 LLM の背後にある理論を学ぶことができますが、アプリの構築や、社内での生成 AI のパターンとプロセスの作成に重点を置く必要があります。

生成 AI 機能をアプリに追加するために必要なナレッジ レイヤーの簡単なビューを次に示します。

生成 AI 機能をアプリケーションに実装するために必要な知識のレイヤーを示す図。

最も低いレベルでは、データ サイエンティストは、統計や確率などの高度な数学を使用して AI を改善するための研究を行います。

データ サイエンティストは、1 層上で理論を使用して LLM を構築します。 ニューラル ネットワークを作成し、プロンプトを受け入れて結果 (入力候補) を生成するようにトレーニングします。 プロンプトから結果を生成するプロセスは、推論と呼ばれます。 データ サイエンティストは、ニューラル ネットワークが次の単語またはピクセルを予測する方法を決定します。

モデルのトレーニングと実行にはコンピューティング能力が大きいため、ほとんどのモデルは大規模なデータセンターでトレーニングされ、ホストされます。 モデルは自分のコンピューターでトレーニングまたはホストできますが、低速です。 専用 GPU を使用すると、このトレーニングをより迅速かつ効率的に行うことができます。

モデルがデータセンターで実行されている場合は、REST API を使用してモデルにアクセスします。 SDK では、多くの場合、これらの API がラップされ、開発者にとって簡単になります。 その他のツールは、監視やその他のタスクに役立ちます。

アプリ開発者は、これらの API を使用してビジネス機能を構築します。

新しいパターンとプロセスは、モデルの呼び出しだけでなく、組織が信頼性の高い生成 AI 機能を構築するのに役立ちます。 たとえば、一部のパターンは、生成されたコンテンツが倫理的、安全性、プライバシーの基準を満たしていることを確認するのに役立ちます。

アプリ開発者の場合は、次のアプリ レイヤーのトピックに焦点を当てることを検討してください。

  • API と SDK: 使用可能な内容と各エンドポイントの機能について説明します。
  • ツールとサービス: 運用対応の生成 AI ソリューションに必要な機能を構築する方法について説明します。
  • プロンプト エンジニアリング: 質問または言い換えによって最適な結果を得る方法について説明します。
  • ボトルネックとスケーリング: 速度低下が発生する場所とスケーリング方法を見つけます。 プライバシーに違反することなく、アプリケーション データをログに記録して取得する方法について説明します。
  • LLM の特性: モデルとベンダーの強み、ユース ケース、ベンチマーク、相違点を把握します。 この知識は、ニーズに適したモデルを選択するのに役立ちます。
  • パターンとワークフロー: 最新の方法を最新の状態に保ち、アプリで効果的で信頼性の高い生成 AI 機能を構築します。

Microsoft のツールとサービス

Microsoft の低コードおよびコード不要の生成 AI ツールとサービスを使用して、ソリューションの一部またはすべてを構築できます。 さまざまな Azure サービスが重要なロールを果たすことができます。 それぞれが、ソリューションの効率、スケーラビリティ、堅牢性に貢献します。

コード中心のアプローチのための API と SDK

生成 AI ソリューションはすべて LLM を使用します。 Azure OpenAI では、GPT-4 などのモデルのすべての機能が提供されます。

製品 説明
Azure OpenAI GPT-4 などの強力な言語モデルにアクセスできるホステッド サービス。 API を使用して埋め込みを作成し、チャット機能を構築し、ニーズに合わせて結果をカスタマイズします。

実行環境

アプリで生成 AI 用のビジネス ロジック、プレゼンテーション ロジック、または API を実行するためのサービスが必要です。

製品 説明
Azure App Service (またはその他のコンテナー ベースのクラウド サービス) ユーザーが RAG チャット システムと対話するための Web インターフェイスまたは API をホストします。 Web アプリを迅速に開発、デプロイ、スケーリングします。 システムのフロントエンドを簡単に管理できます。
Azure Functions RAG チャット システムのイベント ドリブン タスクには、サーバーレス コンピューティングを使用します。 データの取得をトリガーしたり、ユーザー クエリを処理したり、同期やクリーンアップなどのバックグラウンド タスクを処理したりします。 モジュール式のスケーラブルなバックエンドを構築します。

ローコードおよびコードなしのソリューション

生成 AI ビジョンを実装するために必要なロジックの一部は、低コードまたはコードなしのソリューションを使用して、迅速に構築し、確実にホストできます。

製品 説明
Azure AI Foundry Azure AI Foundry 使用して、カスタム機械学習モデルをトレーニング、テスト、デプロイして RAG チャット システムを強化できます。 たとえば、Azure AI Foundry を使用して応答の生成をカスタマイズしたり、取得した情報の関連性を向上させたりします。

ローコード ソリューションの構築に関するガイダンスについては、 Azure でのローコード アプリケーション開発に関するページを参照してください。

ベクトル データベース

一部の生成 AI ソリューションでは、結果を改善するためにデータを格納および取得する必要があります。 たとえば、RAG ベースのチャット システムを使用すると、ユーザーは会社のデータとチャットできます。 この場合は、ベクター データベースが必要です。

製品 説明
Azure AI Search 大規模なデータセットを検索して、言語モデルの情報を検索します。 RAG システムの取得部分に使用して、応答の関連性と有用性を高めます。
Azure Cosmos DB RAG チャット システムの構造化データと非構造化データを大量に格納します。 読み取りと書き込みの速度が速い場合は、リアルタイムのデータを処理し、ユーザーの操作を格納できます。
Azure Cache for Redis 遅延を減らし、RAGチャットシステムを高速化するために頻繁に使用される情報をキャッシュします。 セッション データ、ユーザー設定、および一般的なクエリを格納します。
Azure Database for PostgreSQL - フレキシブル サーバー ログ、ユーザー プロファイル、チャット履歴などのアプリ データを格納します。 柔軟性とスケーラビリティにより、データの可用性と安全性が維持されます。

これらの各 Azure サービスは、スケーラブルで効率的な生成 AI ソリューションを構築するのに役立ちます。 Azure のクラウドと AI の機能を最大限に活用できます。 詳細については、「 ベクター データベースの選択」を参照してください。

Azure OpenAI API を使用したコード中心の生成 AI 開発

このセクションでは、Azure OpenAI API について説明します。 REST API を使用して LLM 機能にアクセスします。 これらの API は、最新のプログラミング言語から呼び出すことができます。 多くの言語には、API の呼び出しを容易にする SDK があります。

Azure OpenAI REST API ラッパーの一覧を次に示します。

言語またはプラットフォーム用の SDK がない場合は、Web API に対して REST 呼び出しを直接行います。

ほとんどの開発者は、Web API を呼び出す方法を知っています。

Azure OpenAI には、 さまざまな AI タスク用の複数の API があります。 メイン API の概要を次に示します。

  • Chat Completions API: テキストを生成し、チャットし、質問に回答します。 チャットボット、仮想アシスタント、要約、書き込み、翻訳に使用します。 また、視覚機能 (画像のアップロードや質問など) もサポートしています。
  • コンテンツ モデレーション API: テキスト内の有害または安全でないコンテンツを検索してフィルター処理します。 ユーザーの操作を安全に保つために使用します。
  • 埋め込み API: テキストをベクターに変換して、検索、クラスタリング、類似コンテンツの検索を行います。 テキスト内の意味と関係をキャプチャするために使用します。
  • 画像生成 API: テキスト プロンプトから画像とアートを作成します。 DALLに基づく·E モデル。
  • 音声テキスト変換 REST API: 音声をテキストに変換するか、テキストを多くの言語で音声に変換します。 音声コマンドと音声文字起こしに使用します。

この記事では、チャットや要約などのテキストベースの生成 AI に焦点を当てていますが、これらの API はさまざまな種類のメディアに使用できます。

ジェネレーティブ AI を使用した開発の開始

新しい言語、API、またはテクノロジを学習したら、小さなアプリを構築する方法を示すチュートリアルまたはトレーニングから始めます。 一部の開発者は、独自の小さなプロジェクトを構築して学習することを好みます。 どちらの方法でも問題なく動作します。

小規模から始め、簡単な目標を設定し、スキルを段階的に構築します。 生成 AI の開発は、従来のソフトウェアとは異なります。 通常のソフトウェアでは、毎回同じ入力に対して同じ出力が得られます。 生成 AI を使用すると、同じプロンプトに対して異なる回答が得られます。これにより、新しい課題が生まれます。

始める際は、次のヒントに留意してください。

ヒント 1: 目標を明確にする

  • 解決する問題を定義します。 生成 AI は多くのことを行うことができますが、テキスト、画像、コードの生成など、目的を正確に把握していれば、より良い結果が得られます。
  • 対象ユーザーを知る。 AI の出力を、カジュアル ユーザーでも専門家でも、それを使用するユーザーに合わせて調整します。

ヒント 2: LLM の長所を使用する

  • LLM の制限とバイアスを把握します。 彼らは強力ですが、完璧ではありません。 彼らの弱点を計画する。
  • コンテンツの作成、要約、翻訳など、LLM を使用して最善を尽くします。 場合によっては、別の種類の AI がニーズに適している場合があります。

ヒント 3: 適切なプロンプトを記述する

  • プロンプト エンジニアリングについて説明します。 最適な機能を確認するには、さまざまなプロンプトを試してください。 明確かつ具体的である。
  • プロンプトを調整します。 最初のイテレーションが機能しない可能性があります。 結果を使用して、次のプロンプトを改善します。

初めての生成 AI ソリューションの構築

生成型 AI ソリューションを構築するには、「 Python 用の独自のデータ サンプルを使用してチャットを開始する」から始めます。 .NETJavaJavaScript のチュートリアルも見つけることができます。

アプリケーション設計に関する最終的な考慮事項

アプリケーションの設計上の決定に影響を与える可能性がある、この記事で考慮すべき事項とその他のポイントの簡単な一覧を次に示します。

  • AI の機能をユーザーの期待に合わせるために、問題領域と対象ユーザーを明確に定義します。 目的のユース ケースに合わせてソリューションの有効性を最適化します。
  • プロジェクトの要件を満たす場合は、ローコード/ノーコード プラットフォームを使用して、迅速なプロトタイプ作成と開発を行います。 開発速度とカスタマイズ性のトレードオフを評価します。 開発を高速化し、非技術チーム メンバーに支援を提供するために、アプリの一部用のローコードツールとノーコード ツールをお試しください。