AIをどう利用するかメモ

変化の前提:AIはパラダイムシフト

AIに実装を任せる方向は今後さらに拡大していく。これは単なる効率化ではなくパラダイムシフトであり、これまでと違う考え方が必要になる。

人間側で重要になる能力

AIが基礎的な能力を身につける機会を奪う面がある一方で、人間に残る重要領域はより上流に寄っていく。今後重要になるのは、問題分解能力、意図の言語化、アーキテクチャ設計、ドメイン知識、そしてAI出力の検証である。

「全部読む」前提は破綻する

AI特有の不安定さに対して、現状では「人間が全て読んで最終判断する(経験が重要)」「責任は人間がとる」という意見がある。しかし、今後AIが生成する膨大な実装をすべて人間が理解する方法では破綻する。

本質:確定的な世界に確率的な知能を組み込む

問題の本質は、確定的なものから確率的なものへの変化にある。不安定さを前提に、それを制御するエンジニアリングが必要になる。重要なのは、確定的な世界に確率的な知能をどう組み込むかである。

解き方:ガードレールと統計的テスト

制御の具体策として、ガードレールを設けること、統計的なテストを実施することが重要になる。考え方としては、現在の工学における安全率にも近い。

実務の要:自動テストとCI/CDが競争力になる

膨大な実装を前提にするなら、自動的にテストし、継続的に検証して流せるCI/CDの仕組みが重要になる。テスト無し+ZIPで履歴管理のような従来スタイルでは競争力を完全に失う。

アーキテクチャの役割が変わる

アーキテクチャのような知識はより重要になるが、目的が変化している。これまでは「人間が修正しやすいように」だったのが、今後は「AIに作業範囲を指示できるように」という意味合いが強くなる。

目的最適化DSL:ブレを消すための“厳格な指示”

目的ごとに最適化されたDSLが重要になってくる。DSLとは厳格で再利用可能な指示のことで、プロンプトの中で定義して利用できる。狙いは結果のブレをなくすことであり、DSLの源泉はドメイン知識である。これはAIが理解するための表現であり、DSLから汎用言語への進化に逆行しているわけではない。

近い未来像:人間が指示し、実装はAIが担う

一部の最先端を除いて、「AIに何をさせるかだけ人間が決め、実装はAI」という未来は確実に近い。したがって競争力は、実装速度そのものよりも、指示の質と検証・運用の仕組みに移っていく。

現時点のボトルネック:OS操作はまだ難しい

現時点では、副作用や人間に最適化されたOS設計のため、自動でOSを操作するのは難しい領域である。今後、OSがAIに最適化されたり、副作用を理解するアプローチが進む可能性はあるが、まだ時間がかかる。

DSL

AIにDSLを書かせる

※こちらがメイン

AIが直接実行可能なコードを書くとセキュリティリスクがある。
DSLならサンドボックス化できる。

AIの暴走を防ぐという意味でこちらもガードレールの1つ。
従来のガードレールと併用。

その他にも、
インターフェースの固定(出力が安定)
ドメイン知識の注入
コマンド化することで分岐などを意識させる

DSLでAIを制御する

Guidanceなど。

 

NotebookLM

スレッドのmdを投げて、個人的な話題を消してもらう指示。

プロンプト手法

主語を省略しない。指示語(こそあど)、程度語は具体的に。
指示と素材のセクションを分ける。タスクは分割する。

推論・思考の構造化

LLMの内部推論を制御し論理的飛躍を防ぐ手法。

Chain-of-Thought (CoT)

ステップバイステップで中間的な推論を出力させる 。より複雑な思考が必要な場合、答えに至る思考プロセスを1〜2個例示としてプロンプトに含める。
弱点として間違った方向に進むと修正できない。

※プロンプト
ステップバイステップで考えてください。
論理的に一歩ずつ順を追って説明してください​。

Tree-of-Thoughts (ToT)

複数の解決策を出し、それらを自己評価・選別し、最善の道筋を絞り込む手法。

プロンプト
1.複数の案を出させて思考を枝分かれさせる。
2.各案の欠点や利点を評価させる。
3.評価の高い案での思考を前進させる。
​4.全ての案を俯瞰して合理的な結論をださせる。

Graph-of-Thoughts (GoT)

