在 AI 产品运营中,每天看着成千上万的用户 Prompt(提示词)涌入后台,却不知道用户到底在用产品干什么,这是非常痛苦的。直接看日志?看不过来。直接让大模型总结几万条数据?Token 成本直接爆炸,而且大模型极难直接输出全局的、结构化的数学统计视图。
目前工业界最成熟、性价比最高的方案是:“向量化 (Embedding) + 聚类 (Clustering) + 局部大模型提炼 (LLM Summarization)” 的 Pipeline。本文将带你从 1 万条数据的标准处理流入手,一路优化到支撑 50 万条海量数据的工业级架构。
阶段一:标准流水线(适用 1-5 万条数据)
对于几万条数据,我们可以使用一套直来直去的标准 Pipeline。既利用了算法的统计学优势,又发挥了 LLM 的语义理解能力。
1. 数据清洗与去重
真实的用户输入充满“噪音”。
- 去重:利用简单的哈希(Hash)对原始 Prompt 去重。
- 过滤:按长度过滤,剔除诸如“你好”、“123”、“帮我写”这种无实际意义的测试词汇。也可以用正则暴力剔除掉模板化前缀。数据越干净、越短,后续处理越准。
2. 文本向量化 (Embedding)
我们需要将非结构化的文本转化为计算机能理解的数学向量。
调用 LLM 的 Embedding API(如 OpenAI 的 text-embedding-3-small 或开源的 BGE-m3)。这个过程极快且便宜,一万条数据只需几秒钟,就能转化为一万个高维(例如 1536 维)的浮点数组。
3. 降维与聚类 (UMAP + HDBSCAN)
直接在高维空间分析距离是灾难性的。我们需要将相似的意图聚合在一起。
- UMAP 降维:将 1536 维压缩到 2 维或 5 维,极大降低后续计算量。
- HDBSCAN 聚类:对降维后的坐标进行密度聚类。它能自动识别簇的数量,并剔除离群的“噪点”。跑完这一步,上万条数据通常会被划分为几十个“意图簇 (Clusters)”。
4. LLM 提炼与命名(画龙点睛之笔)
不需要让 LLM 看一万条数据,我们只需让它看最具代表性的样本。
从每个聚类簇中,提取最靠近中心点(Centroid)的 20 条代表性 Prompt。将这 20 条数据打包发给大模型(如 GPT-4o 或 Claude 3.5),配上这样的提示词:
"你是一个资深产品经理。这里有 20 条用户的高频提问:[填入样本]。请总结这批用户的【核心诉求(X轴)】和【使用场景(Y轴)】,并用 5 个字以内的短语概括该簇的名称。"
5. 生成需求热力图
拿到大模型的归纳后,结合每个簇的原始数据量,我们就可以利用 Python 制图库(如 Seaborn 或 Plotly)绘制出一张极具价值的业务二维交叉热力图:
- X轴:用户场景(如:日常办公、代码开发等)
- Y轴:底层需求(如:生成长文、修改报错等)
- 色块深浅:该交叉点下的 Prompt 频次。
颜色越深,越说明这是产品的核心发力点和高频场景。
阶段二:工业级架构优化(适用 10-50 万级数据)
当数据量从 1 万飙升到 10 万甚至 50 万时,刚才那套“暴力跑全量”的代码会瞬间崩溃。API 成本激增,且 UMAP 和 HDBSCAN 接近 $O(N^2)$ 的内存复杂度会让服务器直接 OOM (Out of Memory)。
面对海量数据,我们必须对架构进行“大换血”。
优化一:Embedding 降本提速
- 弃用同步 API,改用 Batch API:如果是调用闭源模型,打包成
.jsonl走 Batch 异步接口,成本直接减半,且不受并发限制。 - 本地化替代方案:在一张普通 GPU 上部署
BGE-m3等开源轻量级模型。几十万条数据批量处理,成本几乎只有电费。
优化二:两段式聚类防 OOM(核心)
绝对不要尝试把 50 万数据同时放进聚类算法里。工业界主流有两种解法:
策略 A:Fit-Predict 抽样投影法(推荐,改造成本最低)
这是 UMAP 官方推荐的大数据处理方式:
- 抽样拟合:随机抽取 10%(例如 5 万条数据),训练 UMAP 和 HDBSCAN 模型(
.fit()),划定好“簇的边界”。 - 全量投影:将剩下 90% 的数据送入训练好的 UMAP(
.transform())降维,再使用 KNN (K-近邻) 算法快速将其分配到最近的簇中。内存占用直降 90%。
策略 B:Faiss 辅助的 Macro-Micro 聚类
- 微聚类 (Micro-clustering):直接在 1536 维空间,使用 Facebook 开源的向量数据库 Faiss(极快),将 50 万条数据聚成例如 5000 个“微簇”。
- 宏聚类 (Macro-clustering):计算这 5000 个微簇的中心点,然后仅对这 5000 个中心点使用 UMAP + HDBSCAN 进行高精度降维聚类,得出最终的几十个“大类”。最后再将结果映射回原始数据。
优化三:质心采样防 Token 爆炸
聚成 50 个大类后,某个类里可能塞了上万条数据。此时千万别随机抽样给 LLM。
你需要计算该簇所有向量的“质心 (Centroid)”,选取距离质心最近的 20 条 Prompt 发给 LLM。这 20 条最纯粹、最无杂质,LLM 总结出的场景和需求也会极其精准。
结语
从暴力全量算,到引入降频抽样与局部代理计算,这套 Pipeline 兼顾了算法的规模处理能力与大模型的泛化理解能力。如果你正准备分析自家的 Prompt 日志,直接采用“抽样投影法”即可低成本跑通你的第一张用户需求热力图。
版权属于:soarli
本文链接:https://blog.soarli.top/archives/1121.html
转载时须注明出处及本声明。