見出し画像

プロンプトエンジニアとしての2ヶ月間の振り返り

初めまして!クラフターでプロンプトエンジニアをしている大野です。
Crewという法人・行政向け生成AIサービスに関わっており、その中でお客様が使うプロンプトのテンプレートを作成しています。

というわけで
クラフターのアドベントカレンダー12日目はプロンプトエンジニアリングをテーマにお届けします✉️!!

・・・とはいえ、私はクラフターに入ったのもプロンプトエンジニアリングを学び始めたのも(もっというと生成AIにちゃんと触れ始めたのも)約2ヶ月前の2023年10月中旬、
まだまだ現在進行形で勉強中ですが、自分の現在地の整理と、これを読んでいる方に何かしら発見があれば良いなと思い、noteを執筆します🖊️


プロンプトエンジニアリングとは

様々な説明ができると思いますが、ここでは以下を引用させて頂きます。

AI(人工知能)から望ましい出力を得るために、指示や命令を設計、最適化するスキルのことです。ChatGPTなどの生成AIを使いこなすために注目されるようになりました。生成AIは、命令(プロンプト)の出し方によって、出力されるコンテンツの質が大きく異なるため、より適切なものを入力するスキルが求められています。

プロンプトエンジニアリング | 用語解説 | 野村総合研究所

具体的には。。。
生成AIと対話するUIとして、以下のような画面があるとします。

クラフターで提供している生成AIサービス、Crewの画面です!

赤枠の入力欄から命令(プロンプト)を入力することで、AIと会話することができますが、命令(プロンプト)の伝え方や詳細度によってAIからの回答に幅があることは、多くの皆さんも経験しているかと思います。あるいは、「生成AI話題になってるけど、なんか上手く使えてる気がしないなあ。。」という気持ちになったことはありませんか?私はありました💭

生成AIの能力を最大限発揮し、意図する回答を得るために、この命令(プロンプト)を実験し調整し決定していくことをプロンプトエンジニアリングと呼んでいます。


なぜプロンプトエンジニアリングが大事なのか

上述されていますが、プロンプトエンジニアリングは
使い手が欲しい回答を生成AIから得るために重要です。

生成AIが、本当に便利に、自分の仕事や人生に役立つ道具として使えるためには
- 生成AI自体の精度の向上
- 生成AI利用者のプロンプト精度の向上
の2つの要素が必要であると考えています。

前者(技術側の向上)は、精度も高く、全員がある程度平等に使えるようになってきていると感じますが、
後者(人間側の向上)は、かなり個人差やばらつきがあると考えています。

生成AIの利用者一人一人がこのプロンプトエンジニアリングの技術を身につけることは助けになりますが
とはいえ、日々の業務に重きを置いていて、時間や労力が割けない方も多くいらっしゃると思うので
私は、プロンプトテンプレート(プロンプトの型。制約や条件はテーマごとに決めておき、一部のみ自分の状況に差し替えて入力し送信することで、短時間で効果的なプロンプトを作成し精度の高い回答を得ることができます)を作成することで、
Crewの中で誰もが生成AIを便利に使えるようにするために日々お仕事しています☺️


私が行っているプロンプトエンジニアリングのプロセス

では実際に、プロンプトテンプレートをどう開発しているのか?
振り返ってみます。
まだまだ試行錯誤中のため、一例として参考にして頂けたら幸いです。

①テーマを決める

何についてのプロンプトを作成するのか決めます。

生成AIって色んなことができますよね。

翻訳する
要約をする
修正をする
続きを書く
- 会話する
- 予想する
- 例を挙げる
- 創作する
  - 文案を作る
  - ストーリーを作る
  - アイディアを出す
  - 計画を立てる
- 教える
  - 説明する
  - 指摘する
  - 分析する
  - アドバイスする

promptia | ChatGPTで「できること」より

色々なことができますが、その中でも、「プロンプトテンプレート化する」ということは、ある個人だけでなく、色々な人に使われるテーマの方が効果的なため、
- お客様(Crewの現在だと、自治体様が多いです)が求めていて
- 生成AIができること
という観点で、テーマを決めています。

過去に作成されたプロンプトテンプレートの例としては、
「文章の要約」「タスクの洗い出し」「懸念事項の洗い出し」「ブログ構成のアイディア」「メール文面作成」「SNS投稿文作成」「アンケート作成」「告知文の作成」
などがあります。(現在Crewでは50種類のプロンプトテンプレートを用意しております!)


②背景情報を集める

テーマが決まった後は、
どんな状況でどんな人が利用予定なのか、
プロンプト入力後どんな回答返ってきて欲しいか、
(書類をアップロードしてその書類から回答を探してくる場合)どんな書類がアップロードされることを想定しているか、
など、お客様と直接会話やチャットすることの多い方から、情報を聞き出します👂

ここでのコミュニケーションによって、プロンプト開発のために必要な情報が得られたり、テストする際の入力内容のイメージが湧いたりします。


③テーマについて調べる

これが、個人的には大事です・・・!
何を調べるかというと、「①のテーマを作成する際に、人間ならどういうプロセスで思考し、各プロセスで何をアウトプットとするのか」です。

