大模型专业领域知识不足?RAG技术为你提供完美解决方案

文章指出大模型在垂直领域存在信息陈旧、缺乏结构化知识、数据偏差和幻觉生成等问题。作者提出RAG(检索增强生成)解决方案,通过构建专业知识库,利用文档向量化、FAISS向量数据库等技术,将大模型与最新专业知识结合,形成智能问答系统。该方法有效解决了大模型在专业领域的不准确问题,实现了从"手动翻阅"到"智能对话"的知识获取方式升级。


前言

大模型在训练时是包含了海量的建筑设计规范文件的,但是它在回答建筑设计专业问题时仍然会出较多错误。我向网页版Deepseek问了两个问题,它的回答都是错的:

问:无障碍厕所隔间的尺寸是多少?
Deepseek答:依据《无障碍设计规范》GB50763-2012,平面尺寸不应小于1.80m×1.50m
规范要求:实际在无障碍规范中,无障碍厕所不应小于1.8m×1.0m;在民用建筑统一标准中,无障碍厕所隔间不应小于1.5m×2.0m,隔间外开门时不应小于1.0m×1.8m。

问:单侧并列洗手盆或盥洗槽外沿至对面墙的净距不应小于多少?居住建筑洗手盆外沿至对面墙的净距不应小于多少?
Deepseek答:其外沿至对面墙(或障碍物)的净距,不应小于1.20m;居中建筑中不应小于0.7m
规范要求:单侧并列洗手盆或盥洗槽外沿至对面墙的净距不应小于1.25m;居住建筑洗手盆外沿至对面墙的净距不应小于0.6m。

通过以上两个问题反映了大模型在垂直领域中一些能力上的不足,比如:
1)信息陈旧与矛盾,训练时用的规范并非最新版
2)缺乏深度结构化知识,无法实现“章-节-条-款”定位
3)数据分布偏差,冷门知识缺失,例如网络上大家问的较多的规范问题,大模型就能回答的相对准确
4)大模型本质是概率生成,回答时候有一定概率产生幻觉
因此垂直领域的知识库的搭建,就显的非常必要了。

Retrieval Augmented Generation,中文翻译为检索增强生成,是将信息检索与大模型生成结合的一种技术框架。模型生成答案时,会被强制要求基于检索到的最新、最相关的知识库文档片段来组织语言,而非依赖其内部可能过时或错误的信息,从而极大地降低其幻觉的概率。

实战解析

第一步:文档材料准备

我们在实际工作中的规范文档材料多种多样,有PDF、word等不同类型的文档。文档内容也并非全部都是有效信息,因此需要对文档的内容进一步处理。

本文选择将《民用建筑设计统一标准》GB 50352-2019这本建筑规范统一处理为markdown格式,规范中的表格则统一处理为html格式,方便文档切分及后续的文本向量转换。最终处理好的文件以TXT格式保存。

文档清洗是非常重要的一步,它将多余噪声清除,将非文本格式的内容转化为嵌入模型可识别的格式,为后续的工作打下一个坚实的基础。

第二步:设置API_KEY

直接将模型的APIKEY设置为环境变量,这样使用起来更方便,如将代码公开,APIKEY也不会暴露。

在本文中,文本向量化时使用的嵌入模型来自阿里百炼平台的"text-embedding-v1";在回答问题阶段则调用的是"deepseek"

DASHSCOPE_API_KEY = os.getenv('DASHSCOPE_API_KEY')DEEPSEEK_API_KEY = os.getenv('DEEPSEEK_API_KEY')

第三步:文档向量化,并构建可检索的知识库

像上一篇文章一样,同样是需要将文档做向量化的表达。这是将TXT变为大模型可理解格式的关键一步。我们采用"分块"策略,将长文本切成有重叠的小段,既保持上下文,又方便精确检索。

本文是按照标题的层级结构进行分块的,这是针对规范类文档较为常用的一种分块策略,能较好的保持文档的语义连贯。

将分块的文本转换为向量之后,再利用FAISS创建一个本地的向量数据库保存转换后的向量,方便进行语义相似度的检索。

