388 Views
January 16, 26
スライド概要
LLMについて、AI Agent Coding について、わかりやすく。
そして、だからこそ必要なものは何か? を説明します。
ベガシステムは、創業1990年、30年以上続くIT企業です。 お客様との対話を大切にし、新たな価値を創造し続けます。
わかった “つもり”になる! AI Agent Coding!
わかった つもりとは? • この資料を読んであと、あなたが 「知ったかぶりで誰かにすこしだ けお話したくなる」事を目指して います。 • 正確性よりも面白さ、わかりやす さを重視して作っています。 • この内容を聞いても、本当の実力 はつきません。このスライドを出 発点として正確な事実を勉強する キッカケになれば光栄です。
• Prologue • LLMとは? • プログラミングとは翻訳作業 • AI Agent Codingとは? • Be a GOOD navigator! • Epilogue
• LLM(大規模言語モデル)の登場 により、AIを活用したコーディン グが実用段階に入りつつある • 今や誰もが「AIコーディング」 と口にする時代 • プログラマーが不要な時代が到 来したのか? • それとも、まだプログラマーに 求められる役割があるのか?
• Prologue • LLMとは? • プログラミングとは翻訳作業 • AI Agent Codingとは? • Be a GOOD navigator! • Epilogue
ところで、 LLMって なんです か?
走り寄ってくる音
お困りのようですね。 私がわかりやすく説明しますね。 数学的に正確な言葉を使いながら説明しますね。途中で難しく感じても、それは自然なの で大丈夫です。 LLM(大規模言語モデル)は、まず形式的には確率モデルです。自然言語の文章は、語彙 集合 𝑉上の離散的なトークン列 𝑥1 𝑥2 … 𝑥𝑇 として表されます。LLMの目的は、この列全体の同時確率分布 𝑃 𝑥1 … 𝑥𝑇 を直接扱うこと ではなく、確率の連鎖律を用いて分解された条件付き確率 𝑃 𝑥𝑡 ∣ 𝑥1 … 𝑥𝑡−1 を高精度に近似することです。ここで重要なのは、「次に何が来るか」を逐次的に推定す るモデルだという点です。 この条件付き確率は、パラメータ 𝜃を持つ関数 𝑃𝜃 として表現されます。学習とは、訓練 データから得られる経験分布に対して、この 𝑃𝜃 ができるだけ一致するように、損失関数を 最小化する最適化問題を解くことです。損失関数には通常クロスエントロピーが用いられ、 𝑇 ℒ = − log 𝑃𝜃 𝑥𝑡 ∣ 𝑥<𝑡 𝑡=1 という形になります。これは情報理論的には、真の分布とモデル分布のKLダイバージェン スを最小化することと等価です。ここで行われているのは意味理解ではなく、統計的推定 です。 モデル内部では、各トークンはまず埋め込み関数によって連続ベクトル空間 ℝ𝑑 に写像され ます。これにより、離散的な記号列が解析可能な数値データになります。その後、 Transformerと呼ばれる構造によって、線形変換と非線形変換が層状に適用されます。 Transformerの中心にあるSelf-Attentionは、各トークンが他のトークンをどの程度参照す るかを、内積とsoftmax関数によって定義する演算です。これは系列データに対する一種の 動的重み付き和であり、位置に依存しない相互作用を可能にします。数学的には、注意重 み行列による線形結合を、非線形正規化付きで行っていると捉えられます。 この仕組みにより、モデルは文法的関係や長距離依存を効率よく表現できます。ただし重 要なのは、モデルが真理値、意味論、論理的一貫性といった制約を明示的には持っていな い点です。出力は常に確率分布に基づくサンプリング結果であり、「正しいかどうか」で はなく「尤もらしいかどうか」に最適化されています。 それでも人間の理解や推論に近い振る舞いが現れるのは、この高次元関数近似が非常に強 力だからです。怖がる必要はありません。LLMは曖昧な存在ではなく、明確に定義された 数学的対象です。ここまで把握できていれば、仕組みは十分に見通せています。 https://en.wikipedia.org/wiki/Chigyu
誤解を恐れず、もうすこし、感覚的に 説明しよう!
https://posfie.com/@YSRKEN/p/Gvg7K3h
LLMの場合 どんな人間よりも大量の語彙と 言葉の関連性を学習している。
高度な翻訳のために開発された技術 • この技術の面白いと ころは辞書的に単語 の対応付けを処理す るわけではない。 • 単語間の関係を把握 して、文章として何 が重要な箇所かを計 算できるように理解 しているということ。
高度な翻訳の例題 文章とその単語に結びつく複雑な 背景(関係性)を理解することがで きる。
LLMは「言葉を計算する計算機」 もともとは 文章を別の言語に翻訳する目的で開発された 翻訳のために、 非常に膨大な語彙と 言葉どうしの関係性を数値として扱うようになった その結果、 文章全体の文脈を考慮し、 重要な言葉・部分に重みをつけて計算できるようになった これらの計算は 非常に大規模かつ高速に行われる 「意味をもった言葉の関係」を計算する 言葉の計算機が作れた
文章の引き算 : 要約
文章の足し算 : 生成
生成AI • 言葉を組み合わせて文章を作る仕組み • 指示文に従って文章を生成・増やすこ とができる • 人が新しく書いているように見えるた め、「生成AI」と呼ばれている
• Prologue • LLMとは? • プログラミングとは翻訳作業 • AI Agent Codingとは? • Be a GOOD navigator! • Epilogue
翻訳作業?! • 見方を変えるとプログラミングとは実は背景 知識を考慮した高度な翻訳作業だった! • 単純に単語対応付けの変換では無く、文章の 意味と背景を理解して翻訳する必要がある。
もしかして… 自然言語からコン ピュータ言語へ 翻訳にLLMが使えるの では?
翻訳できた…
文章の足し算 要件文章 プログラム 指示文章 • すこし抽象的に考 えてみる。 • これは文章の足し 算なのである。 • 要件文章と指示文 章から言葉の関係 性を計算して、結 果を算出している。
何が衝撃的か? ここの部分が自動化できる? • 今まで要件からコンピュー タ言語に翻訳するためにプ ログラミングという専門の 技能習得が必要であった。 • ところが、LLMの登場に より翻訳は自動化される可 能性が出てきた。 • プログラマの不要説が出て くるなど世間は騒然として いる。
• Prologue • LLMとは? • プログラミングとは翻訳作業 • AI Agent Codingとは? • Be a GOOD navigator! • Epilogue
• この資料は主題は 「AI Agent Coding」でした。 • ここまでの過程で中核技術である LLMについては概略を理解すること ができました。 • では、本題である 「 AI Agent 」とはなんでしょうか?
AI Agentっ てなんです か?
走り寄ってくる音
お困りのようですね。 私がわかりやすく説明しますね。 AIエージェント(AI agent)とは、LLMなどのモデルを単なる「文章生成」 ではなく、行動選択を行う制御部品として利用し、目的達成までの反復処理 を回すソフトウェアを指します。 目標𝑔、制約𝑐、状態𝑠ₜ(履歴、環境観測、中間成果物など)、行動集合𝐴 (検索、ファイル編集、テスト実行といったツール呼び出し)を定義し、各 ステップで次の行動𝑎ₜ∈𝐴を選択し、その結果を観測して状態を更新します。 形式的には、方策𝜋によって 𝑎ₜ ∼ 𝜋(⋅ | 𝑠ₜ, 𝑔, 𝑐) を実行し、ツール実行の結果𝑟ₜ(ログ、diff、テスト結果など)を観測して、 𝑠₍ₜ₊₁₎ = 𝑓(𝑠ₜ, 𝑎ₜ, 𝑟ₜ) として状態を更新します。このループは、目標達成、失敗の検知、ステップ 上限などの停止条件に達するまで繰り返されます。ここでLLMは主に方策𝜋 の近似、計画の生成、観測結果の要約、失敗原因の推定に用いられ、実際の 実行は外部ツールが担います。 途中で仕組みが難しく感じられても問題ありません。実装の本質は複雑な理 論ではなく、状態を記録し、次の操作を選び、その結果で更新するという単 純な構造にあります。実務においても、最初から最適な方策を作ることは想 定されておらず、テストやログを確認しながら段階的に改善していく前提で 設計されます。 ワークフロー型(手順固定)と比べると、エージェント型は状況に応じて行 動が変化するため柔軟ですが、誤操作や無限ループのリスクがあります。そ のため、最小権限の付与、実行ログの完全な記録、テストや静的解析による 検証、人手確認(human-in-the-loop)を組み合わせ、安全に停止できる設 計が重要になります。 要するにAIエージェントとは、観測・判断・実行・検証を機械的に回す制御 システムであり、理解に時間がかかるのは自然なことで、通常の設計対象と して扱うのが現実的だと言えます。 https://en.wikipedia.org/wiki/Chigyu
誤解を恐れず、もうすこし、感覚的に 説明しよう!
前提の復習 • LLMは高性能翻訳機として生まれた。 • 翻訳だけでなく、指示された文章を参照して、文章の 足し、算引き算ができる事がわかった。 • この能力は人類の膨大な集合知にもとづいて形成され ており多くの背景知識を有している。 • 文字で表現できる事であれば、非常に高度に編集出来る。 • もしかして、実現したいことを文章で入力したら、作業計 画を作ったり、結果を評価したり知的なことができるので は?
要望から作業計画を作れる!
やりたいことから計画を立てる • 最初に大雑把な要件を渡す。 • LLMはそこから内容を発展 させて作業計画を立てる。 • それぞれの作業を実行して 実行結果を得る。 やりたいこと 作業計画 実行結果 • 途中で問題が発生したら?
途中で問題がでたら解決策を生成できる 実行エラー発生
自律的改善ループ • LLMの出力と実行結果を ループさせることで、文章 として表現できる事であれ ば、特定のタスクを自律的 に実行していける! やりたいこと 作業計画 実行結果
ループをまわせ! やりたいこと 計画 実行 評価 実行結果
AI Agent
AI Agent Codingとは? • ソフトウェア開発にAI Agentを導入して半自動で開発を進める という試み。 • 映画の中から最高のAgentが現実に現れ、ソフトウェア開発は 圧倒的に効率化! • プログラマはもはや過去の遺物。 • 誰でも自分用のソフトウェアを開発する時代!
AI Agent Codingとは? • ソフトウェア開発にAI Agentを導入して半自動で開発を進める という試み。 • 映画の中から最高のAgentが現実に現れ、ソフトウェア開発は 圧倒的に効率化! • プログラマはもはや過去の遺物。 • 誰でも自分用のソフトウェアを開発する時代! そんな事は無かった。 現実はそんなに単純ではなく、泥臭いことが発生していた。 わかりやすく描くならば…
Ai Agent Codingとは 言葉の荒野を、AIくんを運転手にして 言葉で案内してドライブすることなんです! 博士 (ユーザー) LLM (AIマーク付きロ ボット) 車 (人類英知の結晶) 理論・経験・目的 を持つ存在。直接 ハンドルは握らな いが、「何をした いか」「どこへ向 かうか」を言葉で 定義できる ナビ ゲーター。 実行担当。まだ 不慣れで汗もか くし、怖がりも する。 しかし、指示が 明確であればあ るほど正確に運 転できる。 アルゴリズム、フ レームワーク、既 存知識、ツール チェーン、ライブ ラリ。 性能は最高だが、 目的地は自動では 決まらない。
• Prologue • LLMとは? • プログラミングとは翻訳作業 • AI Agent Codingとは? • Be a GOOD navigator! • Epilogue
C++言語大陸の地図 • ドライブ、ナビゲーターとはど ういう事か? • まずは、開発の世界がどのよう なところであるか見てみましょ う。 • 「C++諸国〜驚異の生物と奇 妙な獣たち〜」という、開発者 の間に密かに伝わる伝説の地図 を読んでみよう。 https://www.reddit.com/r/cpp/comments/4qkb0d/the_c_lands/
危険なC++の世界 : メモリ管理砂漠 • C言語系の鬼門はメモ リ管理と呼ばれる特殊 処理です。 • 地図には砂漠と書かれ ていて、装備と知識が 無ければ安全に通り過 ぎることが出来ない事 を示しています。 https://www.reddit.com/r/cpp/comments/4qkb0d/the_c_lands/
危険なC++の世界 : 多重継承の森 • C++では多重継承という ユニークな機能がありま す。 • 使い方を間違えるとコー ドが分かりにくくなるた め、迷いの森として書か れています。 https://www.reddit.com/r/cpp/comments/4qkb0d/the_c_lands/
ナビゲーター とは • ナビゲーターであるあなたは この地図を把握してメンバに 対して行き先を指示する必要 があります。 • あなたの乗っている車は人類 英知の結集により開発された 1000万馬力のロケットカー。 運転手は有能だが初心者。 • 明確な指示を出せないと待っ ているのは大事故なのです。
案内する力を身につける方法 • 案内するためには何が必要か? • それは地図を読む力を育むこと、常に地図を読み続けること • 技術の世界においてこれらの技能は体系的な知識に置き換える ことができる。 AI と共に冒険を続けるためには、 体系的な知識習得が今まで以上に重要に。 なんとなくは大事故を招く!
AI時代こそEngineeringが重要! • エンジニアリングとは、知識を使って「実現できる形」に落とし込 み、社会的に機能させる営みです。 • 「動く・使える・壊れない・続く」状態をつくることが核心です。 • これを実現するために体系化された学問として工学があります。 実装はAIが担える時代になりました。 だからこそ私たちには、 正しく設計し、判断するための体系的な学びが必要です。 体系的な基礎知識は、私たちを良きナビゲーターに育ててくれます!
• Prologue • LLMとは? • プログラミングとは翻訳作業 • AI Agent Codingとは? • Be a GOOD navigator! • Epilogue
• 冒険の初期 • 仲間はおらず、私たちは自分 自身の力だけで言葉の荒野を進 んでいました。
• 新しい仲間を迎えたことで、 より遠く、より早くたどり着ける ようになりました。 • 仲間と役割分担する事で、私た ちの役割は変わってきました。 • しかし、冒険が続いていること は変わりません。 • 行き先を決めるのは他の誰でも ないあなた!!!
• 新し仲間とともに勇猛果敢に進 んでいこうではないか! • 誰も行ったことが無い、 可能性の最前線へ…
おしまい