自学搭建网站手机网站 pc网站模板

张小明 2026/1/8 14:01:41
自学搭建网站,手机网站 pc网站模板,做网站 备案,合肥商城网站开发文章介绍大模型知识增强三大技术#xff1a;RAG检索增强生成、微调和提示工程#xff0c;重点详解RAG技术实现原理与代码实践。通过构建动漫知识库实例#xff0c;展示如何将外部知识注入大模型解决知识盲区#xff0c;并提供完整代码实现和Streamlit界面构建方案#xff…文章介绍大模型知识增强三大技术RAG检索增强生成、微调和提示工程重点详解RAG技术实现原理与代码实践。通过构建动漫知识库实例展示如何将外部知识注入大模型解决知识盲区并提供完整代码实现和Streamlit界面构建方案帮助程序员实现大模型知识动态更新与应用开发。生成式AI是一种能够生成各类内容的技术包括文本、图像、音频和合成数据。大语言模型(Large Language Model, LLM)经过海量文本数据的训练后能将这些文本数据以一种黑盒形式压缩在模型参数中。预训练完成后模型便掌握了大量的人类世界知识。研究者发现当模型的规模足够大且经过指令微调对齐后便可通过提示模板运用零样本(zero-shot)或少样本(few-shot)的提示词来完成许多自然语言理解和自然语言生成任务。但是大模型并不具备在环境不断变化的场景中回答特定问题所需的全面知识。针对这种问题一般有三种解决方式1.RAGRetrieval Augmented Generation2020年Facebook在“Retrieval-AugmentedGeneration for Knowledge-Intensive NLP Tasks”一文中首先提出了一种称为检索增强生成(RAG)的框架。该框架可以使模型访问超出其训练数据范围之外的信息使得模型在每次生成时可以利用检索提供的外部更专业、更准确的知识从而更好地回答用户问题。RAG在推理过程中分为两个阶段检索和内容生成。在检索阶段通过算法检索与用户问题相关的知识片段。在开放领域中这些知识片段可以来自互联网上搜索引擎检索到的文档例如微软Bing AI的模式在私有领域的企业场景中通常使用大量的内部文档通过更小的信息源约束来提高模型生成的安全性和可靠性。完成检索之后可以获取到一些与用户输入相关的可靠外部知识。在内容生成阶段通过一个结构化的prompt模板约束将这些外部知识添加到用户的问题中并传递给语言模型。模型基于知识增强的prompt通过自己的大量参数计算就可以生成一个针对该用户问题的更准确的答案。RAG具体执行时包括三个环节首先对用户问题进行处理这个过程通常称为嵌入embedding然后从向量库中根据相似度取出跟问题最相关的内容最后把检索出的内容作为问题的上下文一起发给大模型通过大模型来生成符合我们习惯的回答。通过向量库的检索大模型可以掌握原本训练过程中不了解的知识。2.微调Fine Tunning所谓微调就是对大模型在自己的数据上进行微调。大模型微调的核心是 “保留预训练知识适配下游任务”能以较低成本让通用大模型具备场景化能力是落地大模型应用的关键手段。通过对大模型进行微调同样可以使大模型具有业务知识也可以进行知识更新但是大模型微调需要较高的GPU计算资源并且较为复杂训练数据准备也要耗费不少时间。因此如果对于知识不断变化的场景会频繁进行微调成本较高。3.提示工程Prompt Engineering不同的问题描述方式会导致LLM回答质量的差异。因此学会如何更好地向LLM描述问题变得非常重要。ChatGPT的爆火推动了prompt工程的兴起它旨在优化和开发提示词以便更高效地利用LLM解决各种实际问题。目前在某些场景下LLM很难准确理解用户意图因此我们需要更详细地描述问题才能获得更好的答案。相比RAG和微调提示工程最简单因为不需要做额外的工作但是由于没有加入新的知识因此大模型所回答的内容依然仅依赖于它原本训练过程中获取到的知识除非在提示词中把新的知识在上下文中输入到大模型。这三种技术各有优劣在不同的场景下可以具体应用。RAG的相关教程现在很多我这里主要举几个例子起到抛砖引玉的作用。要使用RAG我可以先把需要文档存入到向量库中这里我们使用FAISS。然后根据相似度查询匹配度最高的内容#--------------测试向量库FAISS-------------- from langchain_ollama import OllamaEmbeddings from langchain_community.vectorstores import FAISS from langchain.docstore.document import Document raw_documents [Document(page_content葡萄, metadata{source: local}), Document(page_content白菜, metadata{source: local}), Document(page_content狗, metadata{source: local})] embeddings OllamaEmbeddings(modelbge-m3:567m) db FAISS.from_documents(raw_documents, embeddings) query 动物 docs db.similarity_search(query) print(docs[0].page_content) # 输出狗这里可以看到我们先把“葡萄”、“白菜”、“狗”作为原始文本通过embedding模型对文本进行嵌入操作然后把embedding后的文本向量存储到向量库中最后根据查询的问题去寻找相似度最高的文本。可以看到构建RAG向量库的基本流程都是如此的方式。下面我们看一个简单的查询例子假设我想构建一个动漫知识库存储一些热门动漫。我这里有个《龙珠》的简单介绍我想要存储到向量库中并进行提问。原始文本如下孙悟空是《龙珠》系列的核心主人公来自贝吉塔行星的赛亚人以乐观、勇敢和对战斗的热爱贯穿全篇。 ### 核心身份与背景 原名卡卡罗特婴儿时期被送往地球因头部撞击失去赛亚人侵略本性被地球人孙悟饭收养长大。 赛亚人天生热爱战斗拥有越战越强的体质还有变身超级赛亚人等强大形态的能力。 ### 关键性格特质 纯真善良对世界充满好奇不谙世事却坚守正义底线。 战斗狂热遇强则强始终追求更强的对手和更高的实力境界。 重视亲情与友情愿意为保护家人、伙伴和地球付出一切甚至牺牲自己。 ### 成长与成就 从懵懂的山野少年起步历经无数战斗结识布尔玛、克林、贝吉塔等挚友。 多次拯救地球于毁灭危机击败弗利萨、沙鲁、布欧等强敌成为宇宙级的强者。 始终保持谦逊即便实力顶尖仍不断修炼突破从未停止变强的脚步。 ### 核心攻击型绝招 龟派气功最具代表性的招式双手合十积蓄能量后推出冲击波可根据实力提升威力是常用的远程攻击手段。 元气弹集合周围生物的元气凝聚成巨大能量球威力极强且只对邪恶目标生效多次在决战中扭转战局。 龙拳爆发将能量集中于拳头打出形似巨龙的冲击爆发力惊人常用于近距离重创强敌。 近身与辅助型招式 舞空术通过控制能量实现飞行是后期战斗和移动的基础技能。 瞬间移动从 Yardrat 星习得能感知对方气息并瞬间转移到指定地点兼具逃生、支援和突袭功能。 赛亚人变身不算直接招式但核心能力从超级赛亚人到超蓝、超本能等形态变身後全方面提升战斗力配合招式发挥更强威力。 衍生与组合招式 界王拳通过倍数提升自身战斗力初期常用后期多与变身形态结合使用但会对身体造成负荷。 分身术分裂出多个自身分身用于迷惑对手或同时攻击实力随本体强度同步。我们这里先用文档加载器把txt文本加载进来然后通过RecursiveCharacterTextSplitter类对文档进行分段分段也是一个影响RAG效果的非常关键步骤不同的分段策略可能导致RAG的效果有很大的差别。我这里选择每500个字分段并设定以换行符作为分段标志。分段后的文档再进行embedding操作存入到向量库。查询的时候系统会先去向量库中寻找问题相关的内容再和问题一起提交给大模型从而得到结果。from langchain_core.messages import SystemMessage, HumanMessage from langchain_openai import ChatOpenAI from langchain_ollama import OllamaEmbeddings from langchain_community.vectorstores import FAISS from langchain.docstore.document import Document from langchain.document_loaders import TextLoader from langchain.text_splitter import RecursiveCharacterTextSplitter # 数据加载与文本切块 loader TextLoader(2.txt, encodingutf-8) # 定义加载器 documents loader.load() # 加载文档 text_splitter RecursiveCharacterTextSplitter(chunk_size500, chunk_overlap0, separators[\n]) # 定义一个文档切分器 chunks text_splitter.split_documents(documents) # 切分文档 template 你是一位问答助手你的任务是根据###中间的文本信息回答问题请准确回答问题不要健谈如果提供的文本信息无法回答问题请直接回复“提供的文本无法回答问题” 我相信你能做得很好。###\n{context}###\n 问题{question} question 卡卡罗特的绝招有哪些 # 写入向量数据库获取检索器 embeddings OllamaEmbeddings(modelbge-m3:567m) db FAISS.from_documents(chunks, embeddings) retriever db.as_retriever(search_kwargs{k: 2}) # 召回和问题相关的文本 context retriever.get_relevant_documents(question) print(context) context_str ; .join([doc.page_content for doc in context]) input_str template.format_map({context:context_str, question:question}) chat ChatOpenAI( streamingTrue, modeldeepseek-chat, openai_api_key你的API KEY, openai_api_basehttps://api.deepseek.com, max_tokens1024 ) messages [ SystemMessage(content你是一位问答助手), HumanMessage(contentinput_str) ] response chat(messages) print(response.content)根据控制台的输出我们可以看到系统找到的分段并且给出了正确的结果而且我们这里问的是卡卡罗特而文档里面一开始说的是孙悟空说明大模型自动识别了卡卡罗特就是孙悟空。下面我用streamlit作为前端界面框架做了一个简单的例子我们可以针对向量库中的内容进行查询并可以添加新的文档到向量库中增加文档的知识。首先构建一个可以操作向量库的工具文件# 例子动漫RAG # 存储和获取向量库 from langchain_community.document_loaders import TextLoader from langchain_community.vectorstores import FAISS from langchain_ollama import OllamaEmbeddings from langchain_text_splitters import RecursiveCharacterTextSplitter from langchain_community.document_loaders import Docx2txtLoader def load_word_file(file_path): loader Docx2txtLoader(file_path) data loader.load() return data text_splitter RecursiveCharacterTextSplitter( separators[\n,\n\n], chunk_size500, chunk_overlap0, length_functionlen, is_separator_regexFalse ) def add_word(filename, index_name): # Word docs load_word_file(filename) documents text_splitter.split_documents(docs) embeddings OllamaEmbeddings(modelbge-m3:567m) vector FAISS.load_local(faiss_index_word, embeddings, allow_dangerous_deserializationTrue) vector.add_documents(documents) vector.save_local(faiss_index_word) def get(index_name): embeddings OllamaEmbeddings(modelbge-m3:567m) vector FAISS.load_local(index_name, embeddings, allow_dangerous_deserializationTrue) return vector def init_db(index_name): file_path D:\\zj\\AI\\corpus\\孙悟空.docx docs load_word_file(file_path) documents text_splitter.split_documents(docs) # -------------------- 2. 向量库构建 -------------------- # 使用 OpenAI 文本嵌入可替换为其他嵌入模型 embeddings OllamaEmbeddings(modelbge-m3:567m) # 创建 FAISS 向量库 vector_db FAISS.from_documents( documentsdocuments, embeddingembeddings ) vector_db.save_local(index_name)然后用Streamlit作为外部界面构建一个可以查询和增加文档的小应用也可以对向量库进行初始化初始化的时候系统会自动构建动漫龙珠的向量库后续可以上传文档并添加新的知识。import streamlit as st from langchain_core.output_parsers import StrOutputParser from langchain.schema.runnable import RunnableLambda, RunnablePassthrough from langchain.prompts import PromptTemplate from langchain_openai import ChatOpenAI from vector2 import init_db,get,add_word import asyncio chat ChatOpenAI( streamingTrue, modeldeepseek-chat, openai_api_key你的AIP KEY, openai_api_basehttps://api.deepseek.com, max_tokens1024 ) def main(): index_name anime_index_word st.title(动漫知识库) question st.text_input(请输入查询内容) uploaded_file st.sidebar.file_uploader(上传文件, type[txt, docx]) if st.sidebar.button(初始化向量库): init_db(index_name) if uploaded_file is not None: if st.sidebar.button(添加文件到向量库): with open(D:\\temp\\uploaded_file.name, wb) as f: f.write(uploaded_file.getbuffer()) f.close() add_word(D:\\temp\\uploaded_file.name, index_name) st.sidebar.success(添加成功) if st.button(执行查询): if question: template 你是一位问答助手你的任务是根据###中间的文本信息回答问题请准确回答问题不要健谈如果提供的文本信息无法回答问题请直接回复“提供的文本无法回答问题” 我相信你能做得很好。###\n{context}###\n 问题{question} PROMPT PromptTemplate( templatetemplate, input_variables[context,question] ) db get(index_name) retriever db.as_retriever(search_kwargs{k: 2}) # 召回和问题相关的文本 context retriever.get_relevant_documents(question) print(context) chain ( {context: retriever, question: RunnablePassthrough()} | PROMPT | chat | StrOutputParser() ) # 流式返回 stream chain.stream(question) st.write_stream(stream) else: st.write(查询出错请检查输入或数据库连接。) if __name__ __main__: main()运行后界面如下可以看到回答的结果是正确的下面再看一下我问文档中不存在的《诛仙》的问题系统就无法正确回答了所以我增加一下《诛仙》的知识进去可以看到当我上传了《诛仙》的相关文档后系统就可以查询到《诛仙》的相关信息了。大模型未来如何发展普通人如何抓住AI大模型的风口※领取方式在文末为什么要学习大模型——时代浪潮已至随着AI技术飞速发展大模型的应用已从理论走向大规模落地渗透到社会经济的方方面面。技术能力上其强大的数据处理与模式识别能力正在重塑自然语言处理、计算机视觉等领域。行业应用上开源人工智能大模型已走出实验室广泛落地于医疗、金融、制造等众多行业。尤其在金融、企业服务、制造和法律领域应用占比已超过30%正在创造实实在在的价值。未来大模型行业竞争格局以及市场规模分析预测:同时AI大模型技术的爆发直接催生了产业链上一批高薪新职业相关岗位需求井喷AI浪潮已至对技术人而言学习大模型不再是选择而是避免被淘汰的必然。这关乎你的未来刻不容缓那么我们如何学习AI大模型呢在一线互联网企业工作十余年里我指导过不少同行后辈经常会收到一些问题我是小白学习大模型该从哪里入手呢我自学没有方向怎么办这个地方我不会啊。如果你也有类似的经历一定要继续看下去这些问题也不是三言两语啊就能讲明白的。所以呢这份精心整理的AI大模型学习资料我整理好了免费分享只希望它能用在正道上帮助真正想提升自己的朋友。让我们一起用技术做点酷事ps:微信扫描即可获取加上后我将逐一发送资料与志同道合者共勉真诚无偿分享适学人群我们的课程体系专为以下三类人群精心设计AI领域起航的应届毕业生提供系统化的学习路径与丰富的实战项目助你从零开始牢牢掌握大模型核心技术为职业生涯奠定坚实基础。跨界转型的零基础人群聚焦于AI应用场景通过低代码工具让你轻松实现“AI行业”的融合创新无需深奥的编程基础也能拥抱AI时代。寻求突破瓶颈的传统开发者如Java/前端等将带你深入Transformer架构与LangChain框架助你成功转型为备受市场青睐的AI全栈工程师实现职业价值的跃升。※大模型全套学习资料展示通过与MoPaaS魔泊云的强强联合我们的课程实现了质的飞跃。我们持续优化课程架构并新增了多项贴合产业需求的前沿技术实践确保你能获得更系统、更实战、更落地的大模型工程化能力从容应对真实业务挑战。资料内容涵盖了从入门到进阶的各类视频教程和实战项目无论你是小白还是有些技术基础的技术人员这份资料都绝对能帮助你提升薪资待遇转行大模型岗位。01 大模型系统化学习路线作为学习AI大模型技术的新手方向至关重要。 正确的学习路线可以为你节省时间少走弯路方向不对努力白费。希望这份最科学最系统的学习成长路线图和学习规划带你从零基础入门到精通微信扫描下方二维码即可~本教程比较珍贵仅限大家自行学习不要传播更严禁商用02 大模型学习书籍文档新手必备的权威大模型学习PDF书单来了全是一系列由领域内的顶尖专家撰写的大模型技术的书籍和学习文档电子版从基础理论到实战应用硬核到不行※真免费真有用错过这次拍大腿03 AI大模型最新行业报告2025最新行业报告针对不同行业的现状、趋势、问题、机会等进行系统地调研和评估以了解哪些行业更适合引入大模型的技术和应用以及在哪些方面可以发挥大模型的优势。04 大模型项目实战配套源码学以致用在项目实战中检验和巩固你所学到的知识同时为你找工作就业和职业发展打下坚实的基础。05 大模型大厂面试真题面试不仅是技术的较量更需要充分的准备。在你已经掌握了大模型技术之后就需要开始准备面试我精心整理了一份大模型面试题库涵盖当前面试中可能遇到的各种技术问题让你在面试中游刃有余。06 全套AI大模型应用开发视频教程包含提示工程、RAG、LangChain、Agent、模型微调与部署、DeepSeek等技术点由于篇幅有限只展示部分资料并且还在持续更新中…ps:微信扫描即可获取加上后我将逐一发送资料与志同道合者共勉真诚无偿分享最后祝大家学习顺利抓住机遇共创美好未来
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

