Spaces:
Sleeping
Sleeping
# 📊 LLM 对比实验报告 | |
## 1. 模型及类别选择 | |
本实验选择了两种主流的语言生成模型: | |
- **Model A**:GPT-2(由 OpenAI 发布,基于 Transformer 架构的大型预训练生成模型) | |
- **Model B**:DistilGPT2(由 Hugging Face 发布,是 GPT-2 的轻量级蒸馏版本) | |
### 模型用途对比简述 | |
| 模型 | 主要用途 | 模型体积 | 相对性能 | | |
|------------|----------------------|----------|----------| | |
| GPT-2 | 通用文本生成任务 | 较大 | 高 | | |
| DistilGPT2 | 快速部署与边缘生成场景 | 较小 | 中等偏上 | | |
### 选取标准与模型异同点分析 | |
- **选取标准**:在 Hugging Face 上广泛使用、API 接口一致、具备代表性。 | |
- **异同点**: | |
- 相同点:均为预训练文本生成模型、使用 `transformers` 提供的 pipeline 方式封装。 | |
- 不同点:模型体积与生成质量略有差异,DistilGPT2 更轻便,但生成表达力略弱。 | |
## 2. 系统实现细节 | |
### Gradio 交互界面截图 | |
(请补充截图,可使用 `` 插入) | |
### 输入与输出流程图 | |
```mermaid | |
graph TD | |
用户输入Prompt --> Gradio前端 | |
Gradio前端 --> 模型A | |
Gradio前端 --> 模型B | |
模型A --> 输出A | |
模型B --> 输出B | |
输出A & 输出B --> 页面展示 | |
模型集成方式说明 | |
所有模型均通过 transformers.pipeline("text-generation") 加载,封装于 model_wrappers/model_a.py 与 model_wrappers/model_b.py 中,支持统一输入后同时生成输出内容,便于 Arena 场景展示与结果对比。 | |
3. GRACE 评估维度定义 | |
本次评估采用 GRACE 框架中的 4 个维度: | |
维度名 说明(结合任务) | |
Generalization 模型面对多样输入时保持合理输出的能力 | |
Relevance 输出与输入主题的相关性 | |
Artistry 生成文本的自然度、流畅性及语言多样性 | |
Efficiency 模型的响应速度和资源占用效率(尤其是推理速度) | |
选择理由:这四个维度覆盖了生成模型在质量、表达与使用效率方面的主要考量。 | |
4. 结果与分析 | |
多条输入样例输出结果对比 | |
Prompt 输入 Model A 输出片段 Model B 输出片段 | |
Tell me a story about a dragon ... the dragon flew over... ... once there was a dragon... | |
写一首关于春天的诗 ...花开满地,风送绿意... ...春天来了,阳光明媚... | |
维度评分图(雷达图) | |
图像生成方式使用:evaluate.visualization.radar_plot,如下图所示: | |
(由系统自动生成图形展示) | |
分析每个模型的优劣势 | |
GPT-2:表现更自然、上下文连贯度高,但体积大、推理速度稍慢。 | |
DistilGPT2:响应更快,占用资源更低,但有时生成文本显得简单或重复。 | |
5. 合作与反思 | |
👤 同学 A 负责内容 | |
集成 GPT-2 模型 (model_a.py) | |
实现主界面结构和 GRACE 雷达图模块 | |
完成 report.md 文档框架搭建 | |
学到的内容: | |
熟悉 Gradio 多页签应用搭建 | |
掌握 Hugging Face 模型集成流程 | |
遇到的困难: | |
模型加载初期速度较慢,需增加缓存处理 | |
雷达图模块在 Hugging Face Spaces 上需手动安装 evaluate | |
👤 同学 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 参数 |