手把手带你徒手打造一个RAG系统!大模型入门到精通,收藏这篇就足够了!

MPU6050 vs BMX055 vs ICM20602:如何为你的项目选择最佳陀螺仪(附实测数据对比) 本文深度对比了MPU6050、BMX055和ICM20602三款主流六轴IMU传感器的核心性能。通过实测数据,分析了它们在精度、噪声、温漂、接口速度及资源占用上的差异,并提供了从项目需求出发的选型指南,帮助开发者根据预算、精度要求和处理器性能选择最合适的陀螺仪与加速度计组合。 阅读详情

在AI的世界里,我们惊叹于大语言模型(LLM)的博学与聪慧,但你是否也曾遇到过它们的“窘境”?

  • • “一本正经地胡说八道”:当你问及某个专业或冷门领域时,它可能会自信满满地“创造”出一些事实,也就是我们常说的“幻觉”。
  • • “选择性失忆”:对于昨天刚发生的新闻,或者你公司的内部知识文档,它一无所知,仿佛活在信息“真空”里。

如何解决这些问题?答案就是为AI大脑装上一个强大的“记忆外挂”——RAG(检索增强生成)。

今天,废话不多说,我们直接进入实战!我将带你一步步构建一个属于你自己的、简易而完整的RAG框架,让你亲手揭开AI“最强大脑”背后的秘密。

项目源码抢先看: 本文所有实战代码均已开源,欢迎访问我的 GitHub 查看、运行和 Star!

🔗GitHub: https://github.com/yilane/rag-framework

蓝图:构建一个RAG系统的六脉神剑

在动手之前,我们先回顾一下RAG系统的核心流程,整个过程可以清晰地分为六个关键步骤:

    1. **文档加载 (Loading):**为AI“喂食”知识,这是所有智慧的源头。
    1. **文本分块 (Splitting):**庖丁解牛,将大块知识“切片”,方便AI消化。
    1. **信息嵌入 (Embedding):**将文字翻译成AI能懂的“密码”——向量。
    1. **向量存储 (Storage):**为这些“密码”建造一座高效的“记忆宫殿”。
    1. **信息检索 (Retrieval):**当问题传来,精准地在宫殿中找到相关线索。
    1. **答案生成 (Generation):**让AI拿着“参考资料”开口说话,给出最终答案。

接下来,让我们卷起袖子,逐一攻破这六大关卡。

第一步:文档加载

万丈高楼平地起,RAG系统的地基,就是高质量的知识源。如果源头的数据都无法被正确解析,那么后续无论模型多强大、算法多精妙,都只是在“垃圾”上做文章,结果自然是“垃圾进,垃圾出”。

在我构建的这个RAG系统中,我设计了两种“喂食”路径:

  • • 本地投喂:直接从你的电脑目录中批量加载文件。
  • • 网络爬取:给定一个网址,系统会自动抓取网页内容。

一个关键的设计决策是:无论源文档是PDF、Word还是HTML,我选择将它们统一解析成Markdown格式。

为什么是Markdown?因为它不仅仅是纯文本,它保留了文档的结构化信息(如标题、列表、粗体等)。这就像给AI的食物不仅有营养,还分好了主食、配菜和汤,后续进行“文本分块”时,我们就能利用这些结构信息,切分得更合理、更符合语义。

实战小贴士:在真实项目中,你会遇到各种“千奇百怪”的文档格式。通用的解析方案是起点,但针对特定格式(如复杂的财务报表PDF)进行深度定制的解析,是提升最终效果的必经之路。

第二步:文本分块

文档成功加载后,我们得到了一篇篇完整的长文。但大模型就像一个“短期记忆”的学生,一次性塞给他太多东西,他会记不住、也无法聚焦。因此,我们需要对知识进行“切片”处理。

为什么必须分块?

    1. 聚焦主题:让每个文本块尽可能只讨论一个核心主题,避免信息交叉干扰。
    1. 突破限制:每个大模型都有其上下文窗口(Context Window)的长度限制,分块可以确保输入内容不“超载”。

