广东省网站建设_网站建设公司_响应式开发_seo优化
2025/12/27 15:50:04 网站建设 项目流程

为什么我们需要使用RAG?

RAG的初衷是为了增强大模型的事实性,时效性,减少幻觉,引入专业知识优化生成回复。

大模型的缺陷:

存在幻觉现象

知识更新缓慢

对领域知识的理解有限

大模型在处理细分领域知识时,常因训练数据局限性、专业逻辑缺失等问题表现出理解偏差,以下是具体例子及分析:

医疗领域:误诊风险与术语混淆

  • 案例

    :某大模型在回答 “胃溃疡与胃癌的症状区别” 时,将 “持续性胃痛” 列为两者共同症状,但忽略了胃癌特有的 “体重骤降、黑便” 等关键特征;甚至混淆 “幽门螺杆菌检测” 的不同方法(如呼气试验与胃镜活检),建议患者 “直接通过 CT 扫描确诊胃病”,违背临床诊断规范。

  • 问题本质

    :医疗知识需结合病理机制、最新诊疗指南(如 2024 年更新的胃癌筛查共识),而大模型若未覆盖细分领域的最新研究或临床流程,易因 “知识碎片化” 导致建议错误,甚至可能误导患者。

工程技术:规范缺失与设计逻辑漏洞

  • 案例

    当被问及 “高层建筑排水系统设计要点” 时,某大模型建议 “将污水管与通气管合并铺设”,但未考虑《建筑给水排水设计标准》(GB 50015-2019)中 “通气管独立设置以防止反臭” 的强制要求;在计算 “混凝土梁承重” 时,使用过时的材料强度参数(如未更新 2023 年新版混凝土规范中的抗压强度标准值),导致承载力计算结果偏差超过 20%。

  • 问题本质

    工程领域依赖严格的行业标准与公式迭代,大模型若未深度学习最新规范或实操经验,易产出 “理论可行但实际违规” 的方案,甚至埋下安全隐患。

科研学术:文献误读与方法学缺陷

  • 案例

    在回答 “如何设计 RNA 干扰(RNAi)实验” 时,某大模型推荐使用 “siRNA 序列随机设计法”,但未提及 2022 年以来主流的 “脱靶效应预测算法”(如 siDirect 2.0);在分析 “肿瘤免疫治疗机制” 时,错误引用 2018 年之前的研究结论(如将 PD-1 抑制剂的作用机制简化为 “激活 T 细胞”,忽略最新发现的 “巨噬细胞调控通路”)。

  • 问题本质

    科研领域知识更新极快(如生物医学领域每年新增数百万篇文献),大模型若无法实时抓取顶刊前沿成果,或对复杂实验设计的逻辑链条理解不足,易导致 “过时方法推荐” 或 “机制解读片面”。

法律实务:地域法规差异与条款歧义

  • 案例

    面对 “公司股权质押合同有效性” 问题,某大模型笼统引用《民法典》第 443 条,但未区分不同地区的登记流程差异(如深圳前海自贸区对跨境股权质押有特殊备案要求);在分析 “知识产权侵权赔偿” 时,错误计算法定赔偿上限(如将 2021 年《著作权法》修改前的 “50 万元上限” 仍作为现行标准)。

  • 问题本质

    法律领域具有强地域性(如各省高院对同一法条的司法解释可能不同)和时效性(法规修订频繁),大模型若未针对细分法域或最新条款进行专项训练,易因 “一刀切” 回答导致实务应用错误。

艺术创作:风格溯源与文化语境偏差

  • 案例

    当被要求 “分析梵高《星月夜》的表现主义特征” 时,某大模型将其归因为 “印象派光影技法”,混淆了后印象派与表现主义的区别;在生成 “日式枯山水庭院设计方案” 时,加入 “喷泉、杜鹃花” 等元素,违背枯山水 “以砂代水、极简无树” 的传统美学原则。

  • 问题本质

    艺术领域依赖对历史流派、文化符号的深度理解,大模型若仅通过文本数据学习(而非视觉 / 空间特征分析),易因 “文化语境缺失” 导致风格误判或创作元素堆砌。

RAG的定义:

  • RAG(检索增强生成)的核心逻辑,是通过实时检索外部数据来强化大模型的内容生成能力。

  • 类比理解

    这就像 “开卷考试”—— 让大模型先从 “书本”(外部知识库)中查找信息,再基于检索到的内容作答,而非仅依赖自身预训练的知识。

  • 场景示例

    若想询问大模型关于公司内部的请假流程,它原本可能因缺乏相关数据而无法回答。但如果先将公司员工手册作为外部资料提供给它,当再次提问时,大模型就能通过检索手册内容,准确反馈具体的请假规则和流程。

它的论文地址: https://arxiv.org/pdf/2312.10997

流程图如下:

RAG 的核心流程可拆解为三大关键步骤

  1. 索引化处理
    把目标文档切割成细粒度文本片段,通过算法将每个片段转化为向量形式,最终存储至向量数据库中,形成可快速查询的索引结构。
  2. 相似性检索
    当用户提出问题时,系统会在向量数据库中检索与问题语义最相似的前 k 个文本片段,确保获取最相关的背景信息。
  3. 融合生成回答
    将用户的原始问题与检索到的文本片段一同输入大模型,让模型基于这些实时信息生成逻辑连贯、内容准确的回答。

