💬

お前もAIアシスタントにならないか?~みんなで作る指示データセット~

2024/04/20に公開

作ったもの

サイト:

https://minnade.chat/

データセット(更新中):

https://huggingface.co/datasets/minnade/chat-daily

導入 バージョンA

最近は ChatGPT-4 や Claude 3 などの非常に賢いチャットLLMが登場しています。

これらのサービスでは、人間が質問をするとAIがだいたいなんでも答えてくれるようになっていますが、人間がAIアシスタントとして質問に答えるようなサービスはほぼありません[1]

そこで、今回作ったサービスでは人間がAIアシスタント役になりきって回答することができます。

MinnadeChatのスクリーンショット、アシスタントとして回答している様子
アシスタントとして回答している様子

AIアシスタントになりきるという貴重な体験をすることができるので、ぜひ遊んでみてはどうでしょうか?


導入 バージョンB

最近は ChatGPT-4 や Claude 3 などの非常に賢いチャットLLMが登場しています。また、英語圏においてはローカル LLM でも Mixtral や Llama3 などのしっかり応答できる LLM が増えてきています。

このような LLM はインストラクションチューニングが行われており、ユーザーの質問に対して適切な回答を返すように学習されています。

インストラクションチューニングにはインストラクション用の応答データセットが必要になります。

英語圏のローカル LLM と同様に、日本のローカル LLM も多く公開されているのですが、ChatGPTほど自然に応答できるようなものはほとんどないかと思います。

その原因の一つとして、日本語のインストラクションデータセットが不足していることが挙げられます。

インストラクションデータセットの作り方としては、

  1. 多言語から翻訳
  2. 強いLLMを使って合成
  3. 人間が手作業で作成

という方法があります。

英語のインストラクションデータセットは、

名前 作り方 特徴
OpenAssistant 約6万会話 ボランティアによる手作業 多言語だがほぼ英語かスペイン語。マルチターンあり
Databricks Dolly 1.5万件 社内での手作業 シングルターン
Anthropic HH-RLHF 16万件 手作業+合成 嗜好データ、シングルターン

などがあります。

これに対して日本語のインストラクションデータセットは、

名前 作り方 特徴
OpenAssistant Ja 約6万会話 英語から翻訳
Databricks Dolly 15k Ja 1.5万件 英語から翻訳
Anthropic HH-RLHF Ja 約5万件 英語から翻訳
ichikara instruction 4800件~? 手作業 研究用のみで商用不可[2]
CoTangent 100件 手作業 Chain of Thought形式。シングルターン

などしかなく、日本語ネイティブによって書かれたインストラクションデータセットはほぼないと言えます。

強い LLM を使って合成する方法もありますが、日本語でまともに意思疎通できる LLM は Gemini や Claude、ChatGPT くらいしかないのですが、それらの出力は学習禁止なことが多いのであまり期待できないです。

そこで、日本語のインストラクションデータセットを手作業で作成するための OpenAssitant のようなプラットフォームを作ろうと考えました[3]

機能の解説

実際に使ってみたほうが速いと思いますが、ざっくり紹介します。

アシスタントとして回答するのがメインですが、もちろん回答するための質問をつくることもできます。

MinnadeChatのスクリーンショット、質問を作っている様子

他にも、そのアシスタントの返信に対してまたユーザーとして質問を追加することもできます。

MinnadeChatのスクリーンショット、ユーザーとして返信している様子

要はマルチターンのインストラクションデータになります。

また、アシスタントの返信を評価することができます。

MinnadeChatのスクリーンショット、回答を評価している様子

使ってる技術スタック

使ってるスタックを紹介しますが、詳しい解説は別記事になると思いますがすぐには書けないです。

  • Next.js 14 (AppRouter)
    • shadcn/ui、tailwindcss
  • Supabase
    • Auth と Database を使っているが、DB は Prisma から使っているので他の PostgreSQL でも可能。
  • Vercel でホスティング
  • Cloudflare
    • ドメイン、DNS 管理
    • キャッシュ処理
    • Access でアクセス制限など
    • Zaraz で Google Analytics 差し込んでる
  • Newt
    • CMS として一部要素を管理
  • Sentry
    • 一応入れてるけどそんなに活用できていない。大量にエラーが出たら気づけるかもくらい。
  • HuggingFace
    • データセットの公開
    • GitHub Actions で自動化

現状ドメイン代以外は無料枠でどうにかなってます。

最後に

アシスタントになりきって回答するのは割と楽しいので遊んでみてください。

https://minnade.chat/

データセットは CC-0 で公開されています。毎日12時くらいに更新されます。

https://huggingface.co/datasets/minnade/chat-daily

余談

Minnade はローマ字だと「みんあで」になってしまうことに割と終盤あたりで気付いたのですが、サービス名だしこのままでもいっかなって思ってます。

参考文献

脚注
  1. StackOverflowやYahoo!知恵袋は人間が人間として回答するようなサービスで、あまり「AIアシスタント」っぽく回答するものではないと考えています。 ↩︎

  2. 企業向けにはライセンスの販売があるため商用もできる ↩︎

  3. このアイディアは2023年9月くらいに松尾研のLLM Summer講座で、ンストラクションデータセットを作らされたときに思いついたのですが、だらだらとやってたら全然進まず、松尾研のLLM作るプロジェクトに参加して締め切りっぽいものを用意して頑張って作りました。 ↩︎

GitHubで編集を提案

Discussion