分块不是简单地“一刀切”,不同的切法,效果迥异。以下是几种主流的“刀法”:

  • • 按页分块 (Page-based): 简单粗暴,适合保留原始版面(如PDF页码),但容易割裂上下文。
  • • 固定大小 (Fixed-size): 像用模具切饼干,保证每块大小均匀。缺点是可能在句子或段落中间无情地“腰斩”,破坏语义完整性。
  • • 按结构分块 (Recursive/Semantic): 这是更高级的“刀法”。它会尊重文本的自然结构,优先按段落、再按句子进行切分。这种方式能最大程度地保留语义的连贯性,是我在这个项目中主要采用的策略。
  • • 按语义分块 (Semantic-based): 终极“刀法”,借助AI的理解能力来识别文本的语义边界。它能更好地处理主题切换、逻辑关联,确保每一块都是一个“意义单元”。

选择合适的分块策略,是决定检索质量的第一个关键胜负手。

第三步:信息嵌入

文本块准备就绪,现在我们要把它们翻译成AI能理解的语言。这种语言不是英文也不是中文,而是一种数学语言——向量(Vectors)。

这个翻译过程,我们称之为信息嵌入(Embedding)。

你可以把嵌入模型想象成一个超级翻译官。它阅读每一个文本块,然后将其内涵的“意义”映射到高维空间中的一个具体坐标点。这个坐标点,就是向量。在这个空间里,意思相近的文本块,它们的坐标点也彼此靠近。

在这个RAG系统中,我集成了灵活的嵌入模型选项,给予你充分的选择权:

  • • 商业API模型:如OpenAI的text-embedding-3-large,效果出众,按量付费。
  • • 开源本地模型:如Hugging Face社区的sentence-transformers,或是国内顶尖的BGE、通义千问(Qwen)系列模型。这些模型可以免费部署在本地,保障数据私密性,但需要一定的硬件资源。

通过切换不同的嵌入模型,你可以直观地感受到它们在语义捕捉能力上的细微差别,这是一个非常有价值的对比实验。

第四步:向量存储

现在,我们手握成千上万个代表知识的向量。下一步,就是为它们建造一座能够被快速检索的“记忆宫殿”——向量数据库(Vector Database)。

向量数据库的核心能力,就是在亿万个向量中,光速找出与目标向量最“相似”(即空间距离最近)的那些。

选择哪座“宫殿”,取决于你的需求和场景:

轻量级选手 (适合入门与原型):

  • • Faiss:Meta出品,快如闪电,是一个纯粹的相似性搜索库,非常适合在本地快速验证想法。
  • • Chroma:为开发者体验而生,主打“开箱即用”,让你能以最少代码启动一个向量存储服务。

生产级巨头 (适合大规模部署):

  • • Milvus:云原生、分布式设计,为海量数据和高并发场景而生,是构建企业级RAG的可靠选择。

我的建议是:在开发和调试阶段,使用Faiss或Chroma,它们能让你把精力聚焦在流程本身。当你的系统准备好走向生产环境时,再无缝切换到像Milvus这样更健壮、可扩展的数据库。

第五步:信息检索

万事俱备,只欠东风。当用户提出问题时,激动人心的“寻宝”时刻到来了。

我们的系统会做两件事:

    1. 将用户的问题也通过同一个嵌入模型,“翻译”成一个查询向量(Query Vector)。
    1. 拿着这个查询向量,冲进我们的“记忆宫殿”(向量数据库),寻找与之最相似的文本块向量。

这个过程就像在巨大的图书馆里,根据一本书的“风格”和“主题”,迅速找到书架上与它最匹配的其他几本书。

