GoogleのAI研究部門であるGoogle DeepMindで働くニコラス・カルリーニ氏が、「正しいAIの使い方」を解説しています。

How I Use "AI"

https://nicholas.carlini.com/writing/2024/how-i-use-ai.html

カルリーニ氏は大規模言語モデル(LLM)が世間から「過大評価されている」と感じているそうです。しかし、「過去1年間、毎週少なくとも数時間をLLMの利用に費やしてきた身として、私が与える困難なタスクをLLMが解決する能力には感銘を受けています」とも記しており、LLMベビーユーザーの意見として、その能力に太鼓判を押しています。カルリーニ氏は「LLMのおかげで研究プロジェクトとサイドプロジェクトの両方でコードを書くのが少なくとも50%速くなりました」と記し、LLMがユーザーの作業効率を大きく高めることにつながると指摘しました。

そこで、カルリーニ氏は「LLMの正しい使い方」を自身のブログで解説しています。カルリーニ氏はLLMの使用例として、以下を挙げており、これらを大まかに分類すると「学習の支援」と「退屈なタスクの自動化」に分けられると説明しています。

・これまで使用したことのないテクノロジーを使用してウェブアプリを構築する。

・これまで使用したことのないさまざまなフレームワークの使い方を教えてもらう。

・数十のプログラムをC言語またはRustに変換することで、パフォーマンスを10〜100倍に向上させる。

・大規模なコードベースを削減し、プロジェクトを大幅に簡素化する。

・過去1年間に執筆したほぼすべての研究論文の初期実験コードの作成。

・ほぼすべての単調なタスクまたは1回限りのスクリプトを自動化する。

・新しいパッケージやプロジェクトのセットアップと構成に役立つウェブ検索をほぼ完全に置き換えることに成功。

・約50%がエラーメッセージのデバッグに役立つウェブ検索に置き換える。



なお、カルリーニ氏は「これらの事例は、あくまで私がLLMを活用することができたものです。つまり、LLMの印象的な能力を披露するために設計されたタスクではなく、実際の仕事をこなす必要性から生まれたタスクということです。そのため事例として挙げられているものは魅力的ではありません。そして、私が毎日行っている仕事の大部分は魅力的なものではなく、現在利用可能なLLMでほとんど自動化できるものであることを示しています」と注意書きしています。

◆アプリを構築



カルリーニ氏は、2023年にGPT-4を使って「タスクを解決する能力をどれだけ正確に予測できるかをテストするためのクイズアプリ」を作成しました。このクイズアプリは非常に人気があり、ページビューは1000万PVを超えたそうです。カルリーニ氏はアプリの初期バージョンのほぼすべてをGPT-4に作成させており、アプリの基本構造を尋ねるところから始め、さまざまな機能を徐々に構築していくようにプロンプトを入力していったそうです。アプリ構築のためにGPT-4と行ったやり取りの合計は3万単語にものぼるそうです。

プロンプトでは自身が欲しい要素を言葉で説明しながらGPT-4に実装を依頼しており、実際に使用されたプロンプトの例としては「文字列から読み込まれたコンテンツを含むJavaScriptにインラインフレームを追加するにはどうすればよいですか?」などが挙げられています。

カルリーニ氏は「LLMは過去に解決したことのある問題を解くのに優れています。このクイズアプリの99%は世界中の誰でも書けるようなPythonウェブサーバーバックエンドを備えた基本的なHTMLで構成されています。このクイズアプリが人気を博したのは、その背後にあるテクノロジーが優れたものであるからではなく、クイズの内容が面白かったためです。アプリ開発における退屈な部分をLLMに丸投げして自動化することで、クイズアプリの作成が非常に簡単になりました」と記しています。

また、カルリーニ氏はLLMを使ってアプリを構築することができなければ、このクイズアプリを作成することはなかっただろうとも記しています。

◆学習の支援



何か新しいことに取り組むにはそれに関する新しい知識を身に着ける必要がありますが、人間が1日に使える時間は有限です。そんな時に役立つのがLLMです。例えばDocker、Flexbox、Reactなど、比較的新しいフレームワークやツールを完全に理解するのではなく、LLMを駆使してタスクを解決するために必要なことを学習する方がはるかに効率的であるとカルリーニ氏は主張しているわけです。

カルリーニ氏は自身の個人的なプロジェクトを達成するためにDockerを利用する必要があったそうですが、それまで一度も利用したことはなく、ほとんど知識を有していなかった模様。ただし、プロジェクトを実現するのにDockerを完全に理解する必要はなく、「10%」ほど理解していれば問題なかったそうです。

もしもこれが1990年代なら、Dockerの基本を解説するマニュアル本を購入して最初の数章を読む必要があります。2010年代前後ならDockerの使い方を説明するチュートリアルをインターネット上で検索したり、自身と同じ目的でDockerを利用している人のブログを探したりすることで問題を解決していた可能性があります。

しかし、LLMを使えばDockerについて必要な部分だけ教えてもらうことが可能。実際にカルリーニ氏はChatGPTにDockerのセットアップ方法を教えてもらっており、そのやり取りの詳細は以下のページにまとめてあります。

Docker VM Bash Setup

https://chatgpt.com/share/40dcc017-9cc6-4a99-8eac-959a171fbb2f

カルリーニ氏は「LLMで何ができるかを評価するのではなく、何ができないかを評価する必要がある」と言及。64ビットの整数を頭の中で割り算できないからといって、まったく役に立たない人間だと見なすことがないのと同じように、LLMが解決できない作業があるからといって、LLMが無能というわけではないと指摘。問題は「LLMが価値を提供できる作業を見つけられるかどうかである」とカルリーニ氏は語っています。

さらに、「LLMはすべてをこなすことができるというわけではありません。大抵のことはできません。しかし、現在のLLMはすでにかなり価値のあるものになっています」「私の挙げた事例はほとんど簡単なタスクで、コンピューターサイエンスの学部生なら誰でも学んで実行できるレベルのタスクです。しかし、これらのタスクに関する質問に対して何でも気軽に回答してくれるような魔法のような友だちは誰も持っていません。しかし、LLMならそれが可能です。LLMはまだプログラマーの仕事を完全に代替することはできませんが、簡単なタスクなら十分に代替可能です」と語りました。



なお、カルリーニ氏は自身がこれまでLLMを利用して役立ったケースの「2%未満しか紹介できていないことに注意してください」とも記しており、今回挙げられた事例以外にもLLMの活用法は多々あると主張しています。