产品视角的大模型RAG应用-知识库问答(一):LangChain初体验

LangChain生态实战:从RAG到Agent,构建金融大模型问答机器人 大语言模型(LLM)应用开发正从实验探索迈向工程化实践,其核心在于如何将通用模型能力与特定领域知识及任务流程有效结合。检索增强生成(RAG)技术通过外部知识库检索来增强模型回答的准确性和可追溯性,成为解决模型幻觉问题的关键技术。在此基础上,智能体(Agent)框架通过引入规划、工具调用和状态管理,实现了更复杂、可控的多步骤任务自动化。这些技术共同构成了企业级AI应用的基础设施,其价值在于提升业务自动化水平、降低人工成本并确保输出可靠性。在金融、客服、内容创作等场景中,结合RAG与Agent的解决方案正被广泛 阅读详情

最近接触了大模型+本地知识库的问答应用实践。

从0到1开始做的过程中,参考了很多网上的教程和分享文章,其中绝大部分都是技术向的分享。感谢各位热爱总结和分享的开发大佬,让我在没有太多技术背景的情况下快速补齐了项目落地实践所需的基础知识。

同时,也想从产品视角出发,分享我所理解的大模型RAG应用,以及我作为产品这一角色,在实践过程中的经验(坑)。

因为篇幅问题,这一系列的分享,预计会分成3篇:

1、LangChain框架初体验:项目背景,初步体验和评测结果

2、调优思路分享:基于公开资料和实践的Langchain调优思路分享

3、如何测评:如何基于业务场景构建测试集和测评标准,并开展测评,以及过程中踩过的坑

欢迎感兴趣的朋友关注公众号如果想探讨更多实践经验,也可在文末添加我的微信,一起交流

今天来分享第一部分—LangChain框架初体验。

项目背景介绍

此次实践做的是政府政策问答。

对政策面向对象而言,从最开始的判断自身可申报的政策、找到政策原文、到解读政策、准备材料进行申报等各个节点,都存在一定的困难。因此,市面上也有许多提供政策咨询和申报服务的中介机构。

由于政策之间关系复杂、政策条文拆解门槛高、政策语义理解难度大、用户面向政策咨询的问法多等多种原因,传统的智能问答产品很难实现政府政策的智能问答。

而大模型能学习大量文本数据、能捕捉和理解问题的上下文,具有超强的泛化和生成自然语言的能力。同时区别于传统的智能问答系统,大模型通过预训练和微调的方式,减少了对人工标注数据的需求,这也大大增加了落地应用的可行性。大模型的出现,似乎为政策问答带来了新的曙光。

因此,我们选择LangChain-Chatchat框架,构建政策文档的本地知识库,实现大模型基于本地知识库内容生成回答,为用户提供政策问答和解读服务,节省查找和理解政策的时间。

LangChain框架介绍

为了方便理解后面的内容,这里先对LangChain-Chatchat框架和实现原理做一个简单的介绍。

由于本文非技术向梳理,详细介绍就不展开,感兴趣可参考:https://www.langchain.com.cn/

1、名词解释

RAG:即Retrieval-Augmented Generation,搜索增强生成,简单来说就是大模型+知识库,从广泛的知识库数据中检索相关片段,然后由大模型根据这些内容生成答案。这种方式,一方面可以减大模型的幻觉,提高其在特定任务上的表现,更加贴合实际应用的需求,另一方面可以明显提高搜索文档信息和生成回答的效率和体验,因此称为搜索增强生成。

LangChain:是一个可以实现RAG的开源框架,它提供一些基础的组件和工具,如知识库管理、文本处理、模型加载等,允许开发人员将大语言模型(LLM)与外部数据源相结合,快速搭建自己的应用。

LangChain-Chatchat:原 Langchain-ChatGLM,是在LangChain基础上构建的一个具体应用,使用了 LangChain 的组件和工具,并结合了其他一些技术和库(如 FastAPI、Streamlit 等),来构建基于LLM的本地知识库问答系统,其目标是建立一套对中文场景与开源模型支持友好、可离线运行的知识库问答解决方案。

2、实现原理

(1) 上传文档:用户上传包含知识的文档,支持txt、pdf、docx等格式,LangChain Chatchat会将文档转换为Markdown格式