def process_txt_file(file_path: str, save_path: str = None) -> FAISS: """从txt文件创建向量存储""" # 读取txt文件 text = Path(file_path).read_text(encoding='utf-8') print(f"已读取文件: {file_path}, 文本长度: {len(text)} 字符") # 创建文本分割器 text_splitter = RecursiveCharacterTextSplitter( separators=["\n#", "\n##", "\n###", "\n\n", "\n", "。"], chunk_size=300, chunk_overlap=60, length_function=len, ) # 分割文本 chunks = text_splitter.split_text(text) print(f"文本被分割成 {len(chunks)} 个块。") # 创建嵌入模型 embeddings = DashScopeEmbeddings( model="text-embedding-v1", dashscope_api_key=DASHSCOPE_API_KEY, ) # 创建知识库 knowledge_base = FAISS.from_texts(chunks, embeddings) print("已从文本块创建知识库。") # 保存向量数据库 if save_path: os.makedirs(save_path, exist_ok=True) knowledge_base.save_local(save_path) print(f"向量数据库已保存到: {save_path}") return knowledge_base

第四步:创建或加载向量数据库

首次运行以下函数,是调用嵌入模型将txt格式文件转换为向量格式并创建FAISS数据库。当本地已保存了相应向量数据库文件之后,再次运行以下函数,将加载已保存的向量数据库。

def create_or_load_knowledge_base() -> FAISS: """创建或加载向量数据库""" # 文件路径和保存路径 txt_file_path = "./民用建筑设计统一标准GB50352-2019.txt" vector_store_path = "./vector_store" # 创建嵌入模型(创建和加载都需要) embeddings = DashScopeEmbeddings( model="text-embedding-v1", dashscope_api_key=DASHSCOPE_API_KEY, ) # 检查向量数据库是否已存在 ifnot os.path.exists(vector_store_path): print("向量数据库不存在,开始创建...") # 创建向量数据库 knowledge_base = process_txt_file( file_path=txt_file_path, save_path=vector_store_path ) print("向量数据库创建完成。") else: print("向量数据库已存在,开始加载...") # 直接加载FAISS向量数据库 knowledge_base = FAISS.load_local(vector_store_path, embeddings, allow_dangerous_deserialization=True) print(f"向量数据库已从 {vector_store_path} 加载。") print("向量数据库加载完成。") return knowledge_base

第五步:搭建智能问答

知识库就绪后,我们将其与大语言模型连接,形成完整的问答流水线。

当你向RAG系统提出了一个建筑设计规范问题,系统会先检索知识库,寻找语义最为相似的知识切片。然后系统会将系统提示词、找出的知识切片、你提出的问题整合在一起,再喂给大模型。最后大模型接收以上所有信息之后,再做出相应回答。

if __name__ == "__main__": from langchain_openai import ChatOpenAI # 创建或加载知识库 knowledgeBase = create_or_load_knowledge_base() # 初始化语言模型 llm = ChatOpenAI( model_name="deepseek-chat", # 或 "deepseek-coder" 根据你的需求 openai_api_key= DEEPSEEK_API_KEY, openai_api_base="https://api.deepseek.com", # DeepSeek API地址 temperature=0.1, max_tokens=2048 ) SYSTEM_PROMPT = """你是一个专业的建筑标准咨询助手,专门回答关于《民用建筑设计统一标准GB50352-2019》的问题。 重要要求:每次回答问题时,必须在答案中标明答案所依据的具体条款或章节的标题号(如:4.5.2、3.1.1等)。如果答案涉及多个条款,需要分别注明每个条款的标题号。回答格式要求:1. 先直接回答问题2. 然后标注标题号(如:依据标准第4.5.2条...)请确保答案准确、专业,并严格依据提供的文本内容。""" # 设置查询问题 query = "单侧并列洗手盆或盥洗槽外沿至对面墙的净距不应小于多少?" if query: # 执行相似度搜索,找到与查询相关的文档 docs = knowledgeBase.similarity_search(query, k=10) # 构建上下文 context = "\n\n".join([doc.page_content for doc in docs]) # 构建提示 prompt = f"""{SYSTEM_PROMPT} 根据以下上下文回答问题: {context} 问题: {query} 请按照要求的格式回答:""" # 直接调用 LLM response = llm.invoke(prompt) answer = response.content print("回答:") print(answer) print(f"模型名称: {llm.model_name}")

