File tree Expand file tree Collapse file tree 1 file changed +107
-0
lines changed Expand file tree Collapse file tree 1 file changed +107
-0
lines changed Original file line number Diff line number Diff line change
1
+ # 在 PaddleNLP 中复现 Gemma2 模型
2
+ | 任务名称 | 在 PaddleNLP 中复现 Gemma2 模型 |
3
+ | ---| ---|
4
+ | 提交作者<input type =" checkbox " class =" rowselector hidden " > | robinbg |
5
+ | 提交时间<input type =" checkbox " class =" rowselector hidden " > | 2025-04-02 |
6
+ | 版本号 | V1.0 |
7
+ | 依赖飞桨版本<input type =" checkbox " class =" rowselector hidden " > | develop |
8
+ | 文件名 | 20250402_add_gemma2_for_paddlenlp.md<br > |
9
+
10
+ # 一、概述
11
+ ## 1、相关背景
12
+
13
+ Gemma2是Google最新发布的大型语言模型,在推理能力和生成质量方面表现优异。将Gemma2引入PaddleNLP生态系统,可以为用户提供更多高性能模型选择。
14
+
15
+ ## 2、功能目标
16
+
17
+ 在PaddleNLP中实现Gemma2模型,确保与原始实现的精度对齐,并提供完整的模型组网、tokenizer以及相关测试。
18
+
19
+ ## 3、意义
20
+
21
+ 丰富PaddleNLP的模型库,为用户提供高性能的Gemma2模型支持。
22
+
23
+ # 二、飞桨现状
24
+
25
+ PaddleNLP目前尚未支持Gemma2模型。
26
+
27
+ # 三、业内方案调研
28
+
29
+ Gemma2已在Hugging Face Transformers等主流框架中得到支持。
30
+ 参考实现:https://github.com/huggingface/transformers/tree/main/src/transformers/models/gemma2
31
+
32
+ # 四、对比分析
33
+
34
+ 严格对标Hugging Face的实现,确保功能和性能完全对齐。
35
+
36
+ # 五、设计思路与实现方案
37
+
38
+ ## 1. 精度对齐
39
+ - 按照[ 精度验证方法] ( https://paddlenlp.readthedocs.io/zh/latest/community/contribute_models/align_pytorch_and_paddle.html ) 进行对齐
40
+ - FP32 精度下误差 < 1e-5
41
+ - BF16 精度下误差 < 1e-3
42
+
43
+ ## 2. 核心组件实现
44
+ - Gemma2Config: 模型配置类
45
+ - Gemma2Tokenizer: 分词器实现
46
+ - Gemma2PreTrainedModel: 预训练模型基类
47
+ - Gemma2Model: 主干网络实现
48
+ - Gemma2ForCausalLM: 生成任务模型实现
49
+
50
+ ## 3. 测试验证
51
+ - 模型结构测试
52
+ - 前向计算测试
53
+ - 精度对齐测试
54
+ - Tokenizer测试
55
+
56
+ # 六、测试验收的考量
57
+
58
+ ## 1. 精度对齐
59
+ - [ ] FP32: 误差 < 1e-5
60
+ - [ ] BF16: 误差 < 1e-3
61
+
62
+ ## 2. 代码完备性
63
+ - [ ] 模型组网完整
64
+ - [ ] Tokenizer完整
65
+ - [ ] 接口规范
66
+
67
+ ## 3. 测试完备性
68
+ - [ ] 单元测试覆盖
69
+ - [ ] 精度测试完整
70
+ - [ ] CI测试通过
71
+
72
+ ## 4. 文档完备性
73
+ - [ ] API文档
74
+ - [ ] 示例代码
75
+ - [ ] 代码注释
76
+
77
+ # 七、可行性分析和排期规划
78
+
79
+ ## Day 1-3
80
+ - 完成模型核心代码
81
+ - 实现tokenizer
82
+ - 搭建验证框架
83
+
84
+ ## Day 4-7
85
+ - 编写单元测试
86
+ - 进行精度验证
87
+ - 性能优化
88
+
89
+ ## Day 8-10
90
+ - 完善文档
91
+ - 添加示例
92
+ - 完善注释
93
+
94
+ # 八、影响面
95
+
96
+ PaddleNLP新增Gemma2模型支持。
97
+
98
+ # 名词解释
99
+
100
+ - Gemma2: Google发布的大型语言模型
101
+ - FP32/BF16: 不同精度的浮点数表示格式
102
+
103
+ # 附件及参考资料
104
+
105
+ - [ Hugging Face Gemma2实现] ( https://github.com/huggingface/transformers/tree/main/src/transformers/models/gemma2 )
106
+ - [ PaddleNLP模型对齐指南] ( https://paddlenlp.readthedocs.io/zh/latest/community/contribute_models/align_pytorch_and_paddle.html )
107
+ ] ( https://github.com/robinbg/community/blob/robinbg-add-gemma2/rfcs/PaddleNLP/20250402_add_gemma2_for_paddlenlp.md )
You can’t perform that action at this time.
0 commit comments