ChatGLM大規模モデルアプリケーション構築&即時プロジェクト

記事ディレクトリ

ここに画像の説明を挿入します

1. 大型モデルの紹介

1.1 大型モデルの基礎知識

  1. 大規模モデルは確率モデルでもあり、
    以前に学習した知識に基づいており、入力された質問に基づいて最も高い確率で後続のコンテンツを生成します。合理的な質問が与えられると、大規模なモデルは合理的な答えを生成します。
  2. 幻覚の問題大規模なモデルは入力が妥当かどうかを判断せず、確率に基づいてコンテンツを生成するだけなので、不合理な答えが得られる場合があります。
    たとえば、私は林大宇がしだれ柳を根こそぎにする物語を書くのに協力してくれるようこの大物モデルに頼みましたが、これが無理なプロットであり、不可能であることは誰もが知っています。しかし、大規模なモデルの場合、それが合理的かどうかを判断せず、最大の確率に基づいてコンテンツを生成するだけであり、これはいわゆる幻想、または重大なナンセンスです。

ここに画像の説明を挿入します

  1. ベースモデルとコマンドモデル

  基本モデルは、さまざまな種類の知識を理解するために使用される知識の学習段階に似ています。指導モデルは専門的なトレーニング フェーズ (質問レビュー) に似ており、人間の認知に合わせて調整されており、モデルが特定の分野で優れたパフォーマンスを発揮できるようになります。

  これは英語の学習過程にたとえると、教科書を読むのは基礎ですが、試験前には問題をブラッシュアップし、特定の分野の問題の答え方を理解する必要があります。命令エンジニアリングのタスクは、モデルにこのトレーニングとガイダンスを提供することです。

ここに画像の説明を挿入します

1.2 大規模モデルの分類

大規模なモデルで何が達成できるかを理解することが重要です。大規模なモデルの作業は、次の 3 つの主なカテゴリに分類できます。

  1. テキスト生成: 少ない情報から多い情報へ:
    これには、大規模なモデルが提供される情報をより多くの情報に拡張することが含まれます。たとえば、WPS の AI クラウド ドキュメントは、提供された日次作業情報の断片に基づいて週次作業レポートを生成できます。

ここに画像の説明を挿入します

  1. テキスト抽出: より多くの情報からより少ない情報へ:
    このカテゴリには、大量の情報から有用なコンテンツを抽出するテキスト抽出が含まれます。たとえば、履歴書から重要な情報を抽出したり、指示を理解してユーザーの言葉を特定の行動に変換したりできます。販売シナリオでは、複数ラウンドの会話を分析して、ユーザーの好みや製品のニーズを理解できます。

ここに画像の説明を挿入します

  1. テキスト情報の変換:
    テキスト情報の変換の最も典型的な例は翻訳であり、大きなモデルは優れた翻訳効果を提供できます。もう 1 つの例はコード生成です。国内の CodeGeeX2 や海外の Copilot などでコードを生成できます。さらに、データ分析分野のセルフサービス分析 (NL2SQL) では、自然言語を SQL クエリに変換して、データ分析を高速化できます。

ここに画像の説明を挿入します

  これらのジョブ カテゴリは、さまざまなドメインやシナリオで自動化されたインテリジェントなタスクをサポートし、効率と利便性を向上できる大規模モデルの多用途性を示しています。

2. 大規模モデル アプリケーションを構築する方法

2.1 To B.To Cシーンアプリケーションの違い

大規模な言語モデルを適用する場合、シナリオごとに異なる戦略と原則が必要になります。以下は、さまざまなシナリオにおける適用原則の概要です。

To C シナリオ (コンシューマー向け):

  1. オールラウンド アシスタント:大きなモデルは To C シナリオでオールラウンド アシスタントとして機能し、ユーザーは継続的にリクエストを行うことで新しいコンテンツを取得できます。

  2. 指示の継続的な改善:このシナリオでは、指示の改良は反復的なプロセスです。ユーザーは簡単な命令から始めて、モデルからのフィードバックに基づいて命令を徐々に改良して、より正確な出力を得ることができます。

ここに画像の説明を挿入します

  1. 柔軟性: To C シナリオでは、モデルの出力がさまざまなユーザーのさまざまなニーズや考え方に適応する必要があります。したがって、柔軟性とパーソナライゼーションが鍵となります。

  2. 調整可能なコンテンツ:特定のニーズを確実に満たすためには通常、手動による介入と変更が必要となるため、ユーザーは最終出力コンテンツをある程度自由に選ぶことができます。

B へのシナリオ (企業向け):

  1. シナリオベースの設計: To B シナリオでは、通常、特定のシナリオに合わせて大規模モデル アプリケーションを設計します。そのためには、プロダクト マネージャーとエンジニアリング チームが、ユーザーが効果的な入力を行えるように導く方法を一緒に考える必要があります。

ここに画像の説明を挿入します

  1. エンジニアリング指示:このシナリオでは、通常、指示には、決定されたシナリオに適応するエンジニアリング特性が必要です。これには、モデルの安定性と使いやすさを確保するための安定した入力セットと評価セットが含まれています。

  2. システム インタラクション: To B シナリオでは通常、他のシステムとのインタラクションが必要なため、出力コンテンツはダウンストリーム システムまたはビジネス目標とのインタラクションを可能にする安定した形式である必要があります。

  To C シナリオでは、大規模なモデルは柔軟なアシスタントに似ていますが、To B シナリオでは、特定のシナリオとニーズに対応する特殊なツールとして機能します。ユーザーは、プロダクトマネージャーから指定されたプロンプト形式(APP)に従って重要な内容を入力し、ユーザーが効果的に入力できるようにガイドします。大規模なモデルを使用すると、製品マネージャーは製品のポジショニングと設計により集中し、ユーザーが効果的な入力を行えるようにガイドできます。これらの命令に基づいて、命令エンジニアは、大規模モデルがより安定して命令を実行できるようにする APP を開発します (安定した入力評価セットに基づいて、設計された大規模モデル ソリューションを作成し、ビジネスで使用可能な結果を​​取得します)。

