|
目次 I. 背景 II. ビジネスシステムが大規模モデルにアクセスする3つの方法 III. 直接PROMPT(プロンプト)アクセス方式 1. 一般的なPROMPTテクニック 1.1 ゼロショット、ワンショット、フューショット 1.2 チェーン思考 1.3 タスクの内訳 2. PROMPT プロンプトにビジネス知識を埋め込むにはどうすればよいでしょうか? IV. RAG(検索強化)によるアクセス 1. RAGの実装 1.1 RAGプロセス 1.2 知識検索はどのように実装されますか? 2. RAG検索とのビジネス統合例 V. 微調整によるアクセス 1. トレーニングを微調整する方法は何ですか? 2. KubeAI 大規模モデル プラットフォームで微調整を実行するにはどうすればよいですか? 3. 微調整の例 VI. ビジネスシステムを大規模モデルに統合するための最適な方法 大規模モデルへの段階的なアクセス VII. 要約と展望 1つ 背景 最近、社内のビジネス関係者から「大規模モデルを業務システムに統合して効率を上げるにはどうすればよいか」という問い合わせを頻繁に受けます。この質問に答えるために、KubeAI の大規模モデル プラットフォーム統合に関連するビジネス プラクティスと業界の典型的なケース スタディをいくつかまとめて、皆さんと共有します。OpenAI初の開発者カンファレンスのテーマは「LLMパフォーマンスの最大化」でした。ビジネスシステムが大規模モデルにアクセスする方法として、PROMPT(プロンプトワードを大規模モデルに直接入力する)、RAG(検索拡張を通じて大規模モデルの機能を強化する)、そしてFine-tuning(トレーニングの微調整を通じて大規模モデルの機能を強化する)という3つの方法が提案されました。 この記事では、OpenAIの視点に基づき、具体的な実例を挙げながら、これら3つのアクセス方法を紹介します。最後に、企業が段階的なアプローチ(PROMPT、RAG、ファインチューニング)を通じて大規模モデルにアクセスし、最大の投資収益率を実現できることを示唆します。 二 ビジネスシステムが大規模モデルにアクセスする3つの方法 先ほども簡単に触れましたが、現在、業務システムにおける大規模モデル統合には、PROMPT(大規模モデルにプロンプトを直接入力する)、RAG(検索拡張によって大規模モデルの機能を強化する)、そしてFine-tuning(学習の微調整によって大規模モデルの機能を強化する)という3つの方法があります。 以下では、これらの3つの方法を簡単な例を挙げて説明します。
PROMPT経由で大規模モデルにアクセスするのは、最もシンプルで直接的な方法です。つまり、オープンソースモデルを入手したら、すぐにデプロイして推論を実行できます。その後、モデルにプロンプトを送信して問題を解決し、回答を返すことができます。例えば、記事の要約を生成するようモデルに直接指示することも可能です。
RAG を介して大規模言語モデルにアクセスする方法は、検索拡張生成 (RAG) テクノロジを利用して大規模言語モデル (LLM) が関連する知識を参照できるようにすることで、生成の品質と精度を向上させる方法です。 RAGの核となるアイデアは、まずベクターデータベースを通じてユーザーの質問に最も関連性の高い文書や知識を取得し、次にこれらの文書や知識を大規模モデルの入力(プロンプト)に組み込み、大規模モデルが回答を生成する際にこれらの情報を参照できるようにすることです。これにより、大規模モデルはビジネス関連の知識をより深く理解できるようになります。
ファインチューニングとは、ビジネス固有のデータセットを用いて、事前学習済みの大規模モデルのパラメータの一部またはすべてを微調整し、特定のタスクまたはドメインに適応させるプロセスを指します。ファインチューニングにより、大規模モデルはビジネスのニーズと特性をより深く理解し、ビジネスシナリオにおけるパフォーマンスを向上させることができます。 次に、KubeAI の大規模モデル プラットフォーム統合のビジネス プラクティスやいくつかの従来の業界事例を組み合わせて、上記の 3 つの方法でビジネス システムが大規模モデルにアクセスする方法についてさらに詳しく説明します。 三つ 直接PROMPTアクセス方法 大規模モデルにアクセスするためのいわゆるPROMPTアプローチとは、大規模モデルが対応する出力を生成するための適切なプロンプトを設計し、それによって様々なタスクを完了させることを指します。 上に示した最も単純なPROMPTの例では、大規模モデルに春についての詩を書くように指示すると、モデルが対応する出力を生成します。 複雑なビジネスシナリオでは、PROMPPTの設計は非常に複雑になることがよくあります。そのため、「PROMPPTエンジニアリング」と呼ばれる、PROMPPTの設計方法を研究する専門分野が生まれました。PROMPPTエンジニアリングは、大規模言語モデル(LLM)の固有の機能を活用して、様々なタスクを達成するための適切なプロンプトを設計する分野です。その目的は、モデルのパフォーマンスと効率を最大化するために最適なプロンプトを見つけることです。 以下のPROMPTの概要は、 Promptエンジニアリングガイド(https://www.promptingguide.ai/zh)およびopenai-cookbook (https://github.com/openai/openai-cookbook/tree/main)に記載されている関連コンテンツと論文を参照しています。興味のある学生は、これらのリソースをさらに詳しく調べることができます。 一般的なPROMPTテクニック 現在、大規模モデルの入力コンテキストの長さは一般的に 4K または 16K ですが、最近の大規模モデルの中には 32K または 128K をサポートしているものもあり、Promopt の設計にはかなりの余地が残されています。 ゼロショット、ワンショット、フューショット OpenAIのGPT-3に関する論文「言語モデルは少数ショット学習者(Few-Shot Learners)」では、強力な自然言語処理(NLP)モデルであるGPT-3について詳しく説明しています。そのハイライトの一つが少数ショット学習です。
上記の 3 つのシナリオすべてにおいて、プロンプトは、モデルがタスクを完了できるように自然言語の指示といくつかの例を提供するステートメントです。 連鎖思考 思考連鎖による問題解決とは、複雑な問題を多くの相互に関連するステップに分解し、それらを一つずつ解決していくことです。こうした段階的な解決策は、モデルが多段階的な推論を必要とする複雑な問題をより深く理解し、解決するのに役立ちます。
著者らは、各回答の前に「ステップごとに考えてみましょう」と付け加えるだけで、大規模なモデルが優れたゼロショット推論器になる可能性があることを発見しました。このシンプルな手法をMultiArith数学データセットに適用したところ、
以下は text-davinci-003 モデルでの実験です。 誤った回答は次のとおりです。 A: 青いゴルフボール 8 個。 連鎖思考のヒントを追加した後、正しい答えが得られました。 一つずつ考えてみましょう。 A: まず、ジャグラーは16個のボールを投げることができるので、合計16個のボールがあります。 次に、その半分はゴルフボールなので、ゴルフボールは8個あります。 最後に、ゴルフボールの半分は青いので、青いゴルフボールは4個あります。 以下は著者の論文からの例です。 タスクの内訳 タスク分解とは、複雑なタスクをより小さく、扱いやすいサブタスクに分解するプロセスです。典型的な例としては、A都市とB都市間の貨物輸送が挙げられます。この輸送には、A都市での積み込み、A都市とB都市間の輸送、そしてB都市での荷降ろしという3つのステップが必要です。 初期段階で非常に人気があった HuggingGPT プロジェクトは、タスク分解の典型的な応用例です。
HuggingGPT は、マルチモーダル タスクを複数のサブタスクに分割し、各サブタスクを順番に実行してマルチモーダル機能を実現します。 HuggingGPTのタスク分解は、大規模モデルに対するPROMPTヒントによって実現されます。以下は、HuggingGPTのPROMPTヒントの1つについての詳細な説明です(中国語に翻訳済み)。 ユーザーのリクエスト内容は次のとおりです。 /examples/d.jpg のポーズと /examples/e.jpg の内容に基づいて、新しい画像を見せてください。 HuggingGPT は、大規模なモデルに対して次の提案を提供します。 これらのプロンプトの後には、Few-Shot と呼ばれるいくつかのリクエスト応答例が続き、前のFew-Shotセクションで説明したように、大規模モデルがこれらのプロンプトをより正確に理解できるようになります。 大規模モデルは以下を返しました: [{ "task": "openpose-control", "id": 0, "dep": [-1], "args": { "image": "/examples/d.jpg" }}, { "task": "image-to-text", "id": 1, "dep": [-1], "args": { "image": "/examples/e.jpg" }}, { "task": "openpose-text-to-image", "id": 2, "dep": [0, 1], "args": { "image": "<GENERATED>-0", "text": "<GENERATED>-1" }}]そのため、タスク分解PROMOPTをベースにした大規模モデルは、タスク分解機能を完全に備えており、 複雑なマルチモーダルタスクを単純なタスクに分解します。その後、HuggingGPTはGPTから返されたタスクを段階的に実行し、最終結果をユーザーに返します。 PROMPTプロンプトにビジネス知識を埋め込む方法 大規模モデル用の PROMPT を設計する場合、通常、モデルの応答と動作をガイドするために、次の 4 つのオプション部分に分割できます。
これら 4 つの部分は、必ずしもすべての PROMPT に含める必要はなく、実際のニーズに応じて柔軟に選択できます。 上図の PROMPT の 4 つの要素からわかるように、ビジネス知識は PROMPT の追加コンテンツに埋め込むことができ、ビジネスシナリオのダイアログは PROMPT のダイアログコンテキストに埋め込むことができます。 以下は、KubeAI大規模モデルプラットフォームに統合された「AIプロトタイプ描画」プロジェクトのPROMPTの簡略版です。このプロジェクトの目標は、ユーザーが入力した製品説明に基づいて、大規模モデルが標準に準拠したフロントエンドページを生成することです。PROMPTを詳しく見ていきましょう。 このPROMPT設計により、追加コンテンツを通じてビジネス知識をプロンプトに組み込むことができます。PROMPTの4つの要素に従って設計することで、ビジネス関連の知識をプロンプトに組み込むことが比較的容易になることは明らかです。 4つ RAG(検索強化)方式によるアクセス PROMPT を介して大規模モデルに直接接続するのは比較的簡単ですが、次の 2 つの課題があります。
これらの課題を克服するために、RAG技術が登場しました。RAG技術は、大規模言語モデル(LLM)を活用した応用スキームです。正式名称はRetrieval Augmented Generation(検索拡張生成)です。その核となる考え方は、検索を通して関連知識を取得し、それを大規模モデルの入力に組み込むことで、大規模モデルがこの知識を参照して合理的な回答を提供したり、コンテンツを生成したりできるようにすることです。 大規模 RAG テクノロジーには、次のような多くの利点があります。
RAGの実装 RAGプロセス 上の図は典型的なRAGワークフローを示しています。このワークフローを段階的に分析してみましょう。RAGの主なステップは次のとおりです。
知識検索はどのように実装されますか? 知識検索は、インターネットから直接知識にアクセスするか、検索前に企業内にビジネス知識を蓄積しておくことで実現できます。企業内における知識蓄積の方が広く普及しているため、ここではこの実装方法のみを紹介します。 ビジネス知識の検索は、主にビジネス知識の入力と検索という2つの段階から成ります。これら2つの段階の具体的な手順を一つずつ分析してみましょう。 ビジネス知識の入力:
ビジネス知識の検索:
RAG検索とのビジネス統合例 次の例では、KubeAI 大規模モデル プラットフォームに統合されたデータ ウェアハウス メトリックのインテリジェント分析を使用して、特定のビジネスが RAG を通じて大規模モデルにアクセスする方法を説明します。 このプロジェクトは、ユーザーの自然言語記述に基づいて、ユーザーにとって視覚的なデータ表示を直接生成することができます。簡略化されたRAG推論プロセスは以下のとおりです。
五 微調整によるアクセス トレーニングを微調整する方法にはどのようなものがありますか? 上の図は、事前トレーニングからビジネス シナリオへの適用までの完全な大規模モデル トレーニング プロセスを示しています。このプロセスには通常、次の 3 つの段階が含まれます。
定義:大規模なラベルなしテキストを用いた自己教師学習を用いて、一般言語モデルを学習し、言語の統計的パターンと意味的知識を捕捉します。事前学習は、言語理解のための一般的な基盤を確立するために使用されます。 データ例: 今日はいい日だ。友達と公園に行ったんだ。芝生の上でピクニックをして、フリスビーをして、滑り台を滑った。すごく楽しかったよ。
定義:事前学習に基づき、ラベル付けされた指示(指示、出力)を用いてモデルを微調整することで、人間からの指示に従って望ましい出力を生成できるようにします。指示調整は、モデルの制御性と解釈性を向上させ、ユーザーの意図に応じて様々なタスクを実行できるようにすることを目的としています。 データ例: 指示: 春をテーマにした 5 文字の四行詩を書いてください。春風が揚子江の南岸を緑に変え、山々一面に桃の花が赤く咲き、ウグイスが歌い、ツバメが舞い、新年を迎えます。人間の世界の 4 月は夢のようです。
定義:強化学習(RLHF)は、命令チューニングを基盤として、人間のフィードバックを報酬信号として活用することでモデルをさらに最適化し、人間の好みにより合致する出力を生成できるようにします。RLHFは、モデルの品質と安全性を向上させ、不合理または非倫理的な結果の生成を防ぐことを目的としています。 KubeAI大規模モデルプラットフォームで微調整を行う方法 KubeAI 大規模モデル プラットフォームでは、ユーザーは次の手順に従ってすぐにトレーニングを開始し、大規模モデルを自動的にデプロイできます。
微調整の例 特定のビジネス分野向けのインテリジェントな顧客サービス ロボットのトレーニングを例に、微調整を通じてインテリジェントな顧客サービス ロボットを構築する方法を説明します。 トレーニングの目的は、特定のビジネス分野の知識に精通したインテリジェントな顧客サービス ロボットを構築することです。
六 ビジネスシステムが大規模モデルにアクセスするための最適な方法 大規模モデルへの段階的なアクセス 前のセクションでは、PROMPT(プロンプト)、RAG(検索拡張)、そしてファインチューニングという3つの方法を通じて、企業が大規模モデルにアクセスする方法を紹介しました。OpenAI開発者会議「LLMパフォーマンスの最大化」で提案された大規模モデルへの企業アクセスへのアプローチは、以下のプロセスに基づく段階的なアプローチであると理解されています。
セブン 要約と展望 本稿では、ビジネスシステムが大規模モデルにアクセスするための3つの手法、すなわちPROMPT、RAG、そしてFine-tuningを紹介します。 具体的な実践例を通して、様々なシナリオにおけるこれら3つの手法の有効性と利点、そしてビジネスニーズとデータの状況に応じて適切な手法を選択する方法を示します。 最後に、大規模モデルにアクセスするビジネスシステムのためのベストプラクティスとして、OpenAI Developer Conferenceで提案されたアクセス手法に基づいた段階的なアプローチ、すなわちPROMPT、RAG、そしてFine-tuningを推奨します。大規模モデルは、将来のビジネスイノベーションの重要な推進力となり、企業の効率性、品質、そしてユーザーエクスペリエンスの向上に貢献します。大規模モデルの導入は、PROMPTから始め、段階的にRAGを試し、微調整を重ねることで最良の結果を得るという、段階的なアプローチを推奨します。私たちは、大規模モデルのさらなる可能性を探るために、より多くの事業部門と連携していくことを楽しみにしています。 |