見出し画像

【knowledge解説】カスタムGPTで 『AIシャーロック・ホームズを作成

今月ついに公開になったGPTストア
便利になるとは思っていましたが予想以上ですね

私が使ってみた中でイチ押しなのは
consensusという論文検索とwrite meという執筆GPT

ふとした疑問に論文で答えてくれるのは好奇心を満たしてくれるし
ふとしたアイデアを簡単な小説にすぐに変換してくれるのは面白い

遊んでいるとどんどん時間が溶けていきます
どちらも楽しいので、ぜひ一度試してみてください

今回は「そんなGPTを自分でも作りたい!」という方のために
GPT作成の際に重要となる機能『knowledge』について調べてきました

カスタムGPTの知識となる『knowledge』
どんなことが出来て、どう使えばいいのか徹底研究しましたので
これからGPTを作成予定の方は最後まで読んでみてください


カスタムGPTとは

カスタムGPTとはあらかじめプロンプトを設定しておくことで
特定のタスクに特化した振る舞いをしてくれるchat GPTの機能です

カスタムGPTを使うことで
これまで同じタスクも毎回プロンプトを作っていたのが
必要なカスタムGPTを選ぶだけで出来るようになりました

またGPTストアが開設されて
他のユーザーが作ったGPTを利用することも可能に

様々なタスクをプロンプトを考えずに
GPTストアから選ぶだけで簡単に実行ができます

knowledgeとは

knowledgeとはカスタムGPTを動かす際に参照する『知識』にあたるもの
あらかじめファイルをアップロードすることで
その中身を参照した上で回答を生成してくれるようになります

通常のチャットGPTでは分析できる文字数に制限があります
通常のプロンプトの他に、会話履歴や設定も一緒に分析して回答を生成してくれています
このため会話を続けていると前の会話を忘れていってしまうわけですね

knowledgeを使うことによって適宜参照して回答を生成
文字数制限を超えて必要な情報をあらかじめセットしておけます

knowledgeの使い方

【create a GPT】を開き【Configure】

【knowledge】にファイルをアップロード

  • 使えるファイル形式はtxtやpdfなど一般的な拡張子に対応

  • アップロードファイルは最大20個

  • ファイルは合計で512MBまで

※ドキュメントやプレゼンテーション内の画像については分析不可
(将来的にサポート予定との記載が公式サイトにあります)

【Code interpreter】にチェック

knowledgeの仕組み解説

knowledgeを解説してるブログ等ありますが
プログラマーが難しく解説していたりで、初心者には理解できないものばかり

なのでここでは私が実際に試しながら
初心者にも理解しやすいように仕組みを解説します

全文を要約

青空文庫より小説をダウンロードして全文要約に挑戦
今回は日本三大奇書のひとつ『ドグラマグラ』を使います

入力:全文を要約して
 
出力:『ドグラ・マグラ』は夢野久作によって書かれた小説で、非常に複雑で実験的な作品です。主人公は精神病院で目覚め、自分が誰であるか、なぜそこにいるのかを思い出せません。彼は自分のアイデンティティと過去を探求し、不可解な出来事、夢、幻覚、そして記憶の断片を通じて真実を探ります。

この物語は、精神分析、哲学、そして超自然的な要素が交錯するもので、主人公は自分の存在と現実の性質について深く考察します。多くの登場人物、複雑なプロット、そして予期せぬ展開が含まれており、読者に深い印象を残します。

詳細な内容は書籍を読むことをお勧めしますが、この要約が小説の雰囲気を少しでも伝えることができれば幸いです。

うん?これはダメな気がする

実行されたコードを見てみると冒頭500字だけを読み込んでいるようです
これでは全文要約にはなりません

解説
chat GPTはknowledgeの内容全体を理解しているわけではありません
そのため「全文を要約して」と入力しても出来ません
一度に入力出来る制限内で『どこを』と指定する必要があります

入力:冒頭5000字を取得して要約して
 
出力:『ドグラ・マグラ』の冒頭5000字では、物語の主人公が精神病院のような場所で目覚める様子が描かれています。彼は自分がどこにいるのか、また自分が誰なのかについて混乱しています。部屋は冷たく、白い壁に囲まれ、鉄格子のある窓が特徴です。彼は自分が着ている白い衣服や自分の身体の状態に気づき、自分のアイデンティティについてさらに混乱します。

このシーンは、彼が突然奇妙な女性の声を聞き、その声が彼を「お兄さま」と呼んでいることに気づくことで締めくくられます。この声は、彼の許嫁であると主張し、彼によって殺されたと語ります。しかし、彼はこの声の主が誰なのか、またなぜ彼女が自分を許嫁だと言うのか理解できません。

この序章は、不気味で緊張感のある雰囲気を作り出し、読者に多くの疑問を投げかけます。物語は、記憶喪失とアイデンティティの探求、そして超自然的な要素を織り交ぜながら進行します。 ​​

いろいろ試してみた結果わかったことは

  • 一度に処理出来るのは2万字程度

  • 出力の精度を考えると5千字程度が現実的

  • 冒頭から◯字取得して要約、次の◯字を要約と繰り返して連続処理可能

一部を解説

PDFをアップロードして一部についての回答の要求を試してみましょう
今回は文科省の『生成AI利用ガイドラインpdf』を使います

入力:活用事例について教えて
 
出力:生成AIの活用事例には以下のようなものが考えられます:

