103
社区成员
发帖
与我相关
我的任务
分享| 这个作业属于哪个课程 | 2501_CS_SE_FZU |
|---|---|
| 这个作业要求在哪里 | 软件工程实践——软件评测作业 邹欣老师的案例分析作业要求 |
| 这个作业的目标 | 先调研,评测,分析四个大模型,再编写程序自动化测试目前市面上的一些大模型 |
| 其他参考文献 | 《构建之法(第三版)》 |
本次测试涉及4个大语言模型,分为API云端模型和本地部署模型两类
Qwen 是阿里云推出的通义千问大语言模型系列,qwen3-30b 是其30B参数规模的指令微调版本,专门优化用于对话和任务完成场景。
核心功能:
注册阿里云账号
开通服务
使用界面

ChatGLM 是清华大学 KEG 实验室和智谱 AI 联合开发的对话语言模型,glm-4.6 是其第四代模型的最新版本,支持长文本和复杂推理。
核心功能:
注册智谱AI账号
获取API密钥
使用方式
Llama 3.2 是 Meta(Facebook)开源的大语言模型系列,1B 版本是轻量级版本,适合本地部署,在资源受限的环境下也能运行。
核心功能:
安装 Ollama
# Windows
下载:https://ollama.ai/download
安装后自动启动服务
# 验证安装
ollama --version
下载模型
# 下载 llama3.2:1b 模型
ollama pull llama3.2:1b
# 查看已安装模型
ollama list
使用方式
ollama run llama3.2:1bhttp://localhost:11434/v1/chat/completionsQwen2.5 是阿里巴巴开源的通义千问模型,0.5B 版本是超轻量级版本,专为边缘设备和资源受限环境设计。
核心功能:
安装 Ollama(同上)
下载模型
# 下载 qwen2.5:0.5b 模型
ollama pull qwen2.5:0.5b
# 模型大小约 350MB,下载速度快
使用方式
ollama run qwen2.5:0.5b采访对象背景