尝试向系统提问本文最开始提到的问题"单侧并列洗手盆或盥洗槽外沿至对面墙的净距不应小于多少?",可以看到deepseek给出了准确的回答,并给出条款的标题号。

条款的标题号属于知识切片元数据的一种,本文可采用提示词的方式附在答案之后,是因为本文所使用的txt格式的规范文件已经转换为结构清晰的文件,并且在文档切片时也采用了以文章结构为主的切片策略。

结语

借助LangChain和RAG,我们将专业知识的获取方式从“手动翻阅”升级为“智能对话”。

建筑师在大多数场景下,并不能清晰的了解自己所需要查询的规范内容,尤其对于工作经验不足的新人。

但是他们可以提供具体的设计场景,让大模型理解具体使用环境,进一步帮助我们去翻阅资料。

如何学习AI大模型?

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

这份完整版的大模型 AI 学习和面试资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】

第一阶段:从大模型系统设计入手,讲解大模型的主要方法;

第二阶段:在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;

第三阶段:大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;

第四阶段:大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;

第五阶段:大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

第六阶段:以SD多模态大模型为主,搭建了文生图小程序案例;

第七阶段:以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。

👉学会后的收获:👈

• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。

1.AI大模型学习路线图
2.100套AI大模型商业化落地方案
3.100集大模型视频教程
4.200本大模型PDF书籍
5.LLM面试题合集
6.AI产品经理资源合集

👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1165083.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2026年AI大模型求职:7个适合小白/程序员的转型方向与技能要求

文章分析了2025年AI行业就业趋势,指出普通职场人适合的7个AI岗位方向:大模型应用工程师、AI产品经理、Prompt工程师、数据工程/数据治理、AI解决方案、AIGC内容岗位和AI技术支持。这些岗位大多不需要"深度技术",更看重"学习能…

【开题答辩全过程】以 基于Android的健康码系统架构为例,包含答辩的问题和答案

个人简介 一名14年经验的资深毕设内行人,语言擅长Java、php、微信小程序、Python、Golang、安卓Android等 开发项目包括大数据、深度学习、网站、小程序、安卓、算法。平常会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。 感谢大家…

2026年AI行业应用深度展望:AI应用重塑流量格局,字节阿里腾讯C端布局加快|附53页PDF文件下载

2026国内C端AI应用展望:大厂步伐加快,AI或正在推动新一轮流量格局重塑1、豆包:用户量规模最大且步伐加快。目前豆包日活已过亿。据AI产品榜,11月豆包月活1.7亿,同比增长接近2倍,是国内用户数量最大的通用C端…

干货收藏!AI时代生存法则:守住情感创造力,抢占AI新岗位

面对AI大模型的发展,人类不必过度焦虑。首先,守住人类独有的"情感与创造力",这是AI无法替代的核心价值。其次,拥抱AI催生的新机遇,如AI应用开发工程师和训练师等高薪岗位,这些岗位要求不高但薪资…

大模型高薪岗位汇总:年薪40-220万,程序员必学必收藏

锐仕方达发布热招高薪岗位132个,最高年薪400万。大模型领域薪资诱人,9个精选岗位年薪从40万到220万不等,涵盖杭州、上海、北京等热门城市,涉及互联网、人工智能、航空航天等行业。这些高薪岗位包括大模型研发经理、算法工程师、技…

基于python的基于深度学习的车俩特征分析系(源码+文档)

