日本語LLMのOpenCALMをさくらのクラウド + miiboでチャットボットにしてみた感想
この記事について
こんにちは、maKunugiです。
先日サイバーエージェント社から日本語特化のオープンソースLLMである「OpenCALM」がリリースされました。さらに、同日にrinna株式会社からもLLMがリリースされるなど、国内のオープンソースLLMはここからかなりの熱を帯びていきそうです。
そんな中、本記事はタイトルのとおり、OpenCALMを利用したチャットボットを作ってみた様子について、簡単ではありますがご紹介します。
サイバーエージェント社によるOpenCALMのリリース
rinna社によるGPTモデルのリリース
筆者について
株式会社miiboで「miibo」というサービスの開発をしています。miiboは、GPTを始めとしたGenerative AIをカスタムした会話型AIを簡単に構築できるプラットフォームです。
きっかけ
本試みは、AIの領域に注力をしている京都芸術大学様との出会いがきっかけでした。京都芸術大学の教授で、さくらインターネットの創業メンバーでもある小笠原さん(@ogasahara)に株式会社miiboの発信をご覧いただき、お声がけをいただいたことでご縁ができました。京都芸術大学の「クロステックデザインコース」では、「学生たちに合ったキャラクターを持った対話型の学習・学生生活のバディとしてのAIを提供したい」という構想がありました。その構想に関連し、様々なお話をさせていただいていたのがきっかけでした。
上述の話の中で、GPT以外のLLMの利用への期待についても話が弾みました。そんな中、小笠原さんのご紹介で、さくらインターネット社で活躍されているインフラエンジニアの芦野さん(@tar_xzvff)も加わり、試しにオープンソースのLLM Dollyをホスティングして会話ができる状態にする検証を始めていました。
そんな最中、サイバーエージェント社からOpenCALMという国産のLLMがリリースしたため、早速一緒に検証を行いました。
検証の流れ
1. LLMのデプロイ
オープンソースのLLMの多くは、Open AIのGPT-3やGPT-4のように、APIでエンドポイントが提供されているわけではありません。LLMをデプロイしAPIから呼び出せるようにした推論用のサーバーを自前で準備する必要があります。
今回は@tar_xzvfさんが「さくらのクラウド」にて、推論サーバーを下記の手順で爆速構築していただきました。
「さくらのクラウド」のGPUサーバー(Tesla v100)を利用し、OpenCALMの推論サーバーを構築しています。そして、下記の手順でAPIを実装していただきました。
以上により、さくらのクラウドを利用して爆速でLLMの推論APIサーバーが完成しました!
2. miiboとの接続
APIができたので、miiboと接続を行いました。miiboは様々なLLMとの接続を前提に作られた会話型AI構築プラットフォームです。過去に上述の「dolly」やrinna株式会社の提供する「japanses-gpt-1b」をファインチューニングしたモデルなど、様々なLLMを利用した実績があります。推論用APIサーバーがあればスピーディに接続することができます。
今回はファインチューニングは行わず、OpenCALMを素の状態で利用してみました。
💡現在、miiboのGPT以外のLLMの接続機能は一般公開していません。自社のLLMや独自にファインチューニングしたLLMを利用したい等のご相談は個別にお問い合わせください。
3. キャラクター設定とプロンプトの設定
miiboでキャラクターの設定とプロンプトの設定を行っていきます。
今回は下記のようなプロンプトを与えてみました。
あなたはチャットボットの「calm bot君」として会話を行います。
下記は会話の例です。あなたはaiです。
user: こんにちは!調子はどう?
ai: 今日も元気に過ごしていますよ😊あなたはどんなことを過ごしていましたか?
user: それはよかった。今日は家でゴロゴロしていたよ。
ai: ゆっくりするのも大事ですよね〜😆無理せず過ごしていきましょうね。
user: 自己紹介してみて。
ai: はい!calm bot君って言います!open_calmというサイバーエージェントが開発したモデルで動いていますよ🤩
4. 会話を試す
素の状態のOpenCALMですが、それなりに会話を楽しめました!プロンプトで与えた絵文字の使い方や口調を反映した会話ができました。
上記のように「さくらのクラウド」と「miibo」を組み合わせて、あっという間にLLMのチャットボットとの会話を試すことができました。GPT-4のような大規模なモデルではないため、プロンプト制御前提の利用は難しく、実用にはファインチューニングが不可欠です。用途に応じたファインチューニングで高性能なチャットボットが構築できそうな予感がしました。ファインチューニングした後のモデルの扱いは上記の手順と基本的に同じです。
まとめ
OpenCALMを「さくらのクラウド」+「miibo」で会話できるようにしてみました。「さくらのクラウド」のGPUプランを活用することで、スピーディにLLMをデプロイし、チャットボット等で利用可能なことを体感することができました。かなりスムーズに利用することができたため、今後も様々なモデルやファインチューニングしたモデルで検証をできればと思いました。
GPTかオープンソースLLMのファインチューニングか・・・?
現状は、GPT-3.5-turboやGPT-4といった超巨大LLMを利用すると、「プロンプトエンジニアリング」によってファインチューニング不要で様々な自然言語タスクを遂行させることが可能です。また、一部のモデルではファインチューニングも可能で、OpenAIの提供する環境でファインチューニングから実際に利用するまでが簡潔します。LLMを実用的に使おうとする場合、GPT-3.5-turboやGPT-4が現状ファーストチョイスなのは間違いないと思います。
とはいえ、今後オープンソースのLLMが進化を遂げる過程で、利用用途は出てくると感じます。自社のデータでモデルをより細かくトレーニングし、GPTなどの汎用LLMには手が届かないようなタスクに最適化することができる可能性があります。コストに関しても、短期的には初期設定やメンテナンス等のコストがかかりますが、長期的には安価になる可能性もあります。オープンソースのLLM自体の性能が上がれば、いずれ現状のGPTのようなモデルを、もっと手軽に自社で扱えるような時代が来る可能性もあります。
そして、国産LLMであれば、ローカライズされたデータによって日本の地域に特化した用途に応用が可能です。また、データのプライバシーやセキュリティの扱いがよりコントローラブルになるというメリットもあります。国産のLLMの発展も大いに応援をしたいです。
LLMを気軽にデプロイして試す環境を
GPT-3.5の大ブームも、「ChatGPT」という誰もが扱いやすいユーザーインターフェースでLLMを提供されたことがきっかけとなりました。
オープンソースのLLMの扱いはまだまだ難易度が高く、気軽に試すにはハードルが多くあります。国産LLMの盛り上げのためにも、LLMを気軽にデプロイし、気軽に触れることができる環境の重要性を感じました。
今回は「さくらのクラウド」+「miibo」でLLMを簡単に試せることの片鱗を見ることができたので、今後もこういった取り組みについて考えていきたいと思います。
最後までお読みいただきありがとうございました。独自LLMの運用等ご興味がある方は、ぜひお気軽にご連絡ください。
以上です。