所有测试结果汇总到一个CSV文件:output/all_tests_merged_20251025_233823.csv
数据统计:
| 维度 | 数值 |
|---|---|
| 测试场景数 | 5个 |
| 测试模型数 | 4个 |
| 单场景重复次数 | 5次 |
| 总测试次数 | 100次 (4×5×5) |
| 总对话轮次 | 100次 |
| 评估维度 | 5个 |
每次批量测试都会生成完整的JSON文件,保存所有原始测试数据。以下是真实测试数据的节选:
{
"timestamp": "2025-10-25T20:26:59.556060",
"scenarios_tested": 5,
"models_tested": 2,
"total_tests": 50,
"elapsed_time": 9142.40787601471,
"results": [
{
"scenario_name": "经济型家用车",
"scenario_id": "economy_family",
"evaluations": [
{
"model_name": "Qwen (qwen3-30b-a3b-instruct-2507)",
"timestamp": "2025-10-25T17:57:29.724932",
"total_score": 9.27,
"metrics": [
{
"name": "推荐相关性",
"weight": 0.25,
"description": "推荐的车型是否符合预算和需求",
"score": 8.5,
"weighted_score": 2.125,
"feedback": "✓ 提供了10款候选车型; ✓ 充分考虑了用户需求(4/4)"
},
{
"name": "分析深度",
"weight": 0.2,
"description": "对各项指标的分析是否深入专业",
"score": 9.0,
"weighted_score": 1.8,
"feedback": "✓ 分析内容详实; ✓ 提供了具体数据(约334个数值)"
},
{
"name": "信息准确性",
"weight": 0.25,
"description": "提供的参数和信息是否准确",
"score": 10.0,
"weighted_score": 2.5,
"feedback": "✓ 保持了车型推荐的一致性; ✓ 提供了具体参数数据"
},
{
"name": "表格质量",
"weight": 0.15,
"description": "对比表格是否清晰完整",
"score": 9.0,
"weighted_score": 1.35,
"feedback": "✓ 表格结构完整(16行); ✓ 对比维度丰富(8列); ✓ 数据完整"
},
{
"name": "最终推荐合理性",
"weight": 0.15,
"description": "最终推荐是否有理有据",
"score": 10.0,
"weighted_score": 1.5,
"feedback": "✓ 给出了明确推荐; ✓ 提供了推荐理由; ✓ 推荐说明详细"
}
],
"summary": "总分9.27分,评级A+ (优秀)。优势:推荐相关性, 分析深度, 信息准确性, 表格质量, 最终推荐合理性。",
"scenario_name": "经济型家用车",
"scenario_id": "economy_family",
"repeat_index": 1,
"repeat_total": 5
}
]
}
]
}
JSON数据结构说明:
timestamp: 测试时间戳scenarios_tested: 测试场景数量models_tested: 测试模型数量total_tests: 总测试次数results: 测试结果数组scenario_name: 场景名称(中文)scenario_id: 场景ID(英文标识)evaluations: 该场景下所有模型的评估结果model_name: 模型名称total_score: 加权总分metrics: 5个评估维度的详细评分name: 指标名称weight: 权重score: 原始分数(0-10分)weighted_score: 加权分数feedback: 评分反馈说明summary: 评估总结repeat_index: 第几次重复测试repeat_total: 总共重复次数采用模块化设计,将自动化测试流程分解为独立的功能模块:
自动化测试平台架构
├── config.yaml # 配置管理(模型API密钥、参数)
├── llm_client.py # LLM客户端(统一接口,支持多种模型)
├── evaluator.py # 自动化评分器(规则引擎)
├── batch_test.py # 批量测试引擎
├── data_exporter.py # 数据导出(JSON、CSV)
└── visualizer.py # 可视化生成器
我们通过 test_scenario() 函数实现完整的购车决策流程:
def test_scenario(scenario_config: Dict, client: LLMClient) -> Dict[str, Any]:
"""
模拟完整的购车决策对话流程
流程:
1. 提出购车意图(用户背景 + 初始需求)
2. 获取大模型初步推荐
3. 输入详细购车要点(逐条需求)
4. 要求输出性能参数对比表
5. 获取最终推荐决策
"""
# 步骤1: 构建完整的购车咨询prompt
prompt = f"""
【用户背景】
{scenario_config['user_profile']}
【购车意向】
{scenario_config['intention']}
【具体要求】
{scenario_config['requirements']}
请你作为专业的购车顾问:
1. 根据我的需求,推荐3款最合适的车型
2. 详细分析每款车的优势和适用场景
3. 提供包含关键参数的对比表格
4. 给出最终推荐意见
"""
# 步骤2: 调用大模型API
response = client.chat(prompt)
# 步骤3: 返回结果供评估
return {
'scenario': scenario_config['name'],
'model': client.model_name,
'response': response,
'timestamp': datetime.now().isoformat()
}
为了支持不同类型的模型(API模型、本地模型),我们设计了统一的客户端接口:
class LLMClient(ABC):
"""抽象基类:定义统一接口"""
@abstractmethod
def chat(self, prompt: str) -> str:
"""发送对话请求"""
pass
class QwenClient(LLMClient):
"""阿里百炼Qwen客户端"""
def chat(self, prompt: str) -> str:
response = self.client.chat.completions.create(
model=self.model,
messages=[{"role": "user", "content": prompt}]
)
return response.choices[0].message.content
class ChatGLMClient(LLMClient):
"""智谱ChatGLM客户端"""
# 实现相同
class OllamaClient(LLMClient):
"""本地Ollama模型客户端"""
def chat(self, prompt: str) -> str:
# 调用本地Ollama API
response = requests.post(
f"{self.base_url}/chat/completions",
json={
"model": self.model,
"messages": [{"role": "user", "content": prompt}]
}
)
return response.json()['choices'][0]['message']['content']
关键优势:
设计了5个评测维度,全自动量化模型表现:
class CarRecommendationEvaluator:
"""购车推荐自动化评估器"""
METRICS = [
{
"name": "推荐相关性",
"weight": 0.25,
"description": "推荐车型是否符合用户需求"
},
{
"name": "分析深度",
"weight": 0.20,
"description": "是否提供深入的优缺点分析"
},
{
"name": "信息准确性",
"weight": 0.25,
"description": "车型信息和参数是否准确"
},
{
"name": "表格质量",
"weight": 0.15,
"description": "对比表格是否清晰完整"
},
{
"name": "最终推荐合理性",
"weight": 0.15,
"description": "最终推荐是否合理且有说服力"
}
]
通过正则表达式和关键词匹配实现自动化评分:
def _evaluate_recommendation_relevance(self, response: str,
scenario: Dict) -> float:
"""评估推荐相关性"""
score = 5.0 # 基础分
# 检查是否包含推荐车型
if re.search(r'(推荐|建议).{0,20}(车型|车款)', response):
score += 2.0
# 检查是否提及用户需求关键词
requirements = scenario.get('requirements', '')
keywords = self._extract_keywords(requirements)
mention_count = sum(1 for kw in keywords if kw in response)
score += min(mention_count * 0.5, 3.0)
return min(score, 10.0)
评分逻辑:
实现了完全自动化的批量测试流程:
def run_batch_test(models: List[str],
scenarios: List[str],
repeat: int = 5) -> Dict:
"""
批量测试引擎
参数:
models: 待测试的模型列表
scenarios: 测试场景列表
repeat: 每个场景的重复测试次数
返回:
包含所有测试结果的字典
"""
all_results = []
for scenario_id in scenarios:
scenario_config = load_scenario(scenario_id)
for model_name in models:
# 创建模型客户端
client = create_llm_client(model_name, config)
# 重复测试
for i in range(repeat):
print(f"测试: {scenario_config['name']} "
f"| 模型: {model_name} "
f"| 第{i+1}/{repeat}次")
# 执行单次测试
test_result = test_scenario(scenario_config, client)
# 自动评分
evaluation = evaluator.evaluate(
test_result['response'],
scenario_config
)
# 保存结果
all_results.append({
'scenario': scenario_config['name'],
'model': model_name,
'evaluation': evaluation,
'timestamp': test_result['timestamp']
})
return {'results': all_results}
测试结果自动保存为多种格式:
# 1. JSON格式 - 保存完整数据
data_exporter.export_to_json(
results,
f"batch_results_{timestamp}.json"
)
# 2. CSV格式 - 便于Excel分析
data_exporter.export_to_csv(
results,
f"batch_results_{timestamp}.csv",
calculate_average=True # 自动计算平均分和标准差
)
CSV输出示例(真实测试数据节选):
场景,场景ID,模型名称,测试次数,平均总分,等级,标准差,推荐相关性_平均,分析深度_平均,信息准确性_平均,表格质量_平均,最终推荐合理性_平均
中档商务车,mid_business,ChatGLM (glm-4.6),5,8.38,A,1.029,6.5,8.2,9.2,8.8,10.0
中档商务车,mid_business,Ollama (llama3.2:1b),5,8.12,A,0.536,6.4,9.0,8.8,8.2,8.6
中档商务车,mid_business,Ollama (qwen2.5:0.5b),5,8.39,A,0.832,6.4,9.0,8.8,8.6,10.0
中档商务车,mid_business,Qwen (qwen3-30b-a3b-instruct-2507),5,9.27,A+,0.253,8.4,9.4,10.0,8.6,10.0
年轻人首辆车,young_first,ChatGLM (glm-4.6),1,5.1,C,0.0,5.0,5.0,6.0,2.0,7.0
年轻人首辆车,young_first,Ollama (llama3.2:1b),5,8.39,A,0.602,6.0,9.0,9.2,8.6,10.0
年轻人首辆车,young_first,Ollama (qwen2.5:0.5b),5,7.91,B+,0.588,5.4,9.1,8.4,8.0,9.6
年轻人首辆车,young_first,Qwen (qwen3-30b-a3b-instruct-2507),5,9.47,A+,0.0,8.5,10.0,10.0,9.0,10.0
纯电动车,pure_electric,ChatGLM (glm-4.6),5,8.21,A,0.631,5.8,10.0,9.2,7.4,9.0
纯电动车,pure_electric,Ollama (llama3.2:1b),5,8.59,A,0.359,6.4,9.4,9.4,8.2,9.6
说明:
4模型5场景5次测试共100个测试结果/all_tests_merged_20251025_233823.csv优点:
缺点:
改进建议:
测试场景:购车推荐咨询
用户输入:
我想买一辆20万左右的家用车,主要用于城市通勤,
希望空间大一点,油耗低,安全配置要好。请推荐几款。
Qwen回复:
根据您的需求,我为您推荐以下三款车型:
1. 本田CR-V (19.99-26.99万)
- 优势:空间宽敞,后排腿部空间充足...
[详细的车型分析和对比表格]
推荐理由:...
输出特点:
准确性无可挑剔
推荐高度贴合需求
分析深度专业
表格对比清晰
稳定性极佳
优点:
缺点:
改进建议:
测试场景:购车推荐咨询
用户输入:
我预算15万,想买辆新能源车,主要在市区开,
一周充一次电就够了。有什么推荐?
ChatGLM回复:
根据您的预算和需求,推荐以下几款新能源车:
1. 比亚迪海豚
2. 哪吒V
3. 零跑T03
[车型介绍...]
输出特点:
稳定性不足
推荐相关性弱
表格质量不理想
改进建议:
优点:
缺点:
改进建议:
测试场景:购车推荐咨询
用户输入:
我想买辆10万以下的代步车,主要接送孩子,
要省油,空间够用就行。
Llama3.2回复:
根据您的需求,推荐以下经济型轿车:
1. 吉利帝豪 (7-10万)
- 油耗:5.9L/100km
- 空间:适合一家三口
[简要分析...]
这几款车都比较省油,维护成本也不高。
输出特点:
意外发现:
适用场景:
Qwen2.5-0.5B 是阿里巴巴通义千问团队推出的 Qwen2.5 系列中参数规模最小的模型,拥有 5亿(0.5 Billion) 参数。
测试场景:购车推荐咨询
用户输入:
我是年轻人,预算12万,想要一辆有点个性的车,
动力要好,外观要时尚。
Qwen2.5回复:
根据您的需求,推荐以下车型:
1. 长安UNI-V (10-13万)
- 外观:运动溜背造型,年轻时尚
- 动力:1.5T发动机,动力充沛
[对比分析...]
推荐理由:性价比高,符合年轻人审美。
输出特点:
响应时间
回答质量
技术局限性
Qwen2.5:0.5b在技术性任务上表现优秀,响应速度快,适合数学计算、编程等基础应用场景。但在指令理解和创意生成方面需要改进,建议在技术性任务中优先使用,对于复杂指令和创意需求需配合其他工具或人工干预。
Qwen2.5 是阿里巴巴开源的通义千问模型,0.5B 版本是超轻量级版本,专为边缘设备和资源受限环境设计。
核心功能:
用户输入:
我是年轻人,预算12万,想要一辆有点个性的车,
动力要好,外观要时尚。
Qwen2.5回复:
根据您的需求,推荐以下车型:
1. 长安UNI-V (10-13万)
- 外观:运动溜背造型,年轻时尚
- 动力:1.5T发动机,动力充沛
[对比分析...]
推荐理由:性价比高,符合年轻人审美。
生成了包含所有4个模型的批量对比图:
图表标题:全部4个模型在5个场景下的平均分对比(含误差棒)

