OpenAI創業者が日常と仕事でAIを活用する方法
(stdy.blog)- OpenAIを共同創業したAndrej Karpathyによる一般向けAI講義のうち、2/28に公開された How I use LLMs を、キャプチャ付きで要約したもの
- 多様な可視化資料とKarpathyの実用例そのものに大きな価値があるため、文章要約だけでは動画の良さが伝わりきらず、制作されたもの
さまざまな種類のLLMがある
ChatGPTは最も有名で、最も多機能。そのほかでは次のようなものが有名
- GoogleのGemini
- MetaのMeta AI
- MSのCopilot
- AnthropicのClaude
- xAIのGrok
- Perplexity
- 中国のDeepSeek
- フランスのMistralによるLe Chat
ChatGPTはどのように動くのか
LLMは、インターネット上の文書全体を1TBに損失圧縮したzipファイルに似ている。この中には数兆個のパラメータを持つ人工ニューラルネットワークがあり、それが確率的に「次の文字」を吐き出す
この圧縮ファイルは大きく2種類の学習を経て作られる
事前学習: 数千万ドル + 3か月以上かかる。コストが高いため頻繁には行えず、そのためknowledge cutoffが生じる
事後学習: はるかに低コストなファインチューニング。単にインターネット文書を吐き出すのではなく、ユーザーの質問に答えるAssistantとして振る舞うようにする
- 模範解答を教える教師あり学習(Supervised Fine-Tuning)
- 生成された回答に対する人間の好みに基づく強化学習(Reinforcement Learning from Human Feedback)
- 人間の質問に対するAssistantの理想的な返答をもとにした強化学習(Reinforcement Learning on Conversation)
ChatGPTで新しいセッションを作り、ユーザーがメッセージを入力すると、それがトークン化されてモデルの入力に入る。そこからLLMが次のトークンを生成する。そしてこの会話(ユーザー入力、ChatGPTの出力)はすべてContext Window内に保存される。
Context Windowは人間の作業記憶(Working Memory)に似ており、人間と同様に限界がある。Context Windowが長くなるほど不正確な情報を返す可能性がやや高まり、次の回答生成コストもやや上がる(= 遅くなる)。
そのため、どうしても必要でないなら、1つのセッションを長く維持するのはあまり良い選択ではない
いつ「Thinking」モデルを使うべきか
従来の事前学習・事後学習を経たLLMに対し、複雑なSTEM(科学、技術、工学、数学)の問題に長い思考過程を通じて回答できるよう、追加で強化学習したモデル
複数のトークンを吐き出しながら「考える」ため、コストも時間も多くかかる代わりに、複雑な問題への回答精度が大きく上がる
ただし、「考える」モデルが必ずしも正確に解けるわけではなく、逆に「考えない」モデルでも正確に解けることがある点には注意(Karpathyが出した複雑なデバッグ問題では、すべてのthinkingモデルが成功し、ChatGPT-4oは失敗したが、Sonnet 3.5、Gemini 2.0 Pro、Grok 3はThinkingなしでも成功)
Karpathyは、まずは回答が速いnon-thinkingモデルで試し、答えに疑いがあればThinkingを使うという形で運用しているという
LLMを助けるツール
インターネット検索
インターネット検索が可能なモデルと、そうでないモデルがある。(必ずしも検索に限らず)常にそのモデルが何をできるのかを理解して使う必要がある
検索は最も基本的にはKnowledge Cutoffのために必要。最新データについて回答できないからだ。初期のChatGPTではこれができず、Perplexityがそこを突破して多くのユーザーを集めた
ユーザークエリに応じて「これは検索すべきだ」と判断し、インターネット検索結果をトークン化してContext Windowに入れた状態で回答する。(場合によっては明示的に検索して教えてと頼む必要があることもある)
Karpathyは最近、Google検索の代わりにPerplexityに尋ねることが多い。「こういう情報はPerplexityに聞こう」という習慣がついてきたという
- Google検索して上位リンクをいくつかクリックすれば分かりそうなもの(今日株式市場は開いているか、ホワイト・ロータスのシーズン3はいつ撮影されたか、など)
- 情報が変化し続けており、最新情報が必要なもの(VercelはPostgreSQLをサポートしているか、『脱出おひとり島』シーズン4の出演者は今何をしているか、など)
ディープリサーチ
簡単に言えば、インターネット検索 + Thinking。長い場合は数十分にわたって検索し、得られた情報をThinkingで整理してレポートにまとめてくれる
ChatGPTのディープリサーチの特徴は、より良いレポートを作るために、質問者の意図やどこに重点を置くかを確認してから始める点。類似機能としてPerplexityにもディープリサーチがあり、Grok3にも「ディープサーチ」がある。それぞれ速度と品質が異なる。
インターネット検索と同様、ここでも回答が正確でない可能性がある点に注意。出典を直接確認する必要はあるが、「非常に有用な下書き」ではある
Karpathyは20件あまりディープリサーチを試したが、ChatGPTの回答が最も(有意味な情報として)長く、最も良かったという。Karpathyが投げたテーマ:
- 健康機能食品の特定成分への理解
- BraveブラウザとArcブラウザのどちらがセキュリティとプライバシーの面で優れているか
- マウスの寿命を延ばす最新技術は何か。どのような介入方法が試みられてきたか。自分はML分野の出身で、評価指標を設定して高めることには慣れているが、マウスの寿命もそのように評価するのか
- 米国内の主要なLLM研究所すべてについて表を作ってほしい。いつ設立され、何人働いていて、資金調達は順調か
コードインタープリタ
LLMがコードを書いて実行し、その結果をコンテキストに入れて回答すること。PythonもありJavaScriptもある。うまく使えば非常に強力。賢いジュニアを1人雇ったようなもの
- ChatGPT 4oでデータ分析する
- Claudeで本の内容を要約したフラッシュカードアプリを作る
- Claudeで本の内容を可視化するMermaidダイアグラムを作る
- Cursorで三目並べゲームを作り、チャットだけで勝者エフェクトを追加する改善を行う
モダリティ
LLMとはテキストだけでなく、音声・画像・動画でもやり取りできる
音声入出力
音声入力では、Karpathyは SuperWhisper、WisprFlow、MacWhisper などのMac向けディクテーションアプリを活用している。以前ならタイピングしていたことの約半分は、今では話して済ませているという。
音声出力はたいていアプリ内で機能提供される。画面の読み上げでもよい
ただし、これらは依然として根本的にはテキストのやり取り。Speech-to-Textの後に再びText-to-Speechを行うため遅い。
本当に音声だけでLLMとやり取りすることも可能。音声情報をトークン化する。KarpathyはこれをTrue Audioと呼び、ChatGPTではAdvanced Voice Modeと呼ぶ。
- さまざまな抑揚や速度で話させたり、動物の鳴き声の真似をさせたりする 会話デモ動画
Grok3もモバイルアプリでAdvanced Voice Modeを提供している。セクシーモード、罵倒モードなど遠慮のないモデルが多く、ある意味ではより面白く興味深い面もある
- KarpathyによるGrok3の 会話デモ動画
NotebookLMはファイルをアップロードして分析し、その内容をもとに複数の話者が自然な音声でポッドキャストを進行することもできる。途中で自分が介入して自由に質問することも可能(Interactive Mode)。
- Karpathyは、自身の専門性は強くないが好奇心はある分野について、ポッドキャストを作って聴くことをよくしていた。そうして作ったポッドキャストを Histories of Mysteris という名前でSpotifyにも公開している
画像入出力
KarpathyはOCRを使うとき、必ず正しく読めているかを確認してから内容を尋ねる習慣がある。常に誤読している可能性があるためだ。
実際の用途: 健康機能食品の栄養成分確認、採血結果の確認と解釈、数式のLaTeX版取得、ミームの解釈など
画像出力はDALLE、IdeoGramなどを使う。画像生成はLLMに内蔵された機能ではなく、別モデルにプロンプトを渡し、その出力画像を受け取る役割。
動画入出力
音声と同様、Advanced Voice + Videoを入力として使って応答させることができる。モバイルアプリで可能。LLMが本当に動画そのものを入力として受け取るというより、動画を一定フレームごとに取り込み、画像入力に変換しているのだろう
Karpathy自身は頻繁には使わないが、両親世代のように技術的背景が乏しい人でもすぐに質問して答えを得られるので良い
動画出力にはSoraをはじめ複数のモデルがある。Karpathyは現時点ではGoogle Veo 2が最も現実的だと感じている
追加機能
メモリ
- ユーザーとの対話の中で、「これを覚えておくとより良い回答ができそうだ」と判断したこと、またはユーザーが明示的に記憶してほしいと頼んだことは、Memory Updatedという文言とともに保存される
= これらは新しいチャットを作るたびにContext Windowに入ると考えてよい。全体一覧を見て管理することも可能
Customize
- ユーザーをどう呼ぶか、どんな仕事をしているか、どのように答えてほしいか…などを記録しておくと、これもコンテキストウィンドウに入った状態で回答する
- Karpathyは最近韓国語を学んでいるため、関連内容を入れて試しているという
Custom GPTs
Karpathyは韓国語学習のためのGPTsをいくつも作って活用している。簡単なプロンプトにFew-Shotを使用。
Korean Vocabulary Extractor: ハングル文を分解して語彙を抽出してくれる
Korean Detailed Translator: 上と似ているが、単語ごとに対応付けて翻訳してくれる
KoreanCap: 画像をキャプチャして渡すと、OCR後に翻訳し、発音まで含めて単語ごとに分解してくれる
3件のコメント
> 「次の文字」を確率的に吐き出す
これ以上に適切な説明があるだろうかと思います。
韓国語を勉強しているのは不思議ですね
https://youtube.com/watch/… 字幕でご覧ください