小白也能看懂的大模型评估体系:给AI出一份“期末考卷“
系列文章:AI大模型知识体系 | 第四周·第三篇
引言:怎么知道模型好不好?——给AI"考试打分"
上一篇我们聊了对齐与红队测试,知道了怎么让模型"又乖又听话"。但问题来了——你把模型训好了,对齐也做了,怎么证明它真的行?
这就好比一个学生说自己"学得特别好",你信吗?不信。你得——
考试!
大模型评估就是这么回事:给模型出一份"考卷",看看它到底能考多少分。你说你GPT-4级别,行,来做做MMLU;你说你代码能力爆表,来写写HumanEval;你说你数学无敌,来算算GSM8K。
但大模型评估又不像学校考试那么简单。学校考试有标准答案,对就是对、错就是错。而大模型的输出往往是开放式的——你让它写一首诗,写得好不好,谁来定?你让它回答一个问题,答案可能不止一个,怎么打分?
更离谱的是,有些模型还会"作弊"——把考题偷偷背下来,考试的时候直接默写,分数虚高得离谱。
今天我们就来彻底搞懂大模型评估体系:考什么、怎么考、有哪些坑、以及怎么自己动手跑一次评测。
一、大模型评估的三大维度:能力、安全、对齐
想象你在招聘一个员工,你会从哪些方面考察他?
能力——他能不能干好这份工作?(专业能力)
安全——他会不会干坏事?(人品底线)
对齐——他愿不愿意按你的方式干?(价值观匹配)
大模型评估也是一模一样的三大维度:
┌─────────────────────────────────────────────────────────┐ │ 大模型评估体系 │ ├───────────────┬───────────────┬─────────────────────────┤ │ 能力评估 │ 安全评估 │ 对齐评估 │ ├───────────────┼───────────────┼─────────────────────────┤ │ · 知识储备 │ · 有害输出 │ · 指令遵循 │ │ · 推理能力 │ · 偏见歧视 │ · 人类偏好 │ │ · 代码能力 │ · 隐私泄露 │ · 诚实性 │ │ · 数学能力 │ · 越狱攻击 │ · 有用性 │ │ · 多语言 │ · 幻觉检测 │ · 无害性 │ └───────────────┴───────────────┴─────────────────────────┘维度 | 生活类比 | 核心问题 | 代表性评测 |
|---|---|---|---|
能力评估 | 专业技能面试 | "你能不能干?" | MMLU、HumanEval、GSM8K |
安全评估 | 背景调查 + 品行考核 | "你会不会搞事?" | ToxiGen、RealToxicityPrompts、红队测试 |
对齐评估 | 价值观面试 + 试用期 | "你听不听话?" | MT-Bench、AlpacaEval、Chatbot Arena |
上一篇我们已经聊过安全评估和对齐评估(红队测试、RLHF等),今天我们重点聊能力评估和综合评估方法——这是大模型评估的"主战场"。
二、主流Benchmark详解:五张"王牌考卷"
Benchmark,就是"标准考卷"。大模型圈子里有几个最著名的Benchmark,几乎每家发新模型都要拿它们来秀肌肉。
2.1 MMLU——"全科会考"
MMLU(Massive Multitask Language Understanding),翻译过来就是"大规模多任务语言理解"。
这就像高考的"综合卷"——涵盖57个学科,从初等数学到大学法律,从历史到计算机科学,从医学到哲学,考的就是模型的知识广度和理解深度。
MMLU 学科分布(部分): STEM 人文社科 其他专业领域 ┌──────┐ ┌──────────┐ ┌──────────┐ │ 数学 │ │ 历史 │ │ 法律 │ │ 物理 │ │ 哲学 │ │ 医学 │ │ 化学 │ │ 政治学 │ │ 会计 │ │ 生物 │ │ 经济学 │ │ 计算机科学│ │ 计算机│ │ 心理学 │ │ 工程学 │ └──────┘ └──────────┘ └──────────┘ 17门 21门 19门考试形式:四选一选择题。每道题有A/B/C/D四个选项,模型选对了得分,选错了不得分。
难度等级:分为 elementary(初级)、high school(高中)、college(大学)、professional(专业级)四个难度。
典型分数:GPT-4 约86.4%,Claude 3 Opus 约86.8%,开源模型Llama-3-70B 约82.0%,小模型通常在50-60%徘徊。
2.2 HumanEval——"编程上机考"
HumanEval是专门考代码能力的Benchmark,由OpenAI在2021年发布。
想象一下编程面试的"上机考试"——给你一个函数签名和文档描述,你把函数体写出来,然后跑测试用例,全过了就算通过。
考试形式:164道Python编程题,每道题给函数签名+docstring,模型补全函数体,用单元测试验证正确性。
# HumanEval 示例题目 def has_close_elements(numbers: List[float], threshold: float) -> bool: """Check if in given list of numbers, are any two numbers closer to each other than given threshold. >>> has_close_elements([1.0, 2.0, 3.0], 0.5) False >>> has_close_elements([1.0, 2.8, 3.0, 4.0, 5.0, 2.0], 0.3) True """ # 模型需要补全这里的代码核心指标:pass@k——k次尝试中至少通过一次的概率。最常用的是pass@1(一次写对率)。
典型分数:GPT-4 pass@1 约67%,Claude 3.5 Sonnet 约92%,CodeLlama-34B 约48%。
2.3 GSM8K——"小学数学应用题"
GSM8K(Grade School Math 8K),8500道小学数学应用题。
别小看"小学数学"——对大模型来说,这可比写代码还难。因为数学推理需要严格的逻辑链条,错一步就全错。
GSM8K 题目示例: Janet 的鸭子每天下 16 个蛋。 她每天早上吃 3 个做早餐, 每天用 4 个烤松饼给朋友, 剩下的每个卖 2 美元。 她每天赚多少钱? 模型需要输出: 每天剩余的蛋 = 16 - 3 - 4 = 9 每天赚的钱 = 9 × 2 = 18 美元考试形式:模型需要给出最终数值答案,同时输出推理过程(Chain-of-Thought)。
典型分数:GPT-4 约92%,Claude 3 Opus 约95%,Llama-3-8B 约80%。
2.4 C-Eval——"中国版MMLU"
C-Eval是中文大模型评测的标杆,覆盖52个学科,从初中到研究生级别,专为中文场景设计。
这就像"中国高考"——MMLU是"美国高考",C-Eval是"中国高考",考的知识体系和语言习惯完全不同。
对比项 | MMLU | C-Eval |
|---|---|---|
语言 | 英文 | 中文 |
学科数 | 57 | 52 |
题目数 | ~15,000 | ~13,948 |
难度等级 | 4级 | 4级(初中/高中/大学/研究生) |
特色学科 | 美国法律、西方哲学 | 中国法律、马克思主义理论 |
典型分数:GPT-4 约68.7%,ChatGLM3-6B 约51.2%,Qwen-72B 约83.3%(中文模型在中文评测上天然有优势)。
2.5 MT-Bench——"开放问答辩论赛"
前面四个都是"客观题"——有标准答案,对就是对错就是错。但大模型最核心的能力是开放域对话,这怎么评?
MT-Bench(Multi-Turn Benchmark)就是专门评测多轮对话能力的。它包含80道多轮对话题,覆盖8个领域:写作、角色扮演、推理、数学、编程、信息提取、人文社科、自然科学。
考试形式:模型跟"考官"进行两轮对话,然后由另一个大模型(通常是GPT-4)当"裁判"打分,1-10分。
MT-Bench 评测流程: ┌──────────┐ 第一轮对话 ┌──────────┐ │ 评测题目 │ ──────────────→ │ 被评模型 │ │ (问题1) │ ←────────────── │ 回答1 │ └──────────┘ └────┬─────┘ │ │ │ 第二轮对话(追问) │ │ ──────────────────────────→ │ │ ←────────────────────────── │ │ │ ▼ ▼ ┌──────────┐ 评分请求 ┌──────────────┐ │ 问题1+2 │ ────────────→ │ GPT-4裁判 │ │ 回答1+2 │ ←──────────── │ 打1-10分 │ └──────────┘ └──────────────┘典型分数:GPT-4 约9.0,Claude 3 Opus 约8.8,Llama-3-8B 约8.1。
三、评估的坑:数据污染、Benchmark泄露、刷榜
你以为评测就是老老实实考试?天真!大模型圈子的"考试作弊"比学校里还离谱。
3.1 数据污染——"考前背答案"
数据污染是最普遍、最隐蔽的作弊方式。
想象一个学生,考试前偷偷把考卷看了一遍。虽然他不是故意"作弊"——可能只是在刷题的时候无意中做过了原题——但他的分数肯定虚高。
大模型也是一样。训练数据来自互联网,而很多Benchmark的题目也在互联网上公开着。模型在预训练时可能已经"见过"这些题目,评测时自然表现超好。
数据污染的典型路径: 互联网数据 ──→ 预训练语料 ──→ 模型"记住"了考题 │ │ └──→ Benchmark题目也在互联网上 ──→ 评测时"默写"答案 分数虚高!怎么检测?常见方法有:
n-gram重叠检测:看模型输出和训练数据是否有大段重复
成员推断攻击:判断某条数据是否在训练集中
换题测试:把题目改改表述,看模型成绩是否断崖式下降
3.2 Benchmark泄露——"考卷直接流出"
比数据污染更恶劣的是Benchmark泄露——训练团队故意把评测集混进训练数据里。
这就像老师把期末考试卷直接发给学生背,然后考试的时候考满分,说"我教得好"。
真实案例:
2023年,多个国产模型被发现在MMLU和C-Eval上分数异常偏高,后来发现评测集数据混入了训练集
一些模型在某个Benchmark上分数逆天,但在实际使用中表现拉胯,典型的"刷榜"行为
3.3 Leaderboard刷榜——"应试教育"
就算没有故意作弊,过度追求Benchmark分数也会导致应试教育问题——模型变成了"做题家",只会做标准题,遇到真实场景就不灵了。
刷榜 vs 真实能力的差距: 分数 │ │ ┌──────┐ │ │ 刷榜 │ ┌─────────┐ │ │ 分数 │ │ 真实能力 │ │ │ 虚高 │ │ 缓慢增长│ │ └──┬───┘ └────┬────┘ │ │ │ │ │ ← 差距越来越大 →│ │ │ │ └─────┴───────────────────┴──── 时间 过度优化Benchmark应对之道:
使用动态更新的Benchmark(如Chatbot Arena,题目不断变化)
多维度综合评测,不要只看一个分数
关注真实场景表现而非排行榜名次
四、LLM-as-Judge:用大模型评估大模型
前面说了,很多评测需要"裁判"来打分。但人工打分太贵、太慢,怎么办?
让大模型当裁判!这就是LLM-as-Judge的核心思路。
4.1 为什么需要LLM当裁判?
想象你是一个作文阅卷老师,一天要批改1000篇作文。每篇要读5分钟,一天就要83个小时——根本不可能。
大模型评测也是一样。MT-Bench有80道题,每道题要评估两轮对话的质量,人工评估一个人可能要一整天。而GPT-4当裁判,几秒钟就搞定了。
4.2 LLM-as-Judge的三种模式
┌──────────────────────────────────────────────────────────┐ │ LLM-as-Judge 三种裁判模式 │ ├────────────────┬────────────────┬────────────────────────┤ │ 评分模式 │ 比较模式 │ 参考模式 │ ├────────────────┼────────────────┼────────────────────────┤ │ 给一个回答 │ 给两个回答 │ 给一个回答 │ │ 直接打1-10分 │ 判断哪个更好 │ 加上参考答案 │ │ │ │ 再打分 │ │ │ │ │ │ 优点:简单 │ 优点:更稳定 │ 优点:更客观 │ │ 缺点:不稳定 │ 缺点:有位置 │ 缺点:需要参考答案 │ │ │ 偏好 │ │ └────────────────┴────────────────┴────────────────────────┘4.3 实操:用GPT-4当裁判
import openai def llm_judge(question: str, answer: str, model: str = "gpt-4") -> dict: """用大模型当裁判,给回答打分""" prompt = f"""请作为一个专业的AI助手评估专家,对以下回答进行评分。 ## 评估维度(每项1-10分): 1. 有用性(Helpfulness):回答是否真正解决了用户的问题? 2. 相关性(Relevance):回答是否紧扣问题,没有跑题? 3. 准确性(Accuracy):回答中的事实是否正确? 4. 深度(Depth):回答是否有足够的细节和深度? ## 用户问题: {question} ## AI回答: {answer} ## 请输出JSON格式: {{"helpfulness": 分数, "relevance": 分数, "accuracy": 分数, "depth": 分数, "overall": 总分, "reason": "评分理由"}} """ response = openai.chat.completions.create( model=model, messages=[{"role": "user", "content": prompt}], temperature=0.0 # 温度为0,保证评分一致性 ) return response.choices[0].message.content # 使用示例 question = "请解释什么是量子纠缠,用通俗的语言。" answer = "量子纠缠就像一对魔法骰子,不管它们相隔多远,当你掷出一个6,另一个也会立刻变成6。这种关联是瞬间的,连爱因斯坦都觉得不可思议,称之为'鬼魅般的超距作用'。" result = llm_judge(question, answer) print(result)4.4 LLM-as-Judge的坑
别以为用大模型当裁判就万事大吉了,它也有自己的偏见:
偏见类型 | 说明 | 生活类比 |
|---|---|---|
位置偏好 | 倾向于给排在前面的回答更高分 | 阅卷老师先看第一篇作文,印象分偏高 |
长度偏好 | 倾向于给更长的回答更高分 | 字数多的作文看起来"更认真" |
自我偏好 | GPT-4当裁判时,倾向于给GPT-4的回答更高分 | 老师给自己班的学生打分偏高 |
语气偏好 | 偏好自信、礼貌的表达方式 | 说话好听的学生更容易得高分 |
应对方法:交换回答顺序取平均、控制长度差异、使用多个裁判模型投票。
五、人工评估:Chatbot Arena的Elo评分机制
虽然LLM-as-Judge方便快捷,但最靠谱的评估方式还是——让人来评。
问题是,人工评估太贵了。直到Chatbot Arena出现,它用一种巧妙的方式解决了这个问题。
5.1 Chatbot Arena是什么?
Chatbot Arena(聊天机器人竞技场)由LMSYS组织搭建,是目前最权威的大模型评测平台。它的核心思路是——让用户免费当裁判。
Chatbot Arena 的运作流程: ┌──────────┐ │ 用户 │ 输入一个任意问题 └────┬─────┘ │ ▼ ┌──────────────────────────────────┐ │ Arena 同时调用两个匿名模型 │ │ Model A: "答案是..." │ │ Model B: "答案是..." │ │ (用户不知道A和B分别是哪个模型) │ └────┬─────────────────────────────┘ │ ▼ ┌──────────────────────────────────┐ │ 用户投票:A更好 / B更好 / 差不多 │ │ (也可以选"都很差") │ └────┬─────────────────────────────┘ │ ▼ ┌──────────────────────────────────┐ │ 系统记录结果,更新Elo评分 │ │ A赢了 → A的Elo上升,B的下降 │ └──────────────────────────────────┘这就像"盲品"——你不知道杯子里装的是茅台还是二锅头,只凭口感来评价。这样就不会被品牌名气影响判断。
5.2 Elo评分机制
Chatbot Arena用的是Elo评分系统——没错,就是国际象棋、围棋用的那个评分系统。
核心思想很简单:赢了加分,输了扣分,但加分多少取决于对手的强弱。
赢了强对手 → 加很多分
赢了弱对手 → 加很少分
输了弱对手 → 扣很多分
输了强对手 → 扣很少分
def calculate_elo(rating_a: float, rating_b: float, result: str, k: float = 32.0) -> tuple: """ 计算Elo评分变化 result: "A"表示A赢, "B"表示B赢, "tie"表示平局 """ # 计算预期胜率 expected_a = 1.0 / (1.0 + 10 ** ((rating_b - rating_a) / 400)) expected_b = 1.0 - expected_a # 根据实际结果计算得分 if result == "A": score_a, score_b = 1.0, 0.0 elif result == "B": score_a, score_b = 0.0, 1.0 else: # tie score_a, score_b = 0.5, 0.5 # 更新评分 new_rating_a = rating_a + k * (score_a - expected_a) new_rating_b = rating_b + k * (score_b - expected_b) return round(new_rating_a), round(new_rating_b) # 示例:GPT-4 (Elo=1250) vs Llama-3-8B (Elo=1050) new_a, new_b = calculate_elo(1250, 1050, "A") # GPT-4赢了 print(f"GPT-4: {1250} → {new_a} (强队赢弱队,加很少分)") print(f"Llama-3-8B: {1050} → {new_b} (弱队输强队,扣很少分)") # 反过来:Llama-3-8B赢了GPT-4(爆冷!) new_a, new_b = calculate_elo(1250, 1050, "B") print(f"GPT-4: {1250} → {new_a} (强队输弱队,扣很多分)") print(f"Llama-3-8B: {1050} → {new_b} (弱队赢强队,加很多分)")输出:
GPT-4: 1250 → 1251 (强队赢弱队,加很少分) Llama-3-8B: 1050 → 1049 (弱队输强队,扣很少分) GPT-4: 1250 → 1229 (强队输弱队,扣很多分) Llama-3-8B: 1050 → 1071 (弱队赢强队,加很多分)5.3 为什么Chatbot Arena最靠谱?
优势 | 说明 |
|---|---|
盲测 | 用户不知道模型身份,消除品牌偏见 |
真实问题 | 用户问的是真实场景的问题,不是精心设计的考题 |
动态更新 | 新模型随时加入,排行榜实时变化 |
大规模 | 数百万用户参与,统计显著性极高 |
难以作弊 | 模型无法预知用户会问什么 |
截至2025年,Chatbot Arena已累计超过1000万次人类投票,是大模型评测的"金标准"。
六、实操:用lm-evaluation-harness跑一次评测
说了这么多理论,是时候动手了!我们来用lm-evaluation-harness(EleutherAI开源的评测框架)跑一次真实的Benchmark评测。
6.1 安装
# 克隆仓库 git clone https://github.com/EleutherAI/lm-evaluation-harness.git cd lm-evaluation-harness # 安装(推荐使用pip) pip install -e .6.2 跑一次GSM8K评测
# run_eval.py - 用lm-eval跑GSM8K评测 import subprocess import json def run_gsm8k_evaluation(model_name: str, model_args: str): """ 运行GSM8K评测 model_name: 模型名称(用于记录) model_args: 模型参数(如路径、dtype等) """ cmd = [ "lm_eval", "--model", "hf", # 使用HuggingFace模型 "--model_args", model_args, "--tasks", "gsm8k", # 评测GSM8K "--num_fewshot", "8", # 8-shot:给8个示例 "--batch_size", "8", # 批量大小 "--output_path", f"./results/{model_name}", "--log_samples" # 保存每个样本的输出 ] print(f"开始评测 {model_name} ...") print(f"命令:{' '.join(cmd)}") result = subprocess.run(cmd, capture_output=True, text=True) if result.returncode == 0: print("评测完成!") print(result.stdout[-2000:]) # 打印最后部分输出 else: print("评测出错:") print(result.stderr) # 示例1:评测HuggingFace上的开源模型 run_gsm8k_evaluation( model_name="llama3-8b", model_args="pretrained=meta-llama/Meta-Llama-3-8B,dtype=bfloat16" ) # 示例2:评测本地模型 run_gsm8k_evaluation( model_name="my-model", model_args="pretrained=./my-finetuned-model,dtype=float16" )6.3 一次跑多个Benchmark
# run_multi_bench.py - 多维度综合评测 def run_comprehensive_eval(model_args: str, output_name: str): """一次性跑多个Benchmark,全面评估模型能力""" # 定义评测任务组 task_groups = { "知识理解": "mmlu", # 全科知识 "数学推理": "gsm8k", # 小学数学 "代码能力": "humaneval", # Python编程 "中文能力": "ceval", # 中文综合 } results = {} for category, task_name in task_groups.items(): print(f"\n{'='*50}") print(f"正在评测:{category} ({task_name})") print(f"{'='*50}") cmd = [ "lm_eval", "--model", "hf", "--model_args", model_args, "--tasks", task_name, "--num_fewshot", "5", "--batch_size", "auto", "--output_path", f"./results/{output_name}", "--log_samples" ] result = subprocess.run(cmd, capture_output=True, text=True) results[category] = "完成" if result.returncode == 0 else "失败" print(f"\n{'='*50}") print("评测汇总:") print(f"{'='*50}") for cat, status in results.items(): print(f" {cat}: {status}") return results # 运行综合评测 run_comprehensive_eval( model_args="pretrained=Qwen/Qwen2-7B,dtype=bfloat16", output_name="qwen2-7b-comprehensive" )6.4 解读评测结果
评测完成后,结果会以JSON格式保存。关键指标:
{ "results": { "gsm8k": { "acc": 0.796, // 准确率 79.6% "acc_norm": 0.796, // 归一化准确率 }, "mmlu": { "acc": 0.628, // 总体准确率 62.8% "acc_stem": 0.581, // STEM学科准确率 "acc_humanities": 0.683, // 人文学科准确率 } }, "configs": { "model": "Qwen/Qwen2-7B", "num_fewshot": 5, "batch_size": "auto" } }怎么看结果?
指标 | 优秀 | 良好 | 一般 | 较差 |
|---|---|---|---|---|
MMLU (5-shot) | >80% | 65-80% | 50-65% | <50% |
GSM8K (8-shot) | >85% | 70-85% | 50-70% | <50% |
HumanEval (0-shot) | >70% | 50-70% | 30-50% | <30% |
C-Eval (5-shot) | >75% | 55-75% | 40-55% | <40% |
七、评估体系全景图:一张图看懂大模型怎么"考试"
┌─────────────────────────────────────────────────────────────────┐ │ 大模型评估体系全景 │ ├─────────────────────────────────────────────────────────────────┤ │ │ │ ┌─────────────────────────────────────────────────────────┐ │ │ │ 自动化Benchmark评测 │ │ │ │ ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐ │ │ │ │ │ MMLU │ │Human │ │GSM8K │ │C-Eval│ │HEval │ ... │ │ │ │ └──┬───┘ │Eval │ └──┬───┘ └──┬───┘ └──┬───┘ │ │ │ │ └─────┴──┬───┴────┴────────┴────────┘ │ │ │ │ ▼ │ │ │ │ lm-evaluation-harness / OpenCompass │ │ │ └─────────────────────────────────────────────────────────┘ │ │ │ │ │ ▼ │ │ ┌─────────────────────────────────────────────────────────┐ │ │ │ LLM-as-Judge 评估 │ │ │ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │ │ │ │ 评分模式 │ │ 比较模式 │ │ 参考模式 │ │ │ │ │ └──────────┘ └──────────┘ └──────────┘ │ │ │ │ 裁判模型:GPT-4 / Claude / 自研模型 │ │ │ │ 代表:MT-Bench、AlpacaEval、Arena-Hard │ │ │ └─────────────────────────────────────────────────────────┘ │ │ │ │ │ ▼ │ │ ┌─────────────────────────────────────────────────────────┐ │ │ │ 人工评估 │ │ │ │ ┌──────────────────────────────────────────────────┐ │ │ │ │ │ Chatbot Arena(盲测 + Elo评分) │ │ │ │ │ │ 1000万+ 人类投票,最权威的排行榜 │ │ │ │ │ └──────────────────────────────────────────────────┘ │ │ │ └─────────────────────────────────────────────────────────┘ │ │ │ │ ┌─────────────────────────────────────────────────────────┐ │ │ │ ⚠️ 评估的三大坑:数据污染 | Benchmark泄露 | 刷榜 │ │ │ └─────────────────────────────────────────────────────────┘ │ └─────────────────────────────────────────────────────────────────┘八、总结与下篇预告
今天我们聊了大模型评估体系,核心要点:
三大维度:能力评估(能不能干)、安全评估(会不会搞事)、对齐评估(听不听话)
五大Benchmark:MMLU(全科会考)、HumanEval(编程上机)、GSM8K(数学应用题)、C-Eval(中文高考)、MT-Bench(开放问答)
三大坑:数据污染(背答案)、Benchmark泄露(偷考卷)、刷榜(应试教育)
LLM-as-Judge:用大模型当裁判,方便但有偏见
Chatbot Arena:盲测+Elo评分,目前最靠谱的评测方式
实操:用lm-evaluation-harness跑评测,几行命令搞定
一句话总结:评测不是目的,是手段。别只看排行榜分数,要看模型在真实场景中的表现。就像高考状元不一定是最好的员工,Benchmark第一也不一定是最好的模型。
下篇预告:我们即将进入一个全新的领域——多模态大模型。前面聊的都是"只会说话"的模型,下一篇我们聊聊"既能看图、又能听音、还能说话"的多模态大模型。从CLIP到GPT-4V,从视觉理解到跨模态生成,带你理解AI如何"睁开眼睛看世界"。
系列文章:AI大模型知识体系 | 第四周·第三篇