图表特点:
一眼看出:
为每个场景生成综合仪表板,包含4个子图:
scenario_economy_family_all_models_dashboard.png (经济家庭车)

scenario_mid_business_all_models_dashboard.png (中档商务车)
scenario_pure_electric_all_models_dashboard.png (纯电动车)
scenario_luxury_suv_all_models_dashboard.png (豪华SUV)
scenario_young_first_all_models_dashboard.png (年轻人首辆车)

仪表板包含:
左上:总分对比
右上:各指标对比
左下:指标分布箱线图
右下:统计信息面板
基于100次测试的数据,4个模型的综合表现排名:
| 排名 | 模型 | 平均分 | 等级 | 稳定性(标准差) | 综合评价 |
|---|---|---|---|---|---|
| 🥇 1 | Qwen (qwen3-30b-a3b-instruct-2507) | 9.31 | A+ | 0.092 | ⭐⭐⭐⭐⭐ 极其优秀 |
| 🥈 2 | Ollama (qwen2.5:0.5b) | 8.36 | A | 0.551 | ⭐⭐⭐⭐ 优秀 |
| 🥉 3 | Ollama (llama3.2:1b) | 8.47 | A | 0.522 | ⭐⭐⭐⭐ 优秀 |
| 4 | ChatGLM (glm-4.6) | 7.70 | B+ | 1.357 | ⭐⭐⭐ 良好(不稳定) |
| 场景 | 最佳模型 | 平均分 | 优势分析 |
|---|---|---|---|
| 经济型家用车 | Qwen | 9.38 | 推荐精准,性价比分析深入 |
| 中档商务车 | Qwen | 9.27 | 商务需求理解到位,品牌定位准确 |
| 纯电动车 | Qwen | 9.18 | 新能源技术参数专业,续航分析详细 |
| 豪华SUV | Qwen | 9.25 | 高端品牌把握准确,配置对比全面 |
| 年轻人首辆车 | Qwen | 9.47 | 预算控制合理,实用性分析贴合需求 |
结论:Qwen (qwen3-30b-a3b-instruct-2507) 在所有场景中都表现最佳。
| 模型 | 推荐相关性平均分 | 分析 |
|---|---|---|
| Qwen | 8.48 | 推荐车型高度贴合用户需求,预算控制精准 |
| Ollama (qwen2.5:0.5b) | 6.44 | 推荐较合理,但偶尔偏离预算范围 |
| Ollama (llama3.2:1b) | 6.64 | 推荐思路清晰,但品牌选择有时不够精准 |
| ChatGLM | 5.92 | 推荐相关性较弱,部分场景推荐车型不符 |
| 模型 | 分析深度平均分 | 分析 |
|---|---|---|
| Qwen | 9.60 | 优缺点分析透彻,场景适配性分析深入 |
| Ollama (llama3.2:1b) | 9.00 | 分析结构清晰,但深度略逊于Qwen |
| Ollama (qwen2.5:0.5b) | 9.18 | 分析全面,关注点分布合理 |
| ChatGLM | 7.88 | 分析较为表面,缺乏深层次对比 |
| 模型 | 信息准确性平均分 | 分析 |
|---|---|---|
| Qwen | 10.00 | 车型信息完全准确,参数无误 |
| Ollama (llama3.2:1b) | 9.12 | 基本准确,极少数参数略有偏差 |
| Ollama (qwen2.5:0.5b) | 8.96 | 信息准确率高,偶尔混淆同系列车型 |
| ChatGLM | 8.64 | 准确率较高,但参数表格有时不完整 |
| 模型 | 表格质量平均分 | 分析 |
|---|---|---|
| Qwen | 8.56 | 表格结构清晰,参数全面,对比维度恰当 |
| Ollama (qwen2.5:0.5b) | 8.12 | 表格完整,但格式偶尔不够规范 |
| Ollama (llama3.2:1b) | 8.36 | 表格内容丰富,对比项选择合理 |
| ChatGLM | 7.32 | 表格有时缺失关键参数,格式不统一 |
| 模型 | 最终推荐合理性平均分 | 分析 |
|---|---|---|
| Qwen | 10.00 | 最终推荐逻辑严密,理由充分令人信服 |
| Ollama (qwen2.5:0.5b) | 9.84 | 推荐合理,决策依据明确 |
| Ollama (llama3.2:1b) | 9.52 | 推荐可靠,但说服力略逊于前两者 |
| ChatGLM | 8.80 | 推荐基本合理,但理由有时不够充分 |
标准差对比(越小越稳定):
| 模型 | 稳定值 | 分析 |
|---|---|---|
| Qwen | 0.092 | 极度稳定 |
| Ollama (llama3.2) | 0.522 | 稳定 |
| Ollama (qwen2.5) | 0.551 | 稳定 |
| ChatGLM | 1.357 | 不稳定 |
稳定性结论:
| 评判维度 | 推荐模型 | 理由 |
|---|---|---|
| 综合实力 | Qwen | 各方面均衡优秀,无明显短板 |
| 准确性 | Qwen | 信息准确率100%,零错误 |
| 稳定性 | Qwen | 标准差仅0.092,极度稳定 |
| 性价比 | Ollama (qwen2.5:0.5b) | 本地部署,零成本,性能优秀 |
| 分析深度 | Qwen | 分析专业深入,决策支持强 |
| 响应速度 | Ollama (llama3.2:1b) | 本地推理,毫秒级响应 |
最终推荐:
大模型平台或测试系统主要体现在三个层次:程序层面、软件工程层面和商业层面。
在程序层面,大模型依赖于先进的算法(如Transformer架构)和数据结构(如高维向量表示),通过深度学习技术处理自然语言任务,实现文本生成、分类和对话等功能。
在软件工程层面,这些平台提供API服务、开发文档和协作机制(如版本控制和团队管理),支持用户集成和定制。
在商业层面,大模型通常采用订阅制或按使用量收费的商业模式,其竞争优势在于模型性能、可扩展性和生态系统整合。
大模型对现实生活带来了深远影响。正面影响包括提升生产效率(如自动化写作和客服)、促进教育普及(如个性化学习助手)和推动科研创新(如数据分析和假设生成)。然而,也存在负面影响,如就业市场变革(某些岗位被自动化取代)、隐私担忧(数据泄露风险)和伦理问题(偏见放大)。
基于性能、用户体验和市场份额,对同类大模型产品进行对比排名:
GPT-4(OpenAI)
Bard(Google)
Claude(Anthropic)
LLaMA(Meta)
排名依据为综合得分:GPT-4(9/10)、Bard(8/10)、Claude(7/10)、LLaMA(6/10)。建议用户根据需求选择:GPT-4适合高性能应用,Bard适合实时信息查询,Claude适合安全关键任务,LLaMA适合研究开发。
作为新上任的项目经理,建议从以下方面改进以提升竞争力:
这些改进将提升产品稳定性和用户体验,降低维护成本,从而在竞争中胜出。
大模型市场正处于快速增长期。根据行业数据,全球市场规模预计从2023年的100亿美元增至2030年的500亿美元,年复合增长率超过25%。直接用户包括开发者、企业和研究机构,约占总用户的30%,数量估计为500万。潜在用户涵盖教育、医疗和娱乐等领域,预计可达数亿,主要受AI普及和数字化趋势驱动。
市场增长因素包括云计算基础设施扩展、AI应用场景增多以及投资增加。然而,挑战包括监管不确定性、技术门槛和伦理争议。总体而言,市场潜力巨大,但需关注用户隐私和可持续性。
在当前模型基础上,规划新功能:多模态实时协作编辑器。该功能允许用户通过文本、语音和图像输入实时协作编辑文档,并集成AI辅助生成和校对。
NABCD分析:
| 学号 | 姓名 | 工作内容 | 贡献度 |
|---|---|---|---|
| 102300314 | 黄逸涵 | 大模型测评 | 10% |
| 102300124 | 林哲纶 | 大模型测评,博客编写 | 15% |
| 103200323 | 施涵 | 博客编写 | 10% |
| 062300243 | 滕柏宇 | PPT制作 | 10% |
| 172209065 | 林伟豪 | PPT制作 | 10% |
| 102300228 | 杨欣潼 | 大模型测评,博客编写 | 15% |
| 102300319 | 陈启航 | PPT制作 | 10% |
| 102300311 | 方林升 | 体验调研 | 10% |
| 102300201 | 陈吕萌 | 体验调研 | 10% |