--- license: cc-by-4.0 --- Mixtral8X7B Instructの日本語生成を安定させるためのLora実験モデルです。bf16での使用を想定しています。量子化推論する場合は、bf16で読み込んだ状態でLora適応、またはマージ、その後に量子化してください。 #目的 Mixtral-8x7Bは優秀な言語モデルですが、日本語のアウトプットに、多言語が混入するcode-switchingがよく見られます。 元の性能を維持しながら、日本語生成を安定させる方法としてLoraの効果を検証しました。 #学習データセット 学習データセットとして、下記のDPOデータセットを使用しています。 今回は、chosenのデータを使用しsft学習しています。 Chatbot Arena Conversations JA (calm2) Dataset lmsys/chatbot_arena_conversationsのユーザ入力(CC-BY 4.0)を和訳 和訳にはfacebookの翻訳モデル(MIT License)が使用されています。 [cyberagent/chatbot-arena-ja-calm2-7b-chat-experimental](https://huggingface.co/datasets/cyberagent/chatbot-arena-ja-calm2-7b-chat-experimental) #evaluation 大きな性能低下がないことを確認しました ##Lora num_fewshot: 2, batch_size: 1 | Task |Version| Metric | Value | |Stderr| |----------------------|------:|-----------|------:|---|-----:| |jsquad-1.1-0.3 | 1.1|exact_match|72.3323| | | | | |f1 |85.4772| | | |jcommonsenseqa-1.1-0.3| 1.1|acc | 0.7498|± |0.0130| | | |acc_norm | 0.4138|± |0.0147| num_fewshot: 2, batch_size: 1 | Task |Version| Metric | Value | |Stderr| |-----------------|------:|-----------|------:|---|-----:| |jnli-1.1-0.3 | 1.1|acc | 0.5912|± |0.0100| | | |acc_norm | 0.4108|± |0.0100| |marc_ja-1.1-0.3 | 1.1|acc | 0.9620|± |0.0025| | | |acc_norm | 0.9620|± |0.0025| |jaqket_v2-0.1-0.3| 0.1|exact_match|71.6495| | | | | |f1 |79.4725| | | ##Base model num_fewshot: 3,3, batch_size: 1 | Task |Version| Metric | Value | |Stderr| |----------------------|------:|-----------|------:|---|-----:| |jsquad-1.1-0.3 | 1.1|exact_match|68.1225| | | | | |f1 |83.5285| | | |jcommonsenseqa-1.1-0.3| 1.1|acc | 0.7766|± |0.0125| | | |acc_norm | 0.4629|± |0.0149| num_fewshot: 2, batch_size: 1 | Task |Version| Metric | Value | |Stderr| |-----------------|------:|-----------|------:|---|-----:| |jnli-1.1-0.3 | 1.1|acc | 0.6228|± |0.0098| | | |acc_norm | 0.5288|± |0.0101| |marc_ja-1.1-0.3 | 1.1|acc | 0.9630|± |0.0025| | | |acc_norm | 0.9630|± |0.0025| |jaqket_v2-0.1-0.3| 0.1|exact_match|67.9553| | | | | |f1 |78.7550| | | #考察 追加の事前学習なく安定した日本語出力が可能となったのは以下の作用と考えました。 未学習のモデルでは、日本語のシグナルが弱く言語選択が不安定になっていると推測されます。 Loraのみでも日本語コードへのバイアスを一定レベル強めることが可能となり、 もともと学習していた日本語のシグナルを抽出しやすくなったと考えられました。 ##その他 過度な日本語出力バイアスはなく、他の言語も出力可能でした。 context長は4096tokenまでの学習ですが、4k token以上の出力も可能です。 一定以上の出力後、日本語出力のバイアスが安定するのかもしれないです。