Safetensors
File size: 3,700 Bytes
c74db76
 
 
 
8815350
c74db76
 
8815350
 
c74db76
 
8815350
 
c74db76
 
 
8815350
c74db76
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8815350
 
c74db76
8815350
c74db76
 
8815350
29a4534
8815350
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
---
license: cc-by-4.0
---

Mixtral8X7B Instructの日本語生成を安定させるための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以上の出力も可能です。
一定以上の出力後、日本語出力のバイアスが安定するのかもしれないです。