Spaces:
Sleeping
Sleeping
File size: 5,802 Bytes
d9a7b0c fb1cbed d9a7b0c fb1cbed d9a7b0c fb1cbed d9a7b0c fb1cbed d9a7b0c fb1cbed d9a7b0c fb1cbed d9a7b0c 0119cd6 d9a7b0c 0119cd6 d9a7b0c ae805cc 0119cd6 d9a7b0c 0119cd6 d9a7b0c 0119cd6 d9a7b0c 0119cd6 d9a7b0c 0119cd6 d9a7b0c 0119cd6 d9a7b0c 0119cd6 d9a7b0c ae805cc 0119cd6 d9a7b0c 0119cd6 d9a7b0c 0119cd6 d9a7b0c 0119cd6 f54e79f 0119cd6 |
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 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 |
📊 LLM 对比实验报告
1. 模型及类别选择
本实验选择了两种主流的中文语言生成模型:
Model A:Wenzhong-GPT2(由清华 IDEA-CCNL 团队发布,是 GPT2 的中文版本)
Model B:GPT2-Chinese(由 UER 团队发布,基于 GPT2 的中文语料微调模型)
模型用途对比简述
模型名称 发布团队 用途方向 模型体积 相对性能
Wenzhong-GPT2 IDEA-CCNL 通用中文生成 中等 较高
GPT2-Chinese UER 通用中文生成 较小 中等
选取标准与异同点分析
选取标准:能直接用于中文生成、兼容 transformers.pipeline、体积适中、部署稳定。
异同点:
相同点:二者均为 GPT2 架构,使用中文大语料进行预训练,支持自然语言生成任务。
不同点:Wenzhong 语料更丰富、语言结构更自然;UER 模型体积更小,部署速度更快。
2. 系统实现细节
Gradio 交互界面截图

输入与输出流程图
mermaid
复制
编辑
graph TD
用户输入Prompt --> Gradio前端
Gradio前端 --> 模型A
Gradio前端 --> 模型B
模型A --> 输出A
模型B --> 输出B
输出A & 输出B --> 页面展示
模型集成方式说明
每个模型被封装成单独模块(model_a.py / model_b.py),使用 Hugging Face pipeline("text-generation") 接口集成。在主程序中通过统一函数 run_all_models(prompt) 并行调用两个模型,避免重复逻辑,便于后期扩展和维护。
3. GRACE 评估维度定义
实验采用了 GRACE 框架中的四个维度:
维度名 中文定义 选择理由
Generalization 泛化能力,对多样输入适配性 衡量模型对开放式 prompt 的适应力
Relevance 输出与输入主题的相关性 判断生成是否贴合语义中心
Artistry 表达的自然性、文采与流畅性 用于生成类任务(如写诗、讲故事)
Efficiency 推理响应速度与资源使用率 测试部署性能及运行负担
评分结果由人工打分 + 示例对比,结构如下:
scores = {
"Model A": [4.2, 4.5, 4.3, 3.8],
"Model B": [3.9, 4.0, 4.0, 4.5]
}
使用 evaluate.visualization.radar_plot 可生成雷达图。
4. 结果与分析
输入样例及模型输出(节选)
输入 Prompt Model A 输出 Model B 输出
写一首关于春天的诗 春风轻拂柳枝绿,百花争艳报春晖…… 春天到了,阳光温柔,小草钻出泥土……
GRACE 雷达图(系统生成)

模型优劣分析
Model A(Wenzhong-GPT2):更具表达力与文采,适合对语言流畅性有要求的生成任务;
Model B(GPT2-Chinese):响应速度更快、运行开销小,适合部署场景或高频交互任务;
5. 合作与反思
### 👤 同学 A 负责内容
- 集成 Model A(`model_a.py`):使用清华团队的中文 GPT 模型 [`IDEA-CCNL/Wenzhong-GPT2-110M`](https://huggingface.co/IDEA-CCNL/Wenzhong-GPT2-110M),用于支持中文 prompt 的自然语言生成,显著提升模型在中文场景(如诗歌创作)中的表现。
- 实现 Gradio 主界面结构(`app.py`):构建了多选项卡布局,包括:
- **LLM Benchmark**:生成 GRACE 雷达图(调用 `evaluate.visualization.radar_plot`)。
- **Arena**:输入统一 prompt,驱动两个模型输出,进行横向对比。
- **Report**:读取 `report.md`,展示完整实验文档。
- 设计统一接口调用逻辑:使用 `pipeline` 封装模型,确保运行效率与模块可维护性;使用 `run_all_models(prompt)` 函数将两个模型统一绑定按钮操作。
**学到的内容**:
- 掌握 Hugging Face Transformers 的 `pipeline` 快速集成方法;
- 理解中文生成模型与英文模型在 tokenizer 与输出上的显著差异;
- 熟悉 Gradio 的多页签界面设计、组件响应链设置方法。
**遇到的困难**:
- 中文 prompt 使用原 GPT-2 模型出现乱码,需更换为支持中文预训练的模型;
- 在部署到 Hugging Face Spaces 时,首次加载大型中文模型存在等待延迟问题;
- `evaluate.visualization.radar_plot` 在某些环境需手动配置依赖与图形后端。
👤 同学 B 负责内容
集成 DistilGPT2 模型 (model_b.py)
实现 Arena 输入驱动模块(prompt + 输出框)
撰写维度说明、样例输出及最终分析内容同学 B 承担了多项关键任务:首先,完成了 Model B(DistilGPT2)的封装工作,通过使用 transformers 库中的 pipeline 函数,将 distilgpt2 模型加载为用于文本生成的管道对象,并定义了 run_model_b 函数,实现根据输入提示词生成文本,同时设定生成文本的最大长度为 100 且不采用采样策略,确保了模型在项目中的稳定运行与有效调用。
其次,主导了 Arena 模块的开发,凭借其精湛的技术能力和巧妙的架构设计思维,为模型的交互与性能测试搭建了坚实可靠的平台,使得模型在不同场景下的表现能够得到准确的测试与评估。
此外,同学 B 还负责本实验报告的撰写。在撰写过程中,以清晰的逻辑、专业的语言,对实验的目标、环境、所涉及的模型介绍、采用的评估方法、详细的实验结果、深入的结果分析以及全面的总结等内容进行了详实且准确的阐述,为整个实验过程和成果提供了清晰且完整的记录。
学到的内容:
掌握文本生成模型的输出特性差异
使用 Mermaid 绘制流程图,改进报告表达力
遇到的困难:
模型输出的稳定性不一,需调试 do_sample 与 max_length 参数 |