跳转至

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
1
2
3
4
5
任务:检查表格中的缺失值并提出处理建议。
背景:这是用于分析电影口碑的数据集;imdb_score 为评分,title_year 为上映年份。
输入:字段名及缺失数量如下……
要求:先说明假设与风险,再给出仅使用 pandas 的代码。
输出格式:按“问题、处理建议、代码、验证步骤”分节。

人工编写模板直观但需要反复试验;自动提示搜索可以在离散文本空间或连续嵌入空间中优化提示。提示模板与答案词的选择会相互影响,因此应使用代表性样例比较不同组合,而不是只凭一条输出判断效果。

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
1
2
3
读取 bird_data.csv。Month 是月份,其他列分别是不同鸟类的观测次数。
请用 pandas 和 matplotlib 绘制每种鸟类按月变化的折线图,标出坐标轴单位、图例和标题;
处理月份排序与标签重叠,并只输出可运行的代码。

运行代码后要核对列名、聚合方式、排序、坐标轴和图例。图表是否正确表达数据仍需由使用者判断。

5. LLM 文本分析

任务 目标 示例
情感分析(sentiment analysis) 判断积极、消极或混合态度 汇总评论对服务的评价
文本分类(text classification) 按主题、意图或产品类别归类 识别问题主题或取消订阅意图
信息抽取(information extraction) 从文本抽取字段和值 提取日期、数量或人名
摘要(summarization) 压缩长文本并保留要点 生成书籍或报告摘要
机器翻译(machine translation) 将文本转换为另一种语言 翻译句子或段落

对分类或抽取任务,可以要求模型按固定字段返回结果,便于后续解析;仍需检查歧义、遗漏和事实准确性。涉及个人、财务或医疗信息时,应先确认数据处理权限并避免把不必要的敏感数据提交给外部模型。

6. 当前挑战与实践原则

课件指出两类挑战:一是如何在提示中表达表格、树、图或关系等结构化信息;二是模板与答案映射相互耦合,性能取决于二者的组合,最佳组合不容易直接确定。

实践时可以先从小规模、可核验的任务开始:明确输入与输出格式,提供必要背景,用少量代表性样本比较提示;对生成的数据、标签、代码和分析结论进行独立核查,并保护敏感信息。