🌌

生成AIの活用における基礎教養「ボキャブラリー」「コンテキストファイル」「スキーマ」について

に公開

三種の神器

https://zenn.dev/tkithrta/articles/9a6f1f2d249790

今から半年前、江戸時代から続く基礎教養「読み」「書き」「そろばん(計算)」、コンピュータ利用における基礎教養「ITリテラシー」「メディアリテラシー」「セキュリティ意識」みたいないわゆる三種の神器を生成AIの活用において定義しました。

  • Vocabulary (ボキャブラリー / 専門用語)
  • Context file (コンテキストファイル / 文脈ファイル)
  • Schema (JSON Schema / スキーマ)

これらと関連した内容は上記記事や杏ちゃんというめっちゃメディアミックスされているとあるアイドルを育成するシミュレーションゲームのキャラクターみたいな感じで解説したことはあったのですが、半年経った今改めて「ボキャブラリー」「コンテキストファイル」「スキーマ」について解説していきたいと思います。

https://zenn.dev/tkithrta/articles/b1c7e547e2e996

ボキャブラリー

生成AIにおける「ボキャブラリー」とは、正確な指示を出すために必要な専門用語の知識のことです。

曖昧な言葉ではなく、具体的な専門用語を使って指示を出すことで、AIは学習データの中から関連性の高い専門的な情報を参照し、的確な回答を作成できるようになります。

具体的な用語を使う

曖昧な表現は避けましょう。
「データの形」は「スキーマ」、「画面の動き」は「アニメーション」のように、その分野で標準的に使われている用語に置き換えることで、指示の精度が向上します。

英語の用語も把握する

大規模言語モデル(LLM)の学習データは英語が多くを占めます。
Zero-Shot[1]やFew-shot[2]、Chain of Thought[3]などの概念を英語のまま理解し使用することで、AIへの指示が意図通りに伝わりやすくなる場合があります。

定義をAIに確認する

適切な用語が不明な場合は、AIに「この状況を表す専門用語は何ですか」と質問し、そこで得た用語を使って改めて指示を出す方法が有効です。

常に学び続ける

人間が持つ知識や語彙をAIが理解できるように整理、記述することをOntologyと呼びます。

Physical Physical Abstract Abstract
Continuant Occurrent Continuant Occurrent
Independent Object Process Schema Script
Relative Juncture Participation Description History
Mediating Structure Situation Reason Purpose

John F. Sowa, Knowledge Representation: Matrix of the twelve central categories[4]

これからは、単なるコンピュータ利用スキル以上に、知識を構造化して記述する能力が生成AIの活用において重要になっていきます。
そのために、常に新しい概念を学び続ける姿勢を持ち続けましょう。

コンテキストファイル

「コンテキストファイル」とは、AIに前提条件や仕様などの情報をあらかじめ読み込ませるファイルのことです。

チャットでその都度説明する必要がなくなり、会話が長くなってもAIが初期設定や前提を維持したまま、プロジェクトの文脈に沿った一貫性のある回答を出せるようになります。

Markdownで構造化する

# 概要, ## 制約のように見出しをつけて記述しましょう。
平文で書くよりも、AIが情報の構成や分類を正しく認識しやすくなります。

禁止事項を明記する

「外部ライブラリは使用しない」「特定の用語は使わない」など、行ってはいけないことを明記すると、不要な修正の手間を省くことができます。
これらはNegative Promptと呼ばれます。

最新の状態を保つ

プロジェクトの進行に合わせてファイルを更新し、常に最新の仕様や情報をAIに参照させるようにしましょう。

ファイルを整理する

コンテキストをファイルとして管理することは、プロンプトエンジニアリングや、より広義なコンテキストエンジニアリングにおいてとても重要です。

SharePoint Onlineなどのクラウドサービスでは、保存されたファイルを元にRAG(検索拡張生成)技術を用いて回答を生成するため、ファイルの整理整頓がそのままAIの回答精度に直結します。

スキーマ

「スキーマ」とは、AIの出力を文章ではなく、システムで利用可能なデータ形式に指定する定義のことです。

AIの回答に含まれる挨拶や解説などの文章を省き、プログラムや表計算ソフトなどで直接利用できるデータ構造のみを出力させることができます。

型を理解する

JSONデータ等を扱うには、以下の基本的な型の理解が不可欠です。
まずはこれらを把握することから始めましょう。

  • string (文字列)
  • number (数値)
  • boolean (真偽値)
  • array (配列)
  • object (オブジェクト)
  • null (空値)

JSON Schema形式を指定する

OpenAPI[5]でも使用される、汎用性の高いJSON Schema[6]形式で出力するよう指示することで、生成されたデータの利用範囲が広がります。

出力例を提示する

データ型の定義に加えて、「{"name": "Alice", "age": 18}の形式で」といった具体的なデータの例を提示すると、形式の誤りを防ぐことができます。

開発ツールを活用する(開発者向け)

システム開発においては、Zod[7]やValibot[8]、Pydantic[9]などのライブラリやStructured Output機能を利用することで、AIの出力をプログラム上のオブジェクトとして直接扱えるようになります。

脚注
  1. https://www.promptingguide.ai/jp/techniques/zeroshot ↩︎

  2. https://www.promptingguide.ai/jp/techniques/fewshot ↩︎

  3. https://www.promptingguide.ai/jp/techniques/cot ↩︎

  4. Source: https://jfsowa.com/ontology/toplevel.htm Copyright ©2001, 2005, by John F. Sowa. Permission is hereby granted for anyone to make verbatim copies of these documents for teaching, self-study, or other noncommercial purposes provided that the copies cite the author, the URL of this document, and this permission statement. ↩︎

  5. https://spec.openapis.org/oas/v3.0.3.html ↩︎

  6. https://json-schema.org/draft-07 ↩︎

  7. https://zod.dev/ ↩︎

  8. https://valibot.dev/ ↩︎

  9. https://docs.pydantic.dev/latest/ ↩︎

Discussion