見出し画像

[GPTsの作り方解説]ハッカソンで負ける実務GPTsの作り方とは?

GPTsクリエーターのAIMUです。
先日までblueqat・AITech・AIMの3社合同主催のハッカソンに参加しておりまして、自信作を成果物として提出したのですが入賞すらならず……。
今回は負け惜しみの投稿ですwww

題材は「ビジネスで活用できるGPTs」でした。

これまで以下のような複数の記事で作成の途中経過なんかも含めて、MyGPTsを紹介していましたが、ハッカソン自体参加も初めてだというところで戦略が間違っていたなと気付かされました。


敗因の分析

記事を読んでいただいて、お気づきになるかたもいらっしゃるかも知れません。

そう技術を競うハッカソンにおいて、すべての場面で使う人目線で説明しています。
特にこういう既に他のSaasなんかで出来そうな内容の機能が、自然言語でモバイルで出来るという強みをアピールしたかったのですが、IT技術的な部分のアピールではなく、ここもあくまでもユーザー目線。
資料作成という多くの人が実務で行っているであろう部分を、いかに省力化できるか、そのビジネスでいままで利用できていなかった移動時間にスマホで資料作成が進められたら凄いことではないか、というコンセプトに囚われてしまっていて、技術的なアピールがまったく出来てなかったことが敗因だと思います。

GPTsのポテンシャルを探る

モバイルでGPTs使ってもらうには、APIを使わないで作ることが必要で、APIを使わずにいかに高いレベルでのアウトプットをGPTsにやってもらうかが難しいところです。

実際に上記のGPTsを使ってみていただければわかりますが、APIを利用したGPTsであれば、APIの利用を許可する必要がありますがこのGPTsではまったく出ません。

GPTsへのInstructionsとKnowledgeだけで、この機能を実現しています。
一般的なプログラミングであれば、プログラムした通りに動くのが当たり前ですが、GPTsはそうは行きません。
生成AIならではの挙動の揺らぎのようなものがあって、その揺らぎがあってもそれなりの出力をしてもらうために、Instructionsをチューニングしていく必要があります。
多分、この辺りはGPTsに慣れていない方には理解できないところで
「こうしてくれ」と指示書いたのにその通りにならない、そしてその解決方法がストレートに解決できないことが往々にしてあります。

そのために、APIを使わずにどこまで出来るのか、GPTsのポテンシャルを探る必要があります。

そのポテンシャルを知るためには、どうしたら良いか?
そうChatGPT本人に聞くのが一番です。

GPTsのCode Interpreterを理解する

Code Interpreterというのは、今のGPTsの詳細説明を見ると書いてある「データ分析」の機能で、GPTビルダーから見ると機能を使うか使わないかのチェックボックスで利用選択が出来るようになっています。

このCode Interpreterについて、AIMUが概念的に掴んだ説明をすると
GPTsの中に仮想空間(サンドボックス)を一時的に作って、その中でPython言語によるプログラムを実行し、演算したうえでChatGPTの回答を生成する機能です。

かなりざっくりした説明ですが、APIを使わずにGPTsがどこまで出来るかのポテンシャルを知るという部分に大きく関わる部分です。

聡明なみなさんには分かりましたよね?

そうです。GPTsのポテンシャルはPython上でどこまで出来るかに依るということです。
前述のポテンシャルを知るためにChatGPTに聞くと言った部分について漠然と訊いても、はっきり教えてくれません。それどころかハルシネーションで出来もしないことを出来ると回答するかも知れません。
本気でポテンシャルを知るためにどうしたら良いかというと、
「あなたはPythonの◯◯ライブラリを扱えますか?」と訊いてみましょう。
扱えるのであれば、「基本セットの中に入ってるので使えます」「そのライブラリは扱えません」といった回答を返してくれます。

これでまずはスタートとなるポテンシャルを探ることが出来ました。

ただこれはスタートです。基本セットにあるライブラリであれば、かなり追い込んで使えるでしょうし、セットに入っていないライブラリであってもKnowledgeにアップロードして、そのライブラリを扱えるように工夫してサンドボックスへ送ることが出来れば勝利です。

