Taste of Tech Topics

Acroquest Technology株式会社のエンジニアが書く技術ブログ

ChatGPTの「メモリ(Memory)」機能の活用法

こんにちは、暖かくなったと思ったら涼しくなったりと、なかなか洋服選びが難しい季節ですが皆さん体調お変わりないでしょうか。安部です。

今回は、ChatGPTで少し前に一般公開された「メモリ(Memory)」機能をご紹介し、活用のためのTipsを共有できればと思います。

機能の利用自体は何も意識せず簡単にできますが、意識的に活用しないと本領発揮してくれない機能だなという印象です。

まずは、どのような機能なのか簡単に見ていきましょう。

メモリ機能の概要

「メモリ(Memory)」機能とは、文字通りChatGPTがこれまでやりとりした情報を記憶し、以降の応答時にそれらを踏まえた回答をしてくれるようになるというものです。

https://openai.com/blog/memory-and-new-controls-for-chatgptopenai.com

詳しくはこれから見ていきますが、最大のポイントは、1つのチャット内ではなくチャットを超えて記憶が共有されるという点です。 これにより、似たような指示を何度もする必要がなくなるなど、徐々にChatGPTがパーソナライズされていきます。  

メモリ機能が使えると何がうれしいのか

先ほど述べた通り、このメモリ機能によって会話内容を記憶することができるため、同じ情報を何度も入力する必要がなくなります。

例えば、コード生成させる際にチャットごとに毎度のように「docstrings/コードコメントを適宜日本語で入れてください」などと指示しているかもしれませんが、 そのような要求を記憶させておくことで、繰り返し入力しなくてよくなります。

また、個人的な選好なども記憶してくれるので、特に指定しなくても好みに合ったおすすめなどをしてくれるようになります。 記憶される内容は、明確に指示しなくてもChatGPT側が勝手に決めてくれることもありますが、 こちらから「~を記憶して」というように指示しても記憶してもらえます。

メモリ機能の有効化

メモリ機能を有効にするには、[設定] >[Personalization] と進み、Memory トグルをONにします。 私の知る限り、特に設定しなければ最初から機能が有効になっていると思います。

また、メモリ機能を有効化していても、場合によっては記憶した情報に影響されないまっさらな状態のChatGPTとやり取りしたいことや、セキュリティ等の観点から記憶してほしくないこともあるでしょう。 そのような場合は、「temporary chat(一時チャット)」を利用します。

メモリ機能は、GPTsでも有効になります。

実際に使ってみる

まずは、基本的な使い方を試してみましょう。

サンプルプログラムを示してしてもらう際、毎度プログラミング言語を指定するのは面倒なので、普段使う言語を覚えておいてもらいます。 その他、サンプルプログラム生成の際に考慮してほしい点も一緒に記憶してもらいましょう。

記憶されると、「メモリを更新しました」と表示されるので一目瞭然です。

では、新規チャットで、サンプルプログラムを言語指定せずに作ってもらいます。

期待通り、Pythonで生成してくれました。docstringsや日本語のコメントも付けてくれていますね。

私の普段の使い方ではChatGPTは何も記憶してくれていなかったので、このように自分から明示的に覚えこませることでカスタマイズしていくのがよさそうです。

ちなみに、少し前まで記憶は英語に翻訳されて保持されていたので、固有名詞などは出力時も英語化されてしまっているという問題があったのですが、現在は解消しているようです。

活用Tips

私は、今のところ以下のような活用の仕方をしています。

  1. ショートカットコマンドの作成
  2. 手順自動化
  3. 前提知識の補完

それぞれ順にご説明します。

ショートカットコマンドの作成

こちらは、「~と入力したら...をして」というような指示を記憶しておいてもらい、ショートカットコマンドにするという活用法です。 このような指示は、単に指示を出すだけだと記憶してもらえないので、プロンプトの先頭に「to=bio」とつけると記憶してもらえます(「以下を記憶して」などでも良いとおもいますが)。

