今天给大家分享一个超实用的工具——kg-gen[1],它能让你从任何文本中,用 AI 自动提取出知识图谱!是不是听起来就很酷?用后你会说真的很酷,而且人家还带研究论文[2]的,满满的学术+实践相结合呀。
我不知道你是不是也有这些烦恼?
平时工作中,我们经常会遇到各种各样的文本信息,比如:
-
• 一堆项目文档,看得头昏脑涨
-
• 长篇大论的新闻报道,抓不住重点
-
• 客服聊天记录,信息零散难整理
想要从这些文本里提取出关键信息,构建出清晰的知识网络,简直比登天还难!手动整理?太费时费力了!不整理?信息就都浪费了!
kg-gen:我感觉恰恰是你要找的文本信息处理救星!
别担心,现在有了 kg-gen,这些问题统统都能解决!它就像一个智能助手,能帮你把那些杂乱无章的文本,变成结构化的知识图谱。
什么是知识图谱? 简单来说,就是把各种概念、实体以及它们之间的关系,用图的形式展现出来。有了它,你就能一眼看清信息之间的联系,再也不用在海量文本里迷失方向了!
kg-gen 有啥厉害之处?
-
• 啥文本都能处理: 不管是短文本、长文本,还是对话消息,kg-gen 都能轻松搞定。
-
• 支持多种 AI 模型: OpenAI、Ollama、Anthropic、Gemini……你想用哪个就用哪个!(当然,前提是你得有 API key ,当然 Ollama 当我没说)
-
• 结构化输出: 生成的知识图谱清清楚楚,实体、关系、边,一目了然。
-
• 还能帮你“去重”: 对于相似的实体和关系,kg-gen 还能帮你自动聚类,让图谱更简洁。
所以,怎么用 kg-gen?
说了这么多,到底怎么用呢?其实很简单,几行代码就能搞定!
- 安装:
pip install kg-gen
- 上手体验:
from kg_gen import KGGen # 初始化 KGGen,可以根据需要配置模型、温度等参数 kg = KGGen( model="openai/gpt-4o", # 默认使用 openai/gpt-4o 模型 temperature=0.0, # 默认温度为 0.0 api_key="YOUR_API_KEY"# 如果你设置了环境变量,这里也可以不填 ) # 例子 1:处理单条文本 text_input = "小明是小红的哥哥,小刚是小红的爸爸,小丽是小红的妈妈。" graph_1 = kg.generate( input_data=text_input, context="家庭关系"# 可以给文本加个上下文,方便 AI 理解 ) print(graph_1) # 输出: # entities={'小明', '小刚', '小丽', '小红'} # edges={'是哥哥', '是爸爸', '是妈妈'} # relations={('小明', '是哥哥', '小红'), # ('小刚', '是爸爸', '小红'), # ('小丽', '是妈妈', '小红')} # 例子 2:处理多条消息 messages = [ {"role": "user", "content": "法国的首都是哪里?"}, {"role": "assistant", "content": "法国的首都是巴黎。"} ] graph_3 = kg.generate(input_data=messages) print(graph_3) # 输出: # entities={'巴黎', '法国'} # edges={'首都'} # relations={('法国', '首都', '巴黎')}
看,是不是超级简单?只需要把文本输入进去,kg-gen 就能自动帮你生成知识图谱!
当然,kg-gen 还有高级玩法
除了基本用法,kg-gen 还有一些高级功能,让你的知识图谱更上一层楼!
- 处理超长文本:
对于特别长的文本,我们可以用 chunk_size
参数,把它分成 ছোট块来处理,避免一次性输入太多内容导致 AI“消化不良”。
graph = kg.generate( input_data=large_text, chunk_size=5000 # 每 5000 个字符分成一块 )
- 实体/关系聚类:
有时候,不同的文本可能会用不同的说法来表达同一个意思。比如,“人工智能”和“AI”其实是同一个东西。kg-gen 的聚类功能,就能帮你把这些相似的实体或关系合并起来。
# 生成时直接聚类 graph = kg.generate( input_data=text, cluster=True, context="可选的上下文信息" ) # 或者,对已有的图谱进行聚类 clustered_graph = kg.cluster( graph, context="可选的上下文信息" )
- 合并多个图谱:
如果你有多个来源的文本,想把它们生成的知识图谱合并起来,可以用 aggregate
方法:
graph1 = kg.generate(input_data=text1) graph2 = kg.generate(input_data=text2) combined_graph = kg.aggregate([graph1, graph2])
真的干货来了,原理揭秘:kg-gen 背后的大功臣
kg-gen 之所以这么强大,离不开它背后的两个“秘密武器”:
-
LiteLLM[3]: 这是一个轻量级的 LLM(大语言模型)库,让 kg-gen 能够方便地调用各种不同的 AI 模型。
-
DSPy[4]: 这是一个用于构建结构化输出的框架,确保 kg-gen 生成的知识图谱格式规范、清晰易懂。
下面这张图展示了 kg-gen 的工作流程:
类似工具大比拼
除了 kg-gen,市面上还有一些其他的知识图谱生成工具。下面我给大家做个简单的对比:
总的来说,kg-gen 是一个非常适合快速上手、灵活度高的知识图谱生成工具。如果你需要快速从文本中提取知识,又不想花太多时间去研究复杂的配置,那么 kg-gen 绝对是你的不二之选!
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。