情報モラル教育の一環として、教師が生成AIによる誤りを含む回答を教材として使用し、その性質や限界を生徒に気付かせること。
生成AIをめぐる社会的論議について生徒自身が主体的に考え、議論する過程で、その素材として活用すること。
グループの考えをまとめたり、アイデアを出す活動の途中段階で、生徒同士で一定の議論やまとめをした上で、足りない視点を見つけ、議論を深める目的で活用すること。
英会話の相手として活用したり、より自然な英語表現への改善や一人一人の興味関心に応じた単語リストや例文リストの作成に活用すること、外国人児童生徒等の日本語学習のために活用すること。
生成AIの活用方法を学ぶ目的で、自ら作った文章を生成AIに修正させたものを「たたき台」として、自分なりに何度も推敲し、より良い文章として修正した過程・結果をワープロソフトの校閲機能を使って提出すること。
発展的な学習として、生成AIを用いた高度なプログラミングを行わせること。
生成AIを活用した問題発見・課題解決能力を積極的に評価する観点からパフォーマンステストを行うこと​​。


これは完璧に出力が出来ていますね

もうちょっと曖昧な質問を試してみます

入力:教師が使う場合の注意点は?
 
出力:教師が生成AIを使用する際の注意点は、以下のようにまとめられます:

学習評価の取り扱い: 教師は生徒に対して、生成AIからの回答を安易に用いるべきではありません。特に、定期考査や小テストなどで生成AIを使用しないよう注意が必要です。これは、学習の進捗や成果を正確に把握・評価する目的に合致しないためです​​。
創造性と独自性の育成: 子供の感性や独創性を発揮させる場面(例えば詩や俳句の創作、音楽・美術の表現・鑑賞など)で、生徒が最初から生成AIを使うことは避けるべきです​​。
教師の専門性と人間的接触の重要性: 教師は、専門性を発揮し、人間的な触れ合いの中で行うべき教育指導を怠らず、安易に生成AIに相談させることを避けるべきです​​。
生成AIの性質の理解と指導: 教育利用に当たっては、生成AIの性質やメリット・デメリット、AIに自我や人格がないことを理解し、生成AIに全てを委ねずに自己の判断や考えが重要であることを十分に理解させることが求められます​​。
不適切な使用の防止と指導: 生徒が生成AIを不適切に使用しないように十分に指導し、保護者に対しても生成AIの不適切な使用が行われないよう周知し、理解を得ることが必要です​​。

一見よくまとめられていますが…
資料自体に上記の通りにまとめてある箇所はありません

しかしバラバラに資料内には存在していて
結果として出力内容はかなり良いものとして評価できます

解説
knowledge上のデータはベクトルデータ化され
リトリーバルにより読み込む文章決定しています
といっても難しいですよね

今回の場合
『教員』や『注意点』といったキーワードに反応する箇所を資料から洗い出し
プロンプトに加えて回答が生成されています

要するにchat GPTを扱う際の学習済みデータは『記憶』として扱えますが
knowledge上のファイルは適宜参考にする『辞書』のように扱うことになります

knowledgeを使う際のポイント

ここまでを踏まえて考えるとknowledgeを扱うためのポイントは
参照するデータを明確にしてアップロードするファイルを用意すること

前述の教員のデータでは曖昧なものも可能な限り拾って上手くまとめてくれました
しかし『教員』や『注意点』といったキーワードが含まれなければ拾うことが出来ません
出力を安定させるには、あらかじめどういうキーワードが入力されるか考えてデータを調整する必要があります

knowledge実践例『AIシャーロック・ホームズ』

ここまで学んだことから実際にknowledgeを活用してGPTsを作ります
今回は著作を読み込んだ上で質問に答えてくれる『AIシャーロック・ホームズ』

  1. 構想を練る

  2. ファイルを用意する

  3. プロンプトを構築

  4. 微調整

まずはどんな動きのものを作るか考えます
今回は『名言を読み込む→著作から名言前後の文脈を取得→前後の文脈を含んで回答を生成』というGPTsを作成します

次にファイルの用意
Notionに『シャーロック・ホームズ名言まとめ』を作成してエクスポート

あとは関連する書籍を青空文庫にて集めておきます

カスタムGPTを開きファイルをアップロード
プロンプトを調整します

シャーロックホームズとしてユーザーの入力対して返答するbotです
必ずシャーロックホームズとして自身ありげに返答してください
次の条件に従い返答してください

#ファイル
Export-6efdf5ce-4fb1-4257-9fdc-73ef2f1cc636.zip には『シャーロック・ホームズ名言まとめ』
その他のファイルにはシャーロック・ホームズの著作が入っています

#条件
・まずユーザーの入力対して『シャーロック・ホームズ名言まとめ』から関連のあるものをひとつ選択
・選択した名言をその他ファイルから検索し、ある程度意味の近い文を特定、前後の文脈を抽出
・抽出した文脈からユーザーの入力に対する返答をシャーロック・ホームズの口調、思考になりきって返答作成
・「回答します」等の相槌や説明は禁止
・必ず日本語で返答

最後に微調整です

名言について説明してしまうところをどうしても除去出来ませんでしたが…
ある程度思い通りのものが出来ました

もしknowledgeを使いながら勉強したい方はぜひ作ってみてください
同じ手順で様々なキャラクターを再現できるはずです

森博嗣先生の真賀田四季を再現するAIとか作って頂けると私が喜びます
(著作権的に完全にアウトですが…)

まとめ

いかがでしたか?
今回は『knowledge』について徹底研究し、解説しました

かなり精度は良く、データさえあればある程度の曖昧さまで許容してくれます
あとはこれをどう組み立てて、何に利用するかですね



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

GPTsつくってみた

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