Files changed (2) hide show
  1. README.md +0 -57
  2. app.py +75 -99
README.md CHANGED
@@ -10,63 +10,6 @@ license: mit
10
  short_description: Duplicate this leaderboard to initialize your own!
11
  sdk_version: 5.19.0
12
  ---
13
- """
14
- """
15
- # 大型语言模型 (LLM) 翻译能力对比评估报告
16
- ## 1. 引言与实验目标
17
- 本报告旨在展示一个基于 Gradio 构建的 LLM 翻译能力评估系统,该系统实现了用户输入、多模型输出展示,并结合 GRACE 框架对模型进行多维度分析。本实验聚焦于**中文到英文的翻译任务**,目标是选取并对比 2 个不同模型在此任务中的表现,并通过 Gradio 界面实现用户输入与多模型输出展示。此外,还将结合 GRACE 框架对模型进行维度分析。
18
- ## 2. GRACE 评估框架
19
- GRACE 框架是一个多维度评估框架,用于全面衡量 LLM 在特定任务中的性能。在本次翻译任务的评估中,我们选择了以下 5 个维度:
20
- * **G: Generalization (泛化性)**:模型处理不同领域、风格、复杂度的文本并准确翻译的能力。
21
- * **R: Relevance (相关性)**:翻译内容与原文语义和上下文的匹配程度。
22
- * **A: Accuracy (准确性)**:翻译的精确性和无误性,包括语法、词汇和句法结构的正确性。
23
- * **C: Consistency (一致性)**:相同或类似输入文本在不同时间或上下文中的翻译稳定性。
24
- * **E: Efficiency (效率性)**:翻译速度和所需的计算资源。
25
- ## 3. 系统设计与模型选择
26
- 系统采用 Gradio 构建前端界面,后端利用 Hugging Face Transformers 库加载和运行模型,并结合 Pandas、Plotly 和 NumPy 进行数据处理与可视化。我们选择了两个中文到英文的翻译模型进行对比:
27
- 1. **Chinese-to-English (Opus-MT)**: 使用 `Helsinki-NLP/opus-mt-zh-en`,这是一个约 3 亿参数、1.2GB 大小的专门翻译模型,预期在中文到英文翻译上具有较高准确性和流畅性。
28
- 2. **Chinese-to-English (T5-Small)**: 使用 `google-t5/t5-small`,这是一个约 6 千万参数(60 Million)、240MB 大小的通用文本到文本模型,其主要优势在于尺寸小、推理效率高,但在翻译时需要将输入格式化为 `"translate Chinese to English: <text>"`.
29
- 在 `TranslationComparator` 类中,模型通过 `transformers.pipeline("translation")` 加载。`translate_text` 函数负责接收中文文本,并对 T5-Small 模型进行输入格式化处理,然后调用相应模型进行翻译,记录推断时间及输出信息。
30
- ## 4. 实验结果与分析
31
- 两个模型均成功加载并运行。在实际翻译中,Opus-MT 作为专门模型,通常提供更高质量和流畅的翻译;T5-Small 则以其小尺寸和高效率见长。
32
- **GRACE 评估模拟结果 (数据来源于代码中的模拟分数):**
33
- | 模型 | 泛化性 | 相关性 | 准确性 | 一致性 | 效率性 | 平均分 |
34
- | :------------------------------- | :----- | :----- | :----- | :----- | :----- | :----- |
35
- | Chinese-to-English (Opus-MT) | 7.8 | 8.3 | 8.0 | 7.9 | 7.5 | 7.90 |
36
- | Chinese-to-English (T5-Small) | 6.8 | 7.0 | 6.5 | 6.8 | 9.0 | 7.22 |
37
- 从模拟数据中可以看出,Opus-MT 在翻译质量维度(泛化性、相关性、准确性、一致性)得分更高。T5-Small 则在**效率性**上表现突出(9.0分),但由于其通用性,翻译质量略低于专门模型。在参数量和模型大小上,T5-Small 显著优于 Opus-MT,在资源受限场景下更具优势。
38
- **可视化示例:**
39
- * **GRACE 雷达图**: 展示了模型在 GRACE 各维度的对比。
40
- ![GRACE 雷达图示例](image_6b7454.png)
41
- * **GRACE 详细性能对比柱状图**: 提供各维度分数的直观比较。
42
- ![GRACE 详细对比示例](image_6b5a12.png)
43
- ## 5. 部署与提交问题
44
- 成员 A:系统架构与模型集成
45
- 负责内容:
46
- 设计TranslationComparator类,完成 Opus-MT、T5-Small、mBART-Large 三个模型的加载与管理,处理模型输入格式差异(如 T5-Small 的任务前缀、mBART 的源语言指定)。
47
- 实现翻译核心逻辑translate_text函数,集成推理时间计算、Token 统计等性能指标记录。
48
- 解决模型加载异常问题,设计 fallback 机制(如模型未找到时返回模拟翻译结果)。
49
- 学到的内容:
50
- Hugging Face Transformers 库的底层原理,掌握pipeline接口在多模型场景下的参数定制(如src_lang、max_length)。
51
- CPU 推理环境下的内存优化策略,通过torch.float32降低精度需求,避免大型模型(如 mBART)加载时的显存溢出。
52
- 跨模型兼容性处理,例如不同模型对输入文本格式的特殊要求(任务前缀、语言代码指定)。
53
- 遇到的困难:
54
- mBART-Large 模型因多语言参数导致的加载耗时问题,最终通过预加载机制和异步处理缓解。
55
- 模型推理速度差异大(如 T5-Small 与 mBART 的效率对比),需在代码中平衡实时响应与翻译质量。
56
- 成员 B:前端开发与评估可视化
57
- 负责内容:
58
- 基于 Gradio 构建交互式界面,设计 “翻译竞技场” 和 “GRACE 基准测试” 双模块,实现用户输入、模型输出展示及参数调节功能。
59
- 开发 GRACE 评估可视化组件,包括雷达图(create_translation_radar_chart)、柱状图(create_performance_bar_chart)及数据表格。
60
- 整合示例文本功能与动态布局,优化响应式设计以适配不同设备。
61
- 学到的内容:
62
- Gradio 框架的组件嵌套逻辑(Blocks/Tab/Row),掌握事件监听(如按钮点击、滑块调节)与数据绑定机制。
63
- Plotly 图表开发技巧,例如雷达图中多模型曲线的颜色编码、分组柱状图的维度映射。
64
- 前端数据格式化处理,将模型翻译结果转换为 JSON 格式并在 Code 组件中高亮展示。
65
- 在开发和部署 LLM 基准测试系统时,常遇到“模型未找到”(因私有性或访问权限问题)和 `trust_remote_code=True` 安全警告(平台出于安全考虑拒绝自动提交此类模型) 两类问题。解决方案是选择公开可用的模型,并避免使用需要 `trust_remote_code=True` 的模型进行平台提交。
66
- ## 6. 结论与展望
67
- 本项目成功构建了一个中文到英文翻译模型对比评估系统,并利用 GRACE 框架对 Opus-MT 和 T5-Small 进行了多维度分析。结果显示,专门翻译模型在质量上表现稳定,而小型通用模型在效率上优势明显。未来可引入真实用户评估、集成更高级的量化评估指标(如 BLEU、ROUGE)、扩展模型库以及优化 GPU 环境下的性能,以提升评估的全面性和准确性。
68
- """
69
- """
70
 
