Python初心者向け生成AI入門
ほとんどの開発者は、固定されたルールに基づいてコードを記述します。入力を受け取り、if/else文やループを適用して、予測可能な結果を返します。これはJSONやCSVのような構造化データには有効です。
しかし、非定型なタスクについてはどうでしょうか?
- 100件のサポートチケットの要約。
- 機能リストをメールに変換する。
- ブログ記事からメリットとデメリットを比較する。
正規表現や複雑なテンプレートを使うこともできますが、それらは脆弱です。生成AIは、こうした曖昧な作業を簡単にこなします。
仕組み
生成モデルは、次のようなシンプルなループに従います。
- プロンプトとそれまでのテキストを確認します。
- 次に来る小さなテキストの断片を予測します。
- その断片をテキストに追加します。
- タスクが完了するまでこれを繰り返します。
大規模言語モデル(LLM)は、Transformerと呼ばれるアーキテクチャを使用しています。モデルは左から右へと読み進めるのではなく、入力のすべての部分を一度に確認します。そして、次の予測にどの単語が最も重要かを判断します。
Python開発者にとって重要な要素が2つあります。それはトークンとコンテキストウィンドウです。
トークン モデルは生の文字列をそのまま読み取るわけではありません。テキストをトークンに分割します。トークンとは、単語の小さな断片のことです。APIの料金体系や制限は、文字数ではなくトークン単位で行われます。
コンテキストウィンドウ これは、モデルが一度に認識できるテキストの量です。これには、プロンプト、チャット履歴、およびモデルの出力が含まれます。この制限を超えると、モデルは会話の最も古い部分を忘れてしまいます。
プロンプトからエージェントへ
モデルに単一のプロンプトを送信することは、第一歩に過ぎません。テキストを要約したり、エラーを説明したりすることは可能です。しかし、基本的なLLMには限界があります。
- データベースやAPIを呼び出すことができない。
- リクエスト間で情報を保持できない。
- 事実を捏造することがある。
本格的なプロダクトを構築するには、エージェントが必要です。エージェントはLLMに以下の3つの要素を追加します。
- ツール:ウェブ検索や計算機のような機能。
- メモリ:過去の会話やユーザーデータを保存する領域。
- オーケストレーション:どのツールをいつ使うか、いつ停止するかを決定するロジック。
単なるLLMは一つの回答を出すだけです。エージェントは目標を受け取り、ツールとメモリを活用して信頼できる結果に到達します。
オプションの学習コミュニティ: https://t.me/GyaanSetuAi