微软Semantic Telemetry:构建大规模LLM交互洞察引擎的工程实践与优化之道
微软的Semantic Telemetry项目,通过每周处理数亿条匿名Bing Chat对话,利用LLM驱动的分类器提取用户专业度、主题和满意度等信号,旨在深化对人机交互的理解并驱动系统持续优化。该项目构建了一个高吞吐量、高性能的架构,以应对大规模LLM处理的挑战,包括分布式处理、复杂token管理以及对远程LLM端点的容错处理。
为实现高吞吐量和低延迟,系统采用了混合计算引擎(PySpark与Polars结合),并构建了模型无关的LLM转换层,支持使用Prompty语言规范定义prompt模板,并对LLM响应进行解析和清理以确保输出结构化。为应对LLM端点延迟和变异性,采取了多端点轮换、异步保存数据、使用高TPM模型(如GPT-4o mini)以及设置超时与指数退避重试机制。同时,通过小样本测试和分布分析来评估模型和prompt的对齐情况,确保模型迭代时的分类一致性。
在工程实践中,通过动态并发控制机制,根据系统行为实时调整并行LLM调用数量,监控成功率和延迟。优化实验包括使用成本效益高的批处理端点(需24小时完成)、在prompt中进行对话批处理(可能影响准确性,需用grader LLM缓解)、将多个分类器合并到单个prompt以提高吞吐量(需监控准确性)、利用文本嵌入训练自定义模型以节省LLM调用成本(可能增加GPU成本和复杂性),以及通过prompt压缩或文本截断来优化token使用和提高吞吐量(需注意对准确性的影响)。这些技术共同构建了一个可扩展、高吞吐量的LLM分类流水线,为理解大规模人机交互提供了坚实基础。
A technical approach for classifying human-AI interactions at scale
Semantic Telemetry helps LLMs run efficiently, reliably, and in near real-time. Learn about the engineering behind that system, including the trade-offs and lessons learned along the way—from batching strategies to token optimization and orchestration.

网友讨论