71
  # Start the configuration
72
 
 
10
  short_description: Duplicate this leaderboard to initialize your own!
11
  sdk_version: 5.19.0
12
  ---
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
13
 
14
  # Start the configuration
15
 
app.py CHANGED
@@ -1,3 +1,56 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  import gradio as gr
2
  import pandas as pd
3
  import plotly.graph_objects as go
@@ -5,7 +58,7 @@ import plotly.express as px
5
  import time
6
  import numpy as np
7
  # 导入 AutoTokenizer 和 AutoModelForSeq2SeqLM
8
- from transformers import pipeline, AutoTokenizer, AutoModelForSeq2SeqLM
9
  import torch
10
  import json
11
  import re
@@ -26,10 +79,10 @@ MODEL_CONFIGS = {
26
  }
27
  # 如果需要第三个模型,可以取消注释下面这个,或替换成您想要的
28
  # "Chinese-to-English (Another Model)": {
29
- # "model_name": "facebook/mbart-large-50-one-to-many-mmt",
30
- # "description": "中文到英文的机器翻译模型 (Facebook mBART-Large-50)",
31
- # "max_length": 200,
32
- # "color": "#45B7D1"
33
  # }
34
  }
35
 
@@ -44,7 +97,7 @@ class TranslationComparator:
44
  for model_key, config in MODEL_CONFIGS.items():
