找工作在什么网站找比较好做设计的网站有哪些
找工作在什么网站找比较好,做设计的网站有哪些,没有版权的图片网站,centos wordpress 一键AI原生应用实战#xff1a;使用Python实现检索增强生成(RAG)系统 关键词#xff1a;检索增强生成(RAG)、大语言模型(LLM)、向量数据库、语义检索、AI原生应用 摘要#xff1a;本文将带你从0到1构建一个完整的检索增强生成#xff08;RAG#xff09;系统。我们会用查…AI原生应用实战使用Python实现检索增强生成(RAG)系统关键词检索增强生成(RAG)、大语言模型(LLM)、向量数据库、语义检索、AI原生应用摘要本文将带你从0到1构建一个完整的检索增强生成RAG系统。我们会用查资料写作文的生活场景类比RAG原理通过Python代码实战演示数据加载、向量化、检索、生成的全流程最后结合实际案例说明RAG在智能客服、文档问答等场景中的应用价值。无论你是AI新手还是有经验的开发者都能通过本文掌握RAG系统的核心技术和落地方法。背景介绍目的和范围随着大语言模型LLM的普及我们发现单纯依赖模型记忆的知识存在两大痛点一是模型知识截止到训练时间如GPT-3.5截止2021年9月无法处理最新信息二是专业领域如医疗、法律的精准知识需求模型可能幻觉出错。本文将聚焦解决这两个问题的核心技术——检索增强生成Retrieval-Augmented Generation, RAG范围覆盖RAG系统架构解析、关键组件实现向量检索LLM生成、Python实战代码、典型应用场景。预期读者对AI应用开发感兴趣的新手掌握Python基础即可希望优化LLM输出准确性的开发者想了解AI原生应用架构的技术管理者文档结构概述本文采用概念→原理→实战→应用的递进结构用查资料写作文类比理解RAG核心逻辑拆解检索模块向量数据库、生成模块LLM、融合模块的技术细节手把手用PythonLangChainChroma实现完整RAG系统分析RAG在不同行业的落地场景与未来趋势术语表核心术语定义RAG检索增强生成通过检索外部知识库补充LLM输入提升生成内容准确性的技术框架向量嵌入Embedding将文本转换为高维空间向量的过程类似给每个句子发数字身份证语义检索基于文本含义而非关键词匹配的检索方式比如苹果能匹配到红富士苹果而非苹果手机向量数据库专门存储和查询向量数据的数据库类似给数字身份证建高效查询的档案库缩略词列表LLM大语言模型Large Language ModelQA问答Question AnsweringKNN最近邻算法K-Nearest Neighbors核心概念与联系故事引入小明写作文的启示小明老师布置了2023年新能源汽车发展的作文题。如果小明只凭自己记忆写单纯LLM生成可能漏掉最新政策如果他翻遍所有报纸找资料全文检索又会浪费时间。聪明的小明用了查资料写作文三步法先想清楚要写的重点用户问题去图书馆找最相关的几篇报道语义检索把资料整合进作文里用自己的话流畅表达LLM生成这其实就是RAG系统的核心逻辑RAG让LLM从记忆大师变成资料分析师通过检索外部知识库补充信息解决知识过时和幻觉问题。核心概念解释像给小学生讲故事一样核心概念一检索模块——智能图书馆管理员检索模块就像图书馆的智能管理员。当你问2023年新能源汽车政策时它不会把所有书都搬给你而是先把你的问题变成数字密码向量嵌入再在存储了所有资料数字密码的档案库向量数据库里找到和你问题最像的几本书Top-K语义检索最后把这几本书的内容提取出来给生成模块核心概念二生成模块——会写作文的小助手生成模块是会写作文的小助手。它拿到检索模块给的资料后不会照抄而是理解你的问题比如政策可能需要关注补贴、牌照等结合资料里的关键信息比如2023年新能源汽车补贴退坡30%用流畅的语言组织成答案比如根据2023年政策新能源汽车购置补贴较去年减少30%…核心概念三融合模块——资料和作文的粘合剂融合模块是资料和作文的粘合剂。它要解决两个问题资料太多怎么办选最重要的3条资料和问题不相关怎么办过滤掉无关内容生成时如何自然衔接比如用根据最新资料显示引出核心概念之间的关系用小学生能理解的比喻三个模块就像小明写作文的黄金三角检索模块是找资料的能手生成模块是写作文的高手融合模块是协调员没有检索模块生成模块就像巧妇难为无米之炊只能瞎编没有生成模块检索模块给的资料就是一堆乱纸需要组织成答案没有融合模块资料和答案可能两张皮比如突然蹦出不相关的内容核心概念原理和架构的文本示意图RAG系统核心架构可拆解为三大模块用户问题 → [检索模块] → 相关知识 → [融合模块] → 增强输入 → [生成模块] → 最终答案检索模块负责从外部知识库中召回最相关的知识片段融合模块负责将检索结果与用户问题结合生成LLM的输入提示Prompt生成模块基于增强后的输入生成符合要求的答案Mermaid 流程图用户问题文本向量化向量数据库检索筛选Top-K知识片段构建增强提示大语言模型生成最终答案核心算法原理 具体操作步骤检索模块核心算法向量相似性计算检索模块的关键是找到最相关的知识片段这依赖于向量之间的相似性计算。最常用的算法是余弦相似度它衡量两个向量在高维空间中的夹角大小夹角越小相似度越高。余弦相似度公式cosine similarity ( A , B ) A ⋅ B ∥ A ∥ ∥ B ∥ \text{cosine similarity}(A,B) \frac{A \cdot B}{\|A\| \|B\|}cosine similarity(A,B)∥A∥∥B∥A⋅B其中( A \cdot B ) 是向量点积( |A| ) 是向量A的模长即向量各维度平方和的平方根举个例子假设新能源汽车政策的向量是[0.2, 0.5, 0.3]某知识片段2023年新能源补贴退坡的向量是[0.1, 0.6, 0.2]计算它们的余弦相似度点积 0.2×0.1 0.5×0.6 0.3×0.2 0.02 0.3 0.06 0.38向量A模长 √(0.2²0.5²0.3²) √(0.040.250.09) √0.38 ≈ 0.616向量B模长 √(0.1²0.6²0.2²) √(0.010.360.04) √0.41 ≈ 0.640余弦相似度 0.38 / (0.616×0.640) ≈ 0.96接近1说明高度相似生成模块核心逻辑提示工程Prompt Engineering生成模块的关键是设计有效的提示Prompt将检索到的知识与用户问题结合。典型的提示模板结构背景信息{检索到的知识片段} 问题{用户问题} 请根据背景信息用简洁易懂的语言回答问题。如果背景信息中没有相关内容请回答未找到相关信息。举个例子用户问题“2023年新能源汽车补贴有什么变化”检索到的知识“2023年新能源汽车购置补贴标准在2022年基础上退坡30%续航400km以上的纯电动车补贴减少约5400元”增强提示背景信息2023年新能源汽车购置补贴标准在2022年基础上退坡30%续航400km以上的纯电动车补贴减少约5400元 问题2023年新能源汽车补贴有什么变化 请根据背景信息用简洁易懂的语言回答问题。LLM生成答案“2023年新能源汽车购置补贴较2022年退坡30%续航400km以上的纯电动车补贴减少约5400元。”项目实战代码实际案例和详细解释说明开发环境搭建我们将使用以下工具链都是开源/免费工具适合新手LangChainAI应用开发框架负责串联检索和生成模块Chroma轻量级向量数据库存储和检索向量OpenAI Embeddings文本向量化模型将文本转成向量OpenAI GPT-3.5-turbo生成模型输出答案环境搭建步骤Windows/macOS/Linux通用安装Python 3.8推荐3.10安装依赖库pipinstalllangchain chromadb openai python-dotenv注册OpenAI账号获取API Key保存为.env文件OPENAI_API_KEYsk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx源代码详细实现和代码解读我们将实现一个新能源汽车知识库问答系统步骤包括加载本地知识库假设我们有一个txt文件存储行业资料将知识片段向量化并存储到Chroma数据库处理用户问题向量化→检索→生成答案步骤1加载知识库并拆分文本fromlangchain.document_loadersimportTextLoaderfromlangchain.text_splitterimportRecursiveCharacterTextSplitter# 加载本地知识文件假设文件名为new_energy_vehicle.txtloaderTextLoader(new_energy_vehicle.txt)documentsloader.load()# 拆分大文本为小片段每段约500字符避免向量过长text_splitterRecursiveCharacterTextSplitter(chunk_size500,# 每个片段最大长度chunk_overlap50,# 片段间重叠长度避免信息断裂separators[\n\n,\n, ,]# 按段落、换行、空格拆分)textstext_splitter.split_documents(documents)print(f拆分后得到{len(texts)}个知识片段)代码解读TextLoader加载文本文件RecursiveCharacterTextSplitter智能拆分长文本优先按段落拆分再按换行最后按空格chunk_size500是经验值太小会丢失上下文太大影响检索效率步骤2向量化并存储到Chroma数据库fromlangchain.embeddingsimportOpenAIEmbeddingsfromlangchain.vectorstoresimportChroma# 初始化向量化模型使用OpenAI的text-embedding-ada-002embeddingsOpenAIEmbeddings()# 将知识片段存入Chroma数据库自动完成向量化存储vectorstoreChroma.from_documents(texts,embeddings,persist_directory./chroma_db# 数据库存储路径)vectorstore.persist()# 持久化存储关闭程序后数据不丢失代码解读OpenAIEmbeddings调用OpenAI API将文本转换为1536维的向量当前最常用的文本向量化模型Chroma.from_documents自动完成文本→向量→存储全流程persist_directory指定数据库存储路径可随时加载步骤3实现问答功能检索生成fromlangchain.chat_modelsimportChatOpenAIfromlangchain.chainsimportRetrievalQA# 初始化LLM使用GPT-3.5-turbo成本低且效果好llmChatOpenAI(model_namegpt-3.5-turbo,temperature0)# temperature0 减少随机性# 创建RAG链整合检索和生成rag_chainRetrievalQA.from_chain_type(llmllm,chain_typestuff,# stuff类型直接将检索结果塞进提示适合短文本retrievervectorstore.as_retriever(k3),# 检索前3个最相关的片段return_source_documentsTrue# 返回参考文档用于验证)# 测试问答user_question2023年新能源汽车补贴有什么变化resultrag_chain({query:user_question})print(答案,result[result])print(参考资料,[doc.page_contentfordocinresult[source_documents]])代码解读ChatOpenAI初始化生成模型temperature0让输出更确定适合需要准确性的场景RetrievalQA.from_chain_type是LangChain提供的快捷RAG链chain_typestuff表示将检索结果直接拼接到提示中其他类型如map_reduce适合长文本retrievervectorstore.as_retriever(k3)指定检索前3个最相关的知识片段k值可根据需求调整代码解读与分析运行以上代码输入2023年新能源汽车补贴有什么变化输出可能如下答案2023年新能源汽车购置补贴标准在2022年基础上退坡30%续航400km以上的纯电动车补贴减少约5400元。 参考资料[ 2023年新能源汽车购置补贴标准在2022年基础上退坡30%续航400km以上的纯电动车补贴减少约5400元续航300-400km的车型补贴减少约3900元。, 根据财政部等四部门联合发布的《关于2023年新能源汽车推广应用财政补贴政策的通知》2023年补贴标准较上一年进一步退坡。, 2023年12月31日后新能源汽车购置补贴政策将正式退出转为通过购置税减免等其他政策支持产业发展。 ]可以看到RAG系统成功检索到相关知识并生成了准确答案同时返回了参考资料可用于溯源和验证。实际应用场景场景1企业智能客服某新能源汽车公司的客服系统接入RAG当用户问我的车型能拿多少补贴时检索模块从企业知识库中找到该车型的续航参数和补贴标准生成模块结合用户车型信息和检索结果输出具体金额相比传统客服依赖固定话术RAG能处理更复杂的个性化问题场景2专业文档问答律师需要查询某法律条款的最新修订内容RAG系统从法律数据库中检索到《XX法2023年修订版》的相关章节生成模块将条款原文转化为通俗易懂的解释相比传统全文检索需要律师自己筛选RAG直接给出答案场景3个性化内容生成电商平台需要为用户推荐新能源汽车检索模块根据用户浏览记录如关注续航、价格找到匹配的车型资料生成模块结合用户偏好生成个性化推荐文案如根据您关注的长续航需求推荐XX车型续航600km补贴后价XX万元工具和资源推荐向量数据库选择工具特点适用场景Chroma轻量级、易上手小型项目/本地开发FAISS高性能、纯Python研究/实验Pinecone云服务、高扩展性生产环境Milvus开源、支持多模态企业级应用LLM选择免费/低成本Hugging Face Transformers如Llama 2、Anthropic Claude Instant高性能OpenAI GPT-4、Anthropic Claude 2、Google Gemini Pro本地化部署Llama 2、Zephyr需GPU支持学习资源官方文档LangChaindocs.langchain.com、Chromadocs.trychroma.com开源项目RAG Stack企业级RAG模板课程Coursera《Generative AI with LLMs》深入讲解RAG等技术未来发展趋势与挑战趋势1多模态RAG当前RAG主要处理文本未来将支持图像、视频、语音等多模态输入。例如用户上传一张汽车图片问这是什么车型补贴多少RAG系统能识别图片中的车型检索相关补贴信息并生成答案。趋势2实时知识更新现有RAG系统的知识库更新需要重新向量化存储未来可能实现增量更新仅更新变化的部分支持新闻、股票等实时数据的检索。趋势3自主检索优化当前RAG的检索策略如k3是固定的未来可能通过强化学习自动调整检索参数如根据问题复杂度动态选择k值提升检索效率。挑战1延迟与成本向量化和检索需要额外计算可能导致响应延迟尤其是云服务。同时OpenAI等API按调用量收费高并发场景成本可能较高。挑战2知识冲突处理当检索到多个矛盾的知识片段时如不同来源的补贴数据RAG需要具备去噪能力如选择权威来源、标注冲突信息。挑战3评估标准缺失如何衡量RAG系统的效果目前常用的指标如准确率、相关性不够全面未来需要更完善的评估体系如用户满意度、业务指标。总结学到了什么核心概念回顾检索模块通过向量相似性计算从知识库中召回最相关的知识片段像智能图书馆管理员生成模块基于增强提示用LLM生成符合要求的答案像会写作文的小助手融合模块将检索结果与用户问题结合构建有效的提示像资料和答案的粘合剂概念关系回顾三个模块形成问题→检索→生成→答案的闭环检索模块解决LLM知识过时问题提供最新信息生成模块解决信息整合问题将碎片知识转化为流畅答案融合模块解决相关性问题确保检索结果与问题紧密相关思考题动动小脑筋如果你的知识库是公司内部的1000份合同你会如何调整RAG系统的参数如chunk_size、k值为什么假设用户问2024年新能源汽车补贴政策你的知识库只到2023年RAG系统应该如何处理你能想到RAG在教育领域的应用吗比如帮学生解答数学题时如何结合课本知识和例题附录常见问题与解答Q必须用OpenAI的模型吗可以用国产模型吗A完全可以比如用百度的ERNIE Embeddings做向量化用阿里的通义千问做生成。LangChain支持对接多种模型只需修改embeddings和llm的初始化代码即可。Q向量数据库需要多大的存储空间A假设每个文本片段生成1536维的向量每个维度是float32占4字节1个向量占1536×46144字节≈6KB。100万条知识片段需要约6GB普通服务器完全可以存储。Q如何评估RAG系统的效果A可以用准确率答案是否正确、“相关性”检索结果与问题的相关程度、“覆盖率”能回答的问题比例等指标。更高级的方法是做用户A/B测试对比RAG系统和传统系统的用户满意度。扩展阅读 参考资料论文《Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks》RAG原始论文官方文档LangChain RAG指南博客《从0到1构建企业级RAG系统》Medium2024视频教程YouTube - Building a RAG System with Python