共计 1504 个字符,预计需要花费 4 分钟才能阅读完成。
概念混淆引发的实际问题
在客服机器人开发中,曾有团队误将 BERT 模型用于对话生成场景,导致系统只能输出短语级别的标准回复,无法实现连贯的多轮对话。类似地,某金融文本分析项目错误选用 GPT 模型进行实体识别,结果生成大量虚构的机构名称——这些典型错误都源于对模型类型的认知偏差。

技术特征解析
生成式 AI 的核心特征
- 概率生成机制 :通过自回归(Autoregressive)方式逐个预测 token,如 GPT 系列每次基于上文生成下一个字
- 序列建模能力 :采用 Transformer 解码器架构,典型代表包括 GPT、PaLM、LLaMA 等
- 训练目标差异 :最大似然估计(MLE)优化序列生成概率
判别式模型典型架构
- 双向上下文编码 :如 BERT 通过掩码语言模型(MLM)同时利用左右上下文
- 分类 / 预测导向 :输出为类别概率或位置标注,典型应用包括文本分类、实体识别
- 架构特点 :采用 Transformer 编码器,包含 BERT、RoBERTa 等变体
模型类型对比表
| 特征维度 | 生成式模型 | 判别式模型 |
|---|---|---|
| 典型架构 | Transformer 解码器 | Transformer 编码器 |
| 训练目标 | 序列生成概率最大化 | 掩码 token 预测 / 分类 |
| 输入输出 | 前缀文本→延续文本 | 完整文本→标签 / 位置 |
| 推理方式 | 自回归采样 | 前向计算 |
| 耗时比较 | 随输出长度线性增长 | 固定计算量 |
实践代码示例
HuggingFace 模型调用对比
# 生成式模型调用示例(GPT-3)from transformers import AutoTokenizer, AutoModelForCausalLM
tokenizer = AutoTokenizer.from_pretrained("gpt2")
model = AutoModelForCausalLM.from_pretrained("gpt2")
inputs = tokenizer("人工智能是指", return_tensors="pt")
# 关键参数:max_length 控制生成长度,do_sample 启用随机采样
outputs = model.generate(**inputs, max_length=50, do_sample=True)
# 判别式模型调用示例(BERT)from transformers import AutoTokenizer, AutoModelForSequenceClassification
tokenizer = AutoTokenizer.from_pretrained("bert-base-uncased")
model = AutoModelForSequenceClassification.from_pretrained("bert-base-uncased")
inputs = tokenizer("这个电影很棒", return_tensors="pt")
# 关键参数:直接输出 logits 无需生成参数
outputs = model(**inputs).logits
工程选型指南
性能考量指标
- 生成质量 :困惑度(PPL)、BLEU(生成式专属)
- 判别准确率 :F1-score、AUC-ROC(判别式专属)
- 延迟敏感度 :生成式需考虑 token/s,判别式关注 batch 吞吐量
资源需求对比
| 模型类型 | GPU 显存消耗 | 典型 batch 大小 | 推理延迟 |
|---|---|---|---|
| GPT-3 | 40GB+ | 1-4 | 500ms/token |
| BERT-large | 16GB | 32-64 | 50ms/batch |
延伸思考
- 多模态模型类型判定 :像 DALL- E 明确属于生成式,但 CLIP 这类对比学习模型实质是判别式架构
- 混合架构分析 :FLAN-T5 等模型同时具备生成和理解能力,需根据具体任务子模块判断类型归属
- 评估方法论 :可通过检查模型是否主要依赖自回归生成机制作为核心判别依据
正文完
发表至: 人工智能
近两天内
