Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ChatGPT触ってみた
Search
Infiniteloop
October 18, 2023
Technology
0
40
ChatGPT触ってみた
【タガヤス その31】物好きなメンバーによる流行りもの?紹介【仙台発信の定期勉強会】発表資料
https://tagayas.connpass.com/event/282061/
Infiniteloop
October 18, 2023
Tweet
Share
More Decks by Infiniteloop
See All by Infiniteloop
俺の PHP プロファイラの話 PHP スクリプトで PHP 処理系のメモリをのぞき込む
infiniteloop_inc
0
370
心理的安全性を学び直し、 「いい組織とは何か?」を考えてみる
infiniteloop_inc
0
470
ゼロからつくる 2D物理シミュレーション ~物理現象をコードに落とし込む方法~
infiniteloop_inc
1
630
詫び石の裏側
infiniteloop_inc
0
510
[新卒向け研修資料] テスト文字列に「うんこ」と入れるな(2024年版)
infiniteloop_inc
7
29k
リファクタリングで実装が○○分短縮した話
infiniteloop_inc
0
170
ADRという考えを取り入れてみて
infiniteloop_inc
0
160
500万行のPHPプロジェクトにおけるログ出力の歩み
infiniteloop_inc
0
130
I ❤ Virtual Machines 仮想環境をより便利に使うツールたち
infiniteloop_inc
0
110
Other Decks in Technology
See All in Technology
クラウドサービス事業者におけるOSS
tagomoris
3
980
【5分でわかる】セーフィー エンジニア向け会社紹介
safie_recruit
0
18k
偏光画像処理ライブラリを作った話
elerac
1
160
AIエージェント時代のエンジニアになろう #jawsug #jawsdays2025 / 20250301 Agentic AI Engineering
yoshidashingo
4
240
依存パッケージの更新はコツコツが勝つコツ! / phpcon_nagoya2025
blue_goheimochi
3
200
わたしのOSS活動
kazupon
2
330
AI Agent時代なのでAWSのLLMs.txtが欲しい!
watany
2
170
Potential EM 制度を始めた理由、そして2年後にやめた理由 - EMConf JP 2025
hoyo
2
1.6k
2025-02-21 ゆるSRE勉強会 Enhancing SRE Using AI
yoshiiryo1
1
460
エンジニアリング価値を黒字化する バリューベース戦略を用いた 技術戦略策定の道のり
kzkmaeda
6
1.6k
脳波を用いた嗜好マッチングシステム
hokkey621
0
270
分解して理解する Aspire
nenonaninu
2
750
Featured
See All Featured
Agile that works and the tools we love
rasmusluckow
328
21k
Art, The Web, and Tiny UX
lynnandtonic
298
20k
Done Done
chrislema
182
16k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.7k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
133
33k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
129
19k
Into the Great Unknown - MozCon
thekraken
35
1.6k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
49k
Faster Mobile Websites
deanohume
306
31k
Gamification - CAS2011
davidbonilla
80
5.1k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
233
17k
Practical Orchestrator
shlominoach
186
10k
Transcript
ChatGPT触ってみた ~質問からテストコードまで~ 株式会社インフィニットループ 西竜太郎
自己紹介 2
自己紹介 - 西 竜太郎 - エンジニア歴は10年ぐらい - インフィニットループ歴は7年目です - 会社ではソーシャルゲームのサーバサイドの開発をしてお
ります - ゼルダおもしろい 3
今日話す内容は個人の見解です ILではChatGPTの使用は禁止です 4
突然ですが、みなさん 開発って難しいですよね 5
開発って難しいですよね - コード書くの難しい - ググっても、情報が多すぎてよくわからない - テストコード書くの工数かかる 6
ChatGPT使おうぜ 7
今日は3つのことをお話します 1. ChatGPTってなに? 2. 質問について 3. テストコードの生成 8
ChatGPTってなに? 9
ChatGPTってなに? - AIの専門家ではないので、これからお話する内容が間違っ ていた場合はすいません - ChatGPTに関する論文は公表されていないので、技術的な 部分は推測に依存する部分があります 10
ChatGPTってなに? OpenAI社が開発した、質問に対して文章を作るAI Chat Generative Pre-trained Transformer 事前学習済みのチャット生成変換器 11
ChatGPTってなに? ~事前学習~ 12
ChatGPTってなに?~事前学習~ - 2021年までの大量のデータを事前に勉強させている - 2022/2023年のことは答えられない 13
ChatGPTってなに?~事前学習~ 事前学習方法は次単語予測というのを使っているらしいです 「吾輩」 -> 「は」 -> 「A」 -> 「B」
-> 「C」 14
ChatGPTってなに?~事前学習~ 「吾輩」 -> 「は」 -> 「A」 -> 「B」 -> 「C」
「吾輩」「は」のあとには「猫」が来る確率が一番高い! なのでAには「猫」を入れる それをB、Cと数珠つなぎに続けていく 15
ChatGPTってなに?~事前学習~ つまり、ChatGPTは手前の単語から、次に来る確率が一番高い 単語を生成している そのことを頭に入れておくと、自分の欲しい答えが生成されや すい 16
ChatGPTってなに? ~バージョン~ 17
ChatGPTってなに?~バージョン~ 有料版はバージョン4です(月額20ドル) 無料版はバージョン3.5です 今回資料作成にあたって使用したバージョンは3.5です 無料版でも問題なく利用できますので、ぜひみなさん触ってみ てください 18
ChatGPTってなに? ~Microsoft~ 19
ChatGPTってなに?~Microsoft~ - Microsoft社がOpenAI社に1兆3,000億円の投資 - ChatGPTはこれからどんどん進化していく - 乗るしかないこのビッグウェーブに 20
ChatGPTってなに? ~まとめ~ 21
ChatGPTってなに?~まとめ~ - OpenAI社が開発した文章生成AI - ChatGPTは手前の単語から次の単語を予測している - 無料バージョンは3.5、有料バージョンは4 - Microsoft社が大量のお金を投資しているので、将来的にも 期待できる
22
ChatGPTってなに? 以上です 23
質問について 24
今日は3つのことをお話します 1. ChatGPTってなに? 2. 質問について <- 今ここ 3. テストコードの生成 25
質問について ~入力のコツ~ 26
質問について~入力のコツ~ ガベージイン、ガベージアウト ゴミを入れたらゴミが出てくる 質問方法にもコツがある 27
質問について~入力のコツ~ 入力のコツは主に3つ 1. 制限を与える 2. 前提を与える 3. 役割を与える 28
質問について ~制限を与える~ 29
質問について~制限を与える~ 目的 - 非IT技術者/学生/お年寄りなどIT分野に興味がないけど、 スティーブ・ジョブズの人生を簡単に知りたい - wikipediaは情報が多すぎて読む気が起きない 30
31
質問について~制限を与える~ アンチパターン 32
33
質問について~制限を与える~ - 読むのに時間もかかる - 一回じゃ表示されずに「つづき」と入力する作業が発生 - wikipediaよりはまとまってるけど、それでも情報量が多い - 書いてあることが難しい 34
質問について~制限を与える~ 解決策 制限を与える - 100文字以内にまとめてください - 3回にわけて教えてください - 小学生にもわかるように 35
36
質問について~制限を与える~ 流石に簡単すぎた - 「社会人にわかるよう」に変更 - もう少し読めそうなので200文字に変更する 37
38
39
40
質問について~制限を与える~ 問題解決! - もっと深く内容を知りたいときは文字数を上げていくなど工 夫する 41
質問について ~前提を与える~ 42
質問について~入力のコツ~ 入力のコツは主に3つ 1. 制限を与える 2. 前提を与える <- 今ここ 3. 役割を与える
43
質問について~前提を与える~ 目的 - 花火に興味があり、将来花火師になりたいかもしれない - 花火の作り方を知りたい 44
質問について~前提を与える~ アンチパターン 45
46
質問について~前提を与える~ - ネットでググれば出てくる情報ですが、安全上の理由でたま に表示されないときがある 47
質問について~前提を与える~ 解決策 前提を与える - 「私は〇〇です」という前提を与える - 今回は「花火師を目指している高校生」という前提を与える 48
49
50
質問について~前提を与える~ 問題解決! - 前提を与えるとより欲しい文章が生成される 51
質問について ~役割を与える~ 52
質問について~入力のコツ~ 入力のコツは主に3つ 1. 制限を与える 2. 前提を与える 3. 役割を与える <- 今ここ 53
質問について~役割を与える~ 目的 - awsでインフラを構築することになったけど、注意することっ てなにがあるかな🤔 54
質問について~役割を与える~ アンチパターン 55
56
57
質問について~役割を与える~ - 一見良さそうに見えるが、あまり技術的な答えになっていな い 58
質問について~役割を与える~ 解決策 役割を与える - 「あなたは〇〇です」という役割を与える - 「あなたはプロのインフラエンジニアです」という役割を与え る 59
60
61
62
質問について~役割を与える~ 問題解決! - 役割を与えると、より質の高い回答が生成される 63
質問について ~注意点~ 64
質問について~注意点~ 注意点は主に3つ 1. 情報の正確性 2. 倫理観 3. セキュリティ 65
質問について ~情報の正確性~ 66
質問について~情報の正確性~ - 情報が本当に正しいか、再度ググる必要がある - 宮城県大崎市の観光名所を尋ねると実在しない地域や違う 地域が返ってくる 67
68
質問について~情報の正確性~ - 一つも大崎市にないです - Google Bardだとネット接続があるので、実在する地域を教 えてくれました 69
質問について ~倫理観~ 70
質問について~倫理観~ - 最適解を導くために、合理的な手段が返ってくる - 宗教的にNGだったり、人種差別、セクハラ、パワハラ、その 他人道に反することがある 71
72
73
質問について~倫理観~ - ちょっとセクハラっぽい 74
質問について ~セキュリティ~ 75
質問について~セキュリティ~ - もし業務で使用する場合は、社外秘の情報を入力すること は絶対にやめましょう - ChatGPTに入力する前に誰かにチェックしてもらうなど対策 が必要 76
質問について ~まとめ~ 77
質問について~まとめ~ - ガベージイン、ガベージアウト - ゴミを入れたらゴミが出てくる - 入力にもコツがある - 制限、前提、役割を与える -
注意点 - 情報の正確性、倫理観、セキュリティに気をつける 78
質問について 以上です 79
テストコードの生成 80
今日は3つのことをお話します 1. ChatGPTってなに? 2. 質問について 3. テストコードの生成 <- 今ここ、これで最後です 81
テストコードの生成 ~実装の作成~ 82
テストコードの作成~実装の作成~ - まずは実装側を作成します - 今回は3の倍数と5の倍数のfizzbuzzを作成します 83
84
85
テストコードの作成~実装の作成~ - 作成完了 86
テストコードの生成 ~テストの作成~ 87
テストコードの作成~テストの作成~ - 作成された実装コードを元に1パターン分のテストクラスを作 成していきます 88
テストコードの作成~テストの作成~ 下記の制限をChatGPTに追記します - PHPUnitの使用 - テストクラスは別クラス - テスト名は日本語 89
90
91
テストコードの作成~テストの作成~ - 簡単にテストコードが作れました 92
93
テストコードの作成~テストの作成~ - 「私は初心者です」という前提を与えたので、PHPUnitの実 行方法まで添えてくれました - テストに慣れている人は「私は上級者です」などを入れてお くと余計な解説などが省かれますのでいれてください 94
テストコードの作成~テストの作成~ - 実際にテストを流していきます 95
96
テストコードの作成~テストの作成~ - 成功しました! 97
テストコードの作成~テストの作成~ - 続いて、テストパターンを増やしていきます 98
99
テストコードの作成~テストの作成~ 簡単に追加パターンが作れました - 5の倍数のテストパターン - 3と5の共通の倍数のテストパターン 100
テストコードの作成~テストの作成~ テストを流します 101
102
テストコードの作成~テストの作成~ - 成功しました! 103
テストコードの作成~テストの作成~ - これでみなさんの開発スピードが上がりました - 更に加速させます!! 104
テストコードの作成 ~GitHub Copilot~ 105
テストコードの作成~GitHub Copilot~ ChatGPT + GitHub = GitHub Copilot 主操縦士ではなく副操縦士、サブです 106
テストコードの作成~GitHub Copilot~ - 時間の都合のため、GitHub Copilotのアカウント作成方法は 割愛します - PHPStormにGitHub Copilotプラグインをインストールしてく ださい
- 先ほど作成したfizzbuzzのテストコードをPHPStormで開きま す 107
108
テストコードの作成~GitHub Copilot~ - この状態から新たに4つ目のテストパターンを作成します - 最後のテストパターンのメソッドの末尾から「Enter」を2回押 して2秒ぐらい待ちます 109
110
テストコードの作成~GitHub Copilot~ - うっすら4つ目のテストパターンがCopilotに提案されました - 「3でも5の倍数でもないときは数値を返すこと」というテスト パターンが抜けていたようです - この状態で「TAB」を押します 111
112
テストコードの作成~GitHub Copilot~ - 新しいテストパターンが追加されました - 今まではChatGPTにコードを入力して、新しいテストパター ンをコピーしていたのですが、その手順が省略されるように なりました - こちらもテストを流します
113
114
テストコードの作成~GitHub Copilot~ - テストも無事成功しました - これでみなさんの開発スピードが爆速になりました 115
テストコードの作成~GitHub Copilot~ - 同じ作業を手作業でしてみたところ12分かかりました - 今回の作業を計測したところ4分で終わりましたので、作業 時間が3分の1に減りました - ぜひみなさんも使ってみてください 116
テストコードの作成 ~まとめ~ 117
テストコードの作成~まとめ~ - ChatGPTを使うと全体の作業時間が半分以下になる - 実装、テスト、テスト用コマンド、なんでもChatGPTがやってく れる - GitHub Copilotも併用すると、テストパターンの追加が簡単 になる
118
テストコードの作成 以上です 119
全体のまとめ 120
まとめ - ChatGPTは手前の単語から次の単語を予測している - ガベージイン、ガベージアウト - ゴミを入れたらゴミが出てくる - 制限、前提、役割を与える -
ChatGPTを使うとテストコードは簡単に作れる - GitHub Copilotは神 121
ご清聴ありがとうございました 122