45
  try:
46
  print(f"加载 {model_key} ({config['model_name']})...")
47
-
48
  # T5模型通常用于多任务,这里我们明确指定它用于翻译
49
  # pipeline("translation") 会尝试自动处理,但T5需要特定输入格式
50
  self.models[model_key] = pipeline(
@@ -75,7 +128,7 @@ class TranslationComparator:
75
 
76
  try:
77
  start_time = time.time()
78
-
79
  # **针对 T5 模型添加输入格式化**
80
  if "t5-small" in model_key.lower(): # 检查是否是T5-Small模型
81
  # T5的翻译任务通常需要这样的前缀
@@ -89,11 +142,11 @@ class TranslationComparator:
89
  text_to_translate,
90
  max_length=max_length
91
  )
92
-
93
  end_time = time.time()
94
-
95
  translated_text = result[0]['translation_text']
96
-
97
  return {
98
  "translated_text": translated_text,
99
  "inference_time": round(end_time - start_time, 3),
@@ -103,7 +156,7 @@ class TranslationComparator:
103
  "max_length": max_length
104
  }
105
  }
106
-
107
  except Exception as e:
108
  return {
109
  "error": f"翻译错误: {str(e)}",
@@ -117,7 +170,7 @@ comparator = TranslationComparator()
117
 
118
  def run_translation_comparison(zh_prompt, max_length):
119
  """运行所有中文到英文模型的翻译对比"""
120
-
121
  if not zh_prompt.strip():
122
  # 返回与模型数量相匹配的错误消息
123
  return tuple([gr.Code.update(value=json.dumps({"错误信息": "请输入中文文本进行翻译"}, ensure_ascii=False)) for _ in MODEL_CONFIGS])
@@ -132,7 +185,7 @@ def run_translation_comparison(zh_prompt, max_length):
132
  max_length=int(max_length)
133
  )
134
  results[model_key] = result
135
-
136
  # 格式化输出
137
  if "error" in result:
138
  outputs_list.append(json.dumps({"错误信息": result["error"]}, indent=2, ensure_ascii=False))
@@ -144,7 +197,7 @@ def run_translation_comparison(zh_prompt, max_length):
144
  "翻译速度": f"{result['output_length']/max(result['inference_time'], 0.001):.1f} tokens/s"
145
  }
146
  outputs_list.append(json.dumps(formatted, indent=2, ensure_ascii=False))
147
-
148
  return tuple(outputs_list)
149
 
150
 
@@ -154,17 +207,17 @@ def calculate_grace_scores_for_translation():
154
  grace_data = {
155
  "Chinese-to-English (Opus-MT)": {
156
  "Generalization": 7.8, # 处理不同领域中翻英能力
157
- "Relevance": 8.3, # 翻译内容与原文语义相关性
158
- "Accuracy": 8.0, # 翻译精确性
159
- "Consistency": 7.9, # 翻译稳定性
160
- "Efficiency": 7.5 # 推理效率
161
  },
162
  "Chinese-to-English (T5-Small)": { # **T5-Small 的模拟 GRACE 分数**
163
  "Generalization": 6.8, # 比T5-Base略低,泛化性可能稍弱
164
  "Relevance": 7.0,
165
  "Accuracy": 6.5,
166
  "Consistency": 6.8,
167
- "Efficiency": 9.0 # 模型更小,效率更高
168
  }
169
  }
170
  return grace_data
@@ -180,7 +233,7 @@ def create_translation_radar_chart():
180
  for i, (model_name, scores) in enumerate(grace_scores.items()):
181
  values = [scores[cat] for cat in categories]
182
  # 这里使用 MODEL_CONFIGS[model_name]["color"] 依赖于 MODEL_CONFIGS 和 grace_scores 的键名一致
183
- color = MODEL_CONFIGS[model_name]["color"]
184
 