ここに画像の説明を挿入します

2.2 To B シナリオにおける大規模モデルの適用原則

  1. ビジネスプロセスに組み込む

  大規模なモデルを効果的に適用するための最初のタスクは、それを企業のビジネス プロセスに組み込むことです。たとえば、企業が多数の採用面接を実施する必要があるとします。候補者を評価するときは、通常、履歴書と過去の面接官からのレビューを確認します。この場合、採用システムにボタンを追加すると、大規模なモデルがワンクリックで前の面接官の内容を要約し、候補者の長所と短所を表形式で出力できるようになります。大規模なモデルはテキストの理解と生成に優れているため、これはビジネス プロセスに組み込むのに非常に便利な機能です。

ここに画像の説明を挿入します

  1. 大型モデルの可能性を解き放つ

   大規模なモデルには、テキストの理解、生成、およびいくつかの基本的な推論に関する強力な可能性があります。したがって、大規模モデルを企業内に適用する場合には、これらの可能性を最大限に活用する必要があります。プロダクト マネージャーとビジネス エキスパートは、大規模モデルの機能を理解し、企業の既存のビジネス システムから大規模モデルを適用できる領域を見つける必要があります。これには、自動テキスト要約、情報抽出、自然言語推論などが含まれる場合があります。

  1. ビジネス目標を再細分化する

  大きなモデルは魔法のような願いが叶う井戸ではありません。目標を設定するだけですべてを実行してくれると期待することはできません。代わりに、特定の問題を解決するために一連のプロセスを再設計する必要があります。ここではいくつかの例を示します。

ここに画像の説明を挿入します

  1. 問題の背景:観光業界の責任者は、旅程計画を実行できる店舗ロボットを構築する必要があります。

  2. 分解プロセス:ビジネス ニーズを満たすために、旅行計画を 4 つのステップに分解し、モデルのタスクと目標を明確にします。

    a.ステップ 1 - ロール プレイングと情報収集:まず、モデルが役割を果たし、自然言語でユーザーと対話し、目的地、旅行の好み、旅行者の数など、旅行のニーズに関する情報を収集します。これは、店舗内でのロボットの自然なインタラクションであり、優れたユーザー エクスペリエンスを提供します。

    b.ステップ 2 - 情報抽出:次に、モデルは、予算、旅行人数、特定の家族メンバー、目的地リストなどの重要な情報を以前の会話から抽出します。この情報は、旅行計画の後続のステップで使用されます。

    c.ステップ 3 - 旅程計画:モデルは、抽出された情報を使用して、外部サービス (Ctrip など) または内部の旅程計画システムにリクエストを行い、旅程計画の提案を生成できます。大規模なモデルは、微調整トレーニングを通じて独自の旅程を計画することもできます。

    d.ステップ 4 - ロードブックの生成:最後に、ロボットは、ユーザーの家族の状況と観光名所の情報に基づいて、非常に読みやすく洗練されたロードブックを生成します。モデルは指示を受け取り、毎日の旅行計画、観光スポットの紹介、家族構成に基づいてユーザーのニーズを満たすテキストを生成します。このようにして、ユーザーに価値のある旅程の提案を提供します。

  この例では、ビジネス目標を一連のタスクにリファクタリングして、大規模モデルのタスクとガイダンスを明確にする方法を示します。このアプローチは、モデルが特定のビジネス ニーズを効果的に満たすのに役立ちます。

2.3 大規模モデルの適用スキル

2.3.1 大規模モデルの適用スキル

大規模なモデル アプリケーションを設計および管理する場合、パフォーマンスとユーザー エクスペリエンスの向上に役立つ重要なヒントがいくつかあります。

  1. ユーザー入力を管理します。

  たとえば、ユーザーが曲を書くのに役立つ大きなモデルが必要な場合、ユーザーは通常、テーマ、スタイルなどの情報を提供します。ユーザー入力を効果的に操作するために、さまざまなテーマに沿った複数のテンプレートを事前に準備し、ユーザー入力を適合したテンプレートと組み合わせて構造化された指示を作成できます。この設計により、製品マネージャーは対話を通じてユーザーが効果的な入力を提供できるようにガイドできるほか、コマンド エンジニアがコーパスをより適切に収集し、コマンドを開発し、コマンドを微調整するのにも役立ちます。

ここに画像の説明を挿入します

  1. JSON を上手に活用してシステムと対話します。

  以下の例では、大規模なモデルがユーザー入力に基づいて車内のデバイスを制御する必要があります。これを実現するには、プロダクト マネージャーは、エアコン、座席、窓などの複数のデバイスを制御できる汎用コマンドを設計する必要があります。これらの命令には、特定の操作アクションと前提条件を含める必要があり、大規模なモデルが人間の言語をデバイスが操作できる命令に効果的に変換できるように、安定した出力構造を設計する必要があります

