Microsoft 生成AI 勉強メモ


##### 基礎概念
- プロンプト（Prompt）：AIとの対話やコマンドラインインタフェース（CLI）などの対話形式のシステムにおいて、ユーザが入力する指示や質問のこと
- AIから最も有意義な回答を引き出すため、迅速な設計フロー、プロンプト設計について考えるときに従うと便利な一連の手順
  - 望ましい結果を定義する
  - プロンプトの作成を開始する
  - 必要な入力がわからない場合はモデルと対話する
  - 自然言語を使用し、専門用語は避ける
  - プロンプトをテストし、応答を確認する
  - 目的の結果が得られるまでプロンプトの調整を繰り返す

- プロンプトを開始する前に理解しておくべき基本的な概念
  - ハルシネーション（hallucination）
    - 生成AIモデルの出力の構造はあたかも物事を「知っている」かのように見えますが、使用されたり生成されたりする情報の意味、コンテキストを理解しているかというとそうではありません。時には、ハルシネーションと呼ばれる、虚偽または無意味なコンテンツを生成することがあります。
  - 会話コンテキスト（context）
    - Bing チャット エンタープライズでは1 つの連続した会話コンテキストで最大 30 回のやり取りを行うことができます。
    - 「この会話の前のすべてを無視します。」などの命令を利用し、会話の新しい背景を提供
  - ルートプロンプト（root Prompt）
    - 会話を開始するときにモデルに与えられる最初の指示または入力を指します。ルートプロンプトはその後の対話のトーンを設定し、初期コンテキストを提供します。 
    - 例：「これからは、できるだけクリエイティブな回答を心がけましょう」、「これからは、非常に正確で、正確で、簡潔な回答をしてください」
  - 非決定性
    - 同じ入力が与えられてもモデルが異なる出力を生成できることを意味する。この動作は複雑なニューラルネットワークとこれらのモデルのトレーニングに使用される膨大な量のデータの副産物。


##### Bing Chat Enterprise
- Bing Chat Enterprise(BCE)は、コンシューマー向け Bing Chatのより安全な代替手段。 BCE はBing Chatの生成 AI 機能と商用データ保護を組み合わせたもの。つまり、ユーザーとビジネスのデータは保護され。組織外に漏洩することはなく、チャット データは保存されず、Microsoft の誰も表示できず、チャット データは基になるモデルのトレーニングに使用されない。

- 使用出来るのは「制限なし」「機密」種類のデータ、「極秘」「制限付き」種類のデータは使用出来ない

- Bing Chat Enterpriseと Copilot を使用した Bing Chat Enterprise (別名Business Chat)
  - Bing Chat Enterprise は、Copilot を使用した Bing Chat Enterprise (別名Business Chat) と同じではない。
  - Business Chatは Bing Chat Enterprisがベースになっている。すべてのデータ ソース (メール、会議、チャット、ドキュメント) を検索し、Word、Excel、PowerPoint、Outlook、Teams などの Microsoft 365 Apps と統合する機能を備えている

- Bing Chat Enterpriseを使用するには、「https://www.bing.com/chat 」にアクセス、そして職場アカウントにサインイン
![スクリーンショット 2023-12-07 15.47.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2747384/099d9e51-7d83-9fed-aeb8-c4446df3beaf.png)


##### プロンプトの例
- 入力
  - 指示プロンプト
    - モデルが何をすべきかについて明確で簡潔な指示をモデルに提供し、指示は具体的で曖昧さがなく、モデルがそれらを理解して従うことができるが必要
  - Zero/One/Few-Shotプロンプティング
    - Zero-Shot ： 例のないプロンプト
    - One-Shot ： 1つの例を含むプロンプト
      - 例：
        3 x 3 を乗算する
        答え: 9
        4 x 4 を乗算
        答える：
    - Few-shot ： 2 つ以上の例を含むプロンプト
  - プロンプト パターン
    - プロンプトの作成に使用されるテンプレートまたは構造。プロンプトパターンは、明確で一貫性があり、再利用可能な形式を提供することで、AI モデルが特定の種類の応答を生成するようにガイドするのに役立つ
  - ペルソナ (役割) パターン
    - ペルソナは、モデルが応答を生成するときに使用する必要がある特定の特性、特徴、および知識を持つことができる。これには、ペルソナの背景、経験、性格、興味など、ペルソナに関する詳細情報を含まれることができる
    - 例：「5年生の先生として、空が青い理由を説明してください」、「物理学者として、空が青い理由を説明してください」

- 出力
  - テンプレートパターン
    - テンプレートとプレースホルダーを使用して、出力の生成方法に関する指示を生成AI モデルに提供すること
    - 例：
      - 世界の上位5つの大国を次の形式で出力してください。
      国名: [名前]
      人口: [人口]
      エリア: [エリア]。
      - 世界の上位 5 つの国について人口、GDP、面積のヘッダーを含むテーブルで出力してください
  - 代替アプローチパターン
    - 私たちは一般的に、それが最善や最も効率的であるかどうかに関わらず、常に同じ方法で物事を行います。そのため、代替アプローチパターンではモデルがプロンプトで最初に指定した方法に代わる提案をします。
    - 例：私がチームメンバーに問題がある場合、つまり彼らがすべき仕事を遂行していない場合、私は一般的に直接彼らに問題について話すことを試みます。これは通常、問題を解決しますが、常にそうとは限りません。この目標を達成するためのより良い方法がある場合、最良の代替アプローチを教えてください。また、それらを私のアプローチと比較してください。 
  - CoTプロンプティング(思考の連鎖)
    - 推論プロセスとともに問題の例をモデルに示すことで、より正確な結果を得ることができます。
    - モデルが間違った答えを導き出している特定のケースでは、モデルに「思考の連鎖」を示すように依頼することで、修正された結果を生成できます。
    - 指示プロンプト：「段階的に考えてください。」の命令を追加

- インタラクション
  - Flipped Interacitonパターン
    - このパターンは、目指す結果があるが、モデルがそれを達成するためになにが必要かわからない場合に役立ちます。 このアイデアは、モデルが質問をするように「インタラクションを反転」させることで、モデルがあなたに質問するようにするというものです。
    - プロンプトのの書方：[目標内容]を達成するために私に質問をしてください。[この条件が満たされるまで、この目標を達成するまで]質問する必要があります。質問は[一度に1つ、一度に2つ]してください。]
    - 例：アロマキャンドルを販売するeコマースサイトのユーザーペルソナを構築する必要があります。ペルソナを作成するのに十分な情報が得られるまで質問してください。

  - Cognitive verifierパターン
    - 生成AIモデルは、問題をステップに分割することでより効果的に機能するため、モデルにより多くの入力を求めるように促すことで、より良い結果につながる可能性があります。
    - プロンプトのの書方：次の質問をするときは、その質問に正確に答えるのに役立つ追加の質問をいくつか私にしてください。それらの回答を組み合わせて、質問全体に対する最終的な回答をしてください。
    - 例：可能な限り最も効率的な方法で掃除機を掃除するための最良の方法の概要を提供してください。 この質問に正確に答えるのに役立つ追加の質問を私にしてください。

- ベストプラクティス
  - [ペルソナ/役割]として、[対象]向けに[目的]を目的として[タスク]を実行してください。
  - それを[トーン]、[形式]の形式で提示してください。
  - 次に内容ついても考慮してください: [文脈], [追加の要素]