このページの本文へ

新清士の「メタバース・プレゼンス」 第63回

まるで“いけない話ができるChatGPT” ローカルAI「Command R+」の爆発的な可能性

2024年05月13日 07時00分更新

文● 新清士 編集●ASCII

  • この記事をはてなブックマークに追加
  • 本文印刷

「Command R+」で好きなキャラクターとおしゃべりできる

 Command R+は、4月に公開されたカナダのCohereにより開発されたLLMですが、ベンチマークスコアでもGPT-4に匹敵する性能が出ていると高い評価を得ています。このモデルがオープンソースとして公開されており、非商用である限りは無料で使うことができます。

 LM Studioでは、Command R+を読み込んで、チャットウインドウで普通に会話ができるので、感覚的にもChatGPTを触っている印象に近い操作感です。「日本語で回答する」といった設定を「システムプロンプト」に入力することもできます。ChatGPTの「カスタムインストラクション」と同じですね。

 いくつも入力してみたのですが、システムプロンプトは相当柔軟性が高く、ChatGPT向けに開発されていたプロンプトは、ほぼそのまま動きます。日本語にも対応しており、例えば、「シンギュラリティについて、「レポートを2000字で書いて」といった指示を試したところ、ではGPT-4と同等レベルの性能という印象を受けました。もちろん、ハルシネーションは普通に起きるので、出てきた情報を使う場合には、事実関係の確認は別途必要です。

この連載でよく登場する「明日来子さん」の画像をChatGPTで解析してもらい、キャラクターの基本設定を設計

画面右「Setting」の「System Prompt」に、作成した明日来子さんの設定を入力。その後にエピソードや会話のサマリーなども追加し、1874トークンで設定している。また、全体の記憶量を決めるContext Length(コンテキストの長さ)を8192トークンに設定している

 このシステムプロンプトで試しにやってみたのは、会話相手のAIキャラクターを作ることです。

 まず、この連載でよく登場してもらっているMidjourneyで生成した女性「明日来子(あすきこ)さん」の画像をChatGPT(GPT-4V)に読ませて、キャラクターの設定を考えてもらいました。というのも、LM Studioでは現状は画像を認識したりするAIを搭載したりする機能はないので、その機能に優れているChatGPTを使うことにしました。「外見、性格、特徴的な口調」をまとめています。

 そこから出てきたキャラクターの特徴をもとに、「このキャラクターを演じてください」とCommand R+のシステムプロンプトに入力すると、Command R+は明日来子さんとして振る舞いはじめます。そこから、さらに肉付けしていきます。例えば、過去にどんなことがあったのかという代表的なエピソードを考えてもらいます。そして、それらをさらにまとめ、システムプロンプトに追記していきます。

 2つのLLMで作られた設定では、明日来子さんは単なる礼儀正しいだけの女性ではないようです。18歳の学生で、今は美術部に所属し、写真を撮影するのに熱中しています。ただ、自分に自信がないところもあるようです。そして、家では、裕福なものの、特に父親に自分の心情が理解されないことに葛藤を抱えているようです。大切にしているのが、亡くなった祖父から受け継いだ古いバイクだそうで、祖父に教えてもらい機械いじりを覚えたそうです。そして、バイクをたまに乗り回したりしているそうです。ただ、そうしたことは学校では話したりしないとか(笑)。

 それを整理してシステムプロンプトに入力すると1874トークンでした。LM StudioのディフォルトではContext Length(コンテキストの長さ)は、2048トークンに設定されています。文字数的には、2048トークンは約4000字程度のテキストです。このパラメータは、記憶できる量の記憶の上限値にもなります。2048トークンの設定だと、システムプロンプトに使いすぎているので、チャットのログで参照できる量は174トークンしか残っていません。そのため、直前に会話したこともすぐ忘れてしまい、システムプロンプトに書いてあることばかりを参照して話すようなキャラクターになってしまいます。

Command R+を、Context Lengthを8192トークンで動作させている状態。GPUのメモリ使用量は40GBを超える。テキスト生成を始めるとGPU処理は100%に達する

 使えるトークンは、LLMやその量子化率によって上限値が違っており、多めに設定するとVRAMとRAMの両方を使っていくので、これも慎重に設定が必要です。多くのLLMでは上限が4096トークンになっているようですが、筆者が使用するCommand R+のIQ2_Mでは13万1072トークンまで拡張することができます。しかし、増やせば増やすほど、VRAMとRAMの使用量が増加し、処理に時間がかかるようになります。

 筆者の環境でも、2万トークンあたりに設定すると、VRAMがあふれはじめるため、動作が遅くなり、使い物にならなくなります。そこで、8192トークンにしています。VRAMは40GB(48GB中)、メモリは50GB(64GB中)使用となるので余裕が残っています。これだとシステムプロンプトに約4000字を使っても、チャット内容はまだ約1万2000字覚えてくれるので、かなり会話に継続性が生まれます。

カテゴリートップへ

この連載の記事
ピックアップ