Better Software Testing

ソフトウェアテストをもっと良くしたい

Prompt Engineering Guideを読んだ

エンジニアやってる限りAIから距離を置いて仕事をするのは難しくなるだろうなと思ったので、Chat GPTに課金して色々触っている。

私の主な用途はスクリプトの自動生成およびデバッグ作業だが、今のところ大変役に立っている。しばらく前に「GitHub Copilotで開発生産性が70%向上した」的な記事を読んだ記憶があるが、あながち嘘ではなさそう。というか、現在コンピュータサイエンスを学んでいる学生は生成AIを使ってソフトウェアを開発するなんて当たり前にやってしまうんだろうし、市場で生き残っていくためには必要な業務知識になるかもしれないとすら感じた。

  • 何らかの処理をおこなうコードを書きたいときにはサンプルスクリプトを生成してくれるし
  • 出力されたコードに対してわからないことがあれば解説してくれるし
  • コードを自分の環境で実行してエラーが出たときは、エラーの原因を推測してくれる

ので、毎度ブラウザでタブを開きキーワード検索をしてそれっぽいページを複数開き一つづつ確認する、、といった手順をスキップしてくれるためちょっと感動した。生成AIを使うのと使わないのとでは生産性に差が出てしまう時代が来たのだと思う。

AIに自分の意図するコードや情報を出力してもらうためには上手なプロンプトを渡して上げる必要があるので、Prompt Engineeringを勉強しようと思った。

www.promptingguide.ai

Prompt Engineering Guiteはプロンプト作成の基本的なテクニックから上級者向けの技術、関連する資料やアプリなど網羅的に情報がまとまっていて、大変ありがたかった。特に、Adversarial PromptingではAIに対して悪意のあるプロンプトを実行する方法がいくつか紹介されており興味深い(なお、現在ではいずれも対策されているこのこと)。

 

現時点におけるChat GPTへの所感としては、「自分が求める出力を得るためには生成AIに寄り添った入力を与える必要があるんだなぁ」ということ。この点においてはまだまだ発展途上だと感じた。プロンプト自体は自然言語で書いているが、Prompt Engineering Guideを読む限りは、生成AIに対して意図や文脈や例を与える必要があるし、これはこれでなんだかプログラミングをしているような気持ちにもなった。あるいは、Prompt Engineeringって21世紀のパンチカードっぽいなぁ、とも。

来年にはオライリーからもPrompt Engineeringの本が出版されるようなので楽しみである。

www.oreilly.com