项目简介基于深度学习的车俩特征分析系实现了以下功能:前台: 简单的用户登录界面 系统主界面: 车俩识别:添加图片,开始识别等选项 汽车百科:一些汽车科普知识(后期方便我自己加减里面的内容&…

人工智能早间新闻速递 — 2026年1月15日

以下是2026年1月15日全球与中国人工智能领域最新动态速览。 华尔街见闻advanced-television.com凤凰网财经themarkup.org21经济网 🗞️ 一、行业大事件与热点动态 📌 1. 阿里千问即将发布新品 阿里巴巴旗下大模型产品 千问(Qwen/千问&…

AI大模型学习全攻略:程序员必备技能与实战指南_2026年最详细的大模型学习路线

本文提供完整大模型学习路线,分为筑基、理论突破、实战进阶、高阶突破和企业应用六阶段,涵盖Python编程、数学基础、NLP技术、Transformer架构、Prompt工程、模型微调等核心技能。通过系统学习路线图、实战案例、视频资料和面试题,帮助程序员…

【计算机毕业设计案例】基于SpringBoot的社区居民旧衣物回收与捐赠系统设计与实现基于SpringBoot的社区旧衣物回收与捐赠系统设计与实现(程序+文档+讲解+定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

强烈安利9个AI论文网站,MBA论文写作必备!

强烈安利9个AI论文网站,MBA论文写作必备! AI 工具如何助力 MBA 论文写作 MBA 学习过程中,论文写作是一项不可避免的挑战。无论是选题、资料收集还是内容撰写,都需要大量的时间和精力。而随着 AI 技术的发展,越来越多的…

Java毕设项目推荐-基于vue的闲置衣物分类回收与捐赠系统设计与实现基于SpringBoot的社区旧衣物回收与捐赠系统设计与实现【附源码+文档,调试定制服务】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

亲测好用9个一键生成论文工具,专科生轻松搞定毕业论文!

亲测好用9个一键生成论文工具,专科生轻松搞定毕业论文! AI 工具如何让论文写作不再难 对于许多专科生来说,撰写毕业论文不仅是学术能力的考验,更是时间与精力的挑战。面对繁重的写作任务,很多人会感到无从下手&#xf…

博弈论 Nim游戏

之前从来没有系统学过博弈论的相关定理,遇到的基本都是从题面中找到相关的规律。在刷牛客tracker的时候遇到了这个问题,总结一下。 经典模型 地上有n堆石子,甲乙两人交替取石子。每人每次可以从任意一堆里面取,但不能不取。最后没…

Node.js用LruCache提升缓存效率

💓 博客主页:瑕疵的CSDN主页 📝 Gitee主页:瑕疵的gitee主页 ⏩ 文章专栏:《热点资讯》 Node.js缓存效率革命:LruCache的深度实践与前瞻应用目录Node.js缓存效率革命:LruCache的深度实践与前瞻应…

数据共享平台扩展性设计:水平扩展实践

数据共享平台扩展性设计:水平扩展实践——从“单桌餐厅”到“连锁餐饮”的架构进化 一、引入与连接:为什么需要水平扩展? 1. 开场:一个“崩溃”的数据共享场景 想象一下:你负责的政务数据共享平台,平时稳定…

【值得收藏】ToPG:基于命题图谱导航的RAG方法,实现粒度与结构的完美平衡

ToPG提出命题级RAG解决方案,构建"实体-命题-段落"异构图,实现三种搜索模式:Naive(单跳事实)、Local(多跳推理)和Global(抽象/综述)。该方法通过查询感知游走,解决了传统RAG粒度与结构不可兼得的痛点。实验证明&#xff…

大模型领域六大岗位详解:从入门到精通,附学习资源,程序员必备收藏!

本文解析大模型领域六大类岗位(技术研发、算法、数据、产品、深度学习和垂直领域)的职责与要求,提供从入门到精通的系统学习路径,帮助读者掌握大模型技术,找到适合的职业方向,并附有免费学习资源。AI行业人…

基于Web手工艺品销售系统的开发与实现毕业论文+PPT(附源代码+演示视频)

文章目录基于Web手工艺品销售系统的开发与实现一、项目简介(源代码在文末)1.运行视频2.🚀 项目技术栈3.✅ 环境要求说明4.包含的文件列表(含论文)数据库结构与测试用例系统功能结构前端运行截图后端运行截图项目部署源…

大数据领域分布式计算的混合计算模式

大数据领域分布式计算的混合计算模式:从“单一工具”到“全能工具箱”的进化 关键词:分布式计算、混合计算模式、批处理、流处理、实时分析、数据一致性、计算引擎融合 摘要:在大数据时代,企业的需求早已从“处理海量数据”升级为“用数据实时驱动决策”。单一的批处理或流…

C# 中静态类的正确与错误用法

在 C# 开发中,静态类常被用作工具方法的集中地,例如字符串转换、日期格式化等通用逻辑。这种做法本身并没有问题,也符合 DRY 原则。但如果使用不当,尤其是为静态类引入状态或隐藏依赖,就会在不知不觉中埋下可维护性与线…