V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
XinPingQiHe
V2EX  ›  程序员

有经验的 v 友看看,这个 AI 知识库私有化部署的方案行吗,怎么改进

  •  1
     
  •   XinPingQiHe · 8 天前 · 2662 次点击

    背景

    客户方为集团公司,有相当的规模。

    需求

    1.大量企业内部使用的行业规范、行业标准文档,需要以文本格式加入知识库。 2.有会议录音,能自动生成会议纪要(区分讲话人),供办公人员修改及使用。 3.必须私有化部署。

    暂定方案

    知识库及大模型,使用 ollama + qwen2.5:b14 + AnythingLLM 录音到会议纪要,Whisper ASR

    问题

    客户也是先咨询咨询,这边也是搭建私有环境,做一些测试。 结果,觉得上传的一批 pdf 文档,查询知识库结果,关键词抓取的不是很满意。Whisper 看过 ,整合到系统,还没用。 目标是先验证整体效果的可行性,再与客户沟通、再做相关的应用对接开发 总体来说,也是一些尝试,不知大家有没有更好的,具备可行性的方案。

    36 条回复    2024-11-05 16:12:59 +08:00
    zqx0310liubo
        1
    zqx0310liubo  
       8 天前
    这是 rag 还是直接做的 prompt ,效果不行需要调试把,看上去你们的模型 size 也不大,能换个大点的么?
    musi
        2
    musi  
       8 天前
    目前 RAG 没有做的好的,想做好成本不是一般大,说真的,你要是真能做好数据检索你都可以融波钱直接财富自由了
    hmxxmh
        3
    hmxxmh  
       8 天前
    需求第一个,可以用 dify+qwen2.5, 第二个会议录音的没用过,不知道怎么集成进去
    Leon6868
        4
    Leon6868  
       8 天前
    whisper ASR 似乎没法精准分割说话人,我目前也在做涉及语音纪要的功能,可以交流交流
    Leon6868
        5
    Leon6868  
       8 天前
    @Leon6868 #4 个人测试,qwen2.5 32B 占用、速度和效果是最平衡的,也适合本地部署
    wxd21020
        6
    wxd21020  
       8 天前
    同类型需求,马住,希望 OP 成功,借鉴学习。
    wanglinjie0926
        7
    wanglinjie0926  
       7 天前
    加个收藏 跟个后续。
    ShutTheFu2kUP
        8
    ShutTheFu2kUP  
       7 天前
    战略性插眼,学习方案
    linwuhi
        9
    linwuhi  
       7 天前
    战略性插眼,学习方案
    magicZ
        10
    magicZ  
       7 天前
    @Leon6868 #5 用 next-gen kaldi ,录音如何设置好固定人数,应该能识别的不错。qwen2.5 32B 用什么卡?能支持几线请求啊,我只用过 4090 24G 部署 7b 的,同时请求,5 线比较稳定
    RonniePolaer
        11
    RonniePolaer  
       7 天前
    插眼,我们也在找相关的解决方案
    younger027
        12
    younger027  
       7 天前
    战略性插眼,学习方案
    ccsert
        13
    ccsert  
       7 天前   ❤️ 1
    1. 行业规范文档处理
    预处理脚本: 需要对文档进行预处理,包括去除无关信息、格式化文本、提取关键内容等。可以使用 Python 脚本结合正则表达式、BeautifulSoup 等工具进行处理。

    文档清洗: 文档中可能包含图片、表格等复杂内容,这些内容可以通过 OCR 提取文本,或者通过专门的文档解析工具(如 Apache Tika )进行处理,现在有一些多模态的大模型对图片也有一定的理解,可以考虑尝试。

    AI 二次提纯: 使用一些开源大语言模型将对提取的文本进行进一步处理,去除噪声、提取关键信息,这里实际提示词工程就已经可以做的比较优秀了。

    知识库构建: 目前实际没有特别好的,但是因为上述的操作对文档已经做了清洗和提纯,到这一步实际使用一些 embedding 模型和开源向量库即可了,后续做知识库问答的时候可以使用一些简单的 rag 平台,例如 dify 这些以外部 api 的方式对接,这里个人觉得 dify 的知识库效果实际比较一般,当然也可以将处理好的文本内容通过 dify 的知识库 api 调用生成也不错。

    2. 会议录音处理
    说话人识别: 可以使用开源工具如 Kaldi 、pyannote.audio 等进行说话人识别。如果能在源头解决实际会更好一些,比如在会议录制的时候就确定说话人。

    会议纪要生成: 这一步实际比较简单结合现有开源大模型提示词工程生成会议纪要。如果想做的更细致一些,可以在处理音频或视频数据的时候打时间轴标签。

    时间轴跳转: 可以在生成的会议纪要中加入时间戳,方便用户快速跳转到特定时间点的内容。

    3. 私有化部署
    语言大模型选择: 目前开源的大模型效果已经很不错了,如果资金充裕,deepseek 私有化部署一整套包括预训练环境好像就是 50w 左右
    整个过程实际工程量非常庞大,涉及的领域也比较庞杂,就算上述的基本要素已经具备,也还涉及大量的开发,文本解析,数据处理,提纯,甚至多智能体协同,函数调用都需要整合起来使用才能达到目标需求
    ccsert
        14
    ccsert  
       7 天前
    @ccsert 这里虽然是行业规范文档,但是实际 ai 处理时候并不一定认为是规范的,在 embedding 过程中可能还是会出现拟合的情况,所以有时候清洗后二次提纯是很有必要的
    williamZXS
        15
    williamZXS  
       7 天前
    战略性插眼,学习方案
    moomtong
        16
    moomtong  
       7 天前
    ollama 主要的场景还是在个人 pc 上跑模型,没有大范围的生产用例。

    RAG 的效果是需要根据数据定制化去调的,首先 embedding 横向对比,然后文档的提取和切分方法,像你提到的 pdf 有些开源 RAG 本身内容提取就做的比较烂,可以看看导入的内容准不准确,表格之类读没读出来,标题和编号之类结构化信息有没有保留、能不能查到等等。还有排序方法也可以定制化去改。进一步提升效果的话内容本身也要做增强,补数据、摘要等等。还有不少其它的,网上资料很多可以看看。

    但其实在这些之前,既然是集团公司,他们自己的文档现在是在哪里,云文档?公司有自己的知识库吗、要不要对接、现在有远程会议应用吗、有会议室录音硬件吗、你的服务是类似 gpt 的形式还是已有应用内插件的形式,这些个人感觉是先要考虑/谈的。

    语音方面 Whisper 本身能力是很 ok 的,但是很可能还需要说话人识别。然后比较现实的问题是会议录音的音质,有的人可能离话筒远很小声,和多个人同时说话这种,目前业界也没什么很好的解。
    jemmy1980
        17
    jemmy1980  
       7 天前
    战略性插眼,学习方案
    paceewang1
        18
    paceewang1  
       7 天前
    战略性插眼,学习方案
    cshwen
        19
    cshwen  
       7 天前
    战略性插眼,学习方案
    ttimasdf
        20
    ttimasdf  
       7 天前 via Android
    现在卡脖子的技术是数据清洗和 embedding ,再等个几年吧
    JayZXu
        21
    JayZXu  
       7 天前
    手头有个项目也在尝试做这个,也参加了不少厂家宣发活动。简单来说,很困难
    RAG 其实说实话,就是再重走一遍搜索引擎的老路,而且资料还得自己整理

    一方面是数据预处理的方法很难把握,因为作为开发实际上没有用户那么精准的把握,随便分段的结果就是一开始奠定了失败。
    另外一方面是,系统的易用性需要持续不断的维护和改造,但是对于企业来说,一个没有立竿见影效果的项目,很容易中途夭折。(上次参加百度的大模型宣发时,主讲就强调了,大模型落地需要领导坚定的信心和支持才能做成。)


    AI 知识库目前还是靠向量搜素来压缩语义,靠原来的 ES 分词之类的关键词搜索还是达不到要求。另外向量搜素也会出现跟提问偏差很大的情况,所以还需要 ReRank 模型重排结果。上面完整的开源项目可以参考 fastgpt ,https://doc.fastgpt.cn/docs/course/rag/ 里面有知识库搜索的实现方法。

    目前我手上的项目主要步骤
    1. 特定文档定制的切分方案,丢给 ES 存储,同时将切分文本丢给向量模型转换成向量存向量数据库
    2. 用户问问题,ES 搜索 + 向量数据库搜索返回 Top K ,返回的 2K 个文本用 ReRank 模型排序打分,然后文本去掉低评分的丢给大模型

    上述的方法能一定程度改善本来有文本但是搜索不准的问题。
    scstriker
        22
    scstriker  
       7 天前
    @musi graphrag 也不行么?看一些介绍不是还好。
    musi
        23
    musi  
       7 天前 via iPhone
    @scstriker #22 graphrag 成本也挺大的,预先通过 llm 提取出文档中的实体,意味着最起码需要把所有的文本让 llm 过一遍,最终还是要走到 graph search 这一步。其实目前市面上的文档检索是和 llm 无关的,llm 在 rag 能做的只有数据预处理和后处理,效果还是取决于检索,如果只用 graph search 这一种方式还是很难达到预期
    kneo
        24
    kneo  
       7 天前 via Android
    说句不好听的,你没那两下,这活硬接下来和骗钱没区别了。
    YiXinCoding
        25
    YiXinCoding  
       7 天前 via Android
    私有化部署语音转会议纪要这块我有经验。可以演示,商用合作可以联系我。邮箱:eWl4aW4uY29kaW5nQHFxLmNvbQ==
    beginor
        26
    beginor  
       7 天前 via Android
    ollama/llama.cpp 之类的虽然快+省,但是对多模态模型支持比较差,或者说是很差。

    企业级应用没有多模态支持,说不过去,这个需求满足不了,估计很难让金主满意。

    但是用 Python 部署的话,需要的资源得增加几倍才行。
    asahim
        27
    asahim  
       7 天前
    战略性插眼,学习方案
    Leon6868
        28
    Leon6868  
       7 天前
    @magicZ #10 我用 4 卡 v100 ,lmdeploy
    hwb
        29
    hwb  
       7 天前
    战略性插眼,学习方案
    DreamingCTW
        30
    DreamingCTW  
       7 天前
    我最近也在部署,目前是 ollama+qwen2.5:72b ,知识库没找到什么好的方案,我单位文档居多,没有音频需求。
    XinPingQiHe
        31
    XinPingQiHe  
    OP
       7 天前
    多谢各位的建议,方案优化及大模型整合到应用,正在进行中
    qqqnnn
        32
    qqqnnn  
       7 天前
    战略性插眼,学习方案
    mingcore
        33
    mingcore  
       6 天前
    战略性插眼,学习方案
    zjudongze
        34
    zjudongze  
       6 天前
    插眼,我在公司内部搞了一个框架,效果太差,已经继续不下去了
    specture
        35
    specture  
       6 天前
    有类似需求,mark 一下
    scstriker
        36
    scstriker  
       22 小时 12 分钟前
    @musi ok 感谢您的建议,我感觉这套预处理方法比单纯套一个 RAG 模型重要多了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5988 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 06:25 · PVG 14:25 · LAX 22:25 · JFK 01:25
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.