Spaces:
Sleeping
Sleeping
Update app.py
#17
by
lucksadasd
- opened
app.py
CHANGED
@@ -88,4 +88,72 @@ def create_arena_tab():
|
|
88 |
inputs=[question_input, context_input, gen_length_slider],
|
89 |
outputs=[output_text_gen, output_qa]
|
90 |
)
|
91 |
-
return arena_block
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
88 |
inputs=[question_input, context_input, gen_length_slider],
|
89 |
outputs=[output_text_gen, output_qa]
|
90 |
)
|
91 |
+
return arena_block
|
92 |
+
# Report 选项卡内容创建函数 (30分)
|
93 |
+
# 报告内容直接嵌入到代码中
|
94 |
+
# def create_report_tab():
|
95 |
+
# report_content_markdown = """
|
96 |
+
# # 🚀 Hugging Face 模型对比实验报告
|
97 |
+
|
98 |
+
# ---
|
99 |
+
|
100 |
+
# ## 1. 模型及类别选择
|
101 |
+
|
102 |
+
# ### 1.1 所选模型的类型与背景说明
|
103 |
+
# 本次实验聚焦于**文本处理模型**,具体包括一个**通用文本生成模型**和一个**抽取式问答模型**。
|
104 |
+
# * **文本生成模型**能够根据输入的提示词(prompt)生成连贯、有意义的文本,广泛应用于自动写作、内容创作等。
|
105 |
+
# * **抽取式问答模型**则专注于从给定文本(上下文)中精确地定位并提取问题的答案,是信息检索和智能客服的核心技术。
|
106 |
+
# 近年来,随着Transformer架构的普及和大规模预训练技术的进步,这两类模型的性能都取得了显著提升。
|
107 |
+
|
108 |
+
# ### 1.2 模型用途对比简述
|
109 |
+
# 我们选择了以下 2 个模型进行对比:
|
110 |
+
# * **模型 1: GPT2-Large (文本生成模型)**
|
111 |
+
# * **用途简述**: 作为一个大型的通用文本生成模型, GPT2-Large 能够进行开放式文本生成、续写、摘要、创意写作等多种任务。它能理解较复杂的指令并生成语法流畅、内容丰富的文本。
|
112 |
+
# * **模型 2: deepset/roberta-base-squad2 (抽取式问答模型)**
|
113 |
+
# * **用途简述**: 这是一个专门用于抽取式问答任务的模型。它接收一个问题和一段上下文文本,然后从上下文中找到并返回问题的确切答案片段。主要应用于精准信息提取、文档问答系统等。
|
114 |
+
|
115 |
+
# ### 1.3 选取标准与模型异同点分析
|
116 |
+
# **选取标准**: 我们选择这两个模型主要基于以下标准:
|
117 |
+
# 1. **代表性**: 它们分别代表了文本处理领域中两种核心且不同的应用方向(生成与抽取)。
|
118 |
+
# 2. **可用性**: 模型在 Hugging Face Model Hub 上易于加载和使用 `pipeline`。
|
119 |
+
# 3. **性能对比潜力**: 两种不同类型的模型在 GRACE 维度上会有显著差异,有利于进行有深度的对比分析。
|
120 |
+
|
121 |
+
# **异同点分析**:
|
122 |
+
# * **相同点**:
|
123 |
+
# * 都基于 Transformer 架构。
|
124 |
+
# * 都处理自然语言文本作为输入。
|
125 |
+
# * 都可以在 Hugging Face `transformers` 库中通过 `pipeline` 方便地加载和使用。
|
126 |
+
# * **不同点**:
|
127 |
+
# * **任务类型**: GPT2-Large 专注于**文本生成**(从无到有),而 RoBERTa-SQuAD2 专注于**信息抽取**(从已有文本中找)。
|
128 |
+
# * **输入输出模式**:
|
129 |
+
# * GPT2-Large 接收一个提示词,输出一段新的、连贯的文本。
|
130 |
+
# * RoBERTa-SQuAD2 接收一个问题和一段上下文,输出上下文中最精确的答案片段。
|
131 |
+
# * **“创造性”**: GPT2-Large 具有更强的创造性,能够生成新的、未曾出现过的句子和想法;RoBERTa-SQuAD2 不具备创造性,它只从原文中抽取答案。
|
132 |
+
# * **对上下文的依赖**: 问答模型对上下文的依赖性极强,没有上下文就无法回答;文本生成模型则更灵活,即便没有明确上下文也能生成内容。
|
133 |
+
|
134 |
+
# ---
|
135 |
+
|
136 |
+
# ## 2. 系统实现细节
|
137 |
+
|
138 |
+
# ### 2.1 Gradio 交互界面截图
|
139 |
+
|
140 |
+
# 以下是我们在 Hugging Face Space 中构建的 Gradio 交互界面截图。
|
141 |
+
# 
|
142 |
+
# *(请将此处的图片链接替换为你实际上传到 Space Files 中的截图链接,例如:`/file/main/arena_screenshot.png`)*
|
143 |
+
# *说明:此图展示了我们构建的“Arena”选项卡界面。用户可以在左侧输入问题/提示词和上下文,右侧同步显示文本生成模型和问答模型的输出。*
|
144 |
+
|
145 |
+
# ### 2.2 输入与输出流程图
|
146 |
+
|
147 |
+
# ```mermaid
|
148 |
+
# graph TD
|
149 |
+
# A[用户输入: 问题/提示词] --> B{Gradio 界面};
|
150 |
+
# A --> C[用户输入: 上下文];
|
151 |
+
# C --> B;
|
152 |
+
# B -- 将问题与上下文合并为Prompt --> D1[调用 GPT2-Large (文本生成模型)];
|
153 |
+
# B -- 将问题与上下文分离 --> D2[调用 RoBERTa-SQuAD2 (问答模型)];
|
154 |
+
# D1 -- 生成文本 --> E1[GPT2-Large 输出];
|
155 |
+
# D2 -- 抽取答案 --> E2[RoBERTa-SQuAD2 输出];
|
156 |
+
# E1 --> F[在 Gradio 界面显示];
|
157 |
+
# E2 --> F;
|
158 |
+
# ```
|
159 |
+
# *说明:此流程图展示了用户输入如何被 Gradio 界面捕获,问题和上下文分别传递给两个模型。文本生成模型将两者合并为提示词,问答模型则分别使用它们,最终将各自的结果展示在界面上。*
|