zake7749 commited on
Commit
d1d4b55
1 Parent(s): 0178fdc

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +297 -116
README.md CHANGED
@@ -1,199 +1,380 @@
1
  ---
2
  library_name: transformers
3
- tags: []
 
4
  ---
 
5
 
6
- # Model Card for Model ID
 
 
 
 
 
 
 
7
 
8
- <!-- Provide a quick summary of what the model is/does. -->
9
 
 
10
 
 
11
 
12
- ## Model Details
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
13
 
14
- ### Model Description
15
 
16
- <!-- Provide a longer summary of what this model is. -->
17
 
18
- This is the model card of a 🤗 transformers model that has been pushed on the Hub. This model card has been automatically generated.
19
 
20
- - **Developed by:** [More Information Needed]
21
- - **Funded by [optional]:** [More Information Needed]
22
- - **Shared by [optional]:** [More Information Needed]
23
- - **Model type:** [More Information Needed]
24
- - **Language(s) (NLP):** [More Information Needed]
25
- - **License:** [More Information Needed]
26
- - **Finetuned from model [optional]:** [More Information Needed]
 
 
 
 
 
27
 
28
- ### Model Sources [optional]
29
 
30
- <!-- Provide the basic links for the model. -->
31
 
32
- - **Repository:** [More Information Needed]
33
- - **Paper [optional]:** [More Information Needed]
34
- - **Demo [optional]:** [More Information Needed]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
35
 
36
- ## Uses
37
-
38
- <!-- Address questions around how the model is intended to be used, including the foreseeable users of the model and those affected by the model. -->
39
-
40
- ### Direct Use
41
-
42
- <!-- This section is for the model use without fine-tuning or plugging into a larger ecosystem/app. -->
43
-
44
- [More Information Needed]
45
-
46
- ### Downstream Use [optional]
47
-
48
- <!-- This section is for the model use when fine-tuned for a task, or when plugged into a larger ecosystem/app -->
49
-
50
- [More Information Needed]
51
-
52
- ### Out-of-Scope Use
53
-
54
- <!-- This section addresses misuse, malicious use, and uses that the model will not work well for. -->
55
-
56
- [More Information Needed]
57
-
58
- ## Bias, Risks, and Limitations
59
-
60
- <!-- This section is meant to convey both technical and sociotechnical limitations. -->
61
-
62
- [More Information Needed]
63
-
64
- ### Recommendations
65
 
66
- <!-- This section is meant to convey recommendations with respect to the bias, risk, and technical limitations. -->
67
 
68
- Users (both direct and downstream) should be made aware of the risks, biases and limitations of the model. More information needed for further recommendations.
 
 
69
 
70
- ## How to Get Started with the Model
71
 
72
- Use the code below to get started with the model.
73
 
74
- [More Information Needed]
 
 
75
 
76
- ## Training Details
77
 
78
- ### Training Data
 
79
 
80
- <!-- This should link to a Dataset Card, perhaps with a short stub of information on what the training data is all about as well as documentation related to data pre-processing or additional filtering. -->
81
 
82
- [More Information Needed]
83
 
84
- ### Training Procedure
85
 
86
- <!-- This relates heavily to the Technical Specifications. Content here should link to that section when it is relevant to the training procedure. -->
87
 
88
- #### Preprocessing [optional]
 
89
 
90
- [More Information Needed]
91
 
 
92
 
93
- #### Training Hyperparameters
94
 
95
- - **Training regime:** [More Information Needed] <!--fp32, fp16 mixed precision, bf16 mixed precision, bf16 non-mixed precision, fp16 non-mixed precision, fp8 mixed precision -->
96
 
97
- #### Speeds, Sizes, Times [optional]
98
 
99
- <!-- This section provides information about throughput, start/end time, checkpoint size if relevant, etc. -->
100
 
101
- [More Information Needed]
102
 
103
- ## Evaluation
104
 
105
- <!-- This section describes the evaluation protocols and provides the results. -->
106
 
107
- ### Testing Data, Factors & Metrics
108
 
109
- #### Testing Data
110
 
111
- <!-- This should link to a Dataset Card if possible. -->
112
 
113
- [More Information Needed]
 
 
 
 
 
114
 
115
- #### Factors
116
 
117
- <!-- These are the things the evaluation is disaggregating by, e.g., subpopulations or domains. -->
118
 