to=bioとつけることで、確実に記憶される

上の画像ではプログラミング言語の翻訳のショートカットを作成していますが、他にも「"?"の一文字だけ入力したら直前の出力内容のエッセンスを一文で要約して」など、いくつかショートカットを作っています。

注意点として、数字やアルファベット1文字のみを入力するようなショートカットは、GPTs利用時などに選択肢の入力として使うことがあるので避けた方が良いです。

手順自動化

こちらは、簡単なGPTsの代替となりうる活用法です。 特定入力をトリガーとして、一定の手順を実行するようにあらかじめ記憶しておいてもらいます。 外部サービスとのやり取りのない簡単なGPTsには、一定の手順を自動化しただけのものも多いですが、そのようなGPTsの代わりに使えます。

以下では、漢字クイズを出してくれるGPTsの代わりを作ってみました。

まずは、出題の要件等を記憶してもらいます。

to=bio
「漢字クイズをだして」と入力したら、以下の要件を満たすよう、10問の漢字クイズを出題してください。

## 要件 ##
1. 漢字検定2級以上程度の、難易度の高めの問題を出す。
2. 「漢字の読み方を入力させる」「正しい送り仮名を選ばせる」の2パターンの問題を、ランダムに出題する。
3. 一度に10問出題するのではなく、1題出題して回答を待ち、回答されたら正解不正解と解説を表示した上で次の問題を出す。

すると、以下のように出題してくれるようになります。左側が記憶のない状態での出題、右側が記憶後の出題です。 キャプチャには映っていませんが、送り仮名を選ばせる問題もランダムで出題してくれます(問題の質はあまりよくなかったですが...)。

ここではお遊びのものを作りましたが、日々の業務に使えるような自動化ができればかなり手軽に効率化ができます。

前提知識の補完

こちらは特に解説することもないのですが、まだChatGPTが学習していないような最新情報や自分の仕事の専門知識など、ChatGPTとやり取りする上で前提知識としてもっておいてほしい情報を記憶させておくという活用法です。

長文も記憶してくれるので、おさえておいてほしい有名論文をコピペして記憶しておいてもらうといったこともできます。

メモリの削除

記憶を削除するには、チャット内で「~のメモリを削除して」というように、記憶を削除したい旨を伝えればよいです。 また、記憶の管理画面で記憶済み情報を閲覧・削除をすることもできます。 記憶の管理画面を開くには、[設定]>[Personalization(パーソナライズ)]と進み、[Memory(メモリ)]項目の[Manage(管理する)]をクリックします。

以下のような管理画面が開き、個別の削除や一括削除が可能です。

プライバシー/セキュリティについて

プライバシーに関わる情報(健康状態など)は、ChatGPTが勝手に記憶しないようになっているようですが、そのフィルタリングはどこまで正確なものか定かではありません。 公式サイトでは、以下のように説明されています。

 We’re taking steps to assess and mitigate biases, and steer ChatGPT away from proactively remembering sensitive information, like your health details - unless you explicitly ask it to.

"steer ChatGPT away from ..." の部分のニュアンスが正確には分かりませんが、「~から遠ざける/そらす」くらいの意味のはずなので、確実ではないでしょう。 必要に応じて一時チャットを利用するなど、意識的に記憶される情報をコントロールする意識が必要ですね。

また、記憶された内容はモデルの学習に利用されますが、ChatGPT TeamとEnterpriseのユーザについては対象外となります。

メモリ機能を活用しだすと、メモリの管理も面倒になってくるので、古くなった情報を記憶から削除するなどの管理も意識的にやっていく必要があります。

まとめ

メモリ機能により、さらにChatGPTがパーソナライズされて効率化・最適化されそうです。

上手く使えばChatGPTがますます便利になりますので、活用してChatGPTをさらに使い倒していきましょう!

それでは。