V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
XinPingQiHe
V2EX  ›  程序员

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

  •  2
     
  •   XinPingQiHe · 62 天前 · 3424 次点击
    这是一个创建于 62 天前的主题,其中的信息可能已经有所发展或是发生改变。

    背景

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

    需求

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

    暂定方案

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

    问题

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

    42 条回复    2024-12-23 09:44:59 +08:00
    zqx0310liubo
        1
    zqx0310liubo  
       62 天前
    这是 rag 还是直接做的 prompt ,效果不行需要调试把,看上去你们的模型 size 也不大,能换个大点的么?
    musi
        2
    musi  
       62 天前
    目前 RAG 没有做的好的,想做好成本不是一般大,说真的,你要是真能做好数据检索你都可以融波钱直接财富自由了
    hmxxmh
        3
    hmxxmh  
       62 天前
    需求第一个,可以用 dify+qwen2.5, 第二个会议录音的没用过,不知道怎么集成进去
    Leon6868
        4
    Leon6868  
       62 天前
    whisper ASR 似乎没法精准分割说话人,我目前也在做涉及语音纪要的功能,可以交流交流
    Leon6868
        5
    Leon6868  
       62 天前
    @Leon6868 #4 个人测试,qwen2.5 32B 占用、速度和效果是最平衡的,也适合本地部署
    wxd21020
        6
    wxd21020  
       62 天前
    同类型需求,马住,希望 OP 成功,借鉴学习。
    wanglinjie0926
        7
    wanglinjie0926  
       62 天前
    加个收藏 跟个后续。
    ShutTheFu2kUP
        8
    ShutTheFu2kUP  
       62 天前
    战略性插眼,学习方案
    linwuhi
        9
    linwuhi  
       62 天前
    战略性插眼,学习方案
    magicZ
        10
    magicZ  
       62 天前
    @Leon6868 #5 用 next-gen kaldi ,录音如何设置好固定人数,应该能识别的不错。qwen2.5 32B 用什么卡?能支持几线请求啊,我只用过 4090 24G 部署 7b 的,同时请求,5 线比较稳定
    RonniePolaer
        11
    RonniePolaer  
       62 天前
    插眼,我们也在找相关的解决方案
    younger027
        12
    younger027  
       62 天前
    战略性插眼,学习方案
    ccsert
        13
    ccsert  
       62 天前   ❤️ 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  
       62 天前
    @ccsert 这里虽然是行业规范文档,但是实际 ai 处理时候并不一定认为是规范的,在 embedding 过程中可能还是会出现拟合的情况,所以有时候清洗后二次提纯是很有必要的
    williamZXS
        15
    williamZXS  
       62 天前
    战略性插眼,学习方案
    moomtong
        16
    moomtong  
       62 天前
    ollama 主要的场景还是在个人 pc 上跑模型,没有大范围的生产用例。

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

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

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

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


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

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

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

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

    但是用 Python 部署的话,需要的资源得增加几倍才行。
    asahim
        27
    asahim  
       62 天前
    战略性插眼,学习方案
    Leon6868
        28
    Leon6868  
       62 天前
    @magicZ #10 我用 4 卡 v100 ,lmdeploy
    hwb
        29
    hwb  
       61 天前
    战略性插眼,学习方案
    DreamingCTW
        30
    DreamingCTW  
       61 天前
    我最近也在部署,目前是 ollama+qwen2.5:72b ,知识库没找到什么好的方案,我单位文档居多,没有音频需求。
    XinPingQiHe
        31
    XinPingQiHe  
    OP
       61 天前
    多谢各位的建议,方案优化及大模型整合到应用,正在进行中
    qqqnnn
        32
    qqqnnn  
       61 天前
    战略性插眼,学习方案
    mingcore
        33
    mingcore  
       61 天前
    战略性插眼,学习方案
    zjudongze
        34
    zjudongze  
       61 天前
    插眼,我在公司内部搞了一个框架,效果太差,已经继续不下去了
    specture
        35
    specture  
       60 天前
    有类似需求,mark 一下
    scstriker
        36
    scstriker  
       55 天前
    @musi ok 感谢您的建议,我感觉这套预处理方法比单纯套一个 RAG 模型重要多了。
    1073
        37
    1073  
       30 天前
    mark ,学习备用
    5gmobiler
        38
    5gmobiler  
       26 天前
    @ccsert 比如在会议录制的时候就确定说话人。---》请教一下,这个采用的是在 asr 之前判断是否属于某个事先注册的说话人语音声纹?
    ccsert
        39
    ccsert  
       26 天前
    @5gmobiler 个人认为 asr 声纹识别的准确度还是不太够,没有做过这类,而且声纹注册这个步骤太繁琐复杂了,样本也很难管理和采集,`在录制的时候确认说话人` 这句话指的是可以在程序侧解决问题,例如有专门录制的程序可以大家在通过视频会议时就能明确是谁发出的声音
    skykk1op
        40
    skykk1op  
       18 天前
    有类似需求,mark 一下
    jasm
        41
    jasm  
       17 天前
    有类似需求,mark 一下
    dabingbing
        42
    dabingbing  
       7 天前
    我个人开发了一套知识库,目前还不支持纯私有化,主要技术是,1.智能文档解析,直接解析成 md ,用了阿里 和 langchain 的文本分割 2 ,向量用的 milvus 3, 大模型用的阿里,有个长文本,知识库这快我觉得没必要用特别好的模型,基本都够用,就是总结而已,
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1585 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 16:44 · PVG 00:44 · LAX 08:44 · JFK 11:44
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.