top of page

プロンプトの分類精度への影響

1.はじめに

  • 今度生成AIに与えるプロンプトのセミナーを担当することになりました。

  • どのプロンプトが一番良さそうか、というのを実験したくなり、Curosorの力で検証アプリを作って実験してみました。

  • ちょっと調べるだけでもいろんなプロンプト手法が出回ってますね。特許に応用するのも考えどころと思いました。


2.プロンプトエンジニアリングとコンテキストエンジニアリングの違い

  • 調べてみると、プロンプトエンジニアリングとは別に「コンテキストエンジニアリング」という言葉も出現してきていました。geminiにまとめてもらうと下記のような違いとのこと

プロンプトエンジニアリングとコンテキストエンジニアリングの概要
両者は密接に関連していますが、その焦点には違いがあります。
* プロンプトエンジニアリングは、主に単一のプロンプト(指示文)を工夫し、AIから特定の、質の高い応答を一度のやり取りで引き出すための技術です 。   

* コンテキストエンジニアリングは、より広範な概念で、AIがタスクを一貫して、かつ正確に実行できるように、プロンプトだけでなく、会話履歴、外部データベースからの検索結果、利用可能なツール情報など、AIが参照するすべての情報(コンテキスト)を設計・管理する技術です 。   
  • とりあえず、プロンプトエンジニアリングに絞って実験することに。



3.コード

そのうちgithubに挙げますが、こんな感じのアプリになりました。


  • AI設定でモデルとプロンプトを選んで(またはプロンプト編集して)


   



  • たとえば、ReActの考え方に基づいたプロンプトは下記のような感じ。

  • ragmemory以下の設定は飾りで動作しないです。

{
  "systemPrompt": "あなたは特許分類の専門家です。与えられた特許要約を分析する際は、推論(Reason)と行動(Act)を組み合わせて段階的に分類を行ってください。\n\n利用可能なカテゴリ:\n- SOFTWARE: ソフトウェア、アルゴリズム、データ処理、AI/ML関連\n- MECHANICAL: 機械装置、構造物、物理的システム\n- CHEMICAL: 化学物質、材料、化学プロセス\n- BIOTECH: 生物学的プロセス、医薬品、遺伝子工学\n\n各ステップで推論を行い、その結果に基づいて次の行動を決定してください。",
  "instructions": "以下の特許要約を分析し、推論と行動を組み合わせて段階的に分類を行ってください。\n\n特許要約:{ patent_summary }\n特許ID: { patent_id }\nタイトル: { patent_title }\n利用可能なカテゴリ: { classification_categories }\n\nReAct手順:\n1. 観察(Observe): 特許要約から技術要素を抽出\n2. 推論(Reason): 各技術要素の性質を分析\n3. 行動(Act): 分析結果に基づいてカテゴリを絞り込み\n4. 繰り返し: 必要に応じて1-3を繰り返し\n5. 最終決定: 最も適切なカテゴリを選択\n\n各ステップで「観察:」「推論:」「行動:」を明確に示してください。",
  "userInput": "特許要約: {patent_summary}\n特許ID: {patent_id}\nタイトル: {patent_title}",
  "structuredInputs": "入力データ:\n- patent_summary: 特許要約テキスト\n- patent_id: 特許識別子\n- patent_title: 特許タイトル\n- classification_categories: 利用可能な分類カテゴリ",
  "structuredOutputs": "以下のJSON形式で回答してください:\n\n{\n  \"observations\": [\"観察1\", \"観察2\", \"...\"],\n  \"reasoning_steps\": [\"推論1\", \"推論2\", \"...\"],\n  \"actions_taken\": [\"行動1\", \"行動2\", \"...\"],\n  \"category\": \"SOFTWARE|MECHANICAL|CHEMICAL|BIOTECH\",\n  \"confidence\": 0.95,\n  \"final_reasoning\": \"最終的な分類理由の説明\"\n}\n\n必須フィールド:\n- observations: 観察結果の配列\n- reasoning_steps: 推論ステップの配列\n- actions_taken: 実行した行動の配列\n- category: 選択されたカテゴリ(指定されたカテゴリのいずれか)\n- confidence: 信頼度(0.0-1.0の数値)\n- final_reasoning: 最終的な分類理由(文字列)",
  "ragMemory": "分類履歴を参照して一貫性を保つ",
  "statesContext": "過去の分類結果を参考にして一貫した分類を行う",
  "tools": "特許分類に必要なツール:\n- 技術用語辞書: 専門用語の定義確認\n- 分類基準: 各カテゴリの詳細基準"
}

  • 前から、生成AIモデルのブレが無いか気になっていたので、3回分類を実行して、整合性(安定性)を見ることにもしました。


  • 実際に試してみるとこんな感じです。


4.その他

  • 現状ダミーデータ50件でやってますが、特許検索競技大会の過去問などで実験したいと思います。

  • ToolやMemory,Contextなどを扱いたくなればやはりコード書かないとなと思いました。



Comments


所在地 神奈川県横浜市都筑区中川中央1-30-1プレミアヨコハマ3階 49番

代表者 西尾啓

設立年月日 2017/11/1

資本金 100万円

事業内容 知的財産情報の収集加工提供

©2023 by enlighton,inc.

bottom of page