(2) 文本切割:为了便于分析和处理,将长文本切割为小块(chunk)

(3) 文本向量化:将切割的chunk通过embedding技术,转换为算法可以处理的向量,存入向量数据库

(4) 问句向量化:用户提问后,同样将用户的问句向量化

(5) 语义检索匹配:将用户的问句与向量数据库中的chunk匹配,匹配出与问句向量最相似的top k个

(6) 提交prompt至LLM:将匹配出的文本和问句,一起添加到配置好的prompt模板中,提交给LLM

(7) 生成回答:LLM生成回答,返回给用户

评测过程

在开发基于LangChain Chatchat框架完成部署后,终于进入了激动人心的评测环节。

大模型+知识库的组合,是否真的可以解决政策智能问答的顽疾,达到一个比较可用的效果呢?

是骡子是马拉出来遛遛才知道。**首先确定测评标准,****基于业务目标和政策咨询的场景,**对回答的内容生成质量进行测评,构建了一个测试集,并确定了评分标准,具体会在后面的文章中说明,这里先不做过多展开。主要包括以下方面:

  • 是否可以理解问题

  • 是否可以匹配正确的政策原文

  • 基于政策原文的回答是否准确

  • 基于政策原文的回答是否全面

  • 回答里是否生成了政策原文以外的内容

  • 回答是否可靠,不同轮次的回答是否差异大

  • 是否支持追问

测评结论

一顿操作下来,测评结果不能说大失所望,但确实是不够理想:

  1. 基本可以理解问题,不存在答非所问的情况

  2. 正确匹配原文的能力较弱,存在匹配错误原文文档或原文片段的情况

  3. 是否能匹配正确的政策原文,受Top k 参数值的影响,且较难预估:

  • 若问题对应的原文片段较多,可能由于k值过小而无法得出全面的回答,而调大k值,则可能匹配上与问题无关的的片段

  • 若问题对应的原文片段较少,可能由于k值过大,而导致回答的内容与问题本身无关;也可能调大k值时,才可以得到正确的回答

  1. 对于需要总结全文或者跨文档检索的问题,由于Top k的上限,很难将全部相关的原文片段检索出来,得到全面的回答

  2. 即使匹配了正确的原文片段,回答也可能存在不准确、不全面,甚至生成原文里不存在内容的情况

  3. 生成的答案,偶尔存在重复、不合逻辑的问题

  4. 同一问题,不同轮次的回答结果差异较大,不稳定

  5. 一方面对追问的理解能力差,另一方面全新的问题,可能受上文的影响生成错误答案

虽然结果不够理想,但了解LangChain的实现原理后,我们可以知道,这其中存在诸多影响效果的因素,而找出关键影响因素,通过调优寻找最佳的实践组合,是有希望将效果提升到可用水平的。

因此,下一篇将继续分享基于公开资料和实践的Langchain调优思路。

程序员为什么要学大模型?

大模型时代,火爆出圈的LLM大模型让程序员们开始重新评估自己的本领。 “AI会取代那些行业?”“谁的饭碗又将不保了?”等问题热议不断。

事实上,抢你饭碗的不是AI,而是会利用AI的人。

继科大讯飞、阿里、华为等巨头公司发布AI产品后,很多中小企业也陆续进场!超高年薪,挖掘AI大模型人才! 如今大厂老板们,也更倾向于会AI的人,普通程序员,还有应对的机会吗?

与其焦虑……

不如成为「掌握AI工具的技术人」,毕竟AI时代,谁先尝试,谁就能占得先机!

但是LLM相关的内容很多,现在网上的老课程老教材关于LLM又太少。所以现在小白入门就只能靠自学,学习成本和门槛很高。

针对所有自学遇到困难的同学们,我帮大家系统梳理大模型学习脉络,将这份 LLM大模型资料 分享出来:包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程等, 😝有需要的小伙伴,可以 扫描下方二维码领取🆓↓↓↓

👉优快云大礼包🎁:全网最全《LLM大模型入门+进阶学习资源包》免费分享(安全链接,放心点击)👈

​

一、LLM大模型经典书籍

