「GPT-4」という高性能な言語モデルが登場しました。
質問を投げると、人間のように問題解決してくれます。
「LLM(Large Language Models)」と言われる大規模言語モデルは、大量のテキストデータを使ってトレーニングされています。回答では大量に覚えたテキストデータから引っ張って来るわけですが、上手く汎化されており、新たなステージに入ったことを感じます。なぜあんなに自然な文章を書けるのが不思議です。今更ながらですが、LLMの記事を書いてみました。
機械学習エンジニアの生産性は高まる
これまでコンピュータと会話するためには、プログラミングが必要だったわけですが、GPT-4以降は自然言語によってコンピュータと会話ができるようになりました。
機械学習エンジニアは、日々Pythonでモデルを学習したり推論するようなコード書いているわけですが、難しい処理があると、コーディングにちょっと時間がかかることもあります。あと私はいまだにpandasのメソッドを覚えていないので、調査にも地味に時間を取られます。
しかし、GPT-4があれば、一瞬で関数を作成してくれるため、時間的に効率化されるのは間違いないでしょう。pytestのコード位は自分で書いた方がいいかもですが、そのうちそれもなくなるような気がします。
個人的にはコードを書くのは嫌いではないですが、決して得意ではないのでGPT-4やGitHub Copilotによってかなり楽になる見通しです。
また、課題解決のアプローチでも助言を受けられます。技術的な課題にぶつかったときに、自分が思いついた解決策の筋があまり良くないとします。その場合、GPT-4にいくつか解決策のアプローチを提案させることで、より効果的なアプローチを採用することができます。
そしてそのアプローチを採用した次の質問で、GPT-4がPythonのコードを作成してくれるでしょう。
プログラミングスキルの価値は高まる
GPT-4に自然言語で命令すれば、プログラムを生成してくれます。しかし現時点では、完璧なコードが生成されないため修正が必要です。修正方法はコードを直接修正したり、プロンプトで要求を投げることになります。もし、GPT-4が完璧なコードが生成できるならば、エンジニアは廃業するしかありませんが、現段階では、あくまでエンジニアのアシスタントという位置づけです。LLMがエラーなしの完璧なコードを生成することはここ数年では厳しいでしょう。そのため、生成されるプログラムの内容が分からなければ、システムを完成させることが難しいため、非エンジニアが使いこなすにはハードルが高いです。
これまでGoogleで調べながらプログラミングしていたことが、GPT-4に変わっただけとも言えます。そのため、求められる知識はあまり変わらず、しばらくはこれまで通りのスキルセットが求められると思います。
一方、日本語とプログラミングの距離が小さくなるのは間違いなく、日本語でのコミュニケーションは得意だけどプログラミングは少しだけできるみたいな人が、今後も増え続けると思います。SIerやSESに未経験で入社する人はこれまでもいましたが、これからもっと増える気がします。
SIerのSEは、要求を定義し、設計書を作成して、プログラマーに指示出ししてシステムを作り上げるわけですが、プログラマーを減らしてGPT-4を雇うという構図はありえそうです。大手SIerの社員が、人間が機能と非機能を定義して、設計書を作成した後、プログラマーがGPT-4を使ってプログラミングするイメージです。
まとめると、プログラミングの生産性が高まるのでプログラミングスキルの価値は高まるけれど、プログラマー供給が大きく増えそうなので、スキルの幅を広げることが生き残る道なのではと思いました。
参考:Azure OpenAIのマジカルツアー!PythonでGPT-4との対話の世界へ
機械学習エンジニアはより高度な言語化能力が求められる
機械学習エンジニアの役割は、「機械学習を活用した課題解決」なわけですが、GPTモデルが全て解決してくれるなら仕事がなくなります。目の前に高性能なモデルがあるわけですから。
確かに、これから自社でゼロから自然言語処理モデルを作るという仕事はなくなりそうです。ただ、これまでも散々Hugging Faceなどの学習済みモデルを利用してきたわけです。今更GPT-4が出てきたところでという思いもあります。
GPT-4の精度で満足する場面も多々あると思うので、初手としてLLM使うみたいな場面は増えます。しかし、高い顧客要求を満たすプロダクト開発のため、ドメインに合わせてLLMを転移学習するような仕事は、これから減るでしょうがゼロになることはないでしょう。
また、機械学習エンジニアのプログラミングは、PyTorch Lightningなどを見てもわかる通り定式化しやすいので、GPT-4で真っ先に置き換えられる部分でしょう。ゼロからPythonを書く機会は激減するはずです。それは少し寂しい気もします。
私の感想ですが、日本語で処理を考えることは、プログラムの処理を考えるより思考処理が軽いです。人間の脳は言葉で考えています。しかし、コンピュータがこれまでプログラムしか分からないから、人間側が譲歩してPythonのコードを書いていたわけです。
しかし、コンピュータが自然言語を理解するならそうした余計な思考が減ります。純粋に言葉で考えられます。我々はある意味解放されたと言えるのでしょう。
言語生成モデルを前にして言うのもおかしい気がしますが、言葉の価値というものがより上がるのではと思います。なぜなら、コンピュータが言葉を理解するので、言葉の汎用性がまた一段上がったわけです。
プロンプトエンジニアリングの盛況を見れば、その重要性が分かるのですが、ポイントはLLMの特性や癖を学んで、LLMに効率よく仕事をさせることに加え、抽象的な概念を言語に置き換えたり、データから知見を言葉に置き換えることです。
ビジネス側に近いデータサイエンティストは生存率が高い
データサイエンティストや機械学習エンジニアは、データの中に潜む規則性を見つけて、数理モデルに置き換えることで、課題を解決したり業績向上に貢献してきました。数理モデルを作るのは本来難しいのですが、scikit-learnなどの便利なライブラリが登場し、一気に難易度が下がりました。AutoMLが出たときもなかなか衝撃でした。今度はGPT-4が登場し、プログラミングとテストが一気に楽になりました。今後もさらに便利なツールがこれから登場してきて、いろんなことが自動化されていくのでしょう。
そのため、一般的な機械学習エンジニアの型のような仕事は自動化され、より個別的な仕事に重きが置かれるはずです。いわゆるビジネスに絡む部分ですね。
第一は、問題設定です。顧客がやりたい要件を整理して、具体的なアルゴリズム(数式化)に落とし込むまでには、様々な観点を考慮して詰めていく必要があります。具体的には、論点を整理したり、条件を確認したり、いくつか案を出したりするような仕事です。これらは言葉によって定義されます。言語化がより重要です。
第二は、結果を見て、解釈考えて次の実験を回すとか、ビジネス面のインサイトを導くような仕事は変わらず重要になるでしょう。ただその回転が非常に速く回るイメージです。
つまり、機械学習エンジニアやデータサイエンティストも、言葉を使う領域に注力することが求められるはずです。複雑な問題を整理したり、データ活用の目標を設定したり、推論結果の解釈、顧客とのコミュニケーションするような仕事です。
特にコミュニケーションは重要になるはずです。プロンプトを考えるよりも、人間と会話する方がまだまだ楽ですから。残念ながら、ビジネス側とML側の距離感は嫌でも近づいてくるでしょう。
そのため、機械学習エンジニアよりビジネスに近いデータサイエンティストの方が、将来性はあると言えます。これから機械学習エンジニアの仕事は、データサイエンティストに近づく道と、MLOpsを担うエンジニアに近づく道と、転移学習を担う機械学習エンジニアに分かれていくかもしれません。
設計思想が生存のカギになるか
これからは言語化能力の背景にある設計思想が重要になると考えます。言葉の背景にある思想
前章で言葉の価値が上がると書きましたが、これからの機械学習エンジニアにはより「思想」が求められるのではと考えます。プロダクトやシステムのあるべき姿をイメージして言語化するようなことです。「設計思想」もそうですね。
これからエンジニアリングの生産性が2倍3倍となっていく中、問題設定から一気通貫で仕事をする場面が多くなるでしょう。顧客ヒアリングから納品まで1ヶ月でこなすようなことも増えるでしょう。
その際、顧客や経営側に問いを立ててヒアリングして要求をきっちりヒアリングし、プロダクトの理想系を描き、具体的なシナリオを言語化するようなことがより求められると思います。この場合アウトプットイメージや「こうあるべきだ」という判断軸を持っておくことで、関係者をリードしていくことができます。
そういった「設計思想」は、プロジェクトに参加してみないとなかなか身に付かないです。経験者優位というか、経験が生きる領域ともいえるでしょう。
英語
もう一つは「英語」です。LLMが英語圏で作られており、世の中の言葉の大半が英語であることを考えると、英語の学習は必須となりそうです。プロンプトエンジニアリングも英語で行ったほうが性能が良いですし、ノウハウも日本語より英語の方が圧倒的に多いです。
もちろん情報技術全般に言えるのでしょうが、特に機械学習分野は英語と日本語の情報量が大きく異なっている印象です。
DeepLやOtterなどの翻訳ツール類が揃っているので、英語を完璧に仕上げる必要はないのでしょうが、基本的な読み書きは必須になると感じます。日系企業での機械学習エンジニアの求人の大半に英語力が求められる可能性は結構あると思っています。
関連記事:LangChainとRAGで実現する先進的なAIチャットボットの開発