为了让“寻宝”过程更可控,我设置了几个关键的调节旋钮:

  • • **返回数量 (Top-K):**指定返回最相关的几个结果。我通常默认设置为3,这意味着为AI提供3条最关键的参考线索。
  • • **相似度阈值 (Similarity Threshold):**设定一个“相关度”门槛,比如50%。只有相似度得分高于这个值的文本块才会被召回,有效过滤掉不相干的噪音。
  • • **最小字数 (Minimum Characters):**避免返回一些过于零碎或无意义的短文本片段。

这些参数的微调,对最终生成答案的质量有着直接且显著的影响。

第六步:生成答案

我们手上已经有了与用户问题最相关的几段“参考资料”。最后一步,就是让大模型(LLM)这位“总指挥”登场。

系统会自动构建一个精巧的提示词(Prompt),它的结构通常是这样的:

# 指令 
请根据下面提供的上下文信息,简洁、准确地回答用户的问题。
如果上下文中没有足够信息,请直接说“根据现有资料,我无法回答该问题”。
# 上下文信息 
[这里会插入从向量数据库中检索到的文本块1] 
--- 
[这里会插入从向量数据库中检索到的文本块2] 
--- 
[这里会插入从向量数据库中检索到的文本块3]
# 用户问题 
[这里会插入用户的原始问题]

这个过程,完美模拟了我们人类的**“开卷考试”**。LLM不再是凭空“记忆”来回答,而是基于我们提供的、高度相关的上下文信息来进行总结、推理和组织语言。

这不仅极大地降低了“胡说八道”的概率,更让它有能力回答那些它“从未学过”的、特定于我们知识库的问题。

同样,生成答案的LLM也可以自由配置,无论是调用外部API还是使用本地部署的模型,你都可以接入进来,比较不同模型在“阅读理解”和“语言组织”能力上的表现。

总结

恭喜你!跟着这六个步骤,我们一起走完了一个完整RAG系统的构建之旅。从最开始的数据“喂食”,到最后的“开卷考试”,我们亲手为AI打造了一个强大、可靠的外部记忆系统。

通过亲手构建,你得到的不仅是一个能跑通的系统,更是一种驾驭AI的思维方式。你现在拥有了让AI学习任何知识、并基于这些知识进行可靠回答的能力。

这,正是通往更强大、更可信、更具实用价值的AI应用的关键一步。

那么,你的第一个RAG知识库,准备装载什么知识呢? 欢迎在评论区分享你的想法!

大模型算是目前当之无愧最火的一个方向了,算是新时代的风口!有小伙伴觉得,作为新领域、新方向人才需求必然相当大,与之相应的人才缺乏、人才竞争自然也会更少,那转行去做大模型是不是一个更好的选择呢?是不是更好就业呢?是不是就暂时能抵抗35岁中年危机呢?

答案当然是这样,大模型必然是新风口!

那如何学习大模型 ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。但是具体到个人,只能说是:

最先掌握AI的人,将会比较晚掌握AI的人有竞争优势。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

但现在很多想入行大模型的人苦于现在网上的大模型老课程老教材,学也不是不学也不是,基于此我用做产品的心态来打磨这份大模型教程,深挖痛点并持续修改了近100余次后,终于把整个AI大模型的学习路线完善出来!

在这里插入图片描述

在这个版本当中:

您只需要听我讲,跟着我做即可,为了让学习的道路变得更简单,这份大模型路线+学习教程已经给大家整理并打包分享出来, 😝有需要的小伙伴,可以 扫描下方二维码领取🆓↓↓↓

👉优快云大礼包🎁:全网最全《LLM大模型学习资源包》免费分享(安全咨料,放心领取)👈

​

一、大模型经典书籍(免费分享)

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

在这里插入图片描述

二、640套大模型报告(免费分享)

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

三、大模型系列视频教程(免费分享)

在这里插入图片描述

四、2025最新大模型学习路线(免费分享)

我们把学习路线分成L1到L4四个阶段,一步步带你从入门到进阶,从理论到实战。

img

L1阶段:启航篇丨极速破界AI新时代

L1阶段:了解大模型的基础知识,以及大模型在各个行业的应用和分析,学习理解大模型的核心原理、关键技术以及大模型应用场景。