AI大模型已经成为了当今科技领域的一大热点,那以下这些大模型书籍就是非常不错的学习资源。

在这里插入图片描述

二、640套LLM大模型报告合集

这套包含640份报告的合集,涵盖了大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。(几乎涵盖所有行业)

在这里插入图片描述

三、LLM大模型系列视频教程

在这里插入图片描述

四、LLM大模型开源教程(LLaLA/Meta/chatglm/chatgpt)

在这里插入图片描述

LLM大模型学习路线 ↓

阶段1:AI大模型时代的基础理解

  • 目标:了解AI大模型的基本概念、发展历程和核心原理。

  • 内容:

    • L1.1 人工智能简述与大模型起源
    • L1.2 大模型与通用人工智能
    • L1.3 GPT模型的发展历程
    • L1.4 模型工程
    • L1.4.1 知识大模型
    • L1.4.2 生产大模型
    • L1.4.3 模型工程方法论
    • L1.4.4 模型工程实践
    • L1.5 GPT应用案例

阶段2:AI大模型API应用开发工程

  • 目标:掌握AI大模型API的使用和开发,以及相关的编程技能。

  • 内容:

    • L2.1 API接口
    • L2.1.1 OpenAI API接口
    • L2.1.2 Python接口接入
    • L2.1.3 BOT工具类框架
    • L2.1.4 代码示例
    • L2.2 Prompt框架
    • L2.3 流水线工程
    • L2.4 总结与展望

阶段3:AI大模型应用架构实践

  • 目标:深入理解AI大模型的应用架构,并能够进行私有化部署。

  • 内容:

    • L3.1 Agent模型框架
    • L3.2 MetaGPT
    • L3.3 ChatGLM
    • L3.4 LLAMA
    • L3.5 其他大模型介绍

阶段4:AI大模型私有化部署

  • 目标:掌握多种AI大模型的私有化部署,包括多模态和特定领域模型。

  • 内容:

    • L4.1 模型私有化部署概述
    • L4.2 模型私有化部署的关键技术
    • L4.3 模型私有化部署的实施步骤
    • L4.4 模型私有化部署的应用场景

这份 LLM大模型资料 包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程等, 😝有需要的小伙伴,可以 扫描下方二维码领取🆓↓↓↓

👉优快云大礼包🎁:全网最全《LLM大模型入门+进阶学习资源包》免费分享(安全链接,放心点击)👈

​

基于AI大模型的教育应用开发实战:从RAG问答到个性化学习 人工智能技术正深刻变革教育领域,其核心在于通过算法模型实现对知识的深度理解与智能生成。在技术原理层面,基于Transformer架构的大语言模型通过海量数据训练,具备了强大的语义理解和内容生成能力。这一技术价值在于能够将通用AI能力与垂直领域需求相结合,实现规模化个性化服务。在教育应用场景中,AI技术可赋能智能问答、作业批改、学习路径规划等多个环节,显著提升教学效率与学习体验。本文聚焦于如何利用检索增强生成(RAG)和提示词工程(Prompt Engineering)技术,构建基于自有知识库的教育AI应用, 阅读详情

相关推荐

MD01和MD01N比较

摘要:MD01(传统MRP)与MD01N(MRP Live)是SAP系统不同版本的物料需求计划事务码。核心差异包括:MD01N取消MRP列表、简化计划规则、合并MPS/MRP操作、采用BAdI技术等,体现S/4HANA平台简化、标准化和智能化的演进方向。MD01N通过优化参数配置、增强筛选功能、利用HANA实时计算能力,实现了更高效的物料计划流程,代表了新一代计划引擎的技术革新。

SAP_LES_COM的博客 892

LangChain+LLM做知识库时,参数如何调优(4)

知识库或者客服,其要求就是知识库要细分,应用要垂直。根据实际场景来优化。例如客服场景:要求特定的问题回答要准确,而且问题是和公司业务强相关,非常的细分,那最好的就是FAQ库。整个架构模型核心点就是围绕持续沉淀FAQ来做的,大模型是在FAQ和转人工之间加了一层,不管是大模型提炼答案、用户反馈、人工维护都是让FAQ更丰富。因为我的本地TXT文件知识库是按照Q,A的形式组织的。生产的话,数据库选择PG比较合适,不管是关系型还是向量的数据都可以存储。通过开源项目里的issue去看,碰到的问题也是大同小异。

