僕もAIについて考えてみた
僕は LLM については複雑な気持ちがあります。日本語のメールの訂正、デバッグの手がかり、情報検索、様々な場面では、LLM は役に立ってくれています。どの SNS も AI という話題で盛り上がっており、数ヶ月程度でジュニアエンジニアのほとんどが AI で置き換えられ、数年で AGI が登場するとまで主張する CEO たちもいます。そんな中で、僕はそういったみんなの気持ちに同意できない自分がいます。
LLM は過剰評価されている
かなりの時間をかけて LLM を思うように動かすのに失敗した経験のある僕は、LLM が AGI への道ではないというヤン・レクーンの見解のほうが正しいと思っています。よって、何億ドルの LLM への投資を促す偉い人たちが、とても無責任だとしか考えられません。
LLM に生成されたコードも含めて、コードはデバッグ、保守する必要がある
LLM はコードをたくさん書くことができますが、一定の大きさを超えたプロジェクトでは特に、そのデバッグと保守はできません。さらに、人間の開発者は自分が書かなかったコードのほうが、理解しデバッグすることが難しいです。
LLM は開発者の学習を邪魔しかねない
ソフトウェアエンジニアとして、新しい技術を学び、問題に応用することが仕事の一部です。そうしないと、スキルがあっという間に古くなってしまう危険性があります。そして、スキルを身につけるには、繰り返し練習を重ねなければなりません。生成 AI がだれでも使えるようになったこの時代は、自分のアウトプットを機械に任せる選択肢が常にあります。ところが、僕がまだ慣れていない Golang を自分の手で書かないで、LLM にオートコンプリートさせたらどうなるでしょうか。そんなやり方でプログラミング言語を取得できるはずがありません。
そんな風に、LLM はソフトウェア開発者たちから学びの機会を奪ってしまいます:
- LLM によるオートコンプリートの場合では、質問を問う機会が奪われます。
- LLM のチャットボットの場合では、気を付けていなければ、自分の手でコードを打つ機会が奪われます。
「2」がなぜ問題かというと、コードを書くこと自体が学びに繋がると考えているからです。初めて聞く単語を使ってみることが言語能力の上達に繋がるのと同じように。
取り残されても良い
LLM は社会に価値貢献しているのは間違いありません。ただし、それがトータルでプラスになっているのかは、まだはっきりしていないと思っています。
LLM のコーディングアシスタントを使わないことで取り残されても良いです。自分でコードを書くことの楽しみを味わって、エンジニアとしての腕を磨き続けたいです。もしかしたら、長い目でみると、取り残されるのは LLM に頼りすぎたほうかもしれません。