img

L2阶段:攻坚篇丨RAG开发实战工坊

L2阶段:AI大模型RAG应用开发工程,主要学习RAG检索增强生成:包括Naive RAG、Advanced-RAG以及RAG性能评估,还有GraphRAG在内的多个RAG热门项目的分析。

img

L3阶段:跃迁篇丨Agent智能体架构设计

L3阶段:大模型Agent应用架构进阶实现,主要学习LangChain、 LIamaIndex框架,也会学习到AutoGPT、 MetaGPT等多Agent系统,打造Agent智能体。

img

L4阶段:精进篇丨模型微调与私有化部署

L4阶段:大模型的微调和私有化部署,更加深入的探讨Transformer架构,学习大模型的微调技术,利用DeepSpeed、Lamam Factory等工具快速进行模型微调,并通过Ollama、vLLM等推理部署框架,实现模型的快速部署。

img

L5阶段:专题集丨特训篇 【录播课】

img

全套的AI大模型学习资源已经整理打包,有需要的小伙伴可以微信扫描下方二维码,免费领取

👉优快云大礼包🎁:全网最全《LLM大模型学习资源包》免费分享(安全资料,放心领取)👈

​

计算机视觉(相机标定;内参;外参;畸变系数) 目录 一、预备知识 1、坐标系变换过程(相机成像过程) (1)相机坐标系转换为图像坐标系(透视投影变换遵循的是针孔成像原理) (2)齐次坐标的引入原因:(为什么引入齐次坐标???) 2、内参与外参矩阵的构成 3、畸变参数 二、相机标定 1、张正友标定法(光学标定)及其求解思路 2、求解内参矩阵与外参矩阵的思路: (1)计算内参与外参矩阵的乘积M (2)求解内参矩阵A (3)求解外参矩阵(R1 R2 T) 三、参数优化 1、L-M算法 2、相机标定步骤 四、相关代码及其实验结. 阅读详情

相关推荐

实战对比:Lmcache+vllm将KVcache卸载到CPU和SSD的性能差异(附完整配置)

本文通过实战对比Lmcache与vLLM在KV Cache卸载到CPU和SSD的性能差异,详细解析了配置优化、基准测试及高级调优策略。实验显示,CPU卸载在低并发下表现优异,而SSD方案在高并发场景中更具性价比优势,为LLM推理任务提供了高效的存储解决方案。

weixin_30664051的博客 700

手把手带你徒手打造一个RAG系统,大模型入门到精通,收藏这篇就足够了!

今天,废话不多说,我们直接进入实战!我将带你一步步构建一个属于你自己的、简易而完整的RAG框架,让你亲手揭开AI“最强大脑”背后的秘密。

2401_82469710的博客 844

电商平台大数据分析指标

一、五大关键数据分析指标 1.1活跃用户量 活跃用户量是一个基本的指标,有 DAU(日活跃用户)、WAU(周活跃用户)和 MAU(月活跃用户)三个层次; 1.2转化 转化是一个非常重要的指标,电商运营需要关注主路径、次路径甚至精细到每一个品类 / SKU 的转化率; 1.3留存 留存要从不同的时间周期上研究,包括次日留存率、3 日、7 日、30 日留存; 1.4复购 复购则要从 3 个角度去看,复购用户量、复购率和复购金额比; 1.5GMV GMV 是最重要的指标,我们的运营最终是围绕这

默主归沙的博客 4818

手把手带你徒手打造一个RAG系统!

在AI的世界里,我们惊叹于大语言模型(LLM)的博学与聪慧,但你是否也曾遇到过它们的“窘境”?

瓦罗兰特顶级C位的博客 873

Linux8.3上装Oracle 19c RAC,ssh互信总报INS-06006?别急着下补丁,试试这个临时替换scp的骚操作