国内做的比较好的数据网站制作营销网页

在复盘智能体项目时,我经常听到一种略显无奈的评价:“这个 Agent 偶尔会犯一些很低级的错误,但又说不清为什么。”更现实一点的说法是:错误不是必现,难以复现单次看是偶发,累计看却反复出现Prompt 越改越复…

张小明 2026/1/7 3:56:37 网站建设

以公司做网站wordpress版本回退

30分钟搞定RuoYi-Cloud微服务部署:从零开始的实战避坑指南 【免费下载链接】RuoYi-Cloud 🎉 基于Spring Boot、Spring Cloud & Alibaba的分布式微服务架构权限管理系统,同时提供了 Vue3 的版本 项目地址: https://gitcode.com/yangzong…

张小明 2026/1/7 3:56:05 网站建设

医疗设计网站建设在线设计平台 竞品调研

第一章:Open-AutoGLM理财收益分析系统概述Open-AutoGLM理财收益分析系统是一套基于自动化大语言模型(AutoGLM)与开源数据分析框架构建的智能理财评估平台。该系统旨在为个人投资者和金融机构提供透明、可复现的理财产品收益预测与风险评估服务…

张小明 2026/1/8 12:46:46 网站建设

夏天做哪些网站致富php安防企业网站源码

在当今数字化时代,拥有多个Gmail账号已成为日常工作和生活的刚需。无论是用于测试开发、隐私保护还是临时注册,这款基于Python的Gmail自动生成器都能为你提供完善的解决方案。通过执行真实用户操作,它能够自动化完成整个Gmail注册流程&#x…

张小明 2026/1/7 3:54:59 网站建设

苏州网站制作工作室制造业小程序网站开发

客户端会缓存css或js文件&#xff0c;改变版本号&#xff0c;客户端浏览器就会重新下载新的js或css文件&#xff0c;在js或css后加?v 版本号的用法如下代码如下:<script type”text/javascript” src”jb51.js?version1.2.6″></script><link rel’stylesheet…

张小明 2026/1/7 3:54:27 网站建设

腾讯云主机做网站wordpress网站发布文章

PaddlePaddle深度学习平台在推荐系统中的应用探索 在电商首页刷到“刚好想买”的商品&#xff0c;在短视频平台连续看到合口味的内容——这些看似偶然的精准推荐背后&#xff0c;是一套复杂而高效的智能系统在实时运转。随着用户行为数据的爆炸式增长&#xff0c;传统协同过滤等…

张小明 2026/1/7 3:53:23 网站建设