lyogavin commited on
Commit
f100094
1 Parent(s): 56f5280

init readme

Browse files
Files changed (1) hide show
  1. README.md +64 -0
README.md CHANGED
@@ -1,3 +1,67 @@
1
  ---
2
  license: apache-2.0
3
  ---
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  ---
2
  license: apache-2.0
3
  ---
4
+ # Anima
5
+
6
+ ![Anima Logo](https://github.com/lyogavin/Anima/blob/main/anima_logo.png?raw=true)
7
+
8
+ 第一个开源的基于QLoRA的33B中文大语言模型 the First QLoRA based 33B fully open-source Chinese LLM
9
+
10
+ ## Github Repo:
11
+
12
+ [https://github.com/lyogavin/Anima](https://github.com/lyogavin/Anima)
13
+
14
+ ## 模型训练
15
+
16
+ ### Backbone模型选择
17
+
18
+ 基于QLoRA开源的[33B guanaco](https://huggingface.co/timdettmers/guanaco-33b)训练。
19
+
20
+ * 思考逻辑:本工作主要为了验证QLoRA训练方法的有效性,因此选择了基于QLoRA的Guanaco 33B finetune训练,这个训练更多的是增强模型的中文能力。Assume模型的基础logical reasoning和Knowledge能力已经足够。
21
+
22
+ ### 训练数据选择
23
+
24
+ 使用[Chinese-Vicuna](https://github.com/Facico/Chinese-Vicuna)项目开放的训练数据集[guanaco_belle_merge_v1.0](https://huggingface.co/datasets/Chinese-Vicuna/guanaco_belle_merge_v1.0)进行finetune训练。
25
+
26
+ * **思考逻辑**:按照[QLoRA](https://arxiv.org/abs/2305.14314) Appendix B.4和Table 9中的Grid Search的结论:对于QLoRA finetune,training sample量不一定越大越好。10000个steps是一个ROI比较优的size。因此我们希望选择一个不小于10000个steps的数据集。[Belle 10M](https://github.com/LianjiaTech/BELLE/blob/main/data/10M)数据集似乎太大了,不确定数据质量如何。时间有限,先选择guanaco_belle_merge_v1.0。后边会进一步更系统性的测试更多的数据集和数据质量筛选的效果。
27
+ * **感谢**:Chinese-Vicuna项目、Belle项目、GuanacoDataset的贡献。
28
+
29
+ ### 超参选择
30
+
31
+ 基于成本ROI平衡的考虑,没有做太多的grid search,基本的思路是follow [QLoRA paper](https://arxiv.org/abs/2305.14314) 的结论,因为QLoRA做了相对比较详尽的超参Grid Search实验:
32
+
33
+ * Batch size: 16 ([QLoRA](https://arxiv.org/abs/2305.14314) Appendix B.4和Table 9)
34
+ * Max steps: 10000 ([QLoRA](https://arxiv.org/abs/2305.14314) Appendix B.4和Table 9),更多的steps和更大的数据集的训练在进一步实验中,后续会持续更新。
35
+ * Learning rate: 1e-4 ([QLoRA](https://arxiv.org/abs/2305.14314) Appendix B.4和Table 9)
36
+ * LoRA r=64, alpha=16 ([QLoRA](https://arxiv.org/abs/2305.14314) Appendix B.2)
37
+ * source_max_len=512, target_max_len=512,需要保证大部分的training sample没有truncate,能完整的把信息训练到模型中,根据脚本()中的估计,512大概可以覆盖大部分的样本长度。
38
+
39
+ ## 验证评估
40
+
41
+ ### Elo rating tournament结论
42
+
43
+ | Model | Elo | Rank |
44
+ |-------------------|---------|------|
45
+ | ChatGPT-3.5 turbo | 1341.98 | 1 |
46
+ | **Anima 33B** | **1096.69** | **2** |
47
+ | Belle | 937.71 | 3 |
48
+ | Chinese Vicuna | 623.62 | 4 |
49
+
50
+ ### 评估方法论
51
+
52
+ * **数据集的选择**:如[Belle Paper](https://github.com/LianjiaTech/BELLE/blob/main/docs/Towards%20Better%20Instruction%20Following%20Language%20Models%20for%20Chinese.pdf)中论述,评估集的不同类型分布对于评估结论影响巨大。如田忌赛马,以己之长攻人之短,很容易占优势。因此我们选择了英文chatbot模型研究工作中比较普遍公认的[Vicuna benchmark](https://lmsys.org/blog/2023-03-30-vicuna/)。为了评测中文,我们使用GPT4对于问题做了翻译。翻译代码和数据集如下:。
53
+ * **评估方法**: 为了平衡成本,我们主要采用GPT4进行评估。如[QLoRA](https://arxiv.org/abs/2305.14314) 论证,单纯GPT4打分进行模型的对比随机波动性较大。这与我们的观察一致。因此采用了[QLoRA](https://arxiv.org/abs/2305.14314) 推荐的,现在比较普遍采用的Elo Rating tournament评测方法。
54
+ * **超参选择**:出于成本考虑,我们选择:300轮随机评估,随机选择模型PK的先后顺序以抵消先后顺序的影响,随机种子为:42。Elo rating的实现代码和其他超参参照[Vicuna的Elo代码](https://raw.githubusercontent.com/lm-sys/FastChat/833d65032a715240a3978f4a8f08e7a496c83cb1/fastchat/serve/monitor/elo_analysis.py): K=32, init rating=1000。
55
+
56
+ ## Who We Are?
57
+
58
+ 此工作来自于[艾写科技](https://aicompose.cn/about)。我们团队来自于硅谷,有多年中、美大厂的一线AI工作经验。
59
+
60
+ 我们致力于通过最新的AGI,LLM技术为内容创作提供下一代的内容创作工具。
61
+
62
+ **我们相信**:生成式AI的年代,“写”不是变得更容易,而是更难了。因为AI拉平了玩家之间的差距。每个人都可以很容易的让ChatGPT帮你写一段文案。
63
+
64
+ 单纯的为内容创作提供“写”文案的工具已经远远不够。内容创作者需要的不是“写”,而是“写爆款”,是要结合“爆款”的趋势,结合对于用户内容兴趣和口味变化的敏锐洞察,为内容创作提供能高效产出爆款的AI。
65
+
66
+ 我们坚持积累大量的中文全网社交媒体数据,积累了大量实时的对于爆款趋势的变化数据。通过结合爆款数据和最近的LLM AI技术,为内容创作者提供算法分发时代真正有效的竞争优势。
67
+