ここに画像の説明を挿入します

  1. シーンを調整し、命令を分割します。

  大規模モデルが特定の種類の問題の解決にさらに集中できるように、大規模モデルのタスクを特定のシナリオと問題の種類に分割します。たとえば、数学や中国語などの主題の質問に答えるために、ユーザーは大規模なモデルを必要とする場合があります。効果を高めるために、これらの質問を最初に分類し、その後、特定の分野における大きなモデルのプロ意識を示す指示を分類ごとに設計できます(たとえば、モデルに「あなたはもうプロの中国語教師です」と促します) ...)。さらに、大規模なモデルが質問に適切に答え、出力の品質をさらに向上させるために、ドメインごとにいくつかの CoT サンプルを準備できます。

ここに画像の説明を挿入します

  1. 外部システムを上手に活用しましょう。

   医療相談のシナリオを例に挙げると、大規模モデルで病気の予備診断ができるようになることを期待しています。インターネット医療シナリオでは、遠隔地の医師とのコミュニケーションにかかる時間とコストが比較的高くなります。大規模モデルで効果的な患者情報を最初に収集できれば、時間とコストを大幅に節約できますが、これには多くの専門的な医療知識が必要になる場合があります。呼吸器疾患の対処法、消化器疾患の診断と診断方法など。大きなモデルが発散して出題されると効果が良くない可能性があります。

   この問題を解決するには、外部制御システムを使用して相談プロセスと医療知識グラフを組み合わせて、安定的かつ効果的な方法で情報を提供し、問題を制御可能にすることができます。

  また、複数回の相談会の情報を絞り込んで収集する必要があり、外部システム(別指示)を通じて対話情報を継続的に抽出し、疾患診断ナレッジマップと照合することで、診断情報の正確性を確保することも可能です。質問を見逃したり、繰り返したりしないようにします。

ここに画像の説明を挿入します

  1. マルチタスクや複数ターンの会話を処理します。

  英語のスパーリング シナリオでは、大規模モデルは英会話に集中でき、文法チェック、口語的な要件、会話の言語スタイルの維持など、複数のタスクを同時に処理する必要があり、また、会話の内容 (会話の有無) をチェックする必要もあります。食べ物の注文などの対話目標を完了するかどうかにかかわらず、違反があります。

  このマルチタスクの状況に対処するために、2 つの大きなモデル命令が利用可能です。1 つは会話をスパーリングするためのもので、もう 1 つは会話の内容を確認するためのものです。このようにして、2 つの大きなモデルが連携して、会話の品質とコンプライアンスを維持しながら英語スパーリングの目標を確実に達成できます。

ここに画像の説明を挿入します

  1. 長いテキストの処理

  長いテキストの要約を処理する場合、ユーザーは通常、数万ワードにわたる長いテキストを 200 ~ 300 ワードの要約に絞り込みたいと考えます。一般的な戦略は、長いテキストをスライスまたはセグメント化し、最初の命令によって各セグメントの概要を生成することです。

  その後、これらのセグメントの概要を全体の概要にマージできます。ユーザーの概要のニーズが満たされた場合、処理を終了できます。要約の目標が達成されない場合は、元のテキストに戻り、テキストをさらに分割して、上記のプロセスを繰り返すことができます。このループ反復方法は、「マップ リデュース」のアイデアに似ており、長いテキストの概要の問題を効果的に処理でき、最終的に生成される概要がユーザーの期待に応えることができます。

ここに画像の説明を挿入します

  上で説明した手法を通じて、大規模なモデルを既存のビジネス システムに適用したり、さまざまなシナリオで新しい問題を解決したりできます。

2.3.2 大規模モデルの適用方法

大規模なモデルを適用する場合、次の方法が非常に重要です。

ここに画像の説明を挿入します

  1. フローチャートを作成する: プロジェクトの開始時に、明確なフローチャートを作成することが重要です。フローチャートは、ビジネス プロセスにおける大規模モデルの役割とタスクを簡素化して理解するのに役立ち、ビジネス関係者がその機能と能力をより正確に理解できるようになります。

  2. 評価基準を定義する: 大規模モデルのアプリケーションは精度に基づいて評価する必要があることが多く、評価基準も制御可能なレートを達成するための重要な手段です。プロジェクトの初期段階では、ユーザーが完全な評価基準を提供することは難しいため、反復プロセスを通じて段階的に評価基準を形成する必要があります。指標は、リリースが期待どおりであることを確認するのに役立ちます。

  3. 評価データを使用する: 評価データはモデルのパフォーマンスを検証するための重要な要素であり、要件を補足および改善するためにも使用できます。ユーザーは期待される結果を正確に説明できない場合がありますが、実際の評価データを収集することで、ユーザーのニーズをより深く理解し、アプリケーションを迅速に実装できます。

2.3.3 事例:自動車保険Q&Aシステム