さて、ここからが本題

さぁ、使えるPythonライブラリの用意が出来たところで、ここからが本題。
使えるGPTsを作るために、苦労する場面です。
GPTsのCode InterpreterはPythonプログラムを扱えるなら楽勝じゃないか、と思っているプログラマーの方がいらっしゃるかも知れませんが、そうは問屋が卸しません。
ChatGPTが自分の書いたプログラム通りにプログラムを実行してくれず、GPT側で判断したエッセンスだけを利用して動かそうとしたりします。
はい、これが前述していた生成AIの揺らぎという部分でもあります。

「この手順やってね」と渡した作業手順を、「ここ今使わないから飛ばしました」とかが平気で起こるのです。
で、そんなことするから案の定エラーが出る。
「そのエラーに対策したコード渡してるよね?」と何度も問い詰めそうになりますが、そういう物だと理解して、エラーが出ても「リトライして最終的に解決してくれるならいいか」という境地にまで達します。

また今回のMyGPTsには主に2つのライブラリ「Python-pptx」と「matplotlib」を中心に組み立てていますが、結構がっつりプログラムしたものはGPTsのInstructionsには入りきりません。
8000文字の制限があるからです。

その揺らぎの部分と、8000文字の制限をどうやって乗り越えるかがGPTsクリエイターとしての腕の見せ所です。
メインとなるコードはInstructionsに置くのですが、条件分岐的に発生する処理に関してはKnowledgeにtxtデータなどで置き、ファイル指定して都度読み出す形にしたり、エラー対策部分はプログラムだけでなく通常のプロンプトの中にも生成手順の概要を記載して、その中に盛り込むなどのGPTsならではの作成技術を使うのです。

そして今回の「Presentation PRO +」で頑張ったのは、グラフを生成するmatplotlibライブラリには日本語フォントが組み込まれていないため、日本語が全て豆腐のような文字化けになってしまうのを改善する方法です。
これはKnowledgeに日本語フォントを置き、ちょっと工夫して読み込ませることで改善しました。
ひょっとしたらここが一番時間が掛かったかも知れません。
特にAIMUが選んだフォントがバリアブルフォントだったために、余計に制御に時間が掛かりました。
でも、今ご利用いただければ日本語の記載されたグラフがすんなり生成出来ると思いますよ!

こんな苦労しなくても、API使ったサービス使えば一発だろと思うような技術的な部分や、こんなありふれた機能敢えてGPTsでやらなくても、と思われるかも知れませんが、序盤で書いたようにこのGPTsのコンセプトは「移動時間にスマホで自然言語で資料が作れる」なので、敢えて高いハードルに挑んで克服した部分なのです。
そしていかに誰もが使いやすいGPTアプリにするか、ここが一番目指したポイントなのです。

……と言った技術的な説明を今回のハッカソンへの作品提出の際には、
一切言ってませんでした(爆)

でも、AIMUの目線には実務で使うビジネスパーソンしか見えていなかったので、負けるべくして負けたのかも知れません。

ということで

はい、GPTsもまだ誕生から日が浅く、どういうことがGPTsで行う高いレベルの技術なのかということが、既存のプログラマーの方には伝わらないこともあるのかなと思ってます。
ありきたりなコンセプトでスタートアップなどの方々には刺さらないMyGPTsかも知れませんが、GASの実行制限やAPIのChatGPTアプリ利用上の制限なんかもあるなかで、それらの課題を回避して作成した点の技術的な側面を今回ご説明しました。

まぁ滔々と負け惜しみを言っているだけなのですが、多くのビジネスパーソンに使っていただけるGPTsなので、どうか皆様ご愛用ください。

こんなAIMUを慰めたい、応援したいという方は、スキ、フォロー、拡散などぜひぜひよろしくお願いいたします。

ということで、今回はこの辺で。
またおAIしましょう!
チャオ!


この記事が参加している募集

AIとやってみた

GPTsつくってみた

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