なぜこれを知るのが大事かというと・・・
プロンプトにこの情報を含めなければならないからです。

生成AIと会話する際は、プロンプトが全てです。

どんなに生成AIの精度が良くても、プロンプトに含まれている情報が足りなければ、生成AI側ではその情報の中で考えるしかなく、回答の質が下がってしまいます。

ただ、私は、作成するプロンプトのテーマについて、仕事をしたことがないこともあります。

アンケート作成、キャッチコピーの作成、イベントの挨拶原稿作成など。。

「背景・目的・ターゲットを思考してから、実際の質問や文章を作成しているんだな」など言われてみたら分かりますが、自分の頭だけで考えると取りこぼしてしまう要素もあるため、調べながら確認していきます。

(これを検索するではなく生成AIに聞く方法もありますね)
(私が担当しているプロンプトテンプレートを使用した生成AIとの対話は、基本的には継続的な会話ではなく、1度の質問で良い回答を得るために開発しているため、その影響もあり重要視しているかもしれません)


④プロンプトを開発する

調べた内容をもとに、実際にプロンプトを書いていきます。

Crewでは、さまざまな形式を試しながらプロンプト開発を行っております。

どんな制約条件が必要か?
出力形式の指定はした方がいいか?
色々考えながら、開発していきます。


⑤テストする

開発したプロンプトをテストします。

この際、様々な入力値でテストしたり、出力値が正しいか・期待された出力値になっているかなどを見ていきます。

④-⑤は何度も繰り返し、意図した回答が得られるまで、プロンプトを改良していきます。


⑥完成!

意図した回答が得られるプロンプトができたら開発完了です🎉

関係者と最終確認をし、OKであれば、Crewの本番に反映します。
この段階で、お客様も、開発したプロンプトテンプレートを利用できるようになります。


⑦お客様からのフィードバックを元に、改善する

お客様に実際に使って頂く中で、改善の必要があるプロンプトが報告されることもあります。

実際に多くの方に使って頂くことで、テストでは分からなかったことも分かるため、その場合は再度検証・開発し、より良いプロンプトに改善していきます!


2ヶ月間プロンプト開発をやってみて

気づき・発見・最近考えていること・壁・難しさ・テンプレートがあると良いこと・大切にしたいこと・意識していることなど、所感を箇条書きで書いてみます。

  • AIの回答は素案であり、最終的に人間が思考し整え「使う」必要がある。
    →プロンプトを書き始めた時、AIに完璧にそのまま使える回答を求めすぎて、んんん。。。となっていた時期がありました。
    そうではなく、AIからの回答はあくまでアイディアであり素案であり道具なのだと思うと、最良の回答を得るのも大事だけど、それを自社・自分に落とし込んで人間が「使って」いくことが大切なのかなと思いました。

  • プロンプトエンジニアリングには言語化スキルが必要
    →とっても難しかった!!私は普段、雰囲気で喋ったり仕事してしまうタイプだったので・・・でもAIには言葉にしてプロンプトに書かないと伝わらなくて。少しずつ分かってきましたが、他人のプロンプト読んだりすると「なるほど!!」ととても参考になったりします。

  • プロンプトテンプレート作成(汎用化)が結構難しい
    →私が作成しているのはプロンプトのテンプレートであるため、Crewを利用する多数の自治体様が使用します。どこまで汎用化して、どこはカスタマイズできる(入力できる)ようにするなど、枠の範囲を決めるのが大変でした。

  • プロンプトエンジニアリング(手法)は重要だけど、人間が目的や意志を持って「使う」側でいることが大切
    →一番上と似ているけど、生成AIは上手く使えばとても便利な道具だな、という感じがしたので、AIに幅出ししてもらったアイディアで何を目的に何をするか・効率化した時間で何をするかなど、技術側の話ではない話もとても大事なんだろうなと思いました。


プロンプトエンジニアリングが上手くなるために。。

プロンプトエンジニアリングには、以下のようなスキルが必要だそうです。

AIの知識
自然言語処理(NLP)の知識
ドメイン知識とビジネス理解
プログラミングスキル
言語化・文章スキル
英語力
創造力

Techfirm Blog | プロンプトエンジニアリングとは?効果的な設計ポイントと必要スキル

どれもとても納得感があります!!><
まだまだ足りないものが多いですが、伸び代として!前向きに捉えようと思います。

また、私が過去勉強していて参考になったものとしては
・Youtube
・記事(プロンプトエンジニアリングについての記事や、AIのニュースについて)
・他の人が書いたプロンプトをたくさん読む
などがあり

社内では、「生成AIパスポート」という資格で勉強された方もいらっしゃり、とても良いなと思いました。


最後に

長々と読んでいただきありがとうございました☺️

今後も色々コツコツ🐾頑張って行けたらいいなと思います。


明日はカスタマーサクセスの@yukarincomaruさんです!
クラフターのアドベントカレンダーはAdventカレンダーからぜひチェックしてみてください❤️💚

それでは!




クラフターの採用情報はこちら
https://www.wantedly.com/companies/crafter


この記事が気に入ったらサポートをしてみませんか?