ユーザーのニーズに合わせて質問応答システムの機能を段階的に改善していく方法について、筆者が経験した以下のような要望事例を紹介します。

  1. 初期要件:ユーザーは当初、一連の指示と知識ベースを通じて質問に回答できる Q&A システムを要求しました。

  2. 犯罪通報機能の追加:その後、ユーザーからは、システムが質問に答えるだけでなく、犯罪通報というアクションを完了するのに役立つことを期待するという評価データが提供されました。そのためには、システムが意図認識機能を備え、自動車保険レポートなどのレポート情報を提供するようにユーザーをガイドできる必要があります。

  3. より多くのニーズを満たす:その後の会話の中で、ユーザーは、システムがレポートの特定の時間と場所を推測できることを期待するなど、より多くの要件を提案します。ユーザーは会話の中で「今」やその他の曖昧な時間情報に言及する可能性があり、システムは大規模なモデルからの推論を通じて正確な答えを提供する必要があります。

  4. 命令の改善:より多くのユーザーの新たなニーズを満たすために、大規模なモデルがより多くの情報と推論タスクを処理できるように、システムは命令をさらに改善する必要があります。

  全体として、このケースでは、質疑応答システムを構築する際に、意図認識、情報誘導、推論機能などの機能をユーザーのニーズに応じて段階的に拡張し、変化するユーザーの期待にシステムが応えられるようにする方法を強調しています。これらは、大規模なモデルで処理できるタスクです。

ここに画像の説明を挿入します

3. 迅速なエンジニアリング

3.1 コマンドエンジニアリングの基礎知識

  1. 指令とは何ですか

  ディレクティブは、モデルから情報を取得するためのリクエストであり、ユーザーのニーズを記述しますが、通常、特定の構文や固定形式はありません。命令は、知識の検索、タスクの実行、自然言語生成など、幅広い領域をカバーできます。たとえば、ユーザーは中国の各自治体の人口をクエリしたい場合があります。

命令の作成プロセス中にいくつかの問題が発生します。

  1. 個人の経験の限界:命令の作成は個人の経験に依存することがよくありますが、この場合、他の問題やモデルと互換性がなく、結果的に効果が不安定になる可能性があるため、他の人が同じ命令を直接使用することが困難になる可能性があります。

  2. 柔軟性の欠如:他の人が共有した指示を変更するのは困難です。命令の再利用性を高めるために、命令プロジェクトでは一部のコンテンツを構成可能な変数に変換して、他のユーザーが命令をより簡単に変更して再利用できるようにすることができます。

  3. 感度とコメント:命令内の文言や書式の小さな変更は、特にクエリ間に強い依存関係がある運用環境では、最終出力の内容に影響を与える可能性があります。したがって、生産プロセスでは、通常、指示の評価と継続的な改善が必要になります。

  4. モデル間の違い:同じ命令でも、モデルが異なれば効果が異なる場合があります。ただし、さらに最適化を行うと、さまざまなモデルで良好な結果が得られるように命令を作成できます。

ここに画像の説明を挿入します

  1. コマンドエンジニアリングとは

  命令エンジニアリングは、NLP 分野の対話システムに関連するワークフローおよび手法であり、大規模な言語モデルを使用した対話の命令や要求を作成および改善し、期待される結果を確実に生み出すことができるようにモデルのパフォーマンスと適応性を継続的に改善することを目的としています。実際のアプリケーションでの結果。命令エンジニアリングは反復的なプロセスであり、通常は次の手順が含まれます。

  1. 指示の作成:タスクの要件に基づいて事前の指示を作成します。

  2. 実装ディレクティブ:このディレクティブを使用して、モデルの出力を生成します。

  3. 評価と分析:評価セットを使用して、命令の効果をテストし、悪いケースのチェックなど、さまざまな状況でのモデルのパフォーマンスを分析します。

  4. 最適化命令:評価と分析の結果に基づいて命令を変更および最適化し、モデルのパフォーマンスを向上させます。

  5. 継続的評価:モデルまたはタスクが変更されると、指示の有効性を継続的に評価し、必要に応じて修正します。

  6. 安定した評価:安定した評価セットを使用して、さまざまなシナリオで命令が一貫して実行されるようにします。

ここに画像の説明を挿入します
3. コマンドエンジニアリングの重要性

  過去 6 か月ほどにわたって、私たちのチームは多数の命令の開発と評価を完了し、その過程でいくつかの重要な点に到達しました。

  1. 命令の可能性:優れた大規模モデルでは、綿密な命令設計と開発により、90点、95点、さらにはそれ以上の高いレベルの効果を得ることができます。これは、製品の発売を支援しながら、個人の生活や仕事の問題の解決にも役立つコマンド エンジニアリングの可能性を示しています。

  2. 柔軟性と適応性: コマンド エンジニアリングは柔軟性があり、さまざまな需要シナリオに応じて開発および調整できる必要があります。タスクが異なれば、必要な指示の種類も異なるため、チームはニーズの変化に適応する必要があります。

  要約すると、命令エンジニアリングは、大規模なモデルを現実世界のシナリオに適用する際に重要な役割を果たし、モデルのパフォーマンスと有効性が最適なレベルに到達するのに役立ちます。チームと個人の両方が、コマンド エンジニアリングの方法と実践から恩恵を受けて、多様な問題やニーズに対処できます。

3.2 命令記述の原則

指示の作成には、いくつかの重要な知識と原則があります。

  1. 明確かつ明確にする:
    指示では、モデルに実行してもらいたいことをできるだけ明確かつ明確に表現する必要があります。あいまいな出力や望ましくない出力を避けるために、タスクの中核となる要件がモデルに明確に伝えられていることを確認してください。モデルが意図を確実に理解できるように、特定の単語と要件を使用します。

ここに画像の説明を挿入します

  1. モデルに考える時間を与える:
    モデルには、考えて指示を処理する時間が必要です。場合によっては、思考プロセスを指示に明示的に含めることで、モデルがユーザーの期待をよりよく理解し、モデルがどのように考えてタスクを処理すべきかを示し、最終的にモデル出力の品質を向上させることができます。

  たとえば、カバーレターの書き方の指示では、最初にそのポジションに興味がある理由を、真ん中でなぜそのポジションに適しているのかを説明し、最後にそのポジションに対する期待を表明するよう明確に依頼できます。今後ともよろしくお願いいたします。このアプローチは、モデルが期待どおりのコンテンツを生成するように導くのに役立ちます。

