- 博客(156)
- 收藏
- 关注
原创 座舱出行Agent实战(一): 从Workflow到Agent架构的技术演进与思考
本文分享了座舱Agent从v1.0到v4.0的技术演进历程。v1.0采用Workflow方案快速实现基础功能但缺乏灵活性;v2.0引入Agent+MCP架构,通过工具治理、交互适配等改进提升泛化能力,但仍面临结构化输出冲突、复杂任务处理不足等问题;后续将介绍v3.0"主管-执行者"架构和v4.0双Agent分离方案如何解决这些挑战。文章重点分析了垂类Agent特有的约束条件,并强调Workflow作为开发起点的价值,为Agent开发提供实践参考。
2025-10-13 09:39:52
1421
原创 通过代码,一步步解析ChatGLM的Lora微调实现细节
都说Lora是在原model上增加旁路,并且在训练时冻结原model、只训练旁路的一种高效参数微调方案。那么具体Lora是怎么将两个矩阵A、B引入模型、在哪些层增加Lora旁路、训练得到Lora参数后又是怎么合并参数的呢?让我们从代码入手,一步步探个究竟我直接用的是刘聪大佬的ChatGLM微调代码。
2024-03-12 23:24:54
4964
3
原创 LangChain+LLM大模型问答能力搭建与思考
利用LLMs超大语言模型能力,以及LangChain向量检索库,开发一个支持知识库问答(垂直领域问答)的系统,以及实战所思所想
2023-07-20 14:57:16
3562
原创 对各大预训练语言模型的简单总结和评述(BERT/RoBERTa/ALBERT/ELECTRA/ERNIE/structBERT/SpanBERT...)
前言本文系对BERT及其各种优化的简单总结。如RoBERTa、ALBERT、ERNIE、SBERT、MacBERT等。随积累,即时更新。总结BERT初始预训练任务简介:MLM,即完形填空。我们对一个sequence/句子中15%的token进行随机地mask,然后对这些被mask的token进行预测;NSP。判断两句话是否有上下文的关系。两句话可能来自不同的文章。在组成预训练数据时,有10%的可能随机将最大长度512的样本限制为小于512长度(BERT是128),一方面降低预训练时长,另一
2021-02-19 22:06:08
4259
原创 DPR-Dense Passage Retrieval for Open-Domain Question Answering 论文阅读
开放域的问答依赖于准确地文档召回。传统做法,通常依赖于TF-IDF或BM25这类方法。在本篇论文中,作者提出一种仅使用深度语义向量的方法进行召回,而这个文档的语义向量,即来自于简单的对偶encoder框架(说的这么玄乎,其实就是俩一样的BERT-encoder,分别处理query和doc),本文提出的模型框架,面对top20文档召回的准确率问题,相较于强大的Lucene-BM25,有至多9%~19%的效果提升,这帮助我们得到了一个全新的、端到端的sota QA系统。论文链接:https://arxiv.
2021-01-31 12:25:53
2081
1
原创 对抗训练的理解,以及FGM、PGD和FreeLB的详细介绍
对抗训练基本思想——Min-Max公式如图所示。中括号里的含义为,我们要找到一组在样本空间内、使Loss最大的的对抗样本(该对抗样本由原样本x和经过某种手段得到的扰动项r_adv共同组合得到)。这样一组样本组成的对抗样本集,它们所体现出的数据分布,就是该中括号中所体现的。外层min()函数指的则是,我们面对这种数据分布的样本集,要通过对模型参数的更新,使模型在该对抗样本集上的期望loss最小我们知道如何在已有数据上进行模型更新,但如何找到最佳扰动r_adv呢?很简单——梯度上升。所以说,对抗
2020-12-08 18:07:13
27131
16
原创 置顶-常用资源直接跳转
Pytorch:pytorch保存、载入模型,与state_dict()有关的操作NLP杂七杂八正则表达式语句速查 正则表达式小括号的使用
2020-12-02 10:43:35
371
原创 RMSProp/Momentum/Adam/AdamW,多种优化器详解及伪代码实现
多种梯度更新方法——都是对Gradient Descent的优化传统GDx = x - lr * grad_xAdaGrad——不同方向的梯度应该是可以不一样的为了解决不同方向上梯度涨落速度不一致的情况,所以相当于给每个方向不同的learning_rate。具体每个方向的lr大小要怎么拟定?——之前该方向上grad大的,就给小lr——即梯度变化幅度缓慢,那么就拉开步子大胆走。如上图的公式,历史grad总量和lr大小成反比,即该方向的总grad越小,则lr就越大。但该方法解决不了,在该方向上
2020-07-09 16:12:12
6200
原创 浅谈sigmoid函数和softmax函数
问题提出最近在找文本分类问题的trick,偶尔看到夕小瑶大佬的一个回答:在文本分类任务中,有哪些论文中很少提及却对性能有重要影响的tricks? - 夕小瑶的回答 - 知乎https://www.zhihu.com/question/265357659/answer/578944550里面有句话引起了我的注意:关于二分类二分类问题一定要用sigmoid作为输出层的激活函数?当然不是,尝试一下包含俩类别的softmax吧。可能多一条分支就多一点信息叭,虽然后者在数学形式上更丑一点,但是实践中
2020-06-02 17:53:42
5791
1
原创 ELECTRA论文阅读笔记
ELECTRA模型是对BERT的一次改进,该改进主要体现在对样本的使用效率上。具体实现方式,是引入了比较像GAN的一种架构——首先,使用一个较小的generator(生成器)将随机mask掉的token再预测出来,然后再将重新修复后的句子交给discriminator(判别器)进行判断,判断input中每个单词是否有被generator替换过。相比之下,BERT是先对一部分token进行随机ma...
2020-04-13 10:06:18
2579
原创 Python开发中为什么推荐用 `-m`参数运行脚本?
摘要:在Python多目录项目中,直接运行脚本(如python tasks/daily_job.py)常导致模块导入失败。根本原因是Python仅将脚本所在目录加入sys.path,无法访问上级目录模块。推荐使用python -m tasks.daily_job运行,该方式会将当前目录加入sys.path,支持相对导入,并保留__main__执行逻辑。对于结构化项目,采用-m参数是解决导入问题的标准方案。
2026-01-07 10:11:08
348
原创 反向传播的人生哲学:深度复盘的力量
反向传播算法揭示了深度复盘的艺术:从结果出发,通过链式法则精准归因,找出每个行为对最终结果的影响。这不同于模糊的感性反思,而是像侦探般层层拆解问题根源。与梯度下降构成闭环:反向传播负责看清来路,梯度下降负责找准去路。关键启示在于:复盘不是为了追责,而是为了优化未来。真正的智慧在于:1)直面失败;2)系统归因;3)深度追溯;4)保持建设性心态。当行动哲学与归因艺术结合,便成就了真正的知行合一。
2025-12-24 22:11:38
1093
原创 DeepSeekOCR,打着OCR旗号的下一代LLM Encoder
本文分析了DeepSeekOCR架构,指出其“极限压缩”特性超越了OCR范畴。文章推测DeepSeek旨在验证视觉Token压缩文本的可行性,意在打造解决超长上下文的终极编码器,并将引发大模型输入编码与记忆转移范式的变革。
2025-11-24 08:35:36
871
原创 《心光集》开篇:梯度下降与人生攀登
本文借梯度下降解读人生攀登。它启示我们:要以小步快跑的方式迭代进步,追寻局部最优。同时,要拥抱随机(打破舒适区),凭借动量(过往积累)冲出困境,并懂得知止而后安,适时与自我和解。
2025-11-04 14:35:26
603
原创 座舱出行Agent实战(三):专能化架构如何实现效率与稳定性的双重飞跃
为解决v3.0中Agent职责过重的问题,v4.0引入专能化双Agent架构,将工具调用与结构化输出分离。新架构通过明确分工,在效率、稳定性与可维护性上均实现显著提升,标志着系统完成从Workflow到多Agent协同的关键演进。
2025-10-28 22:04:05
1147
原创 座舱出行Agent实战(二):“主管-执行“架构如何破解复杂行程规划难
本文探讨了旅行规划系统从v2.0到v3.0的架构升级。针对v2.0在处理多日复杂行程时存在的任务处理能力不足、稳定性差和响应时间长等问题,v3.0创新性地采用了"主管-执行者"分工架构。主管Agent负责制定宏观框架,执行者Agent并行处理每日细节,通过分工协作显著提升了系统性能。测试显示v3.0在复杂任务处理、稳定性和响应速度等方面均有明显改善,但仍存在结构化输出与自主性矛盾等局限,为v4.0的专能化演进奠定了基础。
2025-10-20 10:49:53
871
原创 【个人理解】MCP server和client二者各自的角色以及发挥的作用
在MCP架构中,Server专注于提供一系列可被调用的工具和服务,而Client则侧重于理解和传达用户的需求,同时协调与Server之间的交互
2025-04-28 14:21:18
2403
原创 为 docker 拉取镜像配置代理
的操作:(1) Docker 守护进程(用于拉取镜像等操作),(2) Docker 容器内部(容器内应用的网络流量)。为 Docker 配置代理,有。输出应包含你设置的代理变量。
2025-04-14 23:55:01
925
1
原创 VS Code远程Docker开发配置指南——完美速通
为了通过VS Code快速连接到远程服务器的Docker容器(假设名为`my_fancy_docker`),并实现本地修改代码、使用容器内Python环境的需求,请按照以下步骤操作
2025-03-12 10:31:01
2402
原创 ImportError: libcudnn.so.8: cannot open shared object file: No such file or directory
先用find命令,看看本机到底有没有这个文件;如果有,则先判断下为何这个文件没法被索引到简单粗暴的索引到的方法,就是将它加到里去。
2024-06-24 16:48:39
10075
1
原创 yield与yield from
yield直接产生值;yield from用于委托其他生成器或可迭代对象,以便产出其所有值。事实上,yield from不仅仅是迭代器的快捷方式,它还可以更好地处理异常和创建双向通信的生成器(协程)。
2024-05-10 14:50:47
624
原创 代码书写在if __name__ == ‘__main__‘前后的区别
首先,还是介绍下我为什么又想起这个“python初学者”的问题了。背景是这样的:我有个python脚本,在其中起了一个Flask服务,同时在里面还定义了处理中断信号(SIGINTfrom b import signal_handler # 导入b.py中定义的signal_handler函数。至于signal_handler里干了啥,其实就是close了一个数据库连接对象# Flask路由和其他逻辑...# 注册信号处理函数。
2024-03-14 14:33:58
578
转载 Git通过Tag标签回退版本以修复bug
本系列之所以取名”Git高级教程”,主要是教大家解决实际工作中遇到的问题,要求读者会基本的Git用法和命令,请不要使用SourceTree这样的工具,因为它让你啥都不会、啥也不懂,git本身与Linux一脉相承,都是Linustorvalds写的嘛,所以命令行才是精髓。廖雪峰的Git教程博主也是从这儿入门的,既然有这么好的教程,为什么还要写这个系列的博客呢?很简单嘛,这个教程只是入门教程,解决实际工作中遇到的问题还是不够的,所以博主专门写Git高级教程,记录如何解决实际工作中的问题。
2023-07-13 14:16:48
817
原创 docker常见命令合集,速查手册
查看本地镜像:docker images一个容器:docker run [OPTIONS] IMAGE [COMMAND]启动已停止的容器:docker start [OPTIONS] CONTAINER停止一个容器:docker stop [OPTIONS] CONTAINER进入容器内部:docker exec [OPTIONS] CONTAINER [COMMAND]删除一个容器:docker rm [OPTIONS] CONTAINER。
2023-06-06 11:37:31
727
原创 【解决】 Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporarily unavailable)
bug解决
2023-05-15 11:30:08
7044
原创 python+selenium爬虫之解决51job滑块验证失败
window.navigator.webdriver和chromedriver的特征字符串修改
2022-11-02 14:06:01
10799
40
原创 neo4j图创建和图查询语句实战——一阶二阶查询、复合查询、增删改查...
neo4j的图查询语句实例。节点创建、关系创建、属性创建、图查询、多条件复合查询等
2022-10-09 15:00:15
2030
原创 【解决】spark-sql在unix_timestamp上的深坑
spark-sql和hive-sql在unix_timestamp函数处理日期上的差异
2022-06-14 16:06:46
2692
1
原创 pyspark文档API速查
pyspark系列--pandas与pyspark对比 (强烈推荐!!) pyspark官方文档(最新版)(权威!) Pandas和PySpark中的DataFrame比较,(表格,一目了然) pyspark使用Python和pandas的UDF pyspark处理数据基本语法 单机用python写spark处理20G的数据 ...
2022-04-27 17:37:46
2108
原创 pandas使用小记
最近,发现了个pandas十分有用的技巧,尤其是在你内存不足、数据量太大、耗时过长的情况下:假设df_groupby是我们按照df某个字段进行分组后的结果,我们现在要统计其中某个字段“name”的个数df_groupby.apply(lambda x: len(x['name']))df_groupby['name'].count()如上所示,这俩计数语句都很简单,看起来没差,但在你数据量足够大的情况下,这两句可能就是爆不爆内存的天壤之别了。第一句是常规写法,占内存更大、速度更慢;因而建议第
2021-09-29 15:08:29
238
原创 为何skip-gram相比于CBOW,对低频词更敏感?
CBOW是用window大小的滑动窗口内的词来表征中心词,skip-gram是用中心词来表征window大小的滑动窗口内的所有词; 训练效率而言,CBOW远胜skip-gram,随着语料或window_size的增加越发明显,因为CBOW对每个中心词只需做一次表征(embedding)学习,但skip-gram需要(window_size - 1)次; 性能上,对于常见词/高频词,CBOW占优;对于低频词,skip-gram更敏感。 非常浅显地解释: 对于这样一..
2021-09-07 16:23:24
2004
原创 linux查看某进程的开始时间、执行时长
ps -eo lstart 启动时间ps -eo etime 运行多长时间.ps -eo pid,lstart,etime | grep 66510这行命令含义:查看pid=66510的进程,其启动时间和运行时间是什么用linux ps查询进程的开始时间ps命令常用用法(方便查看系统进程)1)ps a 显示现行终端机下的所有程序,包括其他用户的程序。2)ps -A 显示所有进程。3)ps c 列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服务的标示。4)p
2021-09-02 10:23:31
11875
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