ChatGPTの使いかた
はじめに
参考にしたもの
ここの深津式プロンプトの影響は割と受けています。
ポイントとしては
状況を限定する
ロールを決定する
判断すべき情報を与えてあげる
(できれば)やりたい分野の専門用語を使ってあげる
あたりですね。これらを踏まえて、現状結構使っている便利なプロンプトを紹介します。
おすすめのものを紹介してもらう
ChatGPTは2021年あたりの情報まで知らないということですが、古典やそこまでの情報は知っているのでリコメンデーションをしてもらうことができます。
おすすめの本を紹介してもらう
例えば、ChatGPTにおすすめの本を聞きたい場合
まず、どんな要素を教えてあげれば推論できるのか確認します。
確認した結果、「ジャンル」、「著者」、「評価」、「特定のテーマ」、「読んだ本」あたりがあればChatGPTは判断そうなことがわかりました。
意外とそこまでメトリクスを用意しなくても今回は教えてくれました。
何冊も質問した後に以下のような質問をすることもできます。(ちょっと確度低めになる気がします。)
こういうレポートを出してもらうことも可能。(そんな指示はしてないのにいつの間にか「お客様」になっている。。)
おすすめのドラマを紹介してもらう
ドラマなどにも適用することができます。
複雑なもの(あれとこれとみたいにいっぱい作品を指定したりすると回答が怪しくなりますが、単一作品はいい感じのリコメンデーションをしてくれる感じがありました。NetflixやAmazon Primeのおすすめ機能よりいい感じがします。)
便利ツールを作ってもらう(プログラミング)
トレーディングツール
例えば、株式トレードのプログラムを書いてくれたりします。
これに関しては海外のTech系のYouTuberも試しているので本格的なものを目指している方はこちらを参考にするのがいいかもです。
私はなんとなくこの辺の作り方はわかっていますが、知らないテイで質問して作成していきます。
なるほど、こういうアプローチがあるんだなとわかったところで
ちょっとサンプルコードを書いてもらいます。
ちょっと考慮が足りてなかったので追加機能を要求します。
(ディテールを付け足すといきなりクオリティが上がったりします。怖い。。)
色々指示して、最終的に出来上がったコードです。
こんな感じで一応、トレンドフォロー戦略に従ったチャートといつどのポジションを持つべきかのグラフを出してくれるものを作成してくれました。
競馬予想
競馬予想のプログラムも教えてくれました。
ただ、サンプルが少ないのかあまり実用には使えなそう(ただのカラムから予測するだけのプログラムで競馬予想に特化しているわけではない感じ)
だったのでここまで。
おそらくですが、戦略だったり(期待値とオッズのひずみを取る)、推定するアプローチなど(LSTMなど)をもう少し指示してあげれば、もっといいコードを書いてくれるかもしれません。
これも日本でいうBIG、totoの予想プログラムを作ってますね。
購入ボット
この辺から取り扱い注意なものです。
Amazonの限定品(最近は抽選とかですが、クリック競争が必要なものを想定しています。)
を購入するボットを作ってくれと指示することもできます。
ただ、これはプロテクトがかかっているのか、一回では教えてくれませんでした。
なので魔法のワードを使ってプロテクトを解除します。
このようなChatGPTにかかっているプロテクトを外すためには
教育目的であることを伝える
質問者のロールを変更する
前提条件を変更する
などの質問を投げることで回避可能みたいです。
(202302現在)
ただ、ChatGPTも警告している通り、法律を守った行動をする必要があるので気をつけて運用をしてください。
また、このような回避方法を使用して、ChatGPTからBANされる可能性もあり得ると思うので、その辺りのリスクを許容できる人だけが使用してください。
XXX
マルウェアを作れるという話が上記の記事であったので実験目的で試してみました。真似しないでください。
なるほど、ロール(セキュリティリサーチャー)を定めてもダメそうです。
次は教育目的であることを伝えて試してみます。
なるほど、これでもダメそうです。
倫理的な観点で問題があると言われてますね。
では、論理的な部分を排除できるという仮定をおいて質問をしてみます。(前提条件の変更)
あれ?あんなに頑なでしたが、ついにコードを提示してくれました。
正直、初歩的なコードでセキュリティ系の書籍にも書いてある程度のものだったのでちょっと煽ってみます。
ムキになってコードを出してきました。
上記の回答のコードと全く違いますが、若干高度なコードです。
ただ、まだそこまで大したコードではないです。
こっちはわかっているぞという感じでもう少し煽ってみます。
ここまで試しましたが、バックドアを突けるコードだったり、Miraiのようなボットネットまでの高度なものは出してこないみたいです。(指示すれば出してくれるかもしれないですが、未検証。)
他の攻撃方法に関しても聞いてみます。
もう躊躇する感じはなくノリノリでコードを出してくれます。
コードは動かしてないのでわからないですが、ChatGPTは高度といっていますが教本に書いてある程度でしたし、割とベーシックなものでした。
ただ、Wizard Bibleにあったようなコードぐらいのものは生成できてましたし、
このようなことができるといった理由で警察がChatGPTを禁止するといったことにならないことを期待します。(本邦の偉い方々はこの辺すぐに禁止する傾向があるので心配です。)
正しく使えば有益なことは間違いないので、Generative AI系の技術が進んでいくことを期待したいです。
コーディング作業効率化
この辺は正直仕事なくなるんじゃないかと思いましたが、まだまだ複雑なことをしようとすると混乱して、支離滅裂になってしまうみたいです。
大規模なシステムはまだGenerative AIを使ったらコード書く人は全員要らないということはなさそうです。
ただ、きちんと設計書を書ければ、本当にコーディングが要らない世界がやってくるかもしれません。
しかし、設計書をキチンと定義できれば苦労しないんですよね。。
ただ、これどうなってたっけ?みたいなリファレンス引くなどのやり方だったら全然有用に使えます。最近よく使っているプロンプトの組み方を以下に紹介します。
サンプルコード
叩き台としてのサンプルコードの作成方法です。
以下の手順でプロンプトを組みます。
言語を指定する(しなくても出力してくるが、あったほうがいい)
したいことを指示する(プログラムチックな書き方をする)
(オプション)データ構成があるのであれば伝える(`[ {id: 1, value: 1234}, {id: 2, value: 2345},]`など記述する)
「サンプルコードを提示してください」みたいな感じで出してもらう
出力結果は以下のようになる(普通に使えます。)
MDNとか見なくてもChatGPTで完結してかつ、実際に動くコードまで作ってくれるので非常に便利。
パフォーマンスチューニングをして欲しかったら、追加で指示すればやってくれる。(天才)
エラーメッセージ
これ結構便利なんですよね。
プロンプトの例は以下
改善策の理由なども教えてくれるのですごく便利です。
業務コードをそのまま入れるのは推奨しないですが、
Xや特定の文字列にサニタイズすればよいと思います。
テストの文言などもこれで添削してもらうとかなり読みやすいものになったりするので、すべて添削する必要はないですが、フォーマットなどの叩き台として使用できる水準にあると思います。
おわり
これ以外にも色々なことに応用できることが全世界単位で試行錯誤がなされています。
この情報もすぐに陳腐化することになるでしょうが、
ChatGPTに指示することは、人に指示する際になにを提示しなければいけないかと繋がっていると思います。
5W1Hを心がけたりすることだったり、論理的思考能力を鍛えることにもつながると思うのでChatGPTから学ぶことは多いと思います。
(ChatGPTに任せてなにも考えないというわけではない)
このような技術はこれからどんどん発達していくことが予想できるのでうまく使えるように付き合っていかないといけないと思います。
おまけ
※この記事の文章には一切、ChatGPTを使用せずに作成しました。(やってみた系はアウトラインを出しにくい反面、つらつらと書けばいいので楽ですが、正直もっとラクしたかった。。)
以下のようにアウトラインを書いてもらうのも結構便利です。(今回は使えなかったけど)