ここに画像の説明を挿入します

3.3 命令の書き込み手順

指示を作成するときは、通常、次の重要な部分が含まれます。

ここに画像の説明を挿入します

  1. コンテキスト (オプション):命令のコンテキスト部分には役割とタスクを含める必要があります。これにより、モデルがタスクをよりよく理解できるようになります。モデルがタスクを実行するときに参照できるように、ドメイン固有の情報や知識ベースなど、関連する背景知識も提供する必要があります。

  2. 指示自体 (必須):指示では、タスクを実行するためのステップまたはロジックを明確に指定します。これらのステップをリストすると、タスクをどの順序で完了する必要があるかをモデルに指示できます。モデルがタスクの性質をよりよく理解できるように、いくつかのサンプル データや例を提供することもできます。

  3. 入力内容 (必須):入力内容は、会話、記事、または質問の形式にすることができます。

  4. 出力形式 (オプション):モデルが出力する情報または結果の形式を明確にするために、指示の最後に出力ガイドを含める必要があります。

  たとえば、会話から営業プロセスの重要な情報を抽出するために大規模なモデルが必要な場合、上記の 4 つの部分を指示に含めて指示をより完全かつ明確にし、変数を使用して入力された会話の内容を表すことができます。出力情報ポイント形式。

# 结构
你是对话信息提取器,你要按顺序完成任务,从客户对话中找到的客户提出的关注点,按照输出格式输出4个客户认为最重要的关注点词语

你需要按顺序完成任务:
1. 找到在客户说的话中出现的关注点并精简为词语,如果没有找到任何客户提出的关注点,请输出"未涉及"
2. 按照客户的关注度从高到低排序,按输出格式输出4个客户最关注的词语
3. 检查你的输出内容,如果你输出的内容是一句话,请重新输出总结为词,按照输出格式输出 json 
对话:
"""
( input )
"""