moonfire94的博客 447

保姆级教程:用Fiddler+夜神模拟器搞定抖音App抓包(附SSL Pinning绕过实战)

本文提供了一套完整的移动端抓包解决方案,详细介绍了如何使用Fiddler和夜神模拟器进行抖音App抓包,并重点讲解了SSL Pinning绕过技术。通过Xposed框架和JustTrustMe模块的组合,实现高效抓包,适用于产品分析、竞品研究和安全测试等场景。

weixin_30855099的博客 423

LangChain+ChatGLM做知识库时,参数如何调优(1)

如果用开源的,相关度参数可以先设置0,后面根据效果再逐步从500往下调。调试中发现,需要约束模型在加工匹配后的结果时不要添加不存在的内容。还有一个chunk_size是约束匹配后的文本块长度的,这个在GLM2扩展后,可以适度设置大些,目前设置500。这里有个小坑,导入的docx用office的报错,用wps的就可以。:导入的数据如果是FAQ的问答是最理想的,这样还可以约束切割符。第一个经常碰到的典型问题是,大模型在脑补它自己的内容。2.除了大模型的问题,更关键的是导入的数据质量及切割。

moonfire94的博客 1623

STDP实战:用PyTorch从零搭建脉冲神经网络(附完整代码)

本文提供了基于PyTorch从零搭建脉冲神经网络的实战教程,重点讲解了STDP学习规则的原理与工程实现。通过构建LIF神经元模型和向量化STDP层,并结合泊松编码,详细演示了如何构建一个能够进行无监督特征学习的混合网络架构,为探索神经形态计算和低功耗实时学习方案提供了完整代码与实践指南。

weixin_29056145的博客 265

摄像头模组选型避坑指南:如何根据Sensor和Lens参数匹配最佳组合

本文深入解析摄像头模组选型中Sensor与Lens的核心参数匹配要点。重点阐述了主光线角(CRA)匹配对边缘画质的关键影响,并提供了传感器尺寸、像素尺寸、焦距、光圈等参数的协同选型策略与实战避坑指南,帮助工程师在手机、安防、车载等不同应用场景下实现性能与成本的最佳平衡。

ee345的博客 618

提高知识问答系统准确性和效率的LangChain框架

在未来,我们相信,随着人工智能技术的不断发展和应用,LangChain框架将会发挥越来越重要的作用,为人们提供更加智能化的信息服务。与传统的问答系统不同,LangChain框架使用了一种基于语义搜索的方式,可以更加准确地匹配用户的问题和知识库中的答案。首先,它可以提供领域特定的知识支持,可以更加准确地匹配用户的问题和知识库中的答案,从而提高系统的准确性和效率。最后,它的外挂知识库可以随时更新和扩展,可以根据领域的变化和需求,不断更新和完善知识库中的内容。

Y666_788的博客 495

echarts如何实现3D饼图(环形图)?

自定义修改3D饼图的宽高和legend

i-cat的博客 1万+

langchain 为什么无法按照预期的效果进行回复

针对langchain训练数据可能没有涵盖到所有可能的情况,因此它可能无法对某些特定内容生成准确的回答。提出面向RAG场景生成式阅读理解数据集构建以及基于全参数量微调、profix tuning、prompt tuning、lora、qlora的微调模式。面向RAG(Retrieval-Augmented Generation)场景的生成式阅读理解数据集构建,以及基于多种微调模式的解决方案,旨在提高模型在特定垂直领域内的生成式阅读理解能力。:如果AI没有理解您的问题,尝试用不同的方式重新表述。

weixin_41046245的博客 755

13、数据可视化与分组操作:Danfo.js 实战指南

本文深入介绍了如何使用 Danfo.js 进行数据可视化与分组操作。内容涵盖多种图表的创建与配置,如折线图、散点图、箱线图、小提琴图、直方图和柱状图,并结合 Plotly.js 实现丰富的交互式可视化效果。同时,详细讲解了数据聚合的‘分割-应用-组合’模式,包括分组数据、遍历分组、apply 方法及 agg 聚合操作,帮助开发者高效处理和分析结构化数据。适用于 Dnotebook、HTML 及主流前端框架的应用场景。

