1
/
5

【GIG勉強会Vol.68/GIGLT.56】ChatGPT(GPT-3)の仕組みを解説&GitHub CopilotでAIと一緒にコードを書こう

こんにちは! 広報の北村有(ゆうゆう)です。GIGでは毎月さまざまなテーマで勉強会を開催しています。

今回は「ChatGPT(GPT-3)の仕組み」と「GitHub CopilotでAIと一緒にコードを書こう」という、どちらも“AI”を軸にしたテーマでお話いただきました。

ChatGPT(GPT-3)の仕組みを解説

■登壇者プロフィール

坂本 昂輝(さかもと こうき):バックエンドエンジニア。大阪大学大学院情報科学研究科修士課程修了。学生時代はネットワーク研究を行う。2018年8月にGIGに入社。

坂本:
ChatGPT(GPT-3)は、人工知能研究所「OpenAI」が提供する、AIのことです。GPT-3と呼ばれるプログラムを元に動いています。

ChatGPTは、「InstructGPT」と呼ばれるモデルを、対話に特化させたものです。InstructGPTは、とても賢いプログラムであるGPT-3を、扱いやすいようにチューニングしたものだと考えてください。アラインメント済み(人種差別や偏見などビジネス界隈で使うのに相応しくない表現などを排除する処理)で、RLHF(Reinfordement Learning Human Feedback)と呼ばれる強化学習機能で、どんどん賢くなります。

画面右側にあるチャット欄で、どんどん質問を繰り返していけば、溜まったデータによってみるみるうちに学習していく仕組みです。

坂本:
GPT-3(Generative Pre-trained Transformer-3)とは、ざっくり言ってしまうと「文章の続きを生成してくれるモデル」です。3000億単語にも匹敵する、600GBものテキストデータを保有しています。「Scaling Law」は、このテキストデータが増えれば増えるほど優秀になる法則のことです。

坂本:
GPT-3の仕組みとして、ざっくり上記画像のような5つの過程に沿って処理されています。まずは「文章をコンピュータにわかるように変換」します。

坂本:
たとえば「私は可愛い猫が」という文章があったとして、この文章をコンピュータにもわかるよう「2進数」のベクトルに変換するんです。ただ、単語のほとんどは「0」に変換されるため、無意味な計算が大量発生してしまいます。そのため「サイズを圧縮」します。

坂本:
文章を2進数に変換すると、ほとんどが「0」に変換されるため、計算量も膨大になりますよね。上画像のように、8次元から2次元にサイズを圧縮し、計算しやすくします。そして、下画像の要領で、文章中にある単語それぞれに「位置情報」をつけていくんです。単語が何番目にあるかをマーキングしていくイメージですね。

単語に番号をつけたら、着目単語をランキング化します。たとえばInstagramから抽出したデータを元にすると、「可愛い」が1位、「猫」が2位にランクインする、といったような感じです。

坂本:
こうやって順番づけされた、過去の膨大な学習データに基づいて、「この単語の次はどの単語がくるか」を予測しています。ニューラルネットワークと呼ばれる、脳のニューロンとシナプスの関係を数式で表したものを活用し、次々と学習→抽出を繰り返しているんです。

坂本:
実際にChatGPTで「私は可愛い猫が」と入力したら、「好きです」と出て感動しました。ただ、ChatGPTを使うときには注意点があります。Google検索などのように、情報を調べる意図で使用すると虚偽の内容が出力される場合があるため、注意しましょう。

GitHub CopilotでAIと一緒にコードを書こう

■登壇者プロフィール

石倉 彰悟(いしくら しょうご):Workship開発チーム・カスタマーサポートチームのマネージャー。ソーシャルゲーム開発を行うSAPでカスタマーサポートとして従事した後にエンジニアに転身し、大規模決済システムやEC系Webサービス等の構築を経験。2018年にGIGにジョイン。

石倉:
まず「GitHub Copilot」について説明します。GitHub Copilotは、「一緒にコーディングしてくれるナビゲーター(AI)」です。コンテキストに沿って、次に書くコードを予測してくれます。たとえば、いま書こうとしている開発言語やクラス、メソッドの流れから、次のコードを予測してくれるんです。

石倉:
普段使っているエディターでコードを打つと、その内容がGitHub Copilotに連携されます。その連携された内容を元に、候補を提案してくれるんです。実際に薄い文字でサジェストしてくれます。提案は受け入れても受け入れずとも問題ありません。その結果がまたGitHub Copilotに連携され、次の候補が提案される……の繰り返しです。

石倉:
仮に、htmlやcssを使って「静的なポートフォリオサイト」を作ってみるとします。すると、や<h1>タグに「ポートフォリオ」と入力した段階で「ここには自己紹介や作品などを掲載していきます」とサジェストを出してくれるんです。</p> <p>またスクロールリンクをつける場合も、<div>タグを使って「scroll top」と入力した段階で、「<a href=”#top”>トップへ戻る</a>」とサジェストを出してくれます。GitHub Copilotを活用すれば、これまでに比べて格段に早く作業が進み、Webサイト制作を効率化できます。

石倉:
GItHubが2000人の開発者に対して行った調査では、60〜75%がGitHub Copilotを使うことによって満足度の高い仕事に集中できると回答。87%が反復作業において精神を削られることが減ったと感じているようです。

95人の開発者を集め、そのうち45人はGitHub Copilotを使用、残りの50人はGitHub Copilotを使用しない形でHTTPサーバのコーディングをしてもらったところ、以下のような結果になりました。かかった時間やタスク完了率などを比べてみても、GitHub Copilotを使用したグループのほうが生産性が高い結果が出ています。

石倉:
実際にGitHub Copilotを2週間試してみたところ、想定以上に「助かる!」と感じる場面が多いです。実際の業務だと、さらに本領を発揮してくれるイメージがあります。コーディングしている最中に集中力が途切れることが少なくなったり、新しい発想をもたらしてくれる感覚があったりと、メリットが多いです。

石倉:
デメリットとしては、GitHub Copilotは月額有料のサブスクリプションサービスなので、費用が発生する点でしょうか。ただ、60日間の無料お試しがついているので、興味を持たれた方はぜひ試してみてください。僕は今後も使い続けます!

GIGではGood is goodなチームを築ける仲間を募集しています!

今回の勉強会では「ChatCPTの仕組み」「GitHub Copilotでコードを書く方法」について詳しくお話いただきました。どんどん進化していくAIと、上手く付き合っていけるようになりたいですね。

現在、GIGでは「一緒に学びながら成長していきたい!」と意欲のある仲間を募集しています。興味のある方は下のボタンからお気軽にご連絡ください!

(この記事はGIG BLOGからの転載です)

株式会社GIGでは一緒に働く仲間を募集しています
5 いいね!
5 いいね!
同じタグの記事
今週のランキング