V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
hanh1985
V2EX  ›  自然语言处理

GPT 用于知识图谱构建的 NER 和 RE

  •  1
     
  •   hanh1985 · 2023-06-07 10:48:59 +08:00 · 2814 次点击
    这是一个创建于 567 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近计划构建疾病主题的知识图谱,想到使用 gpt 等大语言模型从文本中直接提取相关的实体和关系,这样的优势是不用针对特定领域进行模型的训练和优化,开箱即用。尝试的思路有:

    1. 专门用 LLM 来执行 NLP 任务的项目 https://github.com/promptslab/Promptify
    2. 创作角色和技能 https://github.com/yzfly/LangGPT

    chatgpt 上自己做一些提示词的测试,gpt-4 的表现优于 gpt-3.5 ,能够得出更接近预期的答复。但是也有几个问题:

    • 生成结果的一致性差,gpt 容易进行创作发挥(gpt4 与 3.5 都有类似的问题);
    • gpt-4 api 目前还没有申请到,即便申请到也比较贵,很难进行大规模的文本的处理

    目前的设想是基于 gpt-3.5 ,结合提示词的优化达到尽可能高的效果,结合人工矫正后的例子来更好地帮助模型理解。如果有朋友做类似的工作,希望一起交流探讨一下。

    第 1 条附言  ·  201 天前
    最近关于 Knowledge Graph 和 RAG 的讨论多了起来,说明当初设想的大方向没错。

    找到网上的一个工具,使用 labeling 工具比如 label studio 来辅助构建领域知识图谱
    https://github.com/open-prophetdb/prophet-studio

    受此启发,我设想的工作流是定制 label studio 的标注流程,使得 LLM 或者 NLP 能够对文本进行预标注,最后由人工审核和提交,提交的结果以后还可以直接注入 neo4j 图数据库。尝试过让 LLM 或者 NLP 工具从文本抽取实体和关系,但是结果总有一些奇怪,而且有些实体还需要在原文文字上进行调整,不见得能直接在 label studio 里面鼠标选中确认。目前尝试替代的思路,希望能有一个好结果。
    9 条回复    2023-12-24 03:05:53 +08:00
    hansjimo
        1
    hansjimo  
       2023-06-07 15:58:54 +08:00
    前一阵试着用大模型构建了一个简单的领域知识图谱,gpt 是可以直接输出实体、关系和属性的,大部分基础知识输出质量还不错,从一些文本中提取实体和关系并进行格式化信息也没什么问题。过程中一度产生有了大模型还要知识图谱干嘛的困惑。不过现阶段大模型确实还存在一些问题,也需要很多手工修正工作,还需要结合爬虫等其它工具进行一些后续工作。
    hanh1985
        2
    hanh1985  
    OP
       2023-06-07 18:24:56 +08:00
    @hansjimo 感谢兄弟的分享。

    LLM 对 KG 的影响在 youtube 上有一些讨论,我记得大意 LLM 本质是神经网络,而 KG 还有数据库的直接检索在性能和资源消耗是远优于 LLM 的;而 LLM 可以更好地支持知识的提取。所以现有的 KG 或者图数据库可以是一个高准确度高效率的知识存储方案,而 LLM 支持知识的获取以及后期的推理,总结。

    请问你用的是 gpt-4 么?如何对实体和关系进行格式化呢,是不是直接限定实体和关系的类别。有没有什么框架可以辅助大模型对 KG 的构建呢?
    hansjimo
        3
    hansjimo  
       2023-06-08 15:08:18 +08:00
    是的,知识图谱肯定在具体的工程应用中暂时还是无法替代的。
    用的是 gpt-4 、Claude ,没用 api ,我是试着直接让 gpt-4 输出知识图谱的。先问应该定义哪些实体和关系类别,然后分级输出各层级概念,再给他规定要输出的实体属性格式后,给他概念让他自动把所有属性和关系补全并按格式输出。
    不过确实如果是大模型训练语料中已经有的通用知识,输出效果还是不错的,不过比如一些国内特有的或者实例词级别的输出结果就不准确了,开始胡编乱造了。
    后来还找到了国外比较专业的领域网站,网站的内容基本已经按照知识体系组织的很完整了,又从上面采集了很多信息吗,再扔给 gpt 帮着补全些关系。
    我是有点觉得用大模型做实体识别和关系提取有点大材小用的感觉,目前的能力应该能直接输出很多实体和关系了,不过可能针对像国内医疗领域,又有很多新概念的情况下,还是需要用语料训练下的。
    hanh1985
        4
    hanh1985  
    OP
       2023-06-08 15:23:31 +08:00
    @hansjimo 好的,学习了。
    lilin3035
        5
    lilin3035  
       2023-07-06 12:28:26 +08:00
    LLM 的知识库是参数化的,更新周期太长,而且垂直领域的回答也不一定可靠,有胡编乱造的问题。听人说有 LLM 嵌入 KG 的方法,但只是听说。目前 langchain 和 llama_index 都是文本向量化然后和查询词交互提取 top k.另外有看到有人说 LLM 输入 KG,输出 KG 的。之前风向对 KG 都不看好,重要原因之一就是 KG 的构建自动化程度低。目前的 gpt 在知识图谱构建的实体识别、关系抽取、属性抽取方面表现得很好。可以试试互相迭代。使用 LLM 辅助构建 KG ,用 KG 向量化如 Tekgen 作为数据集对 LLM 的预训练。
    另外 prompt 工程,比如 github 项目 Mr.Ranedeer ,教师模式挖掘 LLM 知识库,辅助教学,也是一个方向。
    llama_index 用于把项目文档向量化,帮助用户通过聊天的形式查询项目问题,都是比较适合的方向把。
    hanh1985
        6
    hanh1985  
    OP
       2023-07-11 11:40:44 +08:00
    @lilin3035 我也在构想用 LLM 来辅助 KG 的方案。看看是不是能整合到 label studio 里,做一个抽取,校验,训练的闭环?
    shm7
        7
    shm7  
       2023-09-07 18:55:16 +08:00
    @hanh1985 闭环不闭环我不知道,但是方案和专业测评 3 月份就有了。
    hanh1985
        8
    hanh1985  
    OP
       2023-09-08 10:01:17 +08:00
    @shm7 对,网上搜到过一些教程。
    clockwise9
        9
    clockwise9  
       2023-12-24 03:05:53 +08:00
    Schema 还是很重要的。大模型对于关系( relationship/predicate )有自己的理解,而知识图谱中的关系可能是根据行业知识甚至应用场景来定义的,两者可能不总是精确匹配。一个无用但容易理解的例子,“配偶”关系可能有很多不同的情况需要判断:前夫前妻,同性伴侣(不管是否合法登记),已经订婚但还没办婚礼没登记的,等等。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1125 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 18:52 · PVG 02:52 · LAX 10:52 · JFK 13:52
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.