見出し画像

Linuxの創始者が明かすAIによるプログラミングの未来

リーナス・トーバルズは世界で最も有名で影響力のある計算機科学者の一人であり、彼がAIを使用したコーディングについての考えを述べました。それは非常に興味深いものです。この動画で一緒に彼のインタビューを見ていきましょう。動画に入る前に、リーナスについて少し紹介させていただきます。
まず、彼はLinuxカーネルの創始者であり主要開発者です。大したことではありませんが、彼はまた、ほぼすべてのソフトウェア企業が使用しているバージョン管理ソフトウェアであるgitの創始者でもあります。彼はLinuxを無料でオープンソースの代替として作成し、今日でも積極的に関与しています。
人工知能とコーディングについての意見を述べる資格がある人がいるとすれば、それは彼です。では、この動画を見てみましょう。左側にいるのがリーナス・トーバルズです。
彼は通常、人工知能はステロイドを打ったオートコレクトのようなものだと言います。なぜなら、大規模言語モデルが行うことは、次に使用する可能性が最も高い単語を予測し、そこから推論するだけだからです。実際にはあまり知的ではありませんが、まあいいでしょう。
明らかにこの人はAIについて非常に強い意見を持っています。これは何度も議論されてきました。AIは次のトークンを予測しているだけなのか、それともより深い知性を持っているのか。現時点では、おそらく次のトークンを予測するだけという方に傾いていますが、それ自体が知性であることに変わりはありません。しかし、いずれ次のトークンを予測するだけでなく、はるかに進んだ他の技術や手法が登場するでしょう。続けて見ていきましょう。
明らかに、私たちの生活や現実世界に与える影響は大きいです。あなたは、大規模言語モデルが書いたコードが、あなたに提出されるリクエストとして見られると思いますか?
私はそれが起こると確信しています。そして、すでに起こっている可能性もあります。おそらく小規模では、人々がコードを書く際の補助としてより多く使用しているかもしれません。しかし、自動化は常に人々のコード作成を助けてきました。これは全く新しいことではありません。
ちなみに、この動画は少なくとも7ヶ月前に公開されたものなので、少し古いですが、彼はすでにそれが起こっていると言っています。7ヶ月後の現在、それは間違いなく起こっています。特に、AIネイティブなIDEであるCursorの爆発的な使用により、コードの書き方を知らない人でもみんなコードを作成しているようです。
そして彼は続けて、自動化が助けになっていると言います。そうです、自動化とプログラミングは手を取り合って進んできました。これは単に次のレベルの自動化なのです。私たちはもはや機械語を書きませんし、アセンブラさえ書きません。今ではCからRustへと移行しています。私はこれを、AIについて毎日ニュースで話題になっているような革命的なものとは見ていません。
彼が説明しているのは、抽象化がどのように機能するかです。最初は1と0を書いていました。その後、機械語があり、その上に層を重ねて抽象化を続け、人間がコードを書きやすくし、機械が理解できるようにしてきました。今日では、機械語を書くのではなく、これらの高級言語、C、Rust、Ruby、Pythonなどを書いています。これらの言語はすべて、コンピューターが実際に理解して実行できるバイナリに変換されます。彼が説明しているのはそういうことです。
これは次のレベルであり、おそらく抽象化の最後のレベルです。自然言語です。もはや、コードの機能性について正確で厳密な説明をする必要はありません。ただ漠然とした言葉で説明すれば、大規模言語モデルがそれをコーディング言語に翻訳し、最終的には機械語やバイナリに翻訳されます。
ここで興味深いのは、私が最近考えていたことですが、大規模言語モデルとAI一般が、私たちが毎日使用するコードをますます多く書くようになり、ある時点で、大規模言語モデルはおそらく私たちにとって見慣れない言語でコードを書くだろうということです。なぜなら、彼らにはその必要がないからです。
機械語やバイナリの上にこれらの抽象化層を重ねてきた理由は、人間がコードを書くのが非常に苦手だからです。私たちはバイナリを読むことができませんし、機械語でさえ十分に理解するのに時間がかかります。しかし、大規模言語モデルにはそのような問題はありません。
最終的には、私たちにとって全く見慣れないコーディング言語が登場するかもしれません。おそらくそれは記号かもしれません。どのように見えるかは誰にもわかりません。なぜなら、それを本当に理解する必要があるのはAIだけだからです。そして、そこから派生する一連の影響がありますが、この動画ではそれには触れません。続けて見ていきましょう。
あなたは、これが人々のコード作成を助け、人々が始めるのを助けると言っていますが、前の会話とコードレビューや保守の課題を見ると、大規模言語モデルがコードのレビューや保守を助けるレベルに達すると思いますか?
私はそう願っています。なぜなら、それは彼らが本当に輝くことができる分野の一つだからです。明らかな愚かなバグを見つけるためです。この部屋にいる人の中で、実際にプログラマーの方はどれくらいいますか?かなりの数ですね。私が書くバグの多く、他の人が書くバグの多くは、微妙なバグではありません。その多くは、あなたが考えもしなかった愚かなバグなのです。それらを見つけるのに、より高度な知性は必要ありません。
彼の言っていることは100%正しいです。私はつい先日、Microsoftで働いている友人と話をしていましたが、彼らはAIを使ってコードレビューをしているそうです。彼によると、今のところあまり役に立っていないそうです。いずれはそうなると思いますが、これは彼の意見です。現時点ではあまり役に立っていないそうですが、重要なのは、それが捕捉する役立つバグは、おそらくスペルミスや1つずつずれているエラーなど、非常に明白なバグだということです。
人間が気づくべきで、気づくはずだったのに、何らかの理由で見逃してしまったようなバグです。しかし、現時点では微妙なバグ、機能性の問題、ビジネスロジックの問題は捕捉できないかもしれません。しかし、そうなるかもしれません。
警告を出すツールを持つこと、私たちには本当に明白なものについて警告するコンパイラがありますが、大規模言語モデルがやや微妙なケースについて警告を出すこと、つまり、このパターンは通常のパターンとは異なって見えますが、これが本当に意図したものですか?と言うようなことができるのです。
私たちにはすでに構文エラーやその他の明白なことをチェックするためにプログラムできるリンターと呼ばれるものがありますが、彼が説明しているのは、大規模言語モデルがより洗練されたエラーをチェックできるかもしれないということです。つまり、コードで使用したパターンを見て、「ねえ、あなたはこの他のパターンを何度も使用していますが、おそらくそのパターンを複製しようとしていますが、それは正確には正しくありません」と言うようなことです。それは本当に素晴らしいことでしょう。
答えは「いいえ、それは全く私の意図したものではありません。あなたが明らかなバグを見つけてくれて、ありがとうございます」かもしれません。だから、大規模言語モデルが大きな役割を果たすと思います。あなたは一般的に彼らを軽蔑的に「ステロイドを打ったオートコレクト」と呼んでいますが、実際にはそれ以上のものだと思います。そして、ほとんどの人の働き方は、ある程度ステロイドを打ったオートコレクトのようなものです。私はそれを、私たちがより良く仕事をするのを助けるツールだと見ています。
彼はそれをステロイドを打ったオートコレクトと呼び、リーナスは「じゃあ、私たちは皆ある程度ステロイドを打ったオートコレクトですね」と言いました。人間は環境から学びます。私たちは目や耳、様々な感覚を通してすべてのデータを吸収し、それから学び、パターン認識を発達させます。これは本質的に大規模言語モデルの働き方と同じです。
私たちが話すとき、応答するとき、おそらく私たちは自分の文章の次のトークンを予測しようとしているだけかもしれません。私たちは非常に洗練された大規模言語モデルかもしれません。しかし、私はいつも楽観的でした。希望に満ちて、そして謙虚であること、それが私のミドルネームです。
しかし一方で、32年前に私は他の誰よりも優れたカーネルを書くことができると考えるほど愚かだったのです。時には少し楽観的すぎることが、変化をもたらすために必要なのかもしれません。だから、私のアプローチは「これは素晴らしい、楽観主義を見るのが大好きだ」というものです。必ずしもそれを共有するわけではありませんが。
多くの人が意見を異にします。私がこれらすべてについて心配していることの一つは、私たちが幻覚を見ていることです。そして、これは大規模言語モデルの技術用語です。彼らは幻覚を見て、物事を作り上げます。そして、実際の人間がそれらを捕捉する立場にいない状態で、自動的に物事を行う立場に置かれるほど、これはより怖くなります。
世界を支配するという意味でも、SF的な意味でもなく、多くのバグが発生し、それが私たちの生活やコードに影響を与えるという意味で怖くなるのです。
彼は幻覚について話していますが、このチャンネルをご覧の方なら、それが何かご存知でしょう。本質的には、大規模言語モデルが何かを間違えるけれど、それを正しいと思っているかのように自信を持って言うときのことです。
ここで重要なのは、人間も間違いを犯すということです。大規模言語モデルが絶対に完璧になることはおそらくありません。おそらく、QARやストローベリー長期思考、マルチエージェントシステム、その他の出力を検証し確認する方法を通じて、大規模言語モデルが生成する幻覚の数を継続的に減らしていくでしょう。しかし、おそらく完璧にはならないでしょう。
だからこそ、テストを書き、人間が書くバグからコードを保護するための他の方法を行うのです。基本的に、大規模言語モデルを同じように扱わなければなりません。
私は彼らがいない状態で毎日バグが発生するのを見ています。だから私はそれほど心配していないのかもしれません。私たちは自分たちだけでそれらを十分にこなしていると思います。
彼は私と同じ考えを持っています。基本的に、人間は間違いを犯し、大規模言語モデルも間違いを犯します。私たちは、それらの間違いが本番環境に入り込むのを防ぐシステムを持つ必要があり、特にミッションクリティカルなコードについては、それらの間違いによる結果的な影響を最小限に抑える必要があります。
さて、同じリーナス・トーバルズとの別のインタビューがあります。ここでも彼はコーディングにおけるAIについて話していますが、これはより最近のインタビューです。一緒に見てみましょう。
楽しくて、まったく議論の余地のないものに行きましょう。AIと大規模言語モデルについて少し話しましょう。明らかに、これは現在のブログでのハイプキットで、そして給料を2倍にしたければ、タイトルにAIを追加するだけです。企業の自己説明を見るのは面白いですね。地球上のすべての企業が、今年はAIの角度から自社のストーリーを語っています。そうですね、それは本当です。
すべての企業が今やAIによって駆動されています。ポタリー・バーンもAIによって駆動されており、基本的に一夜にして評価額が10倍になります。しかし、私が非常に興味深いと思うのは、ジーニーが多くの仕事の終わりになるという考えです。プログラマーの終わり、作家の終わり、映画製作者の終わり、そして多くの仕事の終わりです。あなたはついにAIモデルに取って代わられるのですね。
いいえ、私にはわかりません。私はハイプが嫌いです。同時に、AIは非常に興味深いと思います。私が大学に行った頃は、まだルールベースのエキスパートシステムやベイズ論理などについて話していました。それはAIと呼ばれていましたが、全く知的ではありませんでした。そして、私は過去数年間がそうだったと思います。
しかし、私はハイプの一部になりたくありません。AIの革命は、カーネルレベルでもいくつかのポジティブな影響がありました。例えば、Nvidiaのような企業は、カーネルコミュニティと相互作用することで有名ではありませんでしたが、実際にLinuxのメモリ管理コードにもっと積極的に関与するようになりました。なぜなら、彼らがたくさんのAIハードウェアを販売し始めたとき、突然Linuxに関心を持ち始めたからです。
以前は暗号通貨でしたし、明らかにGPUもそうです。そして、それは大きなサーバーで使用され、Linuxを実行しています。だから実際にポジティブな影響がありました。しかし、私個人の意見では、10年待ってみて、実際にどうなるかを見てから、「5年以内にあなたの仕事はなくなる」というような狂った発表をするべきだと思います。
私はある程度同意しません。特にプログラマーについては、10年後には非常に少数のアプリケーション開発者しか残らないと本当に思います。大規模言語モデルから直接欲しい情報を得られるのに、アプリケーションを構築する意味は何でしょうか?単に欲しいものを言えば、それを与えてくれるでしょう。
本当に基本的な例を使ってみましょう。ToDoアプリです。ToDoアプリを持つのではなく、単に大規模言語モデルに「この時間にこのことを思い出させて」と言えば、それを保存し、いつ思い出させるかを知っているでしょう。実際のToDoアプリケーションは必要ありません。なぜなら、大規模言語モデルがアプリケーションだからです。
これは、あなたが望むアプリケーションのあらゆる洗練度に適用できます。単に大規模言語モデルに何が欲しいかを伝えれば、それを与えてくれるのです。だから私は本当に信じています。おそらく10年は少し攻撃的かもしれませんが、アプリケーションはなくなっていくでしょう。単に必要がないのです。それは自然言語からAIへ、直接計算へとなるでしょう。
私たちはすでに、これらのAIツールを通じて、永続的でほぼ不可逆的な変化が起こっているのを見ています。誇大宣伝されているジーニー前線ではなく、単に私たちの生活をより良く、より簡単にするツールにおいてです。私はそれを常にステロイドを打ったオートコレクトと呼んでいて、人々は私に怒っていますが、エディタでコード補完を手伝うためにジェネレーティブAIツールを使用することは、大きな機会ではないでしょうか?
実際、私はAIに対して非常に楽観的な人の一人で、バグを見つけるためのツールを楽しみにしています。私たちはカーネルや他のソフトウェアプロジェクトの周りに多くのツールを持っていて、それらを宗教的に使用しています。しかし、ツールをよりスマートにすることは悪いことではありません。
ある程度、アセンブリで物事を書くことと比較しています。文字通り、私が最初にカーネルを始めたときは、おそらく50%がアセンブリ言語でした。コンパイラを使用し、よりスマートなツールを使用することは、次の避けられないステップです。だからそれは起こるでしょうが、一部の人々が言うような悲観的なものである必要はないと思います。そして、現金を求めている人々が約束する世界でもないと確実に思います。
だから、この全てのハイプサイクルについて少し皮肉的である必要があります。テック業界では、皆さんそれを理解していると思います。AIの前は暗号通貨でした。暗号通貨の前は何でしたっけ?クラウドネイティブですね。クラウドネイティブ... 前の方から大きな声が聞こえますが、それはハイプではありません。はい、ハイプの背後には常に現実の一粒があります。しかし、注意深くある必要があります。
彼らが言及しているこれらのハイプな事柄、これらは実際に数兆ドル規模の企業や製品です。だから、それが本当にどれほどハイプなのかわかりません。クラウドネイティブ、つまり、クラウドインフラストラクチャは今日、インターネット上のほぼすべてのものを支えています。だから、それは確かにハイプではありません。
私はこれらのツールを見て、あなたはアセンブラと言い、そして私たちはコンパイラについて話し、特定の種類のバグを見つけようとするコンパイラであるsparseについて話します。コードリファクタリングを行うJuliaについて話します。過去30年以上にわたって、開発をより良く、より堅牢にするのを助けるツールの連続がありました。そして、そのような系譜の中に、本当にクールなものが登場することを期待しています。
そうですね、私たちには非常に複雑なスクリプトやパターン認識などを使ってカーネルを書き換えるツールがあります。そして、それが実際にAIが大きな助けになると思う理由です。これらのツールの一部は使用が非常に難しいからです。十分に低いレベルで物事を指定しなければならないため、自然な反応は「これをもう少し簡単にして、もっと自動化できないか」ということになるでしょう。
彼が説明しているのは、他のコードを改善できる決定論的なスクリプト、コードです。そして、それは「もしこれならば、それ」という本質的に決定木を使って多くのことが行われてきました。しかし、それらは非常に複雑になるため、すぐに限界に達します。
そこで、大規模言語モデルを通じて、すべてのルールを指定する必要なく、本質的にパターン認識を適用するこの非決定論的な方法があれば、突然、以前には利用できなかった、コードを改善し、さらにはコードを書くための非常に強力で価値のあるツールを手に入れることができるのです。
この全体の大規模言語モデルとトレーニングデータがもたらす興味深い角度の一つは、現代世界におけるデータの役割です。私たちは皆、オープンソースについて、ソースコード、アルゴリズムが利用可能であることについて話しますが、オープンデータは実際にはより興味深い問題です。
そうではありません。実際、私はそれを明確にしたいと思います。LFは明らかにオープンデータプロジェクトを持っていて、他の人々にとってはより興味深いものです。そして、それが私にとってのオープンソースの要点だと思います。異なる人々が異なることに興味を持っているということです。
私はいつも低レベルの細かい部分に興味がありました。
さて、ちょっと彼を止めましょう。実際、私は右側の男性が正しいと思います。彼はオープンデータが実際にはオープンアルゴリズムよりも興味深いと言いました。両方とも重要ですが、データは明らかにより入手が困難です。アルゴリズムは公開されており、使用されています。研究論文が発表されるたびに、コミュニティ全体がそれを使用し、理解し、最適だと考える方法で実装しようとすることができます。
しかし、データは大部分が閉じられた壁の後ろにあるように見えます。そして、オープンなデータはすべてすでにモデルのトレーニングに使用されています。彼らは新しいデータ、より多くのデータを必要としています。そして、それをどこから入手するのでしょうか?だからこそ、オープンデータは非常に非常に興味深いのです。
これが、プログラミングの歴史上最も有名なプログラマーの一人であるリーナス・トーバルズがAIとプログラミングについて語ったことです。あなたはどう思いますか?私はこれについてかなり強い考えを持っており、以前の動画で詳しく話しました。しかし、あなたの意見を知りたいです。以下にコメントを残してください。そして、この動画を楽しんでいただけたなら、ぜひ「いいね」を押して購読してください。次の動画でお会いしましょう。

この記事が気に入ったらサポートをしてみませんか?