本文针对在Linux 8.3上安装Oracle 19c RAC时遇到的SSH互信报错INS-06006问题,提供了一个无需官方补丁的临时解决方案。通过创建SCP包装脚本并添加-T参数,有效解决了OpenSSH 8.x版本与Oracle安装程序的兼容性问题,帮助用户顺利完成安装流程。

weixin_30764883的博客 403

【行为决策模块项目实战】解耦控制--多控制器管理与切换的方法(附C++代码)

[请添加图片描述](https://img-blog.csdnimg.cn/c11300d9e4fe421e9070f474a468d1db.jpeg)本文先对多控制器管理与切换的方法做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章提示:以下是本篇文章正文内容VERTICAL_VEL, //垂直速度PID控制器VERTICAL_POS, //垂直位置PID控制器HORIZONTAL, //水平速度PID控制器YAW, //航向角yaw位置逻辑控制器。

qq_35635374的博客 1211

基于RAG的代码库智能问答引擎:从原理到实践

检索增强生成(RAG)是一种将信息检索与大型语言模型生成能力相结合的技术范式,其核心原理是通过向量化技术将非结构化文本转换为语义向量,并利用向量数据库实现高效相似性搜索。该技术解决了传统大模型面临的上下文长度限制、信息过载与幻觉问题,在保证回答准确性的同时显著降低了计算成本与延迟。在工程实践中,RAG广泛应用于智能问答、知识库构建和文档检索等场景,通过语义分块、向量索引和上下文增强等关键步骤,实现了对海量文本数据的精准知识提取。本文聚焦于代码库智能问答这一具体应用,详细解析了如何利用开源技术栈构建专属的代码

weixin_33722405的博客 703

04-协议基础03:USB 2.0信号与电气特性

USB 2.0使用两根差分信号线D+/D-进行数据传输,支持低速(1.5Mbps)、全速(12Mbps)和高速(480Mbps)三种速率。USB总线为主从模式,所有事务由Host发起。端电阻值作用HostRpd(D+)15KΩ±5%下拉,默认低电平HostRpd(D-)15KΩ±5%下拉,默认低电平全速设备Rpu(D+)1.5KΩ±5%上拉到3.3V,标识全速低速设备Rpu(D-)1.5KΩ±5%上拉到3.3V,标识低速USB 2.0硬件要点。

内核笔记 104

放弃 Neo4j!Vector Graph RAG 源码解析:纯向量检索如何拿下多跳推理 SOTA?

通往高阶人工智能系统能力的道路,并不总是依赖于不断堆砌最前沿、最复杂的重型组件(如强制引入图数据库集群)。对现有的基础架构(如经典的向量数据库和外键机制)进行第一性原理的深度压榨,往往能爆发出意想不到的能量。对正在实验室里苦战的同学们而言,它不仅是一个值得仔仔细细clone下来逐行阅读的开源源码库,更是一堂教科书级别的“系统架构如何做减法”的实战课。保持好奇,拒绝盲从,用最简单的代码解决最复杂的问题,才是极客的最高境界。

596

树莓派 5 AI 套件(Hailo)示例

该用户自定义类作为输入传递给回调函数,该函数在管道输出上运行。它用于主程序与回调函数之间的通信。它对 hailo_rpi_common::app_callback_class 进行了扩展,并可根据应用程序的具体情况定制附加变量和方法。

机器人控制与仿真应用 4115

【100%通过率】2023华为od机试C卷【电脑病毒感染】C语言 实现

一个局域网内有很多台电脑,分别标注为 0 ~ N-1 的数字。相连接的电脑距离不一样,所以感染时间不一样,感染时间用t 表示。其中网络内一台电脑被病毒感染,求其感染网络内所有的电脑最少需要多长时间。如果最后有电脑不会感染,则返回-1.

MISAYAONE的博客 1042

AI大模型开发:高薪赛道与技术栈全解析

深度学习与分布式计算作为现代AI技术的核心,正在推动大模型开发成为高薪技术岗位。通过PyTorch、TensorFlow等框架实现模型训练,结合CUDA和TPU进行硬件加速,开发者能够构建高效的AI解决方案。大模型技术在智能客服、药物研发等领域展现出巨大商业价值,企业愿意为具备算法优化和工程落地能力的复合型人才支付高薪。本文详细解析了大模型技术栈的四个关键层级,包括基础架构、算法研发、应用开发和工程部署,为程序员转型提供实战路径。掌握HuggingFace、DeepSpeed等工具链,将显著提升开发效率。

weixin_30824599的博客 406

国科大学习资料--数据挖掘(刘莹)--第三章习题及参考答案

国科大学习资料–数据挖掘(刘莹)–第三章习题及参考答案 国科大学习资料–数据挖掘(刘莹)–第三章习题及参考答案 国科大学习资料–数据挖掘(刘莹)–第三章习题及参考答案 第 3 章分类与回归 3.1简述决策树分类的主要步骤。 答:决策树生成的过程如下: (1)对数据源进行数据预处理, 得到训练集和测试集; (2)对训练集进行训练; (3)对初始决策树进行树剪枝; (4)由所得到的决策树提取分类规则; (5)使用测试数据集进行预测,评估决策树模型; 3.2给定决策树,选项有:(1)将决策树转换成规则,然后对结果

无名何许人的博客 3092

【保姆级教程】零代码AI模型训练指南:无需编程,轻松打造智能AI模型!

在已知的数据中学习规律从而建立模型,并且借助更多的数据自动修正、优化模型,最终利用模型解决问题的AI研究方法叫做“机器学习”。机器学习实际上分为两个阶段:在已知数据中学习规律,叫做“模型训练”,即“学习”;将新的数据输入到模型中得出结果,叫做“模型推理”,即“应用”,如图1所示。这个过程和人、动物的“学习”是一致的。

qkh1234567的博客 1643

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

AI工程基建:从RLlib到天授,揭秘高效研发的“铲子哲学”

在AI领域,好点子从来不稀缺,真正稀缺的是将想法快速、高效落地的能力。OpenAI研究员翁家翌的经历完美诠释了这一点:从本科时仅用两周时间从零打造强化学习框架“天授”,到在OpenAI内部主导重构大模型后训练的强化学习基础设施,他始终在做一件事——造“铲子”。这篇文章不是要教你如何调参炼丹,而是要深入剖析这种“基建哲学”为何是AI竞赛中的隐秘武器,以及我们作为开发者或团队负责人,如何将这种思维应用到自己的项目中,无论是构建一个金融大模型问答机器人,还是优化内部的模型训练流程。 “Idea is Cheap,

weixin_28680865的博客 351

深度学习工具包 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")

2026届AI校招大模型算法岗薪资与能力解析

深度学习与大模型技术正在重塑AI人才市场格局。从技术原理看,Transformer架构、分布式训练等核心技术推动了AI模型规模的指数级增长,这种技术突破直接催生了企业对大模型研发人才的旺盛需求。在工程实践层面,掌握PyTorch框架、模型微调技术(如LoRA)以及推理优化能力成为从业者的核心竞争力。当前大模型算法岗呈现显著薪资溢价,头部企业为具备分布式训练和参数高效微调经验的人才提供行业顶尖待遇。这类岗位主要应用于智能体开发、垂直领域专业助手等前沿场景,技术价值与商业潜力并存。

weixin_29056865的博客 304

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

企业知识管理新利器:Langchain-Chatchat本地问答系统落地案例

一家制造企业通过部署基于Langchain-Chatchat的本地问答系统,实现了员工制度咨询的秒级响应,数据不出内网。系统结合RAG架构与国产中文大模型,提升知识利用率,降低合规风险,推动组织知识从静态文档向动态中枢演进。

weixin_36212459的博客 958

AI人才争夺战:技术栈需求与职业发展路径

人工智能领域的技术发展推动了对复合型AI人才的强烈需求。从技术原理来看,现代AI工程师需要掌握从Python高级特性到分布式系统开发的完整技术栈,同时要深入理解Transformer架构等核心算法。在工程实践中,掌握PyTorch框架底层原理和工业级项目全流程开发能力尤为重要。随着大语言模型和计算机视觉技术的突破,AI人才在搜索推荐、自动驾驶等应用场景中的价值愈发凸显。当前行业热词如'分布式训练'和'模型部署'反映了企业对实战能力的高度重视,而掌握'多模态大模型'等前沿技术将成为职业发展的关键竞争力。

weixin_29038537的博客 288

你的企业还在“人找数据”?AI时代该“数据追⼈”了

管理者在审批时,因为看不到完整的背景数据,往往只能凭借经验。它能读懂你的业务语言,理解你的工作上下。在很多企业,业务人员的日常往往是这样度过的:为了核对—份合同的执行进度,需要先在。的转变,不仅是办公效率的量变,更是企业治理能力的质变。面对错综复杂的系统和海量的数据,难道我们只能任由它们。数字化转型的下半场,拼的是对信息的深度利用。:别让琐碎的信息搜索,消磨掉你最宝贵的决策精力。字符,而是像长了腿—样,能够根据你的业务动作,精。信息,再查收邮件看附件,甚至要联系财务询问账期,

237

从工具到协作者:Harness Engineering与AI Agent的工程化实践指南

在人工智能技术快速发展的背景下,大语言模型(LLM)的应用已从简单的对话交互,演进为能够执行复杂任务的智能体(Agent)。其核心原理在于通过自然语言理解与生成能力,结合外部工具调用,实现目标导向的自动化。这一技术价值在于将开发者从重复性编码中解放,转向更高阶的系统设计与规则制定。在实际应用场景中,如何确保AI行为的可靠性与可控性成为关键挑战,这正是Harness Engineering(驾驭式工程)方法论所要解决的问题。它通过系统化的提示词工程、上下文管理、输出结构化验证与流程编排,为AI能力套上“缰绳”

weixin_34289454的博客 403

【vibe coding】可复用的开发任务 Prompt 模板

下面是可复用的开发任务 Prompt 模板,替换。

qq_27408783的博客 218

Agent 开发面试题--Day009【Prompt 注入攻击是什么】

提示注入攻击(Prompt Injection)是一种针对大型语言模型(LLM)的恶意攻击手段。攻击者通过精心构造输入,诱导 AI 模型忽略其原本被设定的指令或安全策略,转而执行攻击者意图的操作。

Flychuer的专栏 138

大模型PromptCache对齐实战:从缓存穿透到成本打一折

长文本大模型调用成本高昂、响应迟缓,根源常在于Prompt结构不当导致前缀缓存失效。文中揭示:动态时间戳等变量置于System Prompt首部会破坏前缀树哈希匹配,致缓存命中率归零。通过重构为“静态内容置顶、动态变量沉底”的结构对齐范式,实现97.9%缓存命中率,首字延迟从2秒降至195毫秒,成本降低90%,性能提升十倍。掌握底层缓存机理,以极小改动撬动巨大效益,是大模型工程化的关键护城河。

艺杯羹的博客 494

第 10 篇|AI 特有风险:prompt injection、工具投毒与「AI 说的≠用户同意的」

本文聚焦银行MCP Connector身份认证与授权设计,基于MCP 2026规范与OWASP LLM 2025,提出“确定性防线优先”原则。针对提示注入、工具投毒、数据外泄等风险,强调通过工具不可用、权限最小化、设备签核等确定性控制阻断攻击路径,杜绝依赖模型判断。重点防范“AI说的即用户同意”的反模式,确保敏感操作必须由用户主动确认,实现安全可控的AI银行业务闭环。

PhilZhou的专栏 509
上一篇: 工业级RAG系统与Agent开发实践:从理论到应用,大模型入门到精通,收藏这篇就足够了!
下一篇: 西南财经大学499页大模型教程!一书吃透大语言大模型
Llama-Turbo
博客等级 码龄4年 9901粉丝 2022原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值