Lecture 5:面向数据工程的大语言模型¶
学习目标¶
本讲介绍大语言模型(large language model,LLM)与提示工程,以及 LLM 在数据预处理、数据标注与增强、数据可视化和文本分析中的应用。
1. 语言模型与提示工程¶
语言模型(language model)为词元序列分配概率,并根据已有上下文预测后续词元。现代 LLM 通常基于 Transformer 架构,通过自注意力机制处理序列;生成式预训练 Transformer(Generative Pre-trained Transformer,GPT)采用仅解码器结构,来自 Transformer 的双向编码器表示(Bidirectional Encoder Representations from Transformers,BERT)采用仅编码器结构。
自然语言处理(natural language processing,NLP)研究计算机如何理解、处理和生成自然语言。预训练模型可以通过微调(fine-tuning)适配具体任务;提示(prompt)则通过输入模板和任务描述引导模型完成任务,无需为每个任务重新训练模型参数。
提示的形式与答案¶
- 填空式提示(cloze prompt):在句子中留出空位,让模型补全,例如“这部电影很____”。
- 前缀式提示(prefix prompt):提供一段开头,让模型继续生成,常用于问答、翻译和长文本生成。
- 离散提示(discrete prompt,也称 hard prompt):由人能读懂的自然语言词语组成。
- 连续提示(continuous prompt,也称 soft prompt):直接在模型的嵌入空间中表示,不一定对应可读文字。
模型的答案可以是词元、短文本片段或完整句子。分类任务还要设计答案词(label word)或标签映射,例如把“积极”映射到 great、把“消极”映射到 terrible。
编写有效提示¶
提示质量会影响任务理解和输出准确性。实际使用时应明确任务、背景、输入数据、输出格式和限制,再根据结果迭代调整。
| Text Only | |
|---|---|
人工编写模板直观但需要反复试验;自动提示搜索可以在离散文本空间或连续嵌入空间中优化提示。提示模板与答案词的选择会相互影响,因此应使用代表性样例比较不同组合,而不是只凭一条输出判断效果。
2. LLM 辅助数据预处理¶
LLM 可以协助理解数据、提出处理方案或生成代码。典型任务包括:
- 生成数据集读取、概览、缺失值检查和类别字段编码的初始流程;
- 比较删除、均值/中位数/众数填补和模型推断等缺失值策略;
- 提出异常值检测方法并生成可选择的实现;
- 建议数值缩放方法,如最小-最大规范化或 Z 分数标准化;
- 推荐类别变量编码方法。
| 类别编码方法 | 适用思路 | 注意点 |
|---|---|---|
| 独热编码(one-hot encoding) | 每个类别生成一个 0/1 字段 | 类别很多时会产生高维稀疏数据 |
| 标签编码(label encoding) | 为类别分配整数 | 无序类别会看起来像有大小顺序 |
| 序数编码(ordinal encoding) | 按真实顺序分配数值 | 只适用于有自然顺序的类别 |
| 计数编码(count encoding) | 用类别出现次数表示类别 | 不同类别可能有相同计数 |
| 目标编码(target encoding) | 用目标变量统计量表示类别 | 需防止目标泄漏,通常在训练折内计算 |
| 二进制编码、特征哈希、嵌入 | 将类别压缩为编码或向量 | 需结合模型、维度和可解释性选择 |
LLM 给出的流程只是候选方案。应检查字段类型、分布和业务语义,确认填补假设、异常值规则与编码方式适合当前任务;生成的代码也要人工审阅并用数据约束核验。
3. 数据中心型方法与数据增强¶
数据中心型方法(data-centric approach)强调持续改善数据质量与标注,以提升人工智能(artificial intelligence,AI)系统表现;模型中心型方法则主要通过改进模型结构或训练过程来提升表现。数据驱动(data-driven)通常指使用数据指导开发决策,不必然意味着系统地工程化数据。
高质量训练数据和人工标注成本较高,隐私、安全和数据授权也可能限制可用数据。LLM 可用于产生合成或增强数据,但合成数据仍需检查覆盖范围、标签正确性、分布偏差和隐私风险,不能自动视为真实数据的等价替代。
两种相关方法:
- 模型蒸馏(model distillation):利用较大模型的输出或 logits(未归一化分数)为样本提供标签,再训练较小模型。
- Self-Instruct:让模型生成指令和样例,筛选后加入任务池,再迭代生成更多指令数据,形成自举式(bootstrapping)扩展流程。
4. LLM 辅助数据可视化¶
LLM 可根据可视化需求和数据描述生成 Python 绘图代码。课件示例包括按月份和物种对比的分组条形图、鸟类观测热力图,以及展示时间变化的折线图。
描述数据时应提供文件格式、字段含义、单位、时间范围、类别字段和目标读者,并明确图表要回答的问题。例如:
| Text Only | |
|---|---|
运行代码后要核对列名、聚合方式、排序、坐标轴和图例。图表是否正确表达数据仍需由使用者判断。
5. LLM 文本分析¶
| 任务 | 目标 | 示例 |
|---|---|---|
| 情感分析(sentiment analysis) | 判断积极、消极或混合态度 | 汇总评论对服务的评价 |
| 文本分类(text classification) | 按主题、意图或产品类别归类 | 识别问题主题或取消订阅意图 |
| 信息抽取(information extraction) | 从文本抽取字段和值 | 提取日期、数量或人名 |
| 摘要(summarization) | 压缩长文本并保留要点 | 生成书籍或报告摘要 |
| 机器翻译(machine translation) | 将文本转换为另一种语言 | 翻译句子或段落 |
对分类或抽取任务,可以要求模型按固定字段返回结果,便于后续解析;仍需检查歧义、遗漏和事实准确性。涉及个人、财务或医疗信息时,应先确认数据处理权限并避免把不必要的敏感数据提交给外部模型。
6. 当前挑战与实践原则¶
课件指出两类挑战:一是如何在提示中表达表格、树、图或关系等结构化信息;二是模板与答案映射相互耦合,性能取决于二者的组合,最佳组合不容易直接确定。
实践时可以先从小规模、可核验的任务开始:明确输入与输出格式,提供必要背景,用少量代表性样本比较提示;对生成的数据、标签、代码和分析结论进行独立核查,并保护敏感信息。