当前位置: 首页 > article >正文

AI大模型开发架构设计(18)——基于大模型构建企业知识库案例实战

文章目录

      • 1 LLM 大模型在工作中的实际应用以及局限性
        • LLM 大模型工作中实际应用
        • 大模型2点局限性
      • 2 基于大模型和向量数据库的企业级知识库架构剖析
        • 向量数据库
        • 向量数据库选型
        • 知识库
        • 文档检索增强(Retrieval Augmented Generation)
        • 向量数据库应用技术总体架构
        • 向量数据库应用离线索引技术
        • 向量数据库应用在线检索技术
      • 3 LLM 大模型代码知识库架构设计与落地实践
        • 代码知识库技术架构选型
        • 代码知识库技术架构数据向量化流程
        • 代码知识库技术架构选型
        • 代码知识库技术方案设计
        • 代码知识库数据准备
        • 代码知识库数据向量化
        • 代码知识库知识召回和检索
        • 代码知识库效果展示
        • 代码知识库 Bad Case 分析
        • 代码知识库上下文丢失的问题
        • 代码知识库用户输入优化
        • 优化后代码知识库优化结果展示
        • 代码知识库构建几点总结

1 LLM 大模型在工作中的实际应用以及局限性

LLM 大模型工作中实际应用
  • 代码 Copilot
    • 写正则表达式
    • 编写不熟悉的算法
    • 编写注释
    • 业务代码重构
  • 代码 Review
    • Code Review
  • 测试 Copilot
    • 单元测试
    • Mock 数据输出
  • 运维 Copilot
    • 运维脚本
    • Linux 指令查询
大模型2点局限性
  • 数据时效性:2021年09月前的数据
  • 可信性:LLM 大模型的幻觉

如何进一步增加 LLM 大模型的能力?

2 基于大模型和向量数据库的企业级知识库架构剖析

用向量数据库/知识库改进大模型

向量数据库
  • 向量是非结构化数据在高维空间中的表征
  • Embedding Model 是将非结构化数据映射到高维空间的工具
  • 使用合适的 Embedding Model,向量的近似度代表语义的近似度

image.png

向量数据库选型
  • 国产:Milvus、Tencent Cloud VectorDB、Zilliz Cloud 等
  • 海外:Pinecone、Redis、FAISS、PgVector、Elasticsearch Cloud 等

image.png

知识库
  • 知识图谱
  • 全文检索
  • 知识库和向量数据库关系:大模型应用离不开向量检索

image.png

文档检索增强(Retrieval Augmented Generation)
  • 利用提前构建好的知识库,通过检索与 Query 相关的知识片段来增强大模型回答效果

image.png

向量数据库应用技术总体架构

image.png

image.png

向量数据库应用离线索引技术

离线索引更多优化

  • 针对文档特性(语言、内容)选择 Embedding 模型
  • 更有针对性的文档分段模型
  • 文档转问题,用问题召回

image.png

向量数据库应用在线检索技术

在线检索更多优化

  • 用户问题改写,使用改写的问题召回
  • 多路召回,结合全文检索的结果
  • 把问题编造成“假”文档,使用“假”文档召回

image.png

3 LLM 大模型代码知识库架构设计与落地实践

代码知识库技术架构选型
  • Fine-tuning(微调)VS Embedding(嵌入)

image.png

代码知识库技术架构数据向量化流程
  • 万物都先进行向量化

image.png

代码知识库技术架构选型
  • 代码知识库技术架构选型

image.png

代码知识库技术方案设计
  • 代码数据向量化
  • 代码数据召回
  • 查询返回结果

image.png

代码知识库数据准备
  • 数据描述:Mr_Ranedeer V2 描述数据的方式(DSL:领域描述语言)

image.png

  • 数据存储格式:
    • JSON
    • 类 DSL 的知识描述方式
    • 描述语义化

文档知识结构

image.png

  • 知识描述格式:(组件->使用场景->{描述&代码})
代码知识库数据向量化

核心设计原则

  • RecursiveCharacterTextSplitter 将按不同的字符递归地分割文档 。它会尝试将所有语义相关的内容尽可能保留在同一位置,使切片语义更完整。
  • ChunkSize 是切片可以包含的最大字符数,ChunkSize 设置为:1000
  • ChunkSizeOverlap 是两个相邻切片之间应重叠的字符数,ChunkSizeOverlap 设置为:0
代码知识库知识召回和检索

核心参数设置

  • 大模型温度参数设置为0
  • 系统提示词

image.png

代码知识库效果展示

问题:在 TDesign 实现一个表格并带上分页器的功能,列表的一些列信息如下:ip,domain, admin, startTime,endTime。并帮我 mock 5条数据。

image.png

问题:在 TDesign 中如何实现可过滤的Tree树组件(幻觉)

image.png

在 Tdesign 中如何实现图片预览

image.png

代码知识库 Bad Case 分析

image.png

代码知识库上下文丢失的问题
  • 问题:

image.png

  • 解决方案:

image.png

代码知识库用户输入优化

image.png

优化后代码知识库优化结果展示

问题:在 TDesign 中如何实现可过滤的Tree树组件

image.png

问题:在 Tdesign 中如何实现图片预览

image.png

代码知识库构建几点总结
  • 高质量的知识语料
  • 清晰且语义化的数据结构
  • 合理的 Embedding Model 选型以及参数 chunkSize, chunkOverlap 合理设置大小
  • 使用工程技术优化上下文问题
  • 优化用户输入,提升召回精度

http://www.kler.cn/a/393135.html

相关文章:

  • uniCloud云对象调用第三方接口,根据IP获取用户归属地的免费API接口,亲测可用
  • python高效处理大数据:将Excel10万数据分批插入MySQL数据库的实战代码
  • Android Framework AMS(16)进程管理
  • openSUSE 环境下通过 zypper 安装软件
  • Openstack7--安装消息队列服务RabbitMQ
  • C++初阶——list
  • 24年下软考网络工程师真题及答案,估分、备考速看!
  • React第一个项目
  • 【Lucene】详细讲解创建索引的步骤:分词、去停用词、语言处理、倒排表构建
  • 深入了解支持向量机:机器学习中的经典算法
  • Ue5 umg学习(三)文本控件
  • 交互新体验:Axure动态面板下的图片拖动技巧
  • 统信UOS开发环境支持rust
  • 计算机网络:运输层 —— TCP 协议概述与 TCP 报文段首部格式
  • JavaWeb常见注解
  • Flutter【05】企业级Flutter架构实践
  • 鸿蒙生态:开发者的新征程与挑战并存
  • conda和pip的镜像源配置和删除
  • 在双显示器环境中利用Sunshine与Moonlight实现游戏串流的同时与电脑其他任务互不干扰
  • k8s拓扑域 :topologyKey
  • 快递物流查询API接口如何用C#调用
  • Docker 安装Immich教程
  • 【Linux】内核模版加载modprobe | lsmod
  • 【Java Web】分页查询
  • 材质(二)——材质参数化,从源材质继承生成不同的材质实例
  • Lodash的常用方法整理