RAG 示例代码实战

# 读取PDF 分割文档 def extract_text_from_pdf(filename, page_numbers=None, min_line_length=1): '''从 PDF 文件中(按指定页码)提取文字''' paragraphs = [] buffer = '' full_text = '' # 提取全部文本 for i, page_layout in enumerate(extract_pages(filename)): # 如果指定了页码范围,跳过范围外的页 if page_numbers is not None and i not in page_numbers: continue for element in page_layout: # 检查element是不是文本 if isinstance(element, LTTextContainer): # 将换行和空格去掉 full_text += element.get_text().replace("\n", "").replace(" ", "") if full_text: # 调用切割函数 text_chunks = sliding_window_chunks(full_text, 250, 100) for text in text_chunks: print(text) paragraphs.append(text) return paragraphs
#创建向量数据库类 class MyVectorDBConnector: def __init__(self): # 创建数据库的链接 self.db = chromadb.Client() # 创建数据库 self.collection = self.db.get_or_create_collection(name="demo") def get_embeddings(self, texts, model="text-embedding-v2"): '''封装 qwen 的 Embedding 模型接口''' # print('texts', texts) data = client.embeddings.create(input=texts, model=model).data return [x.embedding for x in data] def add_documents(self, instructions): '''向 collection 中添加文档与向量''' # 将数据向量化 embeddings = self.get_embeddings(instructions) # 把向量化的数据和原文存入向量数据库 self.collection.add( embeddings=embeddings, # 每个文档的向量 documents=instructions, # 文档的原文 ids=[f"id{i}" for i in range(len(instructions))] # 每个文档的 id ) def search(self, query, n_results): '''检索向量数据库''' # 把我们查询的问题向量化, 在chroma当中进行查询 results = self.collection.query( query_embeddings=self.get_embeddings([query]), n_results=n_results, ) return results
#创建RAG类 class RAG(): def __init__(self, vector_db, n_res): self.vector_db = vector_db self.n_res = n_res # llm模型 def get_completion(self, prompt, model="qwen-turbo"): '''调用千问接口''' messages = [{"role": "user", "content": prompt}] response = client.chat.completions.create( model=model, messages=messages, temperature=0, # 模型输出的随机性,0 表示随机性最小 ) return response.choices[0].message.content def chat(self, queyr): # 1.检索 search_Data = self.vector_db.search(queyr, self.n_res) print(search_Data['documents'][0]) # 2. 构建提示词 prompt = prompt_template.replace('__INFO__', '\n'.join(search_Data['documents'][0])).replace('__QUERY__', queyr) response = self.get_completion(prompt) print("---------------------------------------" * 120) print('AI回复的内容:', response)
#提问,main方法入口 if __name__ == '__main__': load_dotenv() client = OpenAI(api_key=os.getenv("api_key"), base_url="https://dashscope.aliyuncs.com/compatible-mode/v1") prompt_template = """ 你是一个问答智能小助手。 你的任务是根据下述给定的已知信息回答用户问题。 确保你的回复完全依据下述已知信息。不要编造答案。 如果下述已知信息不足以回答用户的问题,请直接回复"我无法回答您的问题"。 已知信息: __INFO__ 用户问: __QUERY__ 请用中文回答用户问题。 """ page_data = extract_text_from_pdf('知识文档.pdf', page_numbers=[0, 1, 2]) # 创建向量数据库对象 vector_db = MyVectorDBConnector() # 添加向量 vector_db.add_documents(page_data) # 创建机器人对象 rag = RAG(vector_db, n_res=2) rag.chat('我是谁')

如何学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

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

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

第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。

  • 大模型 AI 能干什么?
  • 大模型是怎样获得「智能」的?
  • 用好 AI 的核心心法
  • 大模型应用业务架构
  • 大模型应用技术架构
  • 代码示例:向 GPT-3.5 灌入新知识
  • 提示工程的意义和核心思想
  • Prompt 典型构成
  • 指令调优方法论
  • 思维链和思维树
  • Prompt 攻击和防范

第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。

  • 为什么要做 RAG
  • 搭建一个简单的 ChatPDF
  • 检索的基础概念
  • 什么是向量表示(Embeddings)
  • 向量数据库与向量检索
  • 基于向量检索的 RAG
  • 搭建 RAG 系统的扩展知识
  • 混合检索与 RAG-Fusion 简介
  • 向量模型本地部署

第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

  • 为什么要做 RAG
  • 什么是模型
  • 什么是模型训练
  • 求解器 & 损失函数简介
  • 小实验2:手写一个简单的神经网络并训练它
  • 什么是训练/预训练/微调/轻量化微调
  • Transformer结构简介
  • 轻量化微调
  • 实验数据集的构建

第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。

  • 硬件选型
  • 带你了解全球大模型
  • 使用国产大模型服务
  • 搭建 OpenAI 代理
  • 热身:基于阿里云 PAI 部署 Stable Diffusion
  • 在本地计算机运行大模型
  • 大模型的私有化部署
  • 基于 vLLM 部署大模型
  • 案例:如何优雅地在阿里云私有部署开源大模型
  • 部署一套开源 LLM 项目
  • 内容安全
  • 互联网信息服务算法备案

学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。

如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。

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

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询