185
  fig.add_trace(go.Scatterpolar(
186
  r=values,
@@ -254,7 +307,7 @@ def create_model_info_table():
254
  else: # 默认值
255
  params = "未知"
256
  size = "未知"
257
-
258
  model_info.append({
259
  "模型": model_key,
260
  "参数量": params,
@@ -383,84 +436,7 @@ def create_app():
383
  label="GRACE 评分摘要",
384
  interactive=False
385
  )
386
-
387
- # New tab for the Evaluation Report
388
- with gr.TabItem("📄 评估报告"):
389
- gr.Markdown("""
390
- # 大型语言模型 (LLM) 翻译能力对比评估报告
391
-
392
- ---
393
-
394
- ## 1. 引言与实验目标
395
-
396
- 本报告旨在展示一个基于 Gradio 构建的 LLM 翻译能力评估系统,该系统实现了用户输入、多模型输出展示,并结合 GRACE 框架对模型进行多维度分析。本实验聚焦于**中文到英文的翻译任务**,目标是选取并对比 2 个不同模型在此任务中的表现,并通过 Gradio 界面实现用户输入与多模型输出展示。此外,还将结合 GRACE 框架对模型进行维度分析。
397
-
398
- ---
399
-
400
- ## 2. GRACE 评估框架
401
-
402
- GRACE 框架是一个多维度评估框架,用于全面衡量 LLM 在特定任务中的性能。在本次翻译任务的评估中,我们选择了以下 5 个维度:
403
- * **G: Generalization (泛化性)**:模型处理不同领域、风格、复杂度的文本并准确翻译的能力。
404
- * **R: Relevance (相关性)**:翻译内容与原文语义和上下文的匹配程度。
405
- * **A: Accuracy (准确性)**:翻译的精确性和无误性,包括语法、词汇和句法结构的正确性。
406
- * **C: Consistency (一致性)**:相同或类似输入文本在不同时间或上下文中的翻译稳定性。
407
- * **E: Efficiency (效率性)**:翻译速度和所需的计算资源。
408
-
409
- ---
410
-
411
- ## 3. 系统设计与模型选择
412
-
413
- 系统采用 Gradio 构建前端界面,后端利用 Hugging Face Transformers 库加载和运行模型,并结合 Pandas、Plotly 和 NumPy 进行数据处理与可视化。我们选择了两个中文到英文的翻译模型进行对比:
414
-
415
- 1. **Chinese-to-English (Opus-MT)**: 使用 `Helsinki-NLP/opus-mt-zh-en`,这是一个约 3 亿参数、1.2GB 大小的专门翻译模型,预期在中文到英文翻译上具有较高准确性和流畅性。
416
- 2. **Chinese-to-English (T5-Small)**: 使用 `google-t5/t5-small`,这是一个约 6 千万参数(60 Million)、240MB 大小的通用文本到文本模型,其主要优势在于尺寸小、推理效率高,但在翻译时需要将输入格式化为 `"translate Chinese to English: <text>"`.
417
-
418
- 在 `TranslationComparator` 类中,模型通过 `transformers.pipeline("translation")` 加载。`translate_text` 函数负责接收中文文本,并对 T5-Small 模型进行输入格式化处理,然后调用相应模型进行翻译,记录推断时间及输出信息。
419
-
420
- ---
421
-
422
- ## 4. 实验结果与分析
423
-
424
- 两个模型均成功加载并运行。在实际翻译中,Opus-MT 作为专门模型,通常提供更高质量和流畅的翻译;T5-Small 则以其小尺寸和高效率见长。
425
-
426
- **GRACE 评估模拟结果 (数据来源于代码中的模拟分数):**
427
-
428
- | 模型 | 泛化性 | 相关性 | 准确性 | 一致性 | 效率性 | 平均分 |
429
- | :------------------------------ | :----- | :----- | :----- | :----- | :----- | :----- |
430
- | Chinese-to-English (Opus-MT) | 7.8 | 8.3 | 8.0 | 7.9 | 7.5 | 7.90 |
431
- | Chinese-to-English (T5-Small) | 6.8 | 7.0 | 6.5 | 6.8 | 9.0 | 7.22 |
432
-
433
- 从模拟数据中可以看出,Opus-MT 在翻译质量维度(泛化性、相关性、准确性、一致性)得分更高。T5-Small 则在**效率性**上表现突出(9.0分),但由于其通用性,翻译质量略低于专门模型。在参数量和模型大小上,T5-Small 显著优于 Opus-MT,在资源受限场景下更具优势。
434
-
435
- **可视化示例:**
436
-
437
- * **GRACE 雷达图**: 展示了模型在 GRACE 各维度的对比。
438
- ![GRACE 雷达图示例](image_6b7454.png)
439
- * **GRACE 详细性能对比柱状图**: 提供各维度分数的直观比较。
440
- ![GRACE 详细对比示例](image_6b5a12.png)
441
-
442
- ---
443
-
444
- ## 5. 部署与提交问题
445
-
446
- **成员 A:系统架构与模型集成**
447
- * **负责内容**:设计TranslationComparator类,完成 Opus-MT、T5-Small、mBART-Large 三个模型的加载与管理,处理模型输入格式差异(如 T5-Small 的任务前缀、mBART 的源语言指定)。实现翻译核心逻辑translate_text函数,集成推理时间计算、Token 统计等性能指标记录。解决模型加载异常问题,设计 fallback 机制(如模型未找到时返回模拟翻译结果)。
448
- * **学到的内容**:Hugging Face Transformers 库的底层原理,掌握pipeline接口在多模型场���下的参数定制(如src_lang、max_length)。CPU 推理环境下的内存优化策略,通过torch.float32降低精度需求,避免大型模型(如 mBART)加载时的显存溢出。跨模型兼容性处理,例如不同模型对输入文本格式的特殊要求(任务前缀、语言代码指定)。
449
- * **遇到的困难**:mBART-Large 模型因多语言参数导致的加载耗时问题,最终通过预加载机制和异步处理缓解。模型推理速度差异大(如 T5-Small 与 mBART 的效率对比),需在代码中平衡实时响应与翻译质量。
450
-
451
- **成员 B:前端开发与评估可视化**
452
- * **负责内容**:基于 Gradio 构建交互式界面,设计 “翻译竞技场” 和 “GRACE 基准测试” 双模块,实现用户输入、模型输出展示及参数调节功能。开发 GRACE 评估可视化组件,包括雷达图(create_translation_radar_chart)、柱状图(create_performance_bar_chart)及数据表格。整合示例文本功能与动态布局,优化响应式设计以适配不同设备。
453
- * **学到的内容**:Gradio 框架的组件嵌套逻辑(Blocks/Tab/Row),掌握事件监听(如按钮点击、滑块调节)与数据绑定机制。Plotly 图表开发技巧,例如雷达图中多模型曲线的颜色编码、分组柱状图的维度映射。前端数据格式化处理,将模型翻译结果转换为 JSON 格式并在 Code 组件中高亮展示。
454
-
455
- 在开发和部署 LLM 基准测试系统时,常遇到“模型未找到”(因私有性或访问权限问题)和 `trust_remote_code=True` 安全警告(平台出于安全考虑拒绝自动提交此类模型) 两类问题。解决方案是选择公开可用的模型,并避免使用需要 `trust_remote_code=True` 的模型进行平台提交。
456
-
457
- ---
458
-
459
- ## 6. 结论与展望
460
-
461
- 本项目成功构建了一个中文到英文翻译模型对比评估系统,并利用 GRACE 框架对 Opus-MT 和 T5-Small 进行了多维度分析。结果显示,专门翻译模型在质量上表现稳定,而小型通用模型在效率上优势明显。未来可引入真实用户评估、集成更高级的量化评估指标(如 BLEU、ROUGE)、扩展模型库以及优化 GPU 环境下的性能,以提升评估的全面性和准确性。
462
- """)
463
-
464
  return app
465
 
466
  # 创建并启动 Gradio 应用
 
1
+ """
2
+ # 大型语言模型 (LLM) 翻译能力对比评估报告
3
+
4
+ ## 1. 引言与实验目标
5
+
6
+ 本报告旨在展示一个基于 Gradio 构建的 LLM 翻译能力评估系统,该系统实现了用户输入、多模型输出展示,并结合 GRACE 框架对模型进行多维度分析。本实验聚焦于**中文到英文的翻译任务**,目标是选取并对比 2 个不同模型在此任务中的表现,并通过 Gradio 界面实现用户输入与多模型输出展示。此外,还将结合 GRACE 框架对模型进行维度分析。
7
+
8
+ ## 2. GRACE 评估框架
9
+
10
+ GRACE 框架是一个多维度评估框架,用于全面衡量 LLM 在特定任务中的性能。在本次翻译任务的评估中,我们选择了以下 5 个维度:
11
+ * **G: Generalization (泛化性)**:模型处理不同领域、风格、复杂度的文本并准确翻译的能力。
12
+ * **R: Relevance (相关性)**:翻译内容与原文语义和上下文的匹配程度。
13
+ * **A: Accuracy (准确性)**:翻译的精确性和无误性,包括语法、词汇和句法结构的正确性。
14
+ * **C: Consistency (一致性)**:相同或类似输入文本在不同时间或上下文中的翻译稳定性。
15
+ * **E: Efficiency (效率性)**:翻译速度和所需的计算资源。
16
+
17
+ ## 3. 系统设计与模型选择
18
+
19
+ 系统采用 Gradio 构建前端界面,后端利用 Hugging Face Transformers 库加载和运行模型,并结合 Pandas、Plotly 和 NumPy 进行数据处理与可视化。我们选择了两个中文到英文的翻译模型进行对比:
20
+
21
+ 1. **Chinese-to-English (Opus-MT)**: 使用 `Helsinki-NLP/opus-mt-zh-en`,这是一个约 3 亿参数、1.2GB 大小的专门翻译模型,预期在中文到英文翻译上具有较高准确性和流畅性。
22
+ 2. **Chinese-to-English (T5-Small)**: 使用 `google-t5/t5-small`,这是一个约 6 千万参数(60 Million)、240MB 大小的通用文本到文本模型,其主要优势在于尺寸小、推理效率高,但在翻译时需要将输入格式化为 `"translate Chinese to English: <text>"`.
23
+
24
+ 在 `TranslationComparator` 类中,模型通过 `transformers.pipeline("translation")` 加载。`translate_text` 函数负责接收中文文本,并对 T5-Small 模型进行输入格式化处理,然后调用相应模型进行翻译,记录推断时间及输出信息。
25
+
26
+ ## 4. 实验结果与分析
27
+
28
+ 两个模型均成功加载并运行。在实际翻译中,Opus-MT 作为专门模型,通常提供更高质量和流畅的翻译;T5-Small 则以其小尺寸和高效率见长。
29
+
30
+ **GRACE 评估模拟结果 (数据来源于代码中的模拟分数):**
31
+
32
+ | 模型 | 泛化性 | 相关性 | 准确性 | 一致性 | 效率性 | 平均分 |
33
+ | :------------------------------- | :----- | :----- | :----- | :----- | :----- | :----- |
34
+ | Chinese-to-English (Opus-MT) | 7.8 | 8.3 | 8.0 | 7.9 | 7.5 | 7.90 |
35
+ | Chinese-to-English (T5-Small) | 6.8 | 7.0 | 6.5 | 6.8 | 9.0 | 7.22 |
36
+
37
+ 从模拟数据中可以看出,Opus-MT 在翻译质量维度(泛化性、相关性、准确性、一致性)得分更高。T5-Small 则在**效率性**上表现突出(9.0分),但由于其通用性,翻译质量略低于专门模型。在参数量和模型大小上,T5-Small 显著优于 Opus-MT,在资源受限场景下更具优势。
38
+
39
+ **可视化示例:**
40
+
41
+ * **GRACE 雷达图**: 展示了模型在 GRACE 各维度的对比。
42
+ ![GRACE 雷达图示例](image_6b7454.png)
43
+ * **GRACE 详细性能对比柱状图**: 提供各维度分数的直观比较。
44
+ ![GRACE 详细对比示例](image_6b5a12.png)
45
+
46
+ ## 5. 部署与提交问题
47
+
48
+ 在开发和部署 LLM 基准测试系统时,常遇到“模型未找到”(因私有性或访问权限问题)和 `trust_remote_code=True` 安全警告(平台出于安全考虑拒绝自动提交此类模型) 两类问题。解决方案是选择公开可用的模型,并避免使用需要 `trust_remote_code=True` 的模型进行平台提交。
49
+
50
+ ## 6. 结论与展望
51
+
52
+ 本项目成功构建了一个中文到英文翻译模型对比评估系统,并利用 GRACE 框架对 Opus-MT 和 T5-Small 进行了多维度分析。结果显示,专门翻译模型在质量上表现稳定,而小型通用模型在效率上优势明显。未来可引入真实用户评估、集成更高级的量化评估指标(如 BLEU、ROUGE)、扩展模型库以及优化 GPU 环境下的性能,以提升评估的全面性和准确性。
53
+ """
54
  import gradio as gr
55
  import pandas as pd
56
  import plotly.graph_objects as go
 
58
  import time
59
  import numpy as np
60
  # 导入 AutoTokenizer 和 AutoModelForSeq2SeqLM
61
+ from transformers import pipeline, AutoTokenizer, AutoModelForSeq2SeqLM
62
  import torch
63
  import json
64
  import re
 
79
  }
80
  # 如果需要第三个模型,可以取消注释下面这个,或替换成您想要的
81
  # "Chinese-to-English (Another Model)": {
82
+ # "model_name": "facebook/mbart-large-50-one-to-many-mmt",
83
+ # "description": "中文到英文的机器翻译模型 (Facebook mBART-Large-50)",
84
+ # "max_length": 200,
85
+ # "color": "#45B7D1"
86
  # }
87
  }
88
 
 
97
  for model_key, config in MODEL_CONFIGS.items():
98
  try:
99
  print(f"加载 {model_key} ({config['model_name']})...")
100
+
101
  # T5模型通常用于多任务,这里我们明确指定它用于翻译
102
  # pipeline("translation") 会尝试自动处理,但T5需要特定输入格式
103
  self.models[model_key] = pipeline(
 
128
 
129
  try:
130
  start_time = time.time()
131
+
132
  # **针对 T5 模型添加输入格式化**
133
  if "t5-small" in model_key.lower(): # 检查是否是T5-Small模型
134
  # T5的翻译任务通常需要这样的前缀
 
142
  text_to_translate,
143
  max_length=max_length
144
  )
145
+
146
  end_time = time.time()
147
+
148
  translated_text = result[0]['translation_text']
149
+
150
  return {
151
  "translated_text": translated_text,
152
  "inference_time": round(end_time - start_time, 3),
 
156
  "max_length": max_length
157
  }
158
  }
