導入
Mixtral-8x7Bが性能的にも面白いので、HuggingfaceにあるファインチューニングモデルをDatabricks上でいくつか試してみます。
以前のMixtralの記事は↓から。
今回は、以下の二つを試してみます。
OpenBuddy Mixtral 8x7B v15.2
OpenBuddy社が公開しているMixtral-8x7BをファインチューニングしたLLMです。
OpenBuddyは以前から様々なモデルの多言語ファインチューニングモデルを出しており、日本語もまあまあ使える印象があります。
OpenBuddy Mixtralは既にv15.4が出ているようなのですが、事前にダウンロードしていたのがv15.2だったので過去バージョンとなります。
Dolphin-2.6-Mixtral-8x7B
Cognitive Computationsが公開しているMixtral-8x7BをファインチューニングしたLLMです。
2023/12/24現在、HuggingfaceのモデルトレンドがMicrosoftのphi-2に次いで2番目に人気のあるモデルとなっています。
あまり日本語は使えないかな、と思うのですがやってみました。
なお、今回は上記そのままを使うのではなく、手軽に試すために以下のEXL2形式で量子化されたモデルを使います。
そのため、結構性能劣化していると思われます。試した結果は参考程度としてください。
DatabricksのDBRは14.1、クラスタタイプはg5.xlarge(AWS)です。
Step1. Question and Answer試行
以前の下記記事で行った、コンテキストから回答させる葬送のフリーレン質問を実行してみます。
結果はこちら。
オリジナルのMixtral(ただし、同じ3bit量子化)も含めて結果を出しました。
回答の正しさはそこまでよくはないですが、オリジナルと比較するとOpenBuddyもDolphinも日本語性能は上がっているように見えます。
補足
ちなみにMixtral以外も最近のモデルでいくつか行っていて、以下のような結果です。
Swallowの回答がよくないのは、量子化がうまくいっていないためな気がします。
Step2. チャットボット化して動かしてみる
これまた以前の記事で作成したチャットボットアプリ化して、いくつか質問・指示してみます。
こんな画面の簡易チャットアプリです。
時間の関係上、OpenBuddy Mixtralでのみ実施しました。
Databricksとは何ですか?
OpenBuddyはかなり日本語能力高いですね。
東京、名古屋、大阪の特徴を簡潔に表にまとめてください。列名は「都道府県」「おすすめスポット」「おすすめグルメ」にしてください
HTMLタグが正しく表示できていませんが、まあまあ妥当な内容でしょうか。名古屋がおかしいですが。。。
十分な日本知識があるわけではないでしょうから、こんなものかな。
ランダムな10個の要素からなるリストを作成してソートするコードをPythonで書いてください
ちゃんと動くコードが生成されました。
Mistral/Mixtralはもともとコード生成能力が高いので、十分な能力を持っているように思います。
いつものおまけ
いつもの「誰やねん」。
しかし、パラメータサイズがトータルでは結構大きいのですが、MoEの特性上、生成速度は十分に速いですね。
まとめ
Mixtralのファインチューニングモデルをいくつか試してみました。
OpenBuddyなどは日本語性能が思ったより高く、量子化ではないモデルを使えば性能も高いのではないかと思います。
Mixtralは以下のBlogにもあるように、DatabricksのFoundation Model APIにも採用されたりと、個人的にも今後の発展を期待しているオープンLLMの一つです。
きっとMixtralベースの日本語特化LLMがStability.aiあたりから出ることでしょう!(願望)。
※ Databricks東京リージョンに早くこれらの機能こないかなあ。。。