第 18 章:大语言模型在数据分析中的应用

第 18 章:大语言模型在数据分析中的应用 (LLM for Data Analysis)

“以前我们教机器学数学,现在我们教机器读课文。”

在传统的无监督学习流程中,最大的痛点是“结果不可读”

  • 聚类结果:Cluster_42
  • 异常结果:Anomaly_Score = 98.5
  • 业务人员:???

在大模型 (LLM) 时代,我们有了一种全新的范式:使用 LLM 作为这一流程的“解释层” (Interpretation Layer)。

LLM 作为解释层

1. 核心概念:LLM 的三种角色

在数据分析链路中,LLM 可以扮演三种角色:

1.1 摘要员 (Summarizer)

这是最基础的用法。

  • 输入:Cluster 42 中的 50 条工单文本。
  • Prompt:请总结这些工单的共同投诉点。
  • 输出:“主要涉及物流虚假签收,且多发生在晚间。”

1.2 标注员 (Tagger)

  • 输入:一条工单。
  • Prompt:请判断这属于【物流、支付、商品】中的哪一类?输出 JSON。
  • 输出{"category": "物流", "sentiment": "负面"}

1.3 翻译官 (Translator)

  • 输入:泰语、越南语混合文本。
  • 输出:统一的英文/中文摘要。这是多语言文本分析系统的关键能力。

LLM 的三种角色

2. 技术对比:LLM vs 传统 NLP

任务 传统 NLP (TF-IDF/LDA) LLM (GPT-4/Claude)
关键词提取 提取出高频词(如 “please”, “help”),往往无意义 提取出语义关键词(如 “fake signature”)
主题建模 主题词袋(”logistics, time, wait”),需要脑补 连贯的句子总结,包含因果关系
小样本能力 需要大量数据训练 Zero-shot 或 Few-shot 即可工作
成本 几乎免费 昂贵 (API 调用费)
速度 毫秒级 秒级 (慢)

3. 代码实战:Prompt Engineering 实践

在实际项目中,需要设计精密的 Prompt 来确保 LLM 输出结构化数据。

# 代码示例
prompt = f"""
分析以下客服工单样本,提炼共同的业务场景。

样本:
{samples_text}

请严格按照以下 JSON 格式输出(不要有任何其他内容):
{{"label": "简短标题(10字内)", "summary": "一句话总结(50字内)"}}
"""

关键技巧

  1. System Constraints:明确“不要有其他内容”。
  2. Format Enforcing:指定 JSON 模板。
  3. Length Limit:限制字数,防止 LLM 写作文。
  4. Sampling:不要把几万条全发过去(太贵),每个簇只抽 5-10 条代表性样本。

4. 幻觉 (Hallucination) 与控制

LLM 最大的问题是胡说八道

  • 它可能编造出一个不存在的投诉原因。
  • 它可能无视你的 JSON 格式要求。

解决方案

  1. Temperature = 0:把随机性降到最低,让输出尽可能确定。
  2. Robust Parsing:代码里写好正则匹配,就算它加了 Markdown 符号也能提取出 JSON。
  3. Human in the Loop:关键的风险报告,最后一步必须由人审核。

5. 实践要点

  1. 聚类 + LLM = 黄金搭档
    • 先用 K-Means 把 10 万条数据聚成 80 类。
    • 再用 LLM 读这 80 类(而不是读 10 万条)。
    • 这是降低 LLM 成本最有效的方法(降本 1000 倍)。
  2. 上下文长度:注意 LLM 的 Context Window。如果样本太长,需要截断或分批摘要。
  3. 隐私问题:工单中可能包含手机号、地址。在发给 OpenAI 之前,必须在本地跑正则进行脱敏 (Masking)。

下一章预告
我们用 Python 跑出了很棒的结果。
但是,能不能把这些结果固化下来?
能不能把 AI 的智慧“蒸馏”成简单的 SQL 规则,让它在数仓里每天自动跑?

👉 第 19 章:从模型到规则:知识蒸馏

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×