o1p2q3r的博客 98

《网络存储技术》形考实训4:为小微企业搭建基于Windows Server的文件共享与权限管理服务

本文介绍了在域环境下部署DFS分布式文件系统的完整流程。项目目标是将3台存储服务器(NS1、NS2、NS3)上的多个共享文件夹通过DFS命名空间进行统一整合,使员工可通过单一访问路径访问所有资源。实施步骤包括:1)搭建AD域环境并创建用户/组;2)将存储服务器加入域并配置共享权限;3)在域控制器安装DFS命名空间角色;4)创建基于域的命名空间(\xc.cn\共享);5)将各服务器共享文件夹映射到命名空间;6)进行客户端访问验证。通过DFS实现了物理存储位置不变情况下的逻辑统一访问,提高了文件管理的便捷性和可

深耕计算机专业知识与技术。 946

基于LangChain实现本地RAG知识库助手(上)

LangChain 框架是一个开源工具,其目标是为各种大型语言模型应用提供通用接口,从而简化应用程序的开发流程,特别适用于在一个LLM应用中需提供多个语言模型/词嵌入模型的业务场景。基于LangChain实现RAG应用开发的流程如下:图2:基于LangChain开发RAG应用的一般流程在上图中,每个椭圆形代表了 LangChain 的一个模块,例如数据收集模块或预处理模块。每个矩形代表了一个数据状态,例如原始数据或预处理后的数据。箭头表示数据流的方向,从一个模块流向另一个模块。

优快云_430422的博客 1175

深度强化学习 | 详解基于价值的强化学习DQN算法(附Pytorch实现)

深度Q网络DQN的核心原理是通过经验回放池和目标网络技术拟合高维状态空间,是Q-Learning算法的深度学习版本,本文分析DQN的基本算法,并给出训练实例和实际案例

FRIGIDWINTER的博客 4986

产品视角的大模型RAG应用-知识库问答(二):LangChain调优

产品视角的大模型RAG应用-知识库问答(二):LangChain调优

pythonhy的博客 879

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Web开发者实战LangChain RAG:构建企业级知识库问答系统

在Web开发中,我们熟悉“数据 → 处理 → 展示”的经典流程:从前端表单收集用户输入,后端查询数据库,再将结果渲染成页面。而如今,当企业希望用自然语言查询内部文档(如产品手册、技术规范、HR政策),这套逻辑依然成立——只是“数据库”换成了向量数据库,“SQL查询”换成了语义搜索。 这就是 RAG(Retrieval-Augmented Generation) 的核心思想: 先从海量文档中检索出与问题最相关的片段,再将这些片段作为上下文喂给大模型,生成精准回答。对于Web开发者而言,RAG 并非全新

沛哥儿的专栏 1931

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

从零搭建企业级RAG知识库问答系统_从零开始构建企业级rag系统

等任务。

python123456_的博客 1442

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

LangChain-Chatchat初体验,大模型入门到精通,收藏这篇就足够了!

之前玩大模型,都只是关注应用层,粗浅地体验不同公司的产品,没有真正部署过。这次想从产品的视角出发,分享个人踩坑RAG的经验。

DEVELOPERAA的博客 543

从零构建金融大模型问答机器人:RAG与LangChain实战指南

在实际 AI 大模型应用开发中,新手开发者常常面临一个困境:面对海量的技术概念、复杂的工具链和快速迭代的模型,不知从何入手。网络上充斥着各种“保姆级教程”,但往往要么过于理论化,要么只聚焦于某个特定工具(如 PyCharm、Git 的安装),缺乏一个从宏观认知到微观实践、从环境准备到项目落地的完整技术主线。本文将从一个资深 AI 应用开发工程师的视角,为你梳理一条清晰、可执行的学习与实践路径。我们将围绕一个具体的项目案例——“金融大模型问答机器人”,来拆解 AI 大模型应用开发的核心技术栈、关键步骤和常见陷

weixin_29031161的博客 272

大模型好书推荐 | 大模型RAG实战:RAG原理、应用与系统构建(附PDF)

