利用LLM创建知识地图:处理50万封电子邮件的方法

2024年11月13日 由 alex 发表 100 0

电子邮件往来包含了有关业务发生情况的关键信息,以及至关重要的,谁对关键决策负责。但对于大多数企业来说,电子邮件的数量实在太多。人工无法在合理的时间内阅读所有邮件、提取相关信息并发现关键联系。此外,任何解决方案都需要具备交互性和可解释性:我们希望能够既能纵观全局,又能深入查看单封邮件。


在这篇文章中,我将展示我们如何在12小时内从50万封公开可用的电子邮件中生成一个可解释、可交互的知识图谱。


我们使用了Kineviz SightXR,它允许用户

  • 定义感兴趣的实体和关系(即本体或模式),
  • 批量将模式应用于文档,以构建以连接图形式呈现的知识图谱,并且
  • 立即构建知识图谱以供探索。


知识图谱使我们能够将大量相关信息连接起来,并高效地浏览这些信息。它帮助我们一次专注于一件事,因为信息被编码为节点和边,这些节点和边具有空间感。节点具有大小和位置,边表示节点之间的连接,这有助于将相关的节点在空间中进行聚类。从这个意义上说,3D图形表示类似于我们在物理世界中思考和移动的方式——一种与数据交互的具身方式。


SightXR知识图谱绘制能够捕捉特定感兴趣的实体及其关系,同时保留对源文档的可见性。这一点很重要,因为虽然大型语言模型(LLM)可以有效地提取信息,但我们也必须能够解释和验证结果。


构建知识图谱

Enron语料库是文本批量分析的一个有用起点,因为它包含了由158名公司员工在几年内生成的超过50万封电子邮件。该语料库可供公众使用,并且方便地以CSV格式提供。


SightXR提供了一个逐步的界面,指导用户完成必要的任务。


6


首先,我们使用SightXR一夜之间从50万封Enron电子邮件中创建了一个知识图谱。Enron的数据包括电子邮件信息以及发送者和接收者的电子邮件地址。


下面展示了我们为初始的Enron知识图谱所提取的实体和关系的模式。一般来说,实体可以是人员、组织、地点和事件等,而连接实体的关系可以描述诸如“爱丽丝认识鲍勃”之类的信息。


7


源CSV文件的每一行都包含一个文件名和信息。对于每条信息,我们要求gpt-4o-mini“在提供的文本中查找涉及人员、组织、地点、事件等类型的实体的关系”。我们还使用了一些基本的电子邮件解析代码来提取信息中涉及的电子邮件地址。


在生成了知识图谱之后,我们添加了语义搜索功能,这使我们能够对所有内容进行模糊搜索。


8


最后,我们实现了一个分类工作流,以便根据诸如“讨论公司未来战略”等标准来过滤电子邮件。


9


最终生成的知识图谱使我们能够探索知识图谱中的联系,并查看相关主题以及实际涉及的电子邮件。


对于技术熟练的朋友们,我列出了我们使用的一些技术。


10


本质上,Elixir 和 Oban 通过为每个工作器分配一个大型语言模型(LLM)请求,实现了高工作器数量和速率限制。我选择 Elixir 是因为它使得使用轻量级“进程”(BEAM 进程)编写高度并发的程序变得更加容易。Elixir 的 Oban 框架使得可以轻松地将数十万个作业排队,以逐个处理每条电子邮件消息。


Azure OpenAI 的 gpt-4o-mini 部署允许每分钟 200 万个标记,这听起来很多,但很快就会用完。我们使用了两个这样的部署。为了避免速率限制错误,我将 Oban 配置为每次只允许 150 个进行中的 LLM 请求。Elixir 的轻量级进程使得可以实现如此高的工作器数量。然而,另一方面,由于每个 Python 工作器使用的进程更加繁重,我在使用 Python / python-rq / supervisord 实现时遇到了内存限制问题。我无法启动 150 个 Python 工作器,因为每个工作器中加载的库会消耗大量内存。


解析电子邮件链

在探索了初始知识图谱之后,我们还希望提取“链”,即嵌入在每个单独电子邮件文件中的电子邮件消息序列。例如,Enron CSV 文件中的一行可能包含一个包含 4 条消息的线程,这些消息之间具有复杂的回复/转发关系。这样的链可以更好地反映通信的动态:谁在推动对话,谁被包含在内,以及在什么时间点。


11


从Enron CSV文件中确定性地解析这些信息似乎很艰巨,所以我们使用gpt-4o来管理这个过程。由此生成的知识图谱使得我们能够调查Enron关键员工之间随时间推移的通信情况。


12


这个提取过程的效果相当不错,尽管由于时区通常需要推断,因此需要对日期时间解析进行合理性检查。此外,链条中的最后一条回复可能包含时区信息,但嵌入的消息可能不包含。


语言模型在大多数情况下都能正确解析。我们发现gpt-4o在电子邮件链提取方面表现良好,而gpt-4o-mini则无法胜任。大型语言模型(LLM)正在快速发展,每个模型都有自己的能力,因此模型的选择会影响结果。再次强调,这是能够重新访问源信息的又一个令人信服的理由。


文章来源:https://medium.com/kineviz/how-to-create-a-knowledge-map-from-500k-email-messages-using-llm-8b194fc875c9
欢迎关注ATYUN官方公众号
商务合作及内容投稿请联系邮箱:bd@atyun.com
评论 登录
热门职位
Maluuba
20000~40000/月
Cisco
25000~30000/月 深圳市
PilotAILabs
30000~60000/年 深圳市
写评论取消
回复取消