思考をノード、関係性をエッジとしてグラフ構造化。複数の思考を統合したり再利用したりする 。ToTの進化版。

※プロンプト
1.複数の案を出させて思考を枝分かれさせる。
2.各案の欠点や利点を評価させる。
3.各案を相互の関係性(トレードオフや依存関係)を評価させる。
4.統合した案はステップ2から欠点や利点を評価させる。
5.評価の高い案での思考を前進させる。
​6.全ての案を俯瞰して合理的な結論をださせる。

​終了条件

※反復回数の明示
このプロセス(統合と再評価)は最大2回まで繰り返してください
※収束条件の設定(理論的なBreak)

評価スコアが全ての項目で4以上になったら終了してください
前回案と比較して改善点が見当たらない場合は結論を出してください
※ステップの直列化(Sequential Pipeline)
ステップをあらかじめ分散→統合→最終修正のように固定する。

Skeleton-of-Thought (SoT)

回答の骨組みを先に作らせ、その各項目を並列で埋めさせることで生成速度と構造化を両立する 。

※プロンプト​
まずアウトラインや箇条書きのポイントなどを生成。
それぞれを別のプロンプトで並列に実行。

Step-Back Prompting

具体的な問題から一歩引いて背後にある一般原理や概念を先に特定させてから回答させる 。そもそも何を目指しているのかという原則に立ち返ることで、ハルシネーションを抑制し精度を大幅に高めることができます

※プロンプト
​いきなりどうすればいい。ではなく基本的な仕組みは?原則は?と質問し、その答えを踏まえてどうすればいいか確認する。

精度の自己向上・検証

AIに自身の出力を検証・修正させ、回答の信頼性を高める手法。

Self-Consistency

同じ問題に対して複数の推論パスを実行し、最も多い回答を最終解とする(多数決)。複数の異なる推論をさせると、正しい答えは一致しやすく、間違いはバラバラになりやすいという特徴がある。

Chain-of-Verification (CoVe)

回答を生成した後、その回答に含まれる事実を確認するための質問を自ら作成し、検証した上で最終回答を修正する 。
1.回答を生成させる。
2.最初の回答が正しいか​確認するために検証用に自問自答させる。
3.最初の回答と自問自答を照合し、最終的な回答にする。

Self-Ask

複雑な質問に対し自分への追加の質問を繰り返し行い、その答えを積み上げて最終回答を導く 。

Reflexion

失敗やエラー結果をフィードバックとして受け取り、次の試行で修正する反復プロセス 。

動的コンテキストと外部連携

静的なプロンプトではなく、外部情報やツールと動的にやり取りする手法。

ReAct (Reason + Act)

思考と行動のループ。外部ツールの結果を観察して次の思考へ繋げる 。

RAG (Retrieval-Augmented Generation)

外部知識を検索し、プロンプトのコンテキストとして注入する 。

Automatic Reasoning and Tool-use (ART)

タスクに最適なツールを自動的に選択し、推論プロセスに組み込む 。

Prompt Chaining

タスクをサブタスクに分割し、Aの出力をBの入力にするパイプラインを組む 。

プロンプトのメタ最適化

プロンプトそのものを生成・評価・最適化するための手法。

Meta-Prompting

プロンプトの書き方や構造そのものをAIに定義させる、あるいはプロンプトを生成するためのプロンプト 。

APE (Automatic Prompt Engineer)

多数のプロンプト候補をAIに生成させ、テストデータに対するスコアが最も高いものを自動選択する 。

DSPy (Declarative Self-improving Language Programs)

プロンプトを文字列ではなく、最適化可能なプログラムのシグネチャとして記述し、自動で最適なプロンプトやデモンストレーション(Few-shot例)をコンパイルする 。

制御とフォーマット

出力の質や形式を厳密に制御する手法。

Few-shot / One-shot / Zero-shot

例示の数による学習制御 。

Rephrase and Respond (RaR)

AIにユーザーの質問をより理解しやすい形に「言い換え」させてから回答させる 。

Flipped Interaction

AIに先に質問をさせ、ユーザーがそれに答えることで必要な情報を揃えてからタスクを実行する 。

Temperature

0.0-0.3 決定的(正確性重視)
0.7-1.0 標準
1.2-1.5 ランダム・創造的