输出格式:
{
    
    "客户关注点:["."]}

3.4 指示書作成スキル

  命令を作成する場合、大規模な言語モデルの機能を理解し、いくつかの命令作成テクニックを使用すると、大規模なモデルがタスクを実行するようにより適切にガイドできるようになります。いくつかの重要なポイントを次に示します。

  1. ゼロショット機能:大規模な言語モデルには強力な基礎が備わっているため、多くの自然言語処理タスクでは、モデルを再トレーニングしたり、大量のサンプル データを提供したりする必要はなく、明示的なリクエストを行うだけで済みます。たとえば、具体的な例を示さずに、モデルに情熱的なスポーツドリンクのスローガンを生成するように依頼できます。モデルは説明に基づいてコンテンツを生成します。

ここに画像の説明を挿入します

  1. フューショット機能:より具体的または複雑なタスクをモデルに実行する必要がある場合、フューショット機能を利用して、モデルの実行をガイドする少数の例を提供できます。たとえば、キャッチーなスローガンを生成したい場合、単語の繰り返しや韻などの類似した特徴を持つ例をいくつか提供すると、モデルはこれらの例を使用して、より関連性の高いコンテンツを生成できます。
    ここに画像の説明を挿入します
  2. 思考チェーンと例
    思考チェーンとは、質問に効果的に答えたり、タスクを実行したりできるように、段階的にガイドされる大規模な言語モデルの思考と推論のプロセスを指します。思考連鎖を書くときは、次のことを行う必要があります。
    1. 明確なステップを提供する:思考連鎖を記述するときは、モデルがタスクを段階的に完了するための明確なステップを必ず提供してください。モデルが期待どおりに考え、動作するように、各ステップには明確なガイダンスが含まれている必要があります。

    2. サンプル データ:思考チェーンには、モデルがタスクをよりよく理解できるようにサンプル データまたはシナリオを含めることができます。これらの例は、推論と計算を通じてモデルをガイドするために使用できます。

    3. フィードバックと反復:モデルによって生成された結果をレビューしてフィードバックを提供し、フィードバックに基づいて思考の連鎖を継続的に改善します。反復は、タスクのパフォーマンスを継続的に向上させるための鍵です。

ここに画像の説明を挿入します
4.例のない思考連鎖
次の例では、モデルに段階的に思考してもらい、思考のキーポイントが果物の数の変化であることを示します。
ここに画像の説明を挿入します

  1. Top-k と温度
    命令を作成するプロセスでは、Top-k と温度という 2 つの重要なハイパーパラメータを調整する必要があります。

    1. Top-p: Top-p パラメーターは、モデルによって生成されるコンテンツの多様性を制御するために使用されます。Top-k の値を低く設定すると、モデルは最も高い確率で単語を選択する傾向が強くなり、生成されるコンテンツがより安定して確実なものになります。Top-k の値を高く設定すると、生成されるコンテンツの多様性が増し、モデルがよりクリエイティブになりますが、一部のコンテンツの精度が低くなる可能性があります。
      ここに画像の説明を挿入します

    2. 温度:温度パラメータは、数式を通じて単語間の確率の差に影響を与え、それによって生成されるコンテンツの多様性に影響を与えます。温度の値が高いほど、モデルはより創造的でありながらよりランダムな、より多様なコンテンツを生成します。温度の値が低いほど、モデルは最も高い確率で単語を選択する傾向が強くなり、生成されるコンテンツはより確実で安定します。
      ここに画像の説明を挿入します
        情報抽出タスクや質問応答タスクなど、場合によっては、生成される回答の正確性と信頼性を高めるために、温度を低くし、Top-p 値を低くする方が適切な場合があります。クリエイティブ ライティングなどのシナリオでは、より多様でクリエイティブなコンテンツを生成するには、より高い温度とより高い Top-p 値の方が適している可能性があります。実際のアプリケーションでは、これらのハイパーパラメータを繰り返し調整することで、特定のタスクやシナリオに最適な構成を見つけて、満足のいく生成結果を得ることができます。

3.5 実践的なスキル

  1. 区切り文字を使用する:区切り文字を使用すると、入力コンテンツと命令の間の相互作用をより適切に処理し、生成された結果の精度と信頼性が向上し、追加の干渉やエラー情報を減らすことができます。たとえば、入力コンテンツに参照コピーライティングや改訂版コピーライティングなどの複数の側面が含まれる場合、適切なセパレーターを使用すると、大規模なモデル命令と入力コンテンツの間の干渉を効果的に分離できます。

ここに画像の説明を挿入します

オリジナルの注文

ここに画像の説明を挿入します
最適化命令: 入力内容と命令は引用符で区切られます。

  1. 指示をアイテムに分割する: 指示を明確なアイテムに分割するようにしてください。これにはいくつかの利点があります。
    • まず、明確で明確な指示は曖昧さを排除し、文字通りにも構造的にも混乱がないようにします。
    • 第 2 に、この構造は、大規模なモデルが個々のタスクをよりよく理解するのに役立ちます。タスクを順番に配置すると、大規模なモデルの検討と実行が容易になります。
    • より優れた反復最適化命令に貢献します。指示を別の項目に記述します。生成されたコンテンツが不十分な場合は、それに応じて指示を変更できます。

ここに画像の説明を挿入します
ここに画像の説明を挿入します

  1. ナレッジの注入:シナリオによっては、ナレッジを注入することで、大規模なモデルがより正確な結果を生成できるようにすることができます。

    • テキストの挿入: たとえば、大規模なモデルに旅行の提案を依頼する場合、気象条件に関する情報を注入できます。

    ここに画像の説明を挿入します

    • テーブルインジェクション: 表形式データを使用する場合は、各データの前に必ずテーブルヘッダーまたは説明情報を追加して、表形式データの表現を自然言語に近い表現に変換し、大規模なモデルがデータの意味をよりよく理解できるようにします。彼らの理解と答えの生成の正確さ。

      1. 目標: 多くのシナリオでは、大規模なモデルを使用して、データの増加傾向や下降傾向をチェックするなど、表形式のデータに対して単純な分析を実行することが望ましいです。

      2. データ ソース: 通常、データは Excel または PDF ファイルから直接取得されるため、解析して準備する必要があります。

      3. 難易度の増加: 元のタイル化された表形式データを直接使用することは、大規模なモデルを理解することが難しいため、モデルの理解を向上させるための措置を講じる必要があります。

      4. データの整理: データをより適切に挿入するには、ヘッダーまたは説明情報を各構造化データに関連付け、各データの前に配置することをお勧めします。たとえば、最初の行は、2022 年の収益、前年比データ、収益増加データなどを表すことができます。

ここに画像の説明を挿入します
ここに画像の説明を挿入します

  1. 安定したフォーマット要件:安定したフォーマット要件を使用し、大規模なモデルの出力が JSON や Markdown などの構造化フォーマットで表示されるようにするようにしてください。これにより、大規模なモデルが架空のコンテンツや分岐したコンテンツを生成することを回避し、出力が特定の標準に準拠していることを確認できます。また、出力結果と他のビジネス システム間の相互作用も容易になります。

ここに画像の説明を挿入します

  1. 傾向に従う:命令を書くときは、大規模なモデルの機能と認識方法に従って命令を書くようにし、型破りなロジックや不必要なロジックを減らし、モデルに理解できない操作を実行させないようにしてください。

    • 明確な指示: 指示のコンテキストと意味関係が明確であることを確認し、矛盾した表現や混乱を招く表現を避けてください。たとえば、ブランド情報を抽出する場合は、ブランドが何であるかを明確に表現し、販売目的での出力を禁止する要件を混在させないでください。混乱が生じる可能性があります。

    ここに画像の説明を挿入します

    • 自然言語で表現し、過度なロジックを避ける: コードや番号付けを導入する代わりに、大規模なモデルで理解される自然言語を使用して命令を記述するようにしてください。データ変換が必要な場合は、指示が簡潔かつ明確になるように、後続のビジネス システムでデータ変換を処理することが最善です。
      たとえば、次のシナリオでは、男性は 1 を出力する必要があり、女性は 0 を出力する必要があります。このハード変換操作は、命令抽出プロセス中に複雑な変換アクションを導入する代わりに、後処理ビジネス システムで処理できます。
      ここに画像の説明を挿入します
    • 完全なロジック:命令のロジックが完全であることを確認します。モデルがテキスト内で特定のコンテンツを見つけられない場合は、モデルがタスクを正しく実行できるように明確なロジックを提供します。
      以下の例では、プラットフォーム関連の情報は見つからず、大規模なモデルによっていくつかの捏造されたコンテンツが生成されました。該当するコンテンツが見つからず出力しないように指定した場合、この状況は発生しなくなりました。ここに画像の説明を挿入します
      ここに画像の説明を挿入します

  これらの経験とスキルを通じて、大規模モデルが各タスクを理解して実行できるようにしながら、大規模モデルによって生成される結果の品質と精度を向上させるための命令をより適切に作成できます。

4. 事例:作文中の比喩文、擬人化文、並列文の抽出

  実際の指導の作成と反復のプロセスでは、指導シナリオに直面します。教師が小論文を添削するのを支援するには、小論文から比喩文、擬人化文、並列文を抽出する必要があります。しかし、大規模なモデルでは、その内容があまり明確ではありません。これらの概念は改善するために反復し続ける必要があります。
ここに画像の説明を挿入します

ビジネス要件:

  • 比喩文、擬人化文、並列文を抽出します。
  • オントロジーとメタファーの特定を含む、修辞的装置の明確な分析を提供します。
  • そのままオンラインに公開できる高品質な指導を実現し、高い評価を獲得します。

実装方法と改善プロセス:

  1. 初期の試み:初期の指示では、モデルが比喩文、擬人化文、並列文を直接抽出する必要がありましたが、効果は良好ではありませんでした。大規模なモデルではこれらの概念があまり明確ではありませんが、たとえば、イエスワード文は比喩文とみなされやすいため、スコアは一般に 60 ~ 70 点になります。
    ここに画像の説明を挿入します

  2. より具体的な定義:指示の最適化、比喩文、擬人化文、並列文の明確な定義、修辞技法の出力の要求など。効果の向上は明らかではありません。
    ここに画像の説明を挿入します

    鮮明な鮮明度、効果の向上はほとんどない

  3. タスクの分割:たとえば、最初に比喩文の抽出に焦点を当て、中国語教師の ID 情報を指示に追加するなど、タスクを分割します。タスクがより集中したため、効果は向上しましたが、オンラインの要件にはまだ程遠いです。
    ここに画像の説明を挿入します

    タスクが分割され効果が向上

  4. 大規模モデルの包括的な分析を導くための思考経路を提供します。比喩文の定義を明確にしながら、オントロジーとメタファーとは何かをモデルに伝え、大規模モデルの思考経路を導きます。大規模なモデルには、単に回答を出力するだけでなく、文中に特定のオントロジーやメタファーがあるかどうか、比喩文パターンであるかどうか、そして最終的には比喩文であるかどうかを含む、完全な分析プロセスを提示する必要があります。
    ここに画像の説明を挿入します

    オントロジーとメタファーの概念を明確にし、思考と分析のプロセスを導き、効果が大幅に向上します

  5. 指示表現の最適化:指示テキスト内の語彙や表現を調整して、抽出を認識と抽出に変更するなど、大規模なモデルの効果を向上させようとしますが、その効果は明ら​​かではありません。
    ここに画像の説明を挿入します

    指導内容を最適化するも効果があまり上がらない

  6. 例の追加:大規模モデルのパフォーマンスをさらに向上させるために、大規模モデル用の例をさらに提供します。この例では、どの文が比喩文であるかを大規模モデルに通知し、各文のオントロジーと比喩も明らかにします。例と明確な構造が提供されているが、改善は弱い
    ここに画像の説明を挿入します

    例を挙げれば効果は薄い

  7. 否定的な例を提供する:モデルのパフォーマンスをさらに向上させるために、否定的な例を導入して、どの文が比喩的な文ではないか、また比喩的な文ではない理由をモデルに伝えます。否定的な例を紹介し、その理由を説明することで、パフォーマンスが大幅に向上します。
    ここに画像の説明を挿入します

    反例を提示すると効果が大幅に向上します

  8. 並列文に対する思考連鎖の提供:並列文の処理において、文が3つ以上あるかどうか、単語と文の類似性などを観察するなど、並列文を分析する手順を明確にします。
    ここに画像の説明を挿入します

  9. 明確でない場合の判断
    ここに画像の説明を挿入します

  10. テキストの順序を調整する:テキストを処理するときは、ドキュメントのウィンドウの長さとコンテンツが表示される位置に対する結果の感度に注意してください。特定のコンテンツを強調したい場合は、テキストの順序を調整して、大きなモデルの処理方法に影響を与えることができます。例えば、ネガティブな例を挙げた場合、触れるべきではない情報が出てくることもあります。この場合、負の例を例の前に置くと効果がわずかに改善されます。
    ここに画像の説明を挿入します

テキストの順序を調整すると、効果がわずかに改善されます

  上記は完全な命令反復プロセスであり、最終的に高品質の命令を実現し、ビジネス ニーズを満たし、モデルが比喩文、擬人化文、並列文を正確に抽出できるようにし、詳細な分析プロセスを提供します。

5. 授業後の質疑応答

5.1 to b シナリオでは、モデルのトレーニングに LoRA またはプロフィックス ターニングを使用することと、最適化に命令テンプレートを使用することの違いは何ですか?

  1. コスト: LoRA を使用する場合でも、完全な微調整を使用する場合でも、一定量のデータとコンピューティング リソースが必要です。
    有効性の点では、この 2 つはある程度補完的であり、説明テンプレートは単純な問題に適しており、大規模なモデルはより広範囲の問題を解決できるという利点がありますが、コストが高くなる可能性があります。
  2. 効果: 2 つの方法は効果レベルで相互に補完します。一部の単純な問題については、命令テンプレートを使用して直接解決でき、大規模モデルの利点を最大限に活用できます。一部のシナリオでは、100% の精度は必要ありません。製品化機能と組み合わせた指示テンプレートを通じてアプリケーションを迅速に起動し、迅速に反復してビジネス上の問題を解決できます。

5.2 命令は手動でのみ記述して反復することができますか? 命令を自動的に生成し、それを大規模モデル自体で評価させることは可能ですか?

  まだ。現在の B サイド シナリオはほとんどが新しいものであり、大規模なモデルはこれまでに見たことがなく、依然として指示を手動で作成して反復する必要があります。しかし、大規模なモデルの機能が向上し、より多くの C および B シナリオが理解されるにつれて、命令の作成はより効率的かつ自動化される可能性があります。

5.3 ドメイン A のデータを使用してドメイン B のモデルを微調整できますか?

  モデルを微調整する場合、分野 A と分野 B (法律や医療など) の間に大きな違いがある場合、通常、微調整はあまり意味がありません。同じ分野の同様の問題であり、特定の要件が異なる場合は、それが役立つでしょう。

  たとえば、短いテキストと長いテキストの作成では、モデルの汎化機能は、関連する命令とコンテンツを一緒にトレーニングするのに役立ち、大規模なモデルは一部の機能を転送して、関連するシナリオで役立つ効果を生み出すことができます。

5.4 異なる大規模モデル間でコマンド プロジェクトを移行するには、どのくらいの作業が必要ですか? そして将来、モデルの機能が向上すると、プロンプトエンジニアリングは無意味になるのでしょうか?

  異なる大規模モデル間でプロジェクトを移行する際の作業負荷は状況によって異なり、多くの場合、指示の書き直しや再評価が必要になります。異なる大規模モデル間では命令を書き直す必要がある場合がありますが、元の製品ソリューションの一部の機能は再利用できます。将来のモデルの機能が向上するにつれて、おそらく数年以内により良いソリューションが登場する可能性があります。ただし、現時点および今後数年のうちに、コマンド エンジニアリングによって生産性を迅速に向上させることができます。大規模なモデルの実装が生産的になるには、それはまだ効率的で価値のある方法です。

5.5 思考の連鎖を構築するための特定の方法はありますか?

  思考の連鎖を構築する際に重要なのは、問題の解決を中心にトピックを組み立てることです。人間の問題解決プロセスは、可能な限り構造化された大規模モデルに与えることができます。たとえば、質問、コンテキスト情報、関連するステップなどを大規模モデルに提供して、思考の連鎖を構築することができます。

5.6 NL2SQL のロジックの実装方法

  1. 実行可能な SQL の生成: 大規模なモデルでは、最終的な SQL クエリ ステートメントを生成する必要があります。これには、関連するヘッダー情報と入力としての質問、および質問のセマンティクスを SQL にマッピングする機能が必要です。

  2. 準備作業:SQLを生成する前に、テーブルに関する情報(コメントや業務属性など)をベクトル化し、類似度計算を行うことで、多数のテーブルの中から該当するテーブルを選択する必要があります。どのフィールドが最も重要であるかを決定するための強力な制約として、テーブル構造情報も考慮する必要があります。

  3. 知識ベースの構築: 2 番目のステップで相関関係を検索するためのテーブル情報、フィールド情報、インジケーター情報を含む知識ベースを構築します。

5.7 データの精度に敏感なシナリオの場合、大規模なモデルを使用することは信頼できますか?

  非常に機密性の高いシナリオでは、大規模なモデルを使用するため、データの精度を確保するために科学研究などの補助的な周辺エンジニアリング手法が必要になる場合があります。特に高精度が必要な場合には、周辺補助エンジニアリングが必要になる場合があります。

  微調整されたデータ セキュリティは、使用される大規模モデル テクノロジとベンダーが提供するサービスに依存します。モデルを自分で調査して使用する場合、セキュリティはデータの保存場所に完全に依存します。クラウド サービス プロバイダーは、データの出入りのみを保証するプライベート化されたインスタンスを提供し、監査を実施してデータのセキュリティを確保できます。

5.8 命令の微調整は調整のみ可能ですか、それとも新しい知識を注入できますか?

  命令の微調整の中核となる機能は位置合わせであり、これによりモデルが特定の命令をよりよく理解し、それに応答できるようになります。微調整によって新しい単語や知識を注入することはできますが、大量の新しい知識が必要な場合は経済的ではない可能性があります。この場合、新しい知識をモデルの事前トレーニングに統合し、この知識をより効率的に使用するために指示を微調整する方が良いアプローチになる可能性があります。

5.9 ChatGLM はどのプラットフォームでアプリケーションの開発に使用できますか?

  1. Zhipu Qingyan : C 側アプリケーションで会話対話や質問などに使用できます。

  2. Zhipu AI 開発プラットフォーム: このプラットフォームは GLM モデルへのインターフェイスを提供し、開発者がローカルでアプリケーションを開発できるようにします。オープン プラットフォームは、指示を調整するためのシンプルなツールや、ナレッジ ベース サービスなどの一部のインフラストラクチャも提供します。ユーザーは知識をアップロードし、プラットフォームによって提供される技術的な詳細を利用して、質問に答えるための埋め込みデータベースを実装できます。さらに、ユーザーはクラウド内のナレッジ Q&A などのアプリケーションのリンクやインターフェイスを共有することで、ナレッジ ベースを組織に統合できます。

おすすめ

転載: blog.csdn.net/qq_56591814/article/details/132999702