2023年春、AutoGPTがGitHubのトレンドを席巻した。与えられた目標に対して「自分で考え、検索し、コードを書き、結果を評価して、また考える」——LLMが自律的にタスクを遂行する「AIエージェント」の登場だ。
最初にAutoGPTを動かしたときは正直ゾクッとした。GPT-4が自分で「まずGoogleで検索して…」「結果をファイルに保存して…」「次のアクションは…」って延々と考え続ける。まるで意思を持ってるかのような挙動に、深夜に一人で鳥肌が立った。
// コードと趣味の境界線上
2023年春、AutoGPTがGitHubのトレンドを席巻した。与えられた目標に対して「自分で考え、検索し、コードを書き、結果を評価して、また考える」——LLMが自律的にタスクを遂行する「AIエージェント」の登場だ。
最初にAutoGPTを動かしたときは正直ゾクッとした。GPT-4が自分で「まずGoogleで検索して…」「結果をファイルに保存して…」「次のアクションは…」って延々と考え続ける。まるで意思を持ってるかのような挙動に、深夜に一人で鳥肌が立った。
LLMの一番大きな弱点は「学習データ以降のことを知らない」こと。GPT-4のカットオフ日は2023年12月。今日のニュースを聞いても「すみません、私の知識は…」ってなる。あと、学習データにない専門知識(社内文書とか)も当然知らない。
この問題を解決するのがRAG(Retrieval-Augmented Generation)。簡単に言うと、「質問が来たら、まず外部データベースから関連文書を検索して、それをプロンプトに付け加えてから回答を生成する」って仕組みだ。LLMに「カンニングペーパー」を渡すイメージ。
「プロンプトエンジニアリング」って言葉、なんだか小難しく聞こえるけど、本質は「AIとの対話のコツ」だ。半年以上LLMと毎日会話してきて、これはもう「人間同士のコミュニケーション」と変わらないな、って思うようになった。
最初の頃は「一言で完璧な指示を出そう」と躍起になってた。でもそれ、上司に「資料作れ」って一言だけ言ってるようなものだ。相手が超優秀でも、それじゃいい成果は出ない。大事なのは文脈、目的、制約、フォーマットをちゃんと伝えること。
ChatGPTとClaude(Anthropic)、この二大巨頭を半年以上毎日のように使い倒してみて、それぞれに明確な「個性」があることに気づいた。スペック表の比較じゃ見えない、実際の使い心地の話をしよう。
GPT-4(OpenAI)は万能選手。プログラミング、数学、クリエイティブライティング、何でもそつなくこなす。出力が速くて、とにかく「使える」感が強い。ただ、たまに自信満々で間違える。「ハルシネーションの王様」と呼びたくなる瞬間もある。
ChatGPTが出てきたとき、「どうやってこんな自然な会話ができるんだ?」って興味が湧いて、仕組みを調べまくった。結論から言うと、めちゃくちゃシンプルな原理の上に、膨大な計算とデータを積み重ねてるだけだった。
GPTのコアはTransformerという2017年にGoogleが発表したアーキテクチャ。これが従来のRNNやLSTMと決定的に違うのは「Attention(注意機構)」。文章全体を一度に見渡して、「どの単語がどの単語と関連してるか」を重み付けできる。これのおかげで長文でも文脈を見失わない。
AIコーディングアシスタント、もう手放せない。依存症レベル。もし今これらが全部使えなくなったら、多分生産性が半分になる。でも「どれ使えばいいの?」ってよく聞かれるから、3つの主要ツールをガチで数ヶ月使い倒した実感を書く。
GitHub Copilot:安定感No.1。VSCodeでもVSでもJetBrainsでも動く。コード補完の精度が高くて、コンテキストをちゃんと読む。ただチャット機能は後発で、まだCursorには負ける。
Cursor:衝撃だった。エディタごとAI化してる発想がすごい。プロジェクト全体を理解してくれるから、リファクタリングが異次元。Ctrl+Kでコード範囲を選んで「この関数を非同期にして」って指示できる。Tab補完も賢い。
[Read more…] about AIコーディングアシスタントの実力比較 — Copilot, Cursor, Codeium
「単語をベクトル(数字の列)に変換する」。初めて聞いたとき、なんのこっちゃと思った。でもこれがLLMの根幹を支える技術で、ちゃんと理解すると世界の見え方が変わる。
Embedding(埋め込み)は、テキストを意味を反映した数値ベクトルに変換する技術。例えば「犬」と「猫」のベクトルは空間上で近くに位置し、「犬」と「自動車」は遠くに位置する。意味の近さが、数学的な距離で表現される。これ、考えた人すごすぎる。
LLMのデフォルトの回答って、どうしても「誰にでも優等生」になりがちだ。無難で、当たり障りなくて、ちょっと退屈。でも「僕の口調で」「この業界の専門用語で」「このフォーマットで」ってカスタマイズしたい。それがファインチューニングだ。
ファインチューニングは、学習済みのLLMに追加で小さな学習をさせること。数百〜数千件の質問回答ペアを用意するだけで、モデルの振る舞いを特定の方向にガラッと変えられる。フルスクラッチで学習させるより桁違いに安くて速い。
ハルシネーション(幻覚)。つまりLLMが自信満々に嘘をつく現象だ。「存在しない論文」をちゃんと著者名付きで引用したり、「そんなAPIない」機能の使い方を事細かに説明したり。初めて遭遇したときは「え、これ欠陥じゃん」って思った。
でも今は考え方が変わった。ハルシネーションは「仕様」として付き合うべきものだ。人間だって記憶違いするし、知ったかぶりもする。LLMも同じ。完璧を期待するのが間違いで、どう付き合うかが勝負。
テキストだけじゃない。画像を見て「この猫はちょっと機嫌悪そうですね」と言い、音声を聞いて「会議の要点は3つです」とまとめる。マルチモーダルAIが当たり前になった今、正直もうテキストだけのAIには戻れない。
GPT-4V(Vision)やClaude 3の画像認識、Whisperの音声認識。LLMがテキスト以外の情報を扱えるようになって、ユースケースが一気に爆発した。