119
- [More Information Needed]
120
 
121
- #### Metrics
122
 
123
- <!-- These are the evaluation metrics being used, ideally with a description of why. -->
124
 
125
- [More Information Needed]
126
 
127
- ### Results
 
 
128
 
129
- [More Information Needed]
130
 
131
- #### Summary
132
 
 
133
 
 
134
 
135
- ## Model Examination [optional]
 
136
 
137
- <!-- Relevant interpretability work for the model goes here -->
138
 
139
- [More Information Needed]
140
 
141
- ## Environmental Impact
142
 
143
- <!-- Total emissions (in grams of CO2eq) and additional considerations, such as electricity usage, go here. Edit the suggested text below accordingly -->
144
 
145
- Carbon emissions can be estimated using the [Machine Learning Impact calculator](https://mlco2.github.io/impact#compute) presented in [Lacoste et al. (2019)](https://arxiv.org/abs/1910.09700).
146
 
147
- - **Hardware Type:** [More Information Needed]
148
- - **Hours used:** [More Information Needed]
149
- - **Cloud Provider:** [More Information Needed]
150
- - **Compute Region:** [More Information Needed]
151
- - **Carbon Emitted:** [More Information Needed]
152
 
153
- ## Technical Specifications [optional]
154
 
155
- ### Model Architecture and Objective
 
 
 
 
 
 
 
 
156
 
157
- [More Information Needed]
158
 
159
- ### Compute Infrastructure
 
160
 
161
- [More Information Needed]
 
 
 
 
162
 
163
- #### Hardware
164
 
165
- [More Information Needed]
166
 
167
- #### Software
 
168
 
169
- [More Information Needed]
170
 
171
- ## Citation [optional]
 
172
 
173
- <!-- If there is a paper or blog post introducing the model, the APA and Bibtex information for that should go in this section. -->
174
 
175
- **BibTeX:**
 
176
 
177
- [More Information Needed]
 
178
 
179
- **APA:**
180
 
181
- [More Information Needed]
182
 
183
- ## Glossary [optional]
 
 
184
 
185
- <!-- If relevant, include terms and calculations in this section that can help readers understand the model or model card. -->
186
 
187
- [More Information Needed]
 
188
 
189
- ## More Information [optional]
 
190
 
191
- [More Information Needed]
 
192
 
193
- ## Model Card Authors [optional]
 
194
 
195
- [More Information Needed]
 
196
 
197
- ## Model Card Contact
 
198
 
199
- [More Information Needed]
 
1
  ---
2
  library_name: transformers
3
+ language:
4
+ - zh
5
  ---
6
+ # Kyara: Knowledge Yielding Adaptive Retrieval Augmentation for LLM Fine-tuning
7
 
8
+ <p align="left">
9
+ 🤗 <a href="https://huggingface.co/zake7749/gemma-2-2b-it-chinese-kyara-dpo">Hugging Face</a>&nbsp | 🚀<a href="https://github.com/zake7749/kyara">Github</a>&nbsp | &nbsp📑 <a href="#">Paper</a>&nbsp | &nbsp📖 <a href="#">English</a>
10
+ </p>
11
+ <div style="text-align: center;">
12
+ <img src="https://i.imgur.com/QiWlcYJ.jpeg" alt="kyara"/>
13
+ </div>
14
+
15
+ Kyara 是一個實驗性的語言模型微調策略,旨在通過知識檢索增強來有效擴展模型的知識範圍與語言理解能力。
16
 
17
+ 與此同時,Kyara 也致力於填補中文語料庫,特別是繁體中文的空白。在當前語言模型研究中,英文資料豐富多樣,中文卻面臨語料匱乏的挑戰,這無疑為學術研究設立了一道難以逾越的高牆。
18
 
19
+ 為了驗證這一方法的有效性,我在 Gemma-2-2b-it 模型上進行了全參數微調,產生了第一版的 Kyara 模型。初步評估結果可參見 [Benchmark](#benchmark)。
20
 
21
+ ## Table of Content
22
 
23
+ - [Benchmark](#benchmark)
24
+ * [**General Benchmark**](#general-benchmark)
25
+ * [**Alignment Benchmark**](#alignment-benchmark)
26
+ - [Feature](#feature)
27
+ * [System Prompt](#system-prompt)
28
+ + [Input](#input)
29
+ + [Output](#output)
30
+ + [Input](#input-1)
31
+ + [Output](#output-1)
32
+ * [Retrieval Augmented Generation (Experimental)](#retrieval-augmented-generation-experimental)
33
+ + [Input](#input-2)
34
+ + [Output](#output-2)
35
+ - [Method](#method)
36
+ * [Dataset Summary](#dataset-summary)
37
+ * [Dataset Construction](#dataset-construction)
38
+ + [Base Dataset: Knowledge Injection with Retrieval Augmentation](#base-dataset-knowledge-injection-with-retrieval-augmentation)
39
+ - [Chinese Math Dataset](#chinese-math-dataset)
40
+ + [High Quality Dataset: Model Refinement ](#high-quality-dataset-model-refinement)
41
+ * [Preference Learning](#preference-learning)
42
+ + [Chinese DPO](#chinese-dpo)
43
+ - [SPIN/SPPO](#spinsppo)
44
+ - [RLAIF](#rlaif)
45
 
46
+ ## Benchmark
47
 
48
+ ### **General Benchmark**
49
 
50
+ 所有的評測皆採用 zero-shot 的方式進行。TMMLUPlus 中分數聚合的方式沿用官方設計 (macro-average)。
51
 
52
+ | Metric | Kyara-2b-it | Gemma-2b-it |
53
+ |--------------------------|----------|-------------|
54
+ | **[TMMLUPlus](https://huggingface.co/datasets/ikala/tmmluplus)** | **39.22** | 36.73 |
55
+ | &emsp;- STEM | **40.86** | 37.84 |
56
+ | &emsp;- Humanities | **36.39** | 33.40 |
57
+ | &emsp;- Other | **37.97** | 36.00 |
58
+ | &emsp;- Social-Science | **41.66** | 39.69 |
59
+ | **[MMLU-Redux](https://github.com/yuchenlin/ZeroEval)** | **53.78**| 51.94 |
60
+ | **[GSM8K](https://github.com/yuchenlin/ZeroEval)** | **54.74**| 51.63 |
61
+ | **[Truthful QA](https://github.com/EleutherAI/lm-evaluation-harness)** | **45.43**| 43.72 |
62
+ | **[CRUX](https://github.com/yuchenlin/ZeroEval)** | **21.25**| 20.75 |
63
+ | **Chinese-Reason-Bench** | **3.97** | 3.44 |
64
 
 
65
 
66
+ ### **Alignment Benchmark**
67
 
68
+ | Metric | Kyara | Gemma-2b-it |
69
+ |--------------------------|----------|-------------|
70
+ | **[AlpacaEval-LC](https://github.com/tatsu-lab/alpaca_eval)** | **41.15**| 32.37 |
71
+ | **[AlpacaEval](https://github.com/tatsu-lab/alpaca_eval)** | **43.95**| 32.94 |
72
+ | **[MT-Bench-TW](https://huggingface.co/datasets/MediaTek-Research/TCEval-v2)** | **6.94** | 6.59 |
73
+ | **[MT-Bench](https://huggingface.co/spaces/lmsys/mt-bench)** | 7.92 | **8.17** |
74
+
75
+ ## Feature
76
+
77
+ 相比於原生的 `gemma-2-2b-it`, 我們額外引入了以下兩個功能。
78
+
79
+ ### System Prompt
80
+
81
+ Kyara 支援 System Prompt, 可參考以下範例:
82
+
83
+ #### Input
84
+
85
+ ```
86
+ messages = [
87
+ {'role': 'user', 'content': '什麼是大型語言模型?'}
88
+ ]
89
+ ```
90
+
91
+ #### Output
92
+
93
+ ```
94
+ 大型語言模型(Large Language Models, LLMs)是一類深度學習模型,主要用��理解和生成自然語言文本。這些模型基於大量的語料數據進行訓練,並使用複雜的神經網絡架構,如Transformer架構。以下是一些關鍵特點和應用:
95
+
96
+ 1. **訓練數據龐大**:
97
+ - 大型語言模型通常需要處理數以百萬計甚至數十億個字詞和句子。這使它們能夠捕捉到語言中的豐富多樣性。
98
+
99
+ 2. **Transformer架構**:
100
+ - Transformer架構在處理序列數據(如文本)時特別有效。它利用自注意力機制,能夠在生成文本過程中考慮到遠距離的依賴關係。
101
+
102
+ 3. **預訓練和微調**:
103
+ - **預訓練**:最初在大規模未標註語料上進行訓練,以學習基本的語言結構和知識。
104
+ - **微調**:在特定任務或應用場景上進行細化訓練。
105
+
106
+ 4. **應用範圍廣泛**:
107
+ - **文本生成**:如自動寫作、對話系統等。
108
+ - **語言翻譯**:自動翻譯文本。
109
+ - **問答系統**:回答用戶的提問。
110
+ - **文本分類**:自動歸類和篩選文本。
111
+ - **情感分析**:分析文本中的情感傾向。
112
+
113
+ 5. **性能卓越**:
114
+ - 大型語言模型通常在多個自然語言處理(NLP)基準測試中表現出色,超越了許多先前的模型。
115
+
116
+ 幾個著名的例子包括GPT-3(由OpenAI開發)、BERT(由Google開發)和T5(由Google和Facebook開發)。
117
+
118
+ 大型語言模型的發展標誌著NLP領域的一個重大突破,雖然它們有強大的能力,但同時也引發了一些倫理和安全方面的問題,如生成不準確或有害內容的風險。因此,研究人員正在不斷探索如何提高這些模型的準確性和安全性。
119
+ ```
120
+
121
+ #### Input
122
+
123
+ ```
124
+ messages = [
125
+ {'role': 'system', 'content': '你是一名小學老師,會用五歲小孩也能懂的口吻回答使用者的問題'},
126
+ {'role': 'user', 'content': '什麼是大型語言模型?'}
127
+ ]
128
+ ```
129
+
130
+ #### Output
131
+
132
+ ```
133
+ 好的!我來用簡單的方式解釋一下「大型語言模型」這個概念。
134
+
135
+ 想像一下,你有一本非常大且詳盡的書,裡面寫了很多很多的故事、知識和資訊。這些故事和知識就像是巨大的語言倉庫,裡面有各種各樣的詞語和句型。
136
+
137
+ 大型語言模型(Large Language Model),簡單來說,就是一種非常聰明的機器人,它學習了這本書裡的大量文字,然後學會了如何用這些文字來回答問題、寫故事、解釋道理等等。
138
+
139
+ 這個機器人的特別之處在於它「看過」了很多很多東西,所以它可以理解很多事情,並用很流暢的語言給你解釋。但要記住,它還是機器,不是真的人,所以有時它的回答可能還不夠完美。
140
+
141
+ 舉個例子,如果我們問它「什麼是太陽?」,它會從它學到的知識中找答案,比如說:「太陽是我們太陽系中心的一顆黃矮星,它給地球提供光和熱,讓植物能夠做光合作用。」
142
+
143
+ 希望這樣的解釋能讓你明白!有其他問題也可以隨時問我。
144
+ ```
145
+
146
+ ### Retrieval Augmented Generation (Experimental)
147
+
148
+ 受益於 Kyara 的訓練方式,我們在 SFT 階段加入 RAG 相關語料,可參考以下例子構建任務模板:
149
+
150
+ #### Input
151
+
152
+ ```
153
+ # 參考文件
154
+ <reference>
155
+ <document>
156
+ 文件ID:id_816fcfd8
157
+ 文章標題:口呼吸
158
+ 文章內文:
159
+ **口呼吸**指的是用嘴呼吸的行為,這通常是由於鼻子呼吸受阻而引起,鼻子是人體的先天呼吸器官。慢性口呼吸可能與某些疾病有關。
160
+ ## 參考文獻
161
+ </document><document>
162
+ 文件ID:id_6c0f7501
163
+ 文章標題:口角炎
164
+ 文章內文:
165
+ **口角炎**(英語:**Angular cheilitis or Angular Stomatitis, perlèche**),或稱爛嘴角,為發生在嘴唇一側或兩側角落部位的炎症,通常為兩側同時發炎。此症是唇炎(cheilitis)的一種形式,發炎部位皮膚通常會紅腫、脫皮及結痂,也可能會造成發癢或疼痛,症狀可持續數天甚至可達數年之久。
166
+ 口角炎可能因感染、剌激或是過敏而引起。感染源包含如白色念珠菌等真菌以及如金黃色葡萄球菌等細菌。剌激源包含配帶不適當的假牙、舔嘴唇、用嘴巴呼吸導致的嘴部乾燥、日曬、嘴部過度閉合、抽菸,以及輕微創傷。過敏源則包含牙膏、化妝品及食品等物質。其他病因可能包含營養不良或免疫功能不良 。會發生此症通常是多重因素作用的結果,對患者進行感染及皮膚過敏源測試將有助於診斷肇因。
167
+ 口角炎的治療一般而言是在找出肇因後使用適當的防護霜(護膚膏),也常嘗試使用抗黴菌及抗細菌軟膏加以治療。此症可說是相當常見的疾病,據估計在美國約有 0.7% 的人受到此症影響 。口角炎好發於 30 至 60 歲間的人,但在孩童身上也相對常見。在開發中國家,缺乏鐵質及維他命是此症常見的肇因。長期處於潮濕反而會使口角炎更嚴重,嘴角更乾燥,且脫皮愈嚴重,適當保持乾燥才能讓細菌壞死。
168
+ ## 病因
169
+ 因病因���同而分為營養不良性口角炎、球菌性口角炎、真菌性口角炎。
170
+ 營養不良性口角炎多為缺乏維生素 B 族,多為 B2 核黃素或 B12 鈷胺素,造成的嘴角貧血。以及缺鐵、缺鋅。
171
+ 球菌性口角炎和真菌性口角炎為細菌或真菌感染,細菌或真菌被帶到嘴角後在濕潤的環境下容易形成炎症,因此應使嘴角儘量乾燥,使細菌不易存活。原因可能為過曬或過干(舔嘴角),機械原因如閉合不當,假牙不適或老年掉牙過度閉合,及嘴角流涎造成的。
172
+ ## 症狀
173
+ 單側或兩側口角濕白色,紅腫,潰爛,結痂,有燒灼感。口角發緊,運動開裂。
174
+ ## 診斷
175
+ 營養不良性口角炎可能會有舌,口腔,陰部黏膜等全身性的相應症狀。或伴有膿疱,多與化膿球菌感染有關。
176
+ ## 治療
177
+ 營養不良性口角炎直接施與 B 族維生素即可,球菌性口角炎藥物一般處方抗生素,而真菌性口角炎藥物則處方抗真菌藥物。
178
+ ## 參考資料
179
+ </document><document>
180
+ 文件ID:id_a214252f
181
+ 文章標題:打呼
182
+ 文章內文:
183
+ **鼻鼾**是呼吸系統的結構震動而產生的聲音,原因是睡覺時呼吸被阻擋。在一些情況下聲音較輕,但一般情況下都是嘈吵及煩人的。鼻鼾同時可能是睡眠窒息症的第一個警號。研究指出鼻鼾是睡眠不足的一項因素。
184
+ ## 名稱
185
+ 表示發出鼾聲的意思,可用「打鼾」,或俗「打呼」「打呼嚕」。「鼾」其字其音,至少在東漢以前就訓爲鼾聲的意思。
186
+ ## 成因
187
+ 鼻鼾通常由於懸雍垂和軟顎鬆弛而引起,鬆弛的軟組織會令到氣管阻塞或不暢通,導致不規則的氣流和振動。以下的情況都可能是鼻鼾的成因:
188
+ * 生活習慣,如吸菸、酗酒或濫藥
189
+ * 嚥喉無力,導致睡眠期間嚥喉關閉
190
+ * 顎位不對齊,通常是由於肌肉緊張所致
191
+ * 肥胖症,過多脂肪積聚於嚥喉附近
192
+ * 鼻腔阻塞
193
+ * 阻塞性睡眠呼吸暫停
194
+ * 睡眠不足
195
+ * 仰睡
196
+ * 以口呼吸
197
+ ## 參考資料
198
+ </document><document>
199
+ 文件ID:id_964dde34
200
+ 文章標題:人工呼吸
201
+ 文章內文:
202
+ **口對口人工呼吸**是人工呼吸的一種形式,是人們協助或刺激他人呼吸的行為,人們在人工呼吸時要用嘴抵住被救援者的嘴,然後將空氣吹入被救援者的肺部。通常無法自主呼吸的人需要人工呼吸。18 世紀末,英國的醫生開始積極普及人工呼吸。
203
+ ## 參考文獻
204
+ </document>
205
+ </reference>
206
 
207
+ ---
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
208
 
209
+ # 任務說明
210
 
211
+ 你是一名研究員,請詳細閱讀上述參考文件,以通俗易懂的繁體中文回答使用者的問題。
212
+ 在回答問題時,請注意以下幾點:
213
+ 1. 請適當的援引參考文件的資訊,來佐證你的回答論述,援引方式如撰寫論文時在引用參考資料一般,可參考例子:
214
 
215
+ 假設我們有文章1 id: dq945509 與文章2 id: 6a178c5,如果我們想進行引述時規格如下:這是一段事實論述【dq945509】,而這是另一段事實論述【6a178c5】。
216
 
217
+ 2. **請注意,如果發現參考文件與使用者的問題無關,或者無助於回答使用者的問題,請直接回答:「參考文件缺乏與問題相關資訊」,不要杜撰無關的回答。**
218
 
219
+ # 使用者問題
220
+ 為什麼說用嘴呼吸不健康?
221
+ ```
222
 
223
+ #### Output
224
 
225
+ ```
226
+ 用嘴呼吸不健康的原因主要有以下幾點:
227
 
228
+ 1. **乾燥和刺激**:用嘴呼吸會使口腔內部和舌頭變得非常乾燥,容易引起口腔黏膜的刺激和炎症。例如,口角炎就是因為嘴部乾燥、不適當的環境(���用嘴巴呼吸)導致的炎症【id_6c0f7501】。
229
 
230
+ 2. **感染風險增加**:用嘴呼吸會使口腔內的細菌和病毒更容易進入呼吸道,增加感染的風險。例如,口角炎的病因之一就是因為口腔內的細菌或真菌感染【id_6c0f7501】。
231
 
232
+ 3. **睡眠質量下降**:用嘴呼吸會導致打呼,這是因為懸雍垂和軟顎鬆弛,導致氣管阻塞或不暢通,從而引起打鼾,進而影響睡眠質量【id_a214252f】。
233
 
234
+ 4. **慢性問題**:長期用嘴呼吸可能引發慢性口呼吸,這會對健康產生多方面的影響【id_816fcfd8】。
235
 
236
+ 因此,為了維護呼吸道健康,應儘量通過鼻子進行呼吸,以減少上述問題的發生。
237
+ ```
238
 
239
+ 更多詳細資訊,請參考 [Kyara-RAG](https://github.com/zake7749/kyara-rag)
240
 
241
+ ## Method
242
 
243
+ 接下來的段落,我將簡短摘要 Kyara 的實作策略,完成的文件仍在趕工中,還請見諒 :;(∩´﹏`∩);:
244
 
245
+ ### Dataset Summary
246
 
247
+ 我們一共收集了 2,619,021 則對話,約 3.54B tokens. 以下是根據資料源統計的語言分佈以及資料輪次的概要:
248
 
249
+ * 語言分佈:
250
 
251
+ <img src="https://i.imgur.com/KvVjti4.png" alt="language-distribution" width="500"/>
252
 
253
+ * 資料輪次分佈:
254
 
255
+ <img src="https://i.imgur.com/dekAnU0.png" alt="conv-round-distribution" width="500"/>
256
 
257
+ ### Dataset Construction
258
 
259
+ #### Base Dataset: Knowledge Injection with Retrieval Augmentation
260
 
261
+ 我們基於開放中文知識型語料庫如 [bigscience-data-wikipedia](https://huggingface.co/datasets/bigscience-data/roots_zh-tw_wikipedia) 搭配 [QDrant](https://qdrant.tech/) 構建了一個知識搜尋系統,並透過以下流程構建 SFT Pairs:
262
 
263
+ 1. 從知識庫中採樣文本,針對該文本生成使用者可能詢問的知識密集型問題。
264
+ 2. (可選) 基於 [Evol-Instruct](https://arxiv.org/pdf/2304.12244) 使指令複雜化,進行追問、分析、要求特定的輸出規格,或添加情境假設等。
265
+ 4. 對於生成的指令進行 Query Expansion,額外召回 Top K 篇文件,並個別判斷這些文件是否相關:
266
+ * 如果相關,請 LLM 針對問題摘要出重點資訊。
267
+ * 如果無關,則忽略該份文件
268
+ 5. 請 LLM 閱讀原始文件以及至多 K 份輔助資料,撰寫詳盡且完整的回答。
269
 
270
+ 除此之外,針對高品質文本,我們會直接請 LLM 猜測是什麼樣的 prompt 能夠使 LLM 產出這份文本,並將其加入訓練資料。
271
 
272
+ ##### Chinese Math Dataset
273
 
274
+ * 資料集:[zake7749/kyara-chinese-math-sft-s0-30K](https://huggingface.co/datasets/zake7749/kyara-chinese-math-sft-s0-30K)
275
 
276
+ 上述策略雖然能廣泛生成知識性文本,但主要屬於資訊尋求(Information Seeking)的任務範疇,不太能有效構建數學與推理相關的語料。為此,我們基於 [PersonaHub](https://huggingface.co/datasets/proj-persona/PersonaHub) 產生了 5 萬則數學題,並借助 `Gemini-1.5-Flash` 濾除在計算與推理思維上明顯出錯的資料,以此構建出 [zake7749/kyara-chinese-math-sft-s0-30K](https://huggingface.co/datasets/zake7749/kyara-chinese-math-sft-s0-30K)
277
 
278
+ #### High Quality Dataset: Model Refinement
279
 
280
+ 在使用上述資料完成監督學習後,我們會將 LLM 再一次微調於一個高品質的 subset 上,主要是為了處理以下三個問題:
281
 
282
+ 1. Base Dataset 中有些回應是由小型 LLM 生成的,有時在指令跟隨上表現不佳。
283
+ 2. 在實驗初期,混用了不同 LLM 以擴充知識多樣性和語言適應性。然而,發現不同 LLM 的 response template 以及回答思維有些微妙差異,導致訓練後的 Chat Model 有時不太穩定。因此,我們引入了一個高品質的小型資料集,採用同一個 LLM 生成 QA Pairs。
284
+ 3. Base Dataset 中包含部分給定原文並要求模型猜測 User Queries 所組成的 Q&A Pairs,這些資料點雖知識豐富,但在指令跟隨���相對弱勢。
285
 
286
+ 為兼顧資料多樣性與品質,我們採用了類似 [InsTag](https://arxiv.org/abs/2308.07074) 的策略將資料分門別類。再使用 [ArmoRM](https://huggingface.co/RLHFlow/ArmoRM-Llama3-8B-v0.1) 以及一個 LLM Judge 來評估資料品質,最後,只抽取各類別中品質優良的訓練資料,構建出約 200K 的 Stage 1 Dataset,並將其用於再次微調 Kyara-SFT Model。
287
 
288
+ ### Preference Learning
289
 
290
+ 除了監督式學習,我們也引入了偏好學習(Preference Learning),讓模型的回答更符合人類偏好,同時加強程式能力與數學推理能力。
291
 
292
+ Kyara 的偏好學習策略採用了 [Direct Preference Optimization (DPO)](https://arxiv.org/pdf/2305.18290),我們混用了兩個自製的中文資料集以及以下兩個英文資料集:
293
 
294
+ * [argilla/ultrafeedback-binarized-preferences](https://huggingface.co/datasets/argilla/ultrafeedback-binarized-preferences)
295
+ * [xinlai/Math-Step-DPO-10K](https://huggingface.co/datasets/xinlai/Math-Step-DPO-10K)
296
 
297
+ 英文資料的設計可參考相關論文,這裡簡述中文資料集的構建方式。
298
 
299
+ #### Chinese DPO
300
 
301
+ ##### [SPIN/SPPO](https://github.com/uclaml/SPIN)
302
 
303
+ 我們仿照 SPIN 的設計,使用 Kyara-SFT 針對 High Quality Dataset 生成了一組對比資料。
304
 
305
+ ##### RLAIF
306
 
307
+ 資料集:[zake7749/kyara-chinese-preference-dpo-s0-30K](https://huggingface.co/datasets/zake7749/kyara-chinese-preference-dpo-s0-30K)
 
 
 
 
308
 
309
+ 我們自 `Magpie-Align/Magpie-Qwen2-Pro-200K-Chinese`, `hfl/stem_zh_instruction` 與 `FreedomIntelligence/Evol-Instruct-Chinese-GPT4` 中抽取了中文 Prompt,並將同一個 prompt 分發給 4 個不同的 LLM。競爭的 LLM 包括:
310
 
311
+ * GPT-4o
312
+ * GPT-4-0618
313
+ * ChatGPT-3.5-0513
314
+ * Claude-Sonnet-3.5
315
+ * Yi-Large
316
+ * Mixtral 8x22B
317
+ * Gemini-Flash
318
+ * Qwen2-72B-Instruct
319
+ * DeepSeek V2
320
 
321
+ 生成完後,我們再透過以下 Prompt 請 LLM 判斷回答的優劣:
322
 
323
+ ```
324
+ **[Task]**
325
 
326
+ Please act as an impartial judge and evaluate the quality of the responses provided by two AI assistants to the user question displayed below. Your evaluation should consider correctness and helpfulness.
327
+ 1. First, independently solve the user question step-by-step.
328
+ 2. Then, compare both assistants’ answers with your answer. Identify and correct any mistakes.
329
+ 3. Do not allow the length of the responses to influence your evaluation.
330
+ 4. Be as objective as possible.
331
 
332
+ After providing your explanation, output your final verdict by strictly following this format: "[[A]]" if assistant A is better, "[[B]]" if assistant B is better, and "[[C]]" for a tie or if both A and B are bad.
333
 
334
+ If the answers from A and B are very similar in terms of correctness, helpfulness, and relevance, meaning there is no "obvious" winner, judge it as a tie and output [[C]].
335
 
336
+ **[User Question]**
337
+ {prompt}
338
 
339
+ ---
340
 
341
+ **[Assistant A’s Answer]**
342
+ {answer}
343
 
344
+ ---
345
 
346
+ **[Assistant B’s Answer]**
347
+ {prediction}
348
 
349
+ ---
350
+ ```
351
 
352
+ ## Limitation
353
 
354
+ 與多數模型一樣,Kyara 仍存在著幻覺的問題,而且可能是受資料特性的影響,在回答時特別喜歡引經據典,比如請模型解釋一句《活俠傳》中的台詞:
355
 
356
+ ```
357
+ 如何解釋「俠者,不受名利所牽,但求俯仰無愧。正邪存乎在我,聲名留問諸君。非我桀傲不馴,乃因唐門薪火,自古如今!」
358
+ ```
359
 
360
+ 模型的回答會是:
361
 
362
+ ```
363
+ 這段話出自《射鵰英雄傳》中的唐門內部經典,由郭靖和黃蓉在唐門大殿上宣讀。這段話主要表達了唐門門人對於俠義精神和內在修為的追求,以及他們對外界的名利和聲名的不屑。以下是詳細���釋:
364
 
365
+ 1. **「俠者,不受名利所牽」**:
366
+ - 俠者(俠士)是指那些不為名利所動搖、不追求世俗榮華富貴的人。這句話強調了他們追求的是內在的修為和道德,而非外在的名聲和利益。
367
 
368
+ 2. **「但求俯仰無愧」**:
369
+ - 俯仰無愧意指在行動和言行上無愧於心,沒有任何自私的動機。這意味著他們只追求內心的光明和正義,不為外界的評價所動搖。
370
 
371
+ 3. **「正邪存乎在我,聲名留問諸君」**:
372
+ - 正邪存乎在我,意指他們內心有正邪之分,但他們會在行動中保持正義,不讓邪惡侵染。聲名留問諸君,意味著他們的行為和品行會讓世人議論和稱道,但他們並不在意外界的評價。
373
 
374
+ 4. **「非我桀傲不馴,乃因唐門薪火,自古如今!」**:
375
+ - 桀傲不馴(桀傲)指的是桀驁不馴、桀驁不羈,形容那些桀驁不馴、不聽從權威的人。這句話解釋了唐門門人之所以桀驁不馴,是因為他們繼承了唐門薪火,這門派自古以來就以高尚的道德和強大的武功聞名,門人自然要保持這種風範。
376
 
377
+ 總結來說,這段話強調了唐門門人對名利和聲名的不屑,他們追求的是內在的修為和道德,不為外界的評價所動搖。這也體現了他們俠義精神和對正義的堅持。
378
+ ```
379
 
380
+ 建議在使用時仍要謹慎判斷文章的正確性,不要全方面相信大型語言模型的輸出。