159
+
160
  except Exception as e:
161
  return {
162
  "error": f"翻译错误: {str(e)}",
 
170
 
171
  def run_translation_comparison(zh_prompt, max_length):
172
  """运行所有中文到英文模型的翻译对比"""
173
+
174
  if not zh_prompt.strip():
175
  # 返回与模型数量相匹配的错误消息
176
  return tuple([gr.Code.update(value=json.dumps({"错误信息": "请输入中文文本进行翻译"}, ensure_ascii=False)) for _ in MODEL_CONFIGS])
 
185
  max_length=int(max_length)
186
  )
187
  results[model_key] = result
188
+
189
  # 格式化输出
190
  if "error" in result:
191
  outputs_list.append(json.dumps({"错误信息": result["error"]}, indent=2, ensure_ascii=False))
 
197
  "翻译速度": f"{result['output_length']/max(result['inference_time'], 0.001):.1f} tokens/s"
198
  }
199
  outputs_list.append(json.dumps(formatted, indent=2, ensure_ascii=False))
200
+
201
  return tuple(outputs_list)
202
 
203
 
 
207
  grace_data = {
208
  "Chinese-to-English (Opus-MT)": {
209
  "Generalization": 7.8, # 处理不同领域中翻英能力
210
+ "Relevance": 8.3, # 翻译内容与原文语义相关性
211
+ "Accuracy": 8.0, # 翻译精确性
212
+ "Consistency": 7.9, # 翻译稳定性
213
+ "Efficiency": 7.5 # 推理效率
214
  },
215
  "Chinese-to-English (T5-Small)": { # **T5-Small 的模拟 GRACE 分数**
216
  "Generalization": 6.8, # 比T5-Base略低,泛化性可能稍弱
217
  "Relevance": 7.0,
218
  "Accuracy": 6.5,
219
  "Consistency": 6.8,
220
+ "Efficiency": 9.0 # 模型更小,效率更高
221
  }
222
  }
223
  return grace_data
 
233
  for i, (model_name, scores) in enumerate(grace_scores.items()):
234
  values = [scores[cat] for cat in categories]
235
  # 这里使用 MODEL_CONFIGS[model_name]["color"] 依赖于 MODEL_CONFIGS 和 grace_scores 的键名一致
236
+ color = MODEL_CONFIGS[model_name]["color"]
237
 
238
  fig.add_trace(go.Scatterpolar(
239
  r=values,
 
307
  else: # 默认值
308
  params = "未知"
309
  size = "未知"
310
+
311
  model_info.append({
312
  "模型": model_key,
313
  "参数量": params,
 
436
  label="GRACE 评分摘要",
437
  interactive=False
438
  )
439
+
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
440
  return app
441
 
442
  # 创建并启动 Gradio 应用