《大模型RAG实战:RAG原理、应用与系统构建》是一本由NLP和AI领域的资深技术专家联合撰写的实战指南。随着大模型技术的爆发,尤其是ChatGPT等产品的兴起,知识库问答产品迅速走红,引发了RAG(检索增强生成)系统的广泛关注与讨论。

AAI666666的博客 1240

【值得收藏】企业级RAG知识库构建全解析:从零开始构建智能问答系统

静态摘要缓存:对常见问题和热词,预先生成摘要答案,命中后直接响应,无需模型调用召回预热池:对于高频提问构建 Query → Top-K chunk 映射缓存,避免每次重复召回在培训/客服场景中可节省 30~60% 的 token 调用。

EnjoyEDU的博客 1888

基于RAG与LangChain的金融大模型问答机器人工程实践

在实际 AI 模型应用开发中,开发者经常面临一个核心挑战:如何将前沿大模型的能力,稳定、高效且安全地集成到具体的业务系统中。无论是 OpenAI 的 GPT 系列,还是 Anthropic 的 Claude,每一次模型迭代都意味着新的能力、新的接口和新的集成考量。近期,关于 GPT-5.6 系列模型(Sol, Terra, Luna)的讨论热度很高,这背后反映的是开发者对模型选型、成本控制、安全合规以及工程落地的迫切需求。本文将从一名 AI 应用开发工程师的视角,深入探讨如何基于类似 GPT-5.6 这样的

weixin_34245749的博客 392

大模型入门实战:从零构建AI应用与知识库问答系统

大语言模型(LLM)作为当前人工智能领域的核心技术,其本质是基于海量数据训练的深度学习模型,通过预测下一个词的机制实现文本生成与理解。其技术原理源于Transformer架构中的自注意力机制,能够有效捕捉长距离语义依赖。在工程实践中,大模型的价值在于将前沿AI能力转化为可落地的应用解决方案,例如智能问答、内容生成和自动化工具调用。常见的应用场景包括企业知识库问答、智能客服和代码辅助生成等。本文聚焦于大模型入门实战,通过具体案例演示如何利用LangChain框架和检索增强生成(RAG)技术,结合提示工程与微调

weixin_34387468的博客 324

RAG技术实战:从零构建本地知识库问答系统

检索增强生成(RAG)是一种将大语言模型与外部知识库相结合的技术范式,其核心原理是通过检索相关文档片段来增强模型输入的上下文信息,从而有效缓解大模型的“幻觉”问题并实现私有知识的利用。这项技术的核心价值在于以较低成本、较快迭代速度,让通用大模型能够可靠、可控地服务于特定业务场景,如企业知识库、智能客服和文档分析等。在工程实践中,构建一个RAG系统通常涉及文档加载与分割、文本向量化、向量检索、提示词工程和流程编排等关键步骤。本文将以一个完整的实战项目为例,详细演示如何运用LangChain、Ollama、Ch

weixin_34161029的博客 501

大模型 RAG 技术深度解析:原理架构、通俗解读与实战代码(大模型应用开发)

摘要:检索增强生成(RAG)技术通过结合外部知识检索与大模型生成能力,有效解决了原生大模型的三大痛点:知识幻觉、实时性差和领域知识薄弱。本文系统性地介绍了RAG的技术原理与标准架构,包括离线知识库构建(文档加载、文本分块、向量化存储)和在线问答生成(语义检索、提示词拼接、答案生成)两大核心流程。同时提供了基于LangChain+FAISS的工业级Python实现代码,涵盖从文档处理到最终问答的完整流程。RAG以其零微调、低成本、易更新等优势,成为企业级大模型应用的首选方案,特别适用于需要专业知识、私有数据或

m0_63537602的博客 1025

从 0 到 1 理解 LangChain:AI 工程视角下的大模型应用开发框架全解析

从 0 到 1 理解 LangChain:AI 工程视角下的大模型应用开发框架全解析

大模型研究中心 1563
上一篇: 一文讲清什么是 AI Agent(智能体)?它正在引领 AI 工作流的革新
下一篇: 深入剖析开源大模型+Langchain框架智能问答系统性能下降原因
Llama-Turbo
博客等级 码龄4年 9901粉丝 2022原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值