ChatGPTを始めとする生成AIの活用によりエンジニアの業務効率化が期待できる一方で、エンジニア業務はAIに代替されるのか、エンジニアの技術への評価が変化するのかという懸念を持つ人も多いかもしれません。エンジニアのスキル評価が行われる採用選考においても、企業が評価するスキルは変わっていくのでしょうか。
株式会社ギブリーにてコーディングテストツール「Track Test」の事業責任者を務める山根 淳平氏に、ChatGPTのコーディングテスト正答率に関する検証結果とともに、お話を伺いました。
※本記事は、2023年8月15日時点の情報を元に執筆しております。
山根 淳平
株式会社ギブリー 執行役員(兼) HRTech部門 採用ソリューション事業部長
株式会社ギブリーに新卒として入社し、Trackを推進するHRtech部門の立ち上げに参画。2017年執行役員就任後、事業責任者としてコーディングテストツール「Track Test」を累計導入企業350社以上、60万件以上の受験データが集まるプロダクトになるまで牽引。
現在は、同プロダクトのインドを中心とする海外展開や、生成AI関連の新規事業(法人GAI)の立ち上げも行う。
フロントエンド・バックエンドエンジニアからシステムエンジニア、モバイル、インフラエンジニアまで、あらゆるエンジニアの“本来のスキル”を可視化するコーディングテストツール。受験数は全世界で累計60万件を突破。
多種多様な業種に適応するコーディングテストツール
まずは、御社が展開するコーディングテストツール「Track Test」について教えてください。
履歴書や面接だけでは分かりにくいエンジニア候補者の「実務力」をチェックするコーディングテストツールです。現在、国内外128カ国で60万件以上の受験数を誇り、800問以上(※1)の問題を組み合わせることで、あらゆる業界・エンジニア職種に適した独自試験の作成・実施が可能となっております。
導入企業はテック系の企業が多いのでしょうか?
元来はIT企業が多かったのですが、現在は大手飲料メーカーや電気・ガスなどのインフラなど、ユーザー企業の利用も増えています。社内でエンジニアの採用を強化・内製化する動きがDXやコロナを旗印に加速しているため、「Track Test」の導入企業も幅広くなっています。豊富な実績をもとに、各問題ごとの平均スコアをご提供できるのも、弊社の強みです。
選考プロセスの設計から、お客様と伴走されるケースも多いそうですね。
ITからメーカー・マスコミ・商社・小売・官公庁まであらゆる業界業態の企業にサービスを使っていただいているため、それぞれの企業に最適な選考プロセス設計をサポートすることができます。
なるほど、エンジニアの選考においてかなりの知見をお持ちなのですね。
AI時代におけるエンジニア採用選考のスキル評価の変化
近年ではAIの発達が凄まじいですが、エンジニア採用選考のスキル評価への影響はいかがでしょうか?
AIの影響により、選考における企業のスキル評価がどう変化するのかについては、大きく2つに分かれるだろうと考えています。 1つは、選考時には、AIを活用しない純粋なコーディングスキルをエンジニアの実務力として測定したい企業。もう1つは、AIへの指示出しや修正力などAIの活用も含めてエンジニアの実務力として測定したい企業です。
なぜ2つの捉え方が生まれるのでしょうか?
業種や職種によるものが大きいのではないでしょうか。例えばSIer、SES、受託開発会社ではお客様のソースコードを取り扱うこともあるため、情報漏洩の観点からChatGPTなどのAIを活用することは難しいケースが多いです。こういった業界においては基本的にAIを活用せず、コードを書くことがまだまだ残る可能性があります。
一方で、自社の製品開発を行う企業の場合は、ChatGPTをはじめとするAIを活用してソースコードのフィードバックをもらったり、レビューを受けたりするケースが出てくるでしょう。AI活用によって生産性が上がるのであれば、それを推奨する企業も出てくると思います。
「Track Test」では両者に対応できるのでしょうか?
そうですね。問題文章のコピペ対策や、ソースコードのログを記録し、候補者自らが書いているのかの判断をサポートする機能を実装しています。また、今後大学の研究機関との共同研究により、ソースコードの類似性を判断したり、記述の癖など特徴を把握したりといった分野にも投資を始めています。
AI活用での受験を防ぐだけではなく、AI活用自体を把握しながら、その候補者の実装力を把握できるようなプロダクトになっていくことを目指しています。新たな機能をどんどんリリースしておりますので、もしご興味ございましたら弊社のニュース一覧をご覧ください。
ChatGPTはコーディング問題にどこまで回答できるか
現状、AIはどの程度まで「Track Test」に回答できるものなのでしょうか。
「Track Test」は実務に合わせた独自の問題設計をしており、単純に問題文章をAIに貼り付けて回答させても、そのまま満点を取ることはできません。「Track Test」は大学の教授に監修・共同開発いただき、100名以上のクリエイターによって問題が開発されています。
そうなんですね。
アルゴリズム分野では、競技プログラミングサイト AtCoder における最上位クラスの成績であるレッドコーダーが3名、上位7%以上を示す青色以上のレーティングを持つクリエイターが16名所属するなど、日本トップクラスのエンジニアが問題を作成しています。AIを活用するにしても、修正点を読み解いてAIと会話をし、最適な行動にブラッシュアップする必要があり、結果的に自分がコードを書けるレベルでないと難しいです。
AIを活用して0から書くより時間短縮を図ることは可能でしょうが、AIだけで回答を導くことはできないのですね。
その通りです。ChatGPT公式から出ているTechnicalReportでもプログラミングサイト「Codeforces」等での正答率が低いことは公開されています。「Track Test」の問題での検証においても、まだChatGPTには課題が多く見られます。
「Track Test」で検証を行なった背景はどういったものだったのでしょうか?
2023年2月頃からChatGPTによる回答への懸念は社内で出ており、ChatGPT対策チームを組織し、検証を行いました。その後、お客様からも「ChatGPTの影響はどうなのでしょうか?」というお問い合わせを複数いただいたため、現時点でのTrack Testの見解をチームでまとめました。
検証の中で、ChatGPTが特に苦手な領域があったと拝見しました。詳しくお聞かせいただけますか?
ロジカルシンキングと数学は現在のChatGPTでは苦手な領域です。例えば、以下のような問題と回答がありました。(「AI主導の世界においてのコーディングテストツールはどうあるべきか」より)
問題
遠足に、10 円のガムと 100 円のポテトチップスを、それぞれ 1 個以上持って行く方法を考える。ガムを x 個とポテトチップスを y 個持って行く場合の金額より、ガムを y 個とポテトチップスを x 個持って行く場合の金額の方が 180 円多かった。この時、以下の言及のうち正しいものはどれか?
- x は 2 ではない。
- x = 8, y = 6 が唯一の解である。
- x + y = 20 を満たす全ての正整数が解である。
- 上記全てが誤りである。
ChatGPT(GPT-4)の回答
まず、ガムとポテトチップスの価格をそれぞれx個とy個にして式を立てます。
10x + 100y = 10y + 100x + 180
この式を整理してみましょう。
90x - 90y = 180
x - y = 2
ここで、各選択肢について検討します。
・ x は 2 ではない。
この選択肢は正しくありません。x = 4, y = 2 の場合、上記の式は成り立ちます。
・ x = 8, y = 6 が唯一の解である。
この選択肢は正しくありません。先に述べたように、x = 4, y = 2 の場合も成り立ちます。
・ x + y = 20 を満たす全ての正整数が解である。
この選択肢は正しくありません。例えば、x = 10, y = 10 の場合、上記の式は成り立ちません。
・上記全てが誤りである。
上記の選択肢がすべて誤りであることが確認できました。
したがって、正しい選択肢は、「上記全てが誤りである」です。
x が 2 ではないことが誤りであることを主張するためには、x = 2 である例を提示する必要があります。しかしChatGPT は x = 4, y = 2 が解であることを根拠に選択肢が誤りであるとしており、基礎的なロジックで失敗していることがわかります。
これは意外な結果でした。検証の中で、ChatGPTが得意な分野というのはあったのでしょうか。
「Track Test」では初級の問題、例えばFizzBuzz を少し変えただけの問題や、実質 for 文の中で if 文を書くだけなど単純な問題は比較的対応しやすいようです。文字列として認識し、それに近しいネット上のデータを検索することで、アウトプットするという部分までなら、ChatGPTは対応することができます。
ChatGPTが対応できる問題文の長さは?
それも検証してみましたが、極端に長い問題を除き、正答率との間で強い相関は見られませんでした。一般的なコーディングテストの問題文であれば、得点率に影響しないと考えられます。
ChatGPTの苦手な領域に関しては全く使用しない方が良いのか、それとも指示の仕方を改善していくことで活用することも出来るのか。山根さんはどのような見解をお持ちですか?
海外ではステップバイステップで記述するよう指示出しを行い、回答の精度が上がっている研究もあるようです。プロンプトの設計力によって、AIの回答の精度を上げていくことはあり得るように感じています。ただAIへの指示に関して何が最適なのか、まだナレッジ化されていないというのが現状ではないでしょうか。
コーディングテストにおけるAIの検知方法とは
ChatGPTの出現前後で、「Track Test」の高得点者の割合が増えていないかも調査されていますね。
ええ。満点の比率やスコアの割合を見ていますが、ChatGPTの出現前後での変化は見られませんでした。日本国内より海外の方が生成AIやカンニングに関する問い合わせは多いのですが、現状では顕著に生成AIを使用することで高得点を取得しているというデータは出ていません。
生成AIの検知は今後どのように対応されていくのでしょうか?
AIを使用したかどうか、アウトプットだけで判断するのは非常に困難です。今プラットフォーム側として出来るのは、候補者が問題を解答している過程のログ履歴からの分析です。例えば別タブを見ている時間や、実行ボタンを押して検証している時間、画面上でのweb行動が見られない時間などのログをとっているので、それらを元に統計データとしてAIツールを使用した可能性があるかどうか、信頼性スコアを出していく予定です。
「Track Test」にはコピープロテクト機能もあると伺いましたが、こちらはどのような機能でしょうか?
こちらは問題文章の漏洩を防ぐための機能です。問題と解答例が出回ってしまうことを防ぐため、テストプラットフォームは従来、受験会場を設けてリアルで受験を行ってきました。ただ「Track Test」はエンジニア向けであり、コロナ禍という時代背景もありオンラインでの受験が基本です。そのため、問題流出を防ぐためにコピープロテクト機能を実装しています。
大学受験ではカンニングや身代わり受験なども気にされる企業がありますよね。
海外ではエンジニアのテストにおいてもカンニング・身代わり受験や、他人のソースコードをそのままコピペして提出する不正の事例も過去に事例としてはございます。これらを検知し可視化することは「Track Test」でも常に意識しています。
エンジニアのスキルを最大限アピールできる選考体験を
企業のスキル判定について、今後どのように変化していくとお考えですか?
AIの活用を良しとするかどうかも含め、求められるスキルやエンジニア像は業種や職種、企業によってさまざまであると思います。「Track Test」としては、エンジニアが問題を解いたソースコードから分かることを出来るだけ正しく可視化し、企業が求めるスキル領域に合う人材に出会えるようサポートしていきたいと考えています。
「Track Test」の選考体験における工夫について教えていただけますか?
海外のテストツールでは、不正を防ぐために受験中にカメラをオンにして、写っている人数を特定したり、顔認証で履歴書の顔写真との整合性をとるケースもあります。しかしそこまで対策をしすぎると、受験者としては普段にはない緊張感が生まれ、最大限実務力を発揮できなくなってしまいます。
監視されている意識が強くなると、集中できないエンジニアは多いと思います。
そうですよね。ですから、我々は受験者の方々がローカル環境で自分の好きなエディターで開発できるようにし、普段と同じようなリラックスした状態で試験を受けてほしいと考えています。また、お客様とは、エンジニアの実務力を正しく把握することで、お客様の求める実務力にマッチすれば、年齢や経歴などに関わらず、高い年収を提示できるよう、一緒にお取り組みをしています。「Track Test」を通じて、エンジニアの皆さんのプログラミングスキルを可視化することで、最大限の評価を得られる体験を作っていきたいと思います。
エンジニアに伝えたいメッセージはありますか?
「Track Test」の根幹には、公平公正で、エンジニアのスキルを最大限アピールできる選考体験を作っていきたいという想いがあります。求められるポジションに対して必要となるスキルセットや、入社後の活躍可能性をより可視化していくことで、企業とエンジニアのミスマッチのないプロセス設計をしていきたい。そのために、実務に近い形でソースコードをかけるような体験設計を日々考えています。
ライター
編集部オススメコンテンツ
アンドエンジニアへの取材依頼、情報提供などはこちらから