ついにGPT Storeがオープン致しました!今回は初学者に向けて解説できればと思います。
具体的には
・GPTsを使ってボットを作りたい人
・プロンプトエンジニアリングを学習したい人
・まだGPTsを作ったことがない人
になります。それではよろしくお願いします!
今回はStudyCoさんの勉強会にて、発表させていただきました。StudyCoさんでも、定期的に勉強会を開催しております。日程についてはこちらから確認してみてください!
動画はこちらから。
GPTsとは
「GPTs」とは、ChatGPTをカスタマイズできる機能です。GPTsを使用することによって、オリジナルのチャットボットを作り、公開することができます。
GPTsは、2023年11月6日に、ChatGPTを開発・提供するOpenAIによって発表されました。現状、GPTsはChatGPTの有料プランである「ChatGPT Plus」でのみ利用可能です。
また、GPTsで開発したチャットボットは、他のユーザーへの共有が可能です。
- Only me(自分のみ)
- Only people with a link(リンクを知っている人のみ)
- Public(一般公開)
よく使うGPTsはたくさんあるのですが、以下3つが特に便利だと感じております
Ai PDF
PDFの要約であったり、GPTが解釈したあと、理解したものを問うことができます。論文などの解釈に役立てることができます。
Video Summarizer AI
Youtubeなど、ビデオの要約をすることができます。技術系の動画をあげている方の動画を見る際に使っています。特に、英語の内容も翻訳も合わせて行ってくれるので便利です!
Slide Maker
こちらは、Code Interpreterの機能でPythonを実行します。こちらからの指示でスライドを作成、そしてダウンロードまで行うことができます。(発表資料の大枠の概要を作りたいときに活用しています。)
例:AI PDF
実際に論文を投げてみると、以下のように解答が返ってきました。
あくまで、要約ですので、これを読んだからといって、一発で理解することは難しいです。ですので、このあと、自分の疑問をプロンプト(指示文)を書いてGPTと会話しながら進めていくという流れになります。
最初から読むとなるとかなり時間がかかりますが、これを使うことで、生産性もあがり、非常に便利だなと感じています。
GPT Storeとは
iOSでいうところの「App Store」のように、GPTsのシェアやマネタイズができます。
効率化 / 教育 / 娯楽など、カテゴリーごとにGPTsが表示されます。
OpenAIは、今年の第1四半期中に、支払いシステムを導入するらしいですが、今のところはGPTのユーザーエンゲージメントに基づいて支払われる、という点しか明らかになっていません。(参考情報:開店したOpenAIの「GPT Store」、開発者たちへの報酬の基準は?)
GPT Builderとは
GPT Builderは、OpenAIが開発したツールで、誰でも簡単に独自の「GPT」を作成し使用することが可能になります。
「Explore GPTs」をクリックすると以下のページに遷移します。
さらに右上にある「Create」というボタンを押すと作成画面にいくことができます。
GPTを作ることができる画面にきました。これがGPT Builderと呼ばれるものです。
左の画面で作成し、右側の画面でその挙動を確認することができます。
作り方①:GPTと会話しながら作成
タイトルの通り、「こういうものを作りたい」ということを話ながら作成していきます。
赤枠上部にCreateとConfigureがあり、Createという画面で、プロンプトを直接打ち込むことでGPTsを作れます。
作り方②:プロンプトで作成
ある程度、プロンプト入力に慣れている人であればプロンプト文で作成することができます。
赤枠上部にCreateとConfigureがあり、Configureという画面で、プロンプトを直接打ち込むことでGPTsを作れます。
さらに、検索機能をつけたい際にはWeb Browsing 、Knowledgeという機能がございます。
Web Browsing :インターネットに接続して情報を取得することができる機能です。
Knowledge:独自の情報のファイルをアップロードして、ChatGPTに参照させることができる機能です。
実際に作成したGPTsを紹介
実際に作成したGPTsを「薬機法チェッカー」と「カスタマイズ営業メール」をご紹介します。
薬機法チェッカー
これはECの業界で、広告文を掲載してものを売るための「広告文を作成」するためのGPTsになります。
2021年頃になるのですが、ECは今よりも盛んでなかったので、広告の掲載のチェックが甘かったです。なので、効果があるという証明がないのに、過剰な表現で効果があると謳う商品も中にはありました。
流石にこれはまずいということで、消費者庁が当時の薬事法というものを改正し、薬機法というものに改名し、きちんと効果があるものでないと広告文に掲載していはいけないというものになりました。
これにより、広告を入稿する前に、きちんとチェックする必要になりました。そのため、広告文のチェックですが、専門家に頼むと費用がかかってしまい、小さい会社には中々難しいところがあります。
しかし、薬機法のチェック項目というのは決まっていますので、それをGPTにインプットさせ、広告文をチェックする際に違反していないかどうかをチェックしてくれる。そんなGPTsとなっています。
試しに、
「これを飲めば1日で痩せるサプリです。欠かさず飲むことで体重が10kg痩せます。」
という、違反にひっかかるような広告文を投げてみます。
以下のように解答が返ってきました。
そして、改善案まで提示してくれます。「適切な運動・・・」など、とても安全な文章にしてくれていますね(笑)
カスタマイズ営業メール
各企業様ごとにカスタマイズされた営業メールを送るために開発しました。これをしなければ当然反応率も悪くなってしまいます。一方、1社ごと丁寧に行っていくとなると、その作業は膨大で、非常に時間と労力がかかってしまいます。
このボットは各会社さんの情報をしっかりと読み込んで、理解した上で、自社の売りたいものをどうやって売るかの営業提案文を考えてくれるボットとなっております。
「サンリオ」さんに向けた営業メールを考えてもらおうと思います。
以前、優秀な営業マンさんにどのようにして、営業を行っているかを尋ねたところ、会社さんの採用情報を見て、そこで「どういう事業しているか」「どういう人を募集しているか」というのを理解するようです。また、上場している企業であれば「IR情報」というのも見るそうです。
これらの情報をもとにして、今後注力していくところはどこかを見極め、そこに自社が売れる、PRできるものを提案していくという流れだそうです。
これらのステップの一部をGPTに代行してもらい、実行しております。以下が実際にGPTが書いた営業メールになります。
これらを、プロンプトを組むだけでカンタンに作成することができ、さらに社内など共有することも可能です。
プロンプトエンジニアリングの紹介
プロンプトを入力する際にはいくつかの決まり事がございます。そのルールは以下のリンクだったり、OpenAIの公式ページの方からも確認ができます。
プロンプトエンジニアリングの基本
以下の項目がプロンプトエンジニアリングの基本になっています。
・最新のモデルを使う
・シンプルなプロンプト、少しずつ要素を足していく
・試行錯誤
・プロンプトのバージョン管理
GPT3.5よりも4、いきなり複雑で長いプロンプトにしてしまうと、どこが違うのか判断しずらくなってしまいます。ですので、引き算というよりも足し算していく方が良いです。
そしてプロンプトのバージョンの管理も重要になってきます。
使っていくと、当然修正点というのもでてきます。また、修正していっても、前の物の方が良いという場合もあります。なので、修正する際にはどこを変えたのか、記録をとっておく。しっかりとプロンプトバージョンを管理するというのも重要です。
管理の仕方としてはGit、簡易的な物でよければGoogleの拡張機能、Superpower ChatGPTというのがございます。
回答の精度をあげるのに必要な4つの要素
- 文脈(目的、状況、背景、AIの役割、話のテーマ、予備知識)
- 指示(命令や質問)
- 入力データ(扱ってほしいデータ)
- 出力形式(出力の条件)
※参考情報を元に改変:プロンプトの要素
これらを意識すると、より、回答の精度は上がりやすくなります。
文脈について
させたい挙動の裏にある背景はどのようなものなのか、状況はどういったものなのか、それにおけるAIの役割はなんなのか、そもそもテーマはなんなのか等。知識がない部分を予備知識として与えておくのも重要であったりします。
指示について
ステップを分けて指示をだしていくことが重要です。
入力データについて
入れるデータがどういうデータなのかを教える必要があります。
出力形式
どういう形式で出力するかを指示だすことです。
4つの要素の具体例・注意点・便利な言葉・テクニック集
ここの内容については以前12月の勉強会で話した内容と同じになるため、記事の方では割愛いたします。
以下のイベントレポートをご参照していただければと思います。
GPTsのプロンプトの中身をご紹介
薬機法チェッカー
背景
最初の一文で役割を与え、2〜3文では知識を与えております。薬機法をチェックする上での「広告文が入力されてくるよ」と広告カテゴリーについても教えておきます。
指示
実際にChatGPTにして欲しいことを伝えます。
薬機法の観点
NGワードもあるのでそれを教えます。また、例を出し、その下には回答例を与える「フューショット」を行い、きちんと例題を解釈してもらった上で回答を生成してもらうようにします。
これで、未知の広告文が入ってきたとしても、しっかりと薬機法の観点に伴ってチェックしてくれるボットとなっております。
カスタマイズ営業メール
背景
先ほどと同じように役割を伝えてあげます。
指示
こちらもステップバイステップで、指示を明確に1文で1指示をしております。
出力形式
回答生成に参考した内容については自分でもチェックできるように、「リンク先」も出力させています。また、たまに英語で出力されてしまうこともあるので、日本語で出力という指示もしております。他にも営業メールなのに企業を褒めたりしてしまうこともあったので、こちらも試行錯誤しながら付け足した指示になります。
以上が本日の勉強会の内容になります。
定期的に勉強会を開催しております。
piponでは定期的にChatGPTの勉強会を開催しております。ChatGPTの技術を知りたい方はぜひこちらからご参加ください!
Kindleを出版いたしました。
先日、kindleを出版し、プログラミング部門の新着ランキングで1位をいただきました。内容はteamsのチャットボットの作成についてです。こちらもよろしくお願いします。
質疑応答
Q1.GPTsはRAG的なことをサクッとできるという認識でいいですか。業務情報などは注意が必要ですよね。MyGPTsができると個人の趣味の備忘録が作れて同じ趣味の方々にシェアできそうですね。
はい、その認識で問題ないと思います。私が作成したカスタマイズ営業メールも採用情報だったり、IR情報をもとに営業メールを作成しております。(RAGは検索して得た情報をさらに拡張させて、生成させる技術になります。)おっしゃる通り、業務情報などをそのまま、ChatGPTで使うのもまずいかなと思います。
Q2.作ったGPTsをAPIから使用することはできますか。
すみません、こちらについては知識がありません。できないとは思いますが、後ほど調べてみようと思います。
Q3.腕利き営業マンの視点は勉強になりました。GPTsにも自分しかしらない情報とか暗黙知識方法を入れると効果がありそうですが、間違っていますか?
はい、おっしゃる通り、自分しか知らない情報であったり、自分が何かその職業のプロフェッショナルであって、その知見をプロンプトに入れてあげると有能なチャットボット、GPTsができるのではないかと思います。
実際に私もある医師の方に医療現場で使えるようなプロンプトをかいていただいたことがあります。やはり、医師の方だからこそ知っているものを入れて頂いたおかげで、かなり精度をあげることができました。
Q4.プロンプトを上手につくることと、ChatGPTの上手な指示の仕方というのは同じようなものでしょうか。
はい、同じ物になるかなと思います。
Q5.一般公開されたGPTsを利用する料金は作成者負担するのでしょうか。それとも利用者が負担するのでしょうか。
こちらは利用者が負担するというものになっています。ChatGPT Plusに入っている方がGPTsを利用することができます。ですので、こちらを利用者が月額20ドルを負担してGPTsが使えるようになります。そして、OpenAIがこの20ドルからクリエーターの方に配分を考えてくれているという形になっております。
Q6.算数や文字数のカウントはなかなか正確に出してくれない印象があります。
確かに、数値は弱いという印象です。「1」という数字もGPTは文字列として認識しています。なので、数式などの計算について弱いのは仕方ないかなと思っています。
Q7.「チェインオブソート」や「ステップバイステップ」を重ねていくと、精度が上がっていくものなのでしょうか。
はい、思考例がわかるようにプロンプトを書き上げる、ステップバイステップと指示をだすことで、回答の精度を上げることが可能です。
Q8.ChatGPTに法律的な質問をするには注意が必要だと思いますが、薬機法チェッカーはそのような問題は大丈夫なのでしょうか。社内で使うツールだから問題ないのでしょうか。
もちろん、法律的な質問であったり、このBotが完璧な回答が作れているとは思っていません。しかし、広告文を毎回専門家に出せるかというと、そうしていくと膨大なコストになる。また、そこを自分達でチェックするというのも中々現実的ではありません。簡易的なものとはなりますが、Botを使って変な表現はないかを確認させる意味で一部役に立つかなという感じです。
Q9.プロンプトを「##」で区切るのは精度を上げるために有効な手段なのでしょうか。
はい、その通りです。ここからここまでが指示を出しているところだよ。というのをわかりやすくするためのものです。これはOpenAIのベストプラクティスというところに載っていたものになります。ですので、回答の精度をあげるのに有効なものだと思っています。
Q10.チャットを往復していく過程で、精度が下がってしまうのはGPTのトークン数の制限によるものなのでしょうか。ちなみにプロンプトはトークンに含まれるのでしょうか。
確かに、入力トークンの制限というものはございます。最初に入力したものは、ずっと会話を続けていくと忘れてしまうというようなことがあります。精度が下がるというより、事前の指示がない状態で、途中の会話の内容から入力文が走っているというようなイメージです。なので、精度がさがってしまう場合もあるかと思います。また、プロンプトもトークンに含まれます。
Q11.プロンプトの「##営業メール##」や「 – 全て日本語で出力してください」といった表現は見やすくするための工夫であって、行動的指示の意味をもつものではないのですか
「ハイフン」や「##」というのはGPTに表現させる上でも重要になってくる表現の一つであると認識しております。こちらも曖昧な表現を避けるために、バッククォートであったりコロンなどで区切ってきちんと指示を出しています。ですので、指示の意味を持つものであると認識しています。
Q12.ナレッジに複数の英語論文をアップして、個人的なチャットボットにしようとしたのですが、うまくいきませんでした。何かアドバイスはありますでしょうか。アシスタンスAPIでもうまくいきませんでした。
どのように指示を出されたのかにもよりますが、例えば複数の英語論文の比較をしたかった。どういう視点で比較するかを具体的に書くことで精度が上がる可能性があるなと思いました。また、背景情報にこの英語論文はどういうもので、どういう観点で比較したいのかを書くことで精度が上がるのではないかと思いました。
Q13.ナレッジタイプでGPTsを作成する場合、アップロードいた情報がGPTに学習されてしまうことはないのでしょうか。プロンプトインジェクションのターゲットになってしまわないか心配しております。
アップロードした情報がどうなるかについてはGPTの利用規約を確認する必要があると思います。すみませんが、この質問の回答箇所となる利用規約が私にはわからないので、答えかねます。申し訳ございません。
Q14.入力データの学習利用を制御することは可能でしょうか。
こちらも利用規約の確認が必要になりますが、オプトアウトを申請することができたと思います。我々の情報を学習に利用しないでくださいということで、申請をだすことは可能だったかと思います。
Q15.入力したテキストやファイルはGPTsの作者に渡るのでしょうか。渡らない場合、その渡らないという保証はどこで確認できますか
はい、これは渡らないです。というのも、私が実際にGPTsを作成して社員に使ってもらっています。そして、その社員が入力したデータというのは、私はみることができていません。保証については利用規約を見る必要があるかなと思います。
Q16.GPT BuilderでGPTにナレッジを与えた際に、そのナレッジの内容を与えた際にそのナレッジの内容を踏まえずに回答したり、ハルシネーションを起こしたりするチャットボットが出来上がるのですが、これはプロンプトエンジニアリングで改善されるものなのでしょうか。
ここもプロンプトエンジニアリングである程度改善すると思います。ただ、そのナレッジに与えた文章が莫大で、その該当箇所をきちんと抽出できていなかったりする可能性はあると思います。なので、このような箇所をプロプトエンジニアリングで改善できるかなと思います。
Q17.GPTsから外部のAPIを呼ぶことはできるのですか。
おそらく呼ぶことができなかったかと思います。(自信ないですが、、、確認が必要ですね。)
→APIはアクションをせっていすれば 呼べるとのことです。(youtubeコメントより)
Q18.GPTsにはPDFのデータは入れられると思いますが、データの拡張子やサイズに制限があるかどうか分かりますか。また、1つのGPTにデータはいくつも入れられるのでしょうか。
制限はあったとおもうのですが、いくつまでというのはわからないです。申し訳ございません。
Q19.GPT Storeで似たようなGPTsがたくさんありますが、良いGPTsを見つけるコツなどはありますでしょうか。
確かに似たGPTsというのはたくさんありますが、トレンドでランキング上位のものはしっかり使えるGPTsかなと思います。
Q20.ChatGPTは数値に弱いということですが、データ分析が主なボットを作成することは難しいのでしょうか。
これはCodeInterpreterという機能やデータアナリシスアドバンスドというものがございます。これは数値をGPTが扱うのではなくて、数値をプログラムコードで扱わせることで、そういった数値の処理をPythonで処理して実行までさせることができます。
Q21.GPTsを作成する時にそのような(CodeInterpreterを利用する)指示を出せますか?
すみません、わたしはCodeInterpreter用のBotというのを作ったことがないのでどうやるかわかりかねるのですが、それ用のBot(データを上げるだけで可視化、解析ができるというようなGPTs)があるというのは認識しております。しかし、その裏側がどのような動作になっているかまではわからないです。
Q22.GPT4には利用に上限あありますが、GPTsにも同じように利用上限はあるのでしょうか
GPTsの利用に上限はありません。
Q23.作成したボットは他社に共有する際に正確性がとても重要かと思いますが、その正確であるかをどこで判断されていますか。
非常に難しいところかと思います。LLMの正確性を評価するのは本当にさまざまな方が論文であったり、記事であったり出していると思います。なので、一概には言えないおころであります。なので、自分が使って、自分が使えるかどうか判断しているって感じです。
仕事で行う際には「プロンプトフロー」というアジュールのサービス(一部のプロンプトを変えたときに回答がどうなるかをまとめ、正しい回答とどれくらい違うかっていうことをスコアで出してくれます。)を活用しております。そういのを活用しながら、作成したLLMのBotを評価しております。
Q24.複数の論文を与えてメタ分析をさせたいです。最大のファイル数や文字数はどの程度でしょうか。
APIの文字数は1万2600だったと認識しているのですが、おそらく8000字ぐらいは余裕だと思います。正確な回答ができず、申し訳ございません。
Q25.AI PDFは複雑な図面や画像を含んだPDF文書えも処理できるのですか。GPT4はテキストベースの内容以外は困難なようですが。
図面は試したことがないので、わからないです。AI PDFについても確認する必要があるので今は答えられないです。申し訳ございません。
Q26.先ほどの質問の続きです、膨大なナレッジを与えた際に有効なプロンプトエンジニアリングについてもう少し具体的にご教示ねがえないでしょうか。GPT Builder でGPTにナレッジを与えた際にそのナレッジの内容を踏まえずに回答したり、ハルシネーションを起こしたりするチャットボットが出来上がるのですが。
ナレッジの情報がどういうでデータなのかであったり、そのナレッジの情報をどうやって活用したりするのかというところがわからないので、なかなか難しいですね💦
Q27.新しいアクションを作成というボタンが気になります。今日のデモの範囲外だと思いますが、後日、別の勉強会で題材にする予定はありますか。
はい、私のほうでも調べ、もし勉強会にできるようであれば発表させていただきます。
Q28.ChatGPT、Teamsもでたことで、今後さまざまな企業で社内用アプリとしてGPTsもどんどん作成、使用されると思っています。しかし、RAGや社内DBを使用するとなるとベクトルDB、LangChain等で作成する選択肢もあると考えています。GPTsとLangChainによるアプリの住み分けといいますが、どういった方向でのアプリがGPTに適しているのでしょうか。
GPTsであれば、きちんとLangChainを使うと大規模なデータや処理を実現できるかなと思います。なので、データ容量が多いものや複雑なデータを分析する際にはLangChainを利用すればと思います。
一方、GPTsは開発が必要ない分、プロンプトのみで簡単にすぐに作れる。ただし、ナレッジ容量の制限があったりするところもあるので、簡易的なGPTs(薬機法チェッカーなど)でもあれば役に立つというのを現場目線で考え、作成するのがいいかなと思います。
本日は以上になります。ありがとうございました。