2025-03-08 23:30:13
items | Details |
---|---|
by | 即刻 |
date | 2025-03-04 13:47:08 |
source | 我相见恨晚的 50 个清洁好物 |
原文链接:我相见恨晚的 50 个清洁好物 电器 1. 小米 除湿机 - 即刻App
items | Details |
---|---|
by | 即刻 |
date | 2025-03-04 13:51:03 |
source | 和曾经的朋友渐行渐远怎么办? |
和曾经的朋友渐行渐远怎么办?
其实,我们人生中遇到的大多数朋友,最终的结局就是渐行渐远。有些是因为物理距离的改变:毕业了、换工作了、又去读书了,大家逐渐四散到不同城市。有些是因为人生阶段的不同:陷入热恋的、结婚的、尤其是生娃的朋友,生活和话题都逐渐不再重叠。还有一些是因为成长速度的差距:你突然觉得,以前很聊得来的朋友,渐渐没话题了。
这些都是很常见,很自然,也很正常的。
如果把人生比作一个游戏,那么这个游戏最初会有很长一段时间,大家是在一个play
ground上玩的。在这个大广场上,你会遇到很多不同的朋友,其中要好的会经常跟你在这个广场上碰面一起玩。但花无百日红,这个游戏的下一环,就是要离开这个广场,踏上自己的旅程。
有些朋友会在各自踏上旅程的时候就不得不分道扬镳,有些会跟你同路,但随着岔路的出现,朋友会陆续跟你走上不同的方向,还能留在你身边的人,必然是越来越少的。
这种时候,最好的心态是:let it be。你还是可以努力去维系你们的友谊,如果能维系成功那非常棒,如果觉得越来越勉强,或对方的态度已经发生了改变,那随TA去吧。这不代表我们不珍惜友谊,这只代表我们成熟起来了,能面对人生真相。
接下来怎么办呢?
☀️
短期内,你需要不定期结交新的朋友。
每个人都应该养成这样的习惯,因为对绝大多数人来说,身边能谈得来的朋友越来越少是必然的事
—
前面说的三个理由总会至少中一个。哪怕你们一直在一起(物理距离没变),人生阶段也同步(差不多时间结婚,差不多时间生娃),那也可能因为成长速度不一致而越来越没有话聊,或有一些生活变化导致你们暂时聊不到一块去了。
我十多年前回国的,当时一起玩的十几个朋友中,现在还经常一起玩的,只剩一两个了。我在香港的时候,也有一大波玩得很好的朋友,现在还经常一起玩的,也只剩下一两个了。但是我一路在逐渐结交新的好朋友。这是我对自己的责任,也是我的机会。
我有一个朋友,认识非常久了。他是上海人,因此跟同是上海人的几个哥们(大学同学),一直保持非常亲近的关系,每周必约出来吃几次饭玩几次游戏,几十年了仍然交往频繁。他跟我这种蒲公英型人(到处飘)完全相反,拥有最稳定的朋友圈。但他最近被公司外派去外地了,你看,还不是要开始结交新朋友🤭。
所处,结交新朋友,才是人生常态。很多人只是在play
ground上太久,没有意识到那种大家都经常能碰到的状态才是暂时的,流动和变化才是常态罢了。一旦你开始接受和习惯这种不断流动的人生,你就更容易打开自己,结交跟当下自己的人生阶段和状态更相似的新朋友。
☀️
还有一个好消息是,长期来看,很多朋友会兜回来,重新相遇。
我刚回国玩的那批朋友中,有一个后来公司外派去了新加坡,就此失去了联系。后来她其实回来了,但结婚、生子、一阵忙乱,我们也没有重建联系。现在孩子五六岁了,她新工作也更熟练了,终于有空约了,我们又重新建立了联系。
还有一个朋友,距离我们上一次见面,她经历了投资人撤资,合伙人撕破脸,自己生娃养娃,各种鸡飞狗跳,现在公司已回正轨,娃也更好带了,我们最近又见上了。
上野千鹤子也曾经表述过类似的过程,日本女性一结婚,回家做了家庭主妇,后续又开始生娃养娃,友谊的小船就会暂时收帆靠岸。但等到孩子们长大离巢,或其中有一些朋友开始离婚,她们就逐渐又回到了女性朋友们的这个小团体,友谊的小船又会扬帆出海。
所以大家面临暂时的分别,也不用太伤感。大家只是阶段性地有自己要单独探索的路走,但兜兜转转,总会在某个角落重逢,讲起这些年各自的精彩,然后再度启航。
这些我们无法预测的岔道、离别、重逢,和与新旅伴的相遇,都是旅程精彩的一部分呀。
原文链接:和曾经的朋友渐行渐远怎么办? 其实,我们人生中遇到的大多数 - 即刻App
items | Details |
---|---|
by | hutusi |
date | 2025-03-04 14:40:33 |
source | 乾隆的性格 |
探讨了乾隆皇帝的统治特点,包括他的幸运、聪明、仁慈以及节制。乾隆继承了祖父康熙和父亲雍正打下的坚实基础,在位期间中国人口和实际控制领土面积均达到了历史巅峰,创造了康雍乾盛世。但其闭关锁国政策、对文字狱的滥用及对臣民思想的严格控制也导致清朝逐渐走向衰落。乾隆个人虽极为聪明且在初期表现出勤奋与节制,但晚年却沉迷于收藏并纵容腐败,为后世留下了深刻教训。
原文链接:乾隆的性格
items | Details |
---|---|
by | 微信公众平台 |
date | 2025-03-04 14:46:57 |
source | 肖恩·贝克:边缘世界的温柔记录者 |【经纬低调分享】 |
本文介绍了导演肖恩·贝克及其电影《阿诺拉》在2025年奥斯卡颁奖典礼上获得四项大奖的情况。贝克以记录社会边缘人物的故事而闻名,其作品包括《外卖》、《佛罗里达乐园》等。文章回顾了贝克的职业生涯,特别是他如何通过低成本制作和非传统演员来讲述被主流忽视的故事,并且强调了他的电影对性工作者、无家可归者以及移民群体的人文关怀。
原文链接:肖恩·贝克:边缘世界的温柔记录者 |【经纬低调分享】
items | Details |
---|---|
by | V2EX |
date | 2025-03-04 14:48:49 |
source | 说说你们步入社会的第一课吧 - V2EX |
我是指被教做人的那种,或者是说上的第一当,见识到社会的险恶。我自己是上班两三年的时候出租房被入室盗窃后在 58 同城上想买个备用电脑,是面交的,到地方被带到一个破铁皮房里,里面什么都没有,就一个挺破的电脑,这我都没意识到上当,还看了配置,去的路上那女的还探我的口风,看我懂不懂电脑,怎么说呢,真的就鬼迷心窍了,非得相信能捡个大便宜。
另外我也好奇有没有人生来比较精明,就完全没有这个上当的经验。
原文链接:说说你们步入社会的第一课吧 - V2EX
items | Details |
---|---|
by | 即刻 |
date | 2025-03-04 19:37:12 |
source | 人艰不拆啦 - 即刻App |
原文链接:人艰不拆啦 - 即刻App
items | Details |
---|---|
by | 张龙斐 |
date | 2025-03-04 19:55:15 |
source | [最全梳理:一文搞懂 RAG 技术的 5 种范式! |
本文回顾了检索增强生成(RAG)技术的发展历程,从最初的朴素RAG到最新的AgenticRAG。文章介绍了RAG的基本概念、发展历程以及五种主要范式:朴素RAG、高级RAG、模块化RAG、GraphRAG和AgenticRAG。每种范式都有其特点和改进之处,例如高级RAG通过优化检索策略提高了检索质量,模块化RAG提供了更高的灵活性,而GraphRAG则利用知识图谱增强了信息检索的准确性。此外,文章还讨论了RAG在工程实践中的应用工具和常见问题,并总结了构建RAG系统时的最佳实践。
原文链接:最全梳理:一文搞懂 RAG 技术的 5 种范式! | BestBlogs.dev
items | Details |
---|---|
by | V2EX |
date | 2025-03-05 14:07:32 |
source | 发现一个摸鱼好去处, 情感话题比较多 - V2EX |
Dcard 论坛
哈哈哈 内容有点刺激 看嗨了
原文链接:发现一个摸鱼好去处, 情感话题比较多 - V2EX
items | Details |
---|---|
by | 刘润 |
date | 2025-03-05 14:23:01 |
source | 美元降息之后,你还需要知道的5件事 |
这篇文章解释了美联储降息对全球经济的影响。首先介绍了中央银行的作用,特别是美联储作为美国的中央银行,如何通过调整利率来实现经济平稳增长和抑制通货膨胀的目标。接着详细说明了利息的本质,即资金在时间维度上的价格,并讨论了货币供应量与利息这两个调控工具。最后,文章探讨了美元在全球经济中的特殊地位——美元霸权,以及为什么美联储的决策会引起全球关注。
原文链接:美元降息之后,你还需要知道的5件事
items | Details |
---|---|
by | 即刻 |
date | 2025-03-05 14:29:57 |
source | 「刷题、考试、升学、考证、毕业、找工作、结婚、买房」- 即刻App |
「刷题、考试、升学、考证、毕业、找工作、结婚、买房」
这是一条非常典型的东亚社会的人生发展路径。这条路径本质是在为你积累人力资本,有了人力资本之后,你可以用它换取生存资料。然后你就可以结婚生子,让这种模式自我复制下去。
如果你人生的前三分之一只专注为自己积累人力资本,你会缺少一样东西:社会资本。
社会资本简单说就是,你在群体里面,通过贡献、合作、交换资源,从而获得群体对你的信任、认可和声望。社会资本可以转化成其他资本形态。
只求人力资本不求社会资本,不会影响你进入社会,以及实现温饱。可能
35
岁之前,你都不会觉得没有它有什么影响。
但当你有了孩子想给
ta
更好的资源,或者你想往管理岗发展,或者你想跳出来自己攒局,那你就会发现:没有社会资本,寸步难行。
你努力拼搏很多年,才考取了好学校,找到了好工作,人力资本的积累不是一日之功。
社会资本也是一样,你不要指望一天就能完成积累,这里面的学问不亚于你再读一个学位。
举一个最简单的例子,很多人搞社群,搞着搞着就死掉了。想着发红包来暖群,一开始有用,但发着发着就没效果了。人家只会觉得有便宜不占白不占,并不会记着你。这就是想快速积累社会资本,但是失败的例子。
还有一个误区,有人以为积累社会资本=攀附权贵。
很多权贵离开了他的位置,他就没有影响力了。如果你是在攀附他,这时候你也会毫不犹豫地离开他,对吧?
这就不是一种健康的共生关系,而是单纯的利用。
习惯攀附别人的人,也是从小欠缺了社会资本的积累,不懂得如何在强者面前不卑,在弱者面前不亢。
怎样才算有社会资本的意识呢?
比如你会开始看重自己的声誉,你不会随便拿别人对你的信任来牟利;比如你父母对你的教育很全面,你们还有家学家风的传统;比如你在和小朋友打球,你偶尔会故意输给他,让他很开心;比如你在一个社区里,大家都很尊重你,不全是因为你的权力和金钱…这些都是有社会资本意识的显现。
有时候在职场上发展不顺利,不是因为你不懂套路,不会攀附上级。如果你的解决方案是去攀附上级,那你还要确保你的上级,和他的上级也是穿一条裤子的,这就没完没了。
套路是在教你零和博弈,而积累社会资本需要你学会跟他人互利共生,不是一个方向。
尽早意识到我们在追求人力资本的时候,也需要积累社会资本。人力资本让我们有饭吃,社会资本让我们吃的更好。
那些周末到图书馆组织读书会的年轻人,他们可能没有意识到,自己正在积累社会资本。在开源社区分享的人也是一样。
原文链接:「刷题、考试、升学、考证、毕业、找工作、结婚、买房」- 即刻App
items | Details |
---|---|
by | 即刻 |
date | 2025-03-05 14:33:43 |
source | 都不容易 - 即刻App |
原文链接:都不容易 - 即刻App
items | Details |
---|---|
by | LINUX DO |
date | 2025-03-06 10:55:09 |
source | 我要你葳蕤且长青 - 读书成诗 - LINUX DO |
我要你葳蕤且长青
每一次的旧事重提
都像在过往的漩涡里风声鹤唳
一生要淋一万场雨
才能邂逅春和景明
骤雨初歇后
携一瓣桃花
与二两浊酒共饮
敬颂这顽强且鲜活的生命
原文链接:我要你葳蕤且长青 - 读书成诗 - LINUX DO
items | Details |
---|---|
by | 張維中官方網站 |
date | 2025-03-06 11:44:50 |
source | 日本,旅人的形狀 |
日本,旅人的形狀 :從長野出發,東北下車,33種日本在地人的自遊之道
日本,旅行的模樣
大到一座阿蘇火山,小到一份盤中蕨餅
體驗旅途上的「非日常」
和家人搭上日歸巴士、在火山騎馬、吃著蕨餅去旅行
草原上的瑜珈課、來去鄉下住一晚
路途中,
形塑旅人另一種可能性
原文链接:日本,旅人的形狀
items | Details |
---|---|
by | 即刻 |
date | 2025-03-07 10:49:30 |
source | 拿自己的预期作为Base line,必然会评价两极化:「神了 - 即刻App |
李继刚
拿自己的预期作为Base line,必然会评价两极化:「神了!」 「就这?」
因为「自己」的预期,不是一个Solid的基准平台。多读一篇文章,可能都会影响它的上下波动。更何况千人千面,众口难调。
更好地观测视角,是不是可以尝试放在相对值上面?
尝试着切换到「相对时间内的相对进步」的斜率视角,看看如何?
热门评论
是不该跟着媒体高估短期的改变,但也不要低估长期的改变。我还记得木遥23年评价chatgpt,“大家都在耻笑大猩猩算数算错了,却没人思考到大猩猩会算数意味着什么”
原文链接:拿自己的预期作为Base line,必然会评价两极化
items | Details |
---|---|
by | 即刻 |
date | 2025-03-07 10:56:01 |
source | 刚才连线听了 Manus team 早晨的小型朋友沟通会 - 即刻App |
杨远骋
刚才连线听了 Manus team 早晨的小型朋友沟通会,几点 takeaway:
————
看到 Manus 掀起这样的热浪,我从昨晚到现在都非常兴奋,this is the best age.
也想起昨天「暗涌」文章末尾的这句话:等到 2035 年,回看这十年发生什么,我赌 AI 跟机器人会到处都是,新一代的创业者还会打造更多大疆和 DeepSeek。那时候,我们一定会清醒自己经历了以最好的 vintage。
Manus单任务成本2美元
原文链接:刚才连线听了 Manus team 早晨的小型朋友沟通会,几 - 即刻App
items | Details |
---|---|
by | 即刻 |
date | 2025-03-07 10:58:31 |
source | 判断人生是否成功的标准,是问高中的你自己 我最近时长在想, - 即刻App |
判断人生是否成功的标准,是问高中的你自己
我最近时长在想,怎么去判断自己现在的生活是否“成功”,是不是真的开心,是不是真的认可自己呢?抑或其实你意识不到自己一直活在迎合外面的世界之中
比如,外面的世界当然提供了各种“成功”人生的判断标准,最广受认可的当然是赚钱能力,退而求其次还有社会地位,是否赢得某些荣誉等等…
但我发现,最终能够让你达到了所谓的外界认可的成功标准后,在深夜审视自己的内心时依然不觉得人生空虚和失败的方法,就是问问年轻时的自己,尤其是高中时的自己
为啥?
在教育界有一句格言,“高中永不结束。”,意思是一个人的三观基本是在高中就形成了,你这辈子的行为方式基本就是高中时的复刻
而且高中阶段是你拥有了基本稳定的三观后,又不用面对进入社会养活自己的“现实压力”的一段很微妙的时光,于是你会发现,高中时大家都会在完全理想化的想象中畅想自己未来最好的样子,但又不至于太过脱离现实
于是,高中的你自己可能就是你这辈子最理想化的自己
那么,判断你自己的人生是否“成功”,不妨每年坐下来花几分钟和高中的自己完成一次对话,想象他就坐在你的对面,陌生而又好奇地看着你,你向他娓娓道来
你是谁?你现在在做着什么事情?曾经做过哪些你觉得最自豪的事?爱过恨过哪些人?现在有哪些痛苦和烦恼…
那么,在讲完这些后,你觉得对面那个高中的孩子未来会想成为现在的你吗?
“你还年轻,可以成为任何你想成为的样子。”——《蓝色大门》
原文链接:判断人生是否成功的标准,是问高中的你自己 我最近时长在想, - 即刻App
items | Details |
---|---|
by | 数英网 |
date | 2025-03-07 11:03:29 |
source | 女性营销say no ,38条 |
不要把女性,当作营销里的ZZ议题。
不需要在这一天,唯女独尊。
一年365天,女性不需要在这一天尤其觉醒,尤其独立,尤其变大变强变锋利。
省省要付费的仪式感。
和她们的所有一切,平摊在了每一个日日夜夜,而且还会持续下去。
突然的仪式感,突然的关注行为,怎能不算是可疑?
不要用文案中的「女性」,套路收买活在真实的女性。
不要用煽情的音乐、三流的心理学名词,习惯性地制造一种弱女叙事、被压迫者/受委屈形象。
弱,是会循环的。
不要假以共情的名义,制造必要性不足话题性有余的男女对立。
让她们更加自我垂怜于女性处境,也让性别之间的有效对话,越来越难发生。
没有异性参与的女性议题讨论,真实的价值性又有几何?
更糟的是这种情况——在一场女性对话的背后,有力量在操控,带着目的悄悄退出。
不要表演。
不要贩卖。
不要明明是满屏的商业符号,偏偏要等价代换成女性精神。
数学好的女性,有很多。
那种将数字游戏包装成文科话题的把戏,无论是女性还是文科生,都能一眼看穿并狠狠讽刺。
也停一停内衣、月经之类的过度叙事吧。
完全不必通过关注女性特征的方式,来关注女性。
理由这么含混,究竟只是因为思考上的偷懒,还是潜意识里物化/性征化女性的表现。
反过来说,男性对内衣的要求就低到,广告人都懒得营销的地步了吗?
还是,男性的生理结构就简单到,无需科普生理卫生知识?
尤其是习惯性给卫生巾话题,蒙上一层公益色彩或苦情叙事氛围的,
除了显得正确之外,别无高尚可言。
当然也别将“强女叙事”,刻意削尖成一把利刃。
方便谁,插向任何一个有利可图的话题或讨论圈。
总之,不要把女性单独作为一种方法。
不要让女性这个中性词,变得主义。
不要组织一场数字游行队伍,振臂高呼女性口号。
究竟其中有几个具体的女性,是在参与。
僵尸ID的背后,只有目的,没有性别。
不要根据性别,划分榜样力量。
不要因为一个榜样是女性,就唯一定性为女性力量。
谷爱凌、郑钦文、李娟、滕丛丛、邵艺辉……
哪一个个体,不是闪闪发光。
她们的名字,先于她们的性别之前。
在真正的杰出面前,“女性力量”这个定义就会显示出它的局限性,或一种隐形的天花板。
不要对于女性的成就,大惊小怪。
也不要因为成就者是女性,就上纲上线上价值。
不要对女性,单独画一个圈。
也不要用女性这个圈,圈住所有性别是女的,她们。
不要武器化。
不要议题化。
不要政治化。
不要怂恿站队。
不要绝对正确。
不要社交货币化,又俗又臭。
借用一句“不要走在我的后面,因为我可能不会引路;
不要走在我前面,因为我可能不会跟随;请走在我的身边,做我的朋友。”
不要之前,也不要之后,来到女性的身边,做我们的朋友。
最后:你怎么知道,这个叼着烟斗的账号下正在码字的,不是一个女性。
原文链接:女性营销say no ,38条
items | Details |
---|---|
by | 经观书评© |
date | 2025-03-07 11:10:35 |
source | 《浮生六记》中的美味与苦涩 |
文章讲述了沈复与陈芸的爱情故事,通过一碗粥串联起他们的生活点滴。从相识到相守,二人经历了许多甜蜜和坎坷。文中还提到饮食观、空调观等现代婚姻观念的重要性,并以《浮生六记》中的情节为例,展示了古代夫妻间的相处之道。
原文链接:《浮生六记》中的美味与苦涩
items | Details |
---|---|
by | 追问Nextquestion |
date | 2025-03-07 18:59:12 |
source | 孤独正在啃食你的大脑? |
这篇文章探讨了孤独对大脑的影响,特别是在极端条件下如南极科考站的研究。研究发现,长期社交孤立会减少前额叶皮层体积和神经营养因子水平,这些变化与决策能力、情绪处理有关。此外,孤独感与默认网络(default network)的活动增强相关,而这一网络涉及想象中的社交互动。文章还提到,孤独可能是进化过程中的一种适应机制,类似于饥饿感,促使人们寻求社会联系。解决孤独的方法包括认知行为疗法、鼓励信任和同步性以及药物治疗等。
原文链接:孤独正在啃食你的大脑?
2025-03-08 14:43:17
AI Agent 作为2025年的绝对的技术风口,程序员比较关心的是如何开发 AI Agent,Agent 本质上是基于大型语言模型(LLM)的应用程序,所以这个问题本质上就是程序员如何基于大语言模型开发应用。
LangChain 是一个开源框架,用于构建基于大型语言模型(LLM)的应用程序,LangChain 提供各种工具和抽象,以提高模型生成的信息的定制性、准确性和相关性。例如,开发人员可以使用 LangChain 组件来构建新的提示链或自定义现有模板。LangChain 还包括一些组件,可让 LLM 无需重新训练即可访问新的数据集。
架构设计领域有个比较流行的术语——乐高架构,当然也可以叫可插拔架构。说白了就是通过对系统基本组件的合理抽象,找到构造复杂系统的统一规律和可达路径,从而实现在降低系统实现复杂度的同时,提升系统整体的扩展性。LangChain 实际上也遵循了乐高架构的思想。当然,作为最关键的乐高组件之一,LLM 的能力自然是我们优先了解的对象,那我们就从 Qwen 的 API 开始吧!
使用 LangChain community 集成包来进行 Qwen 调用可以大大降低代码的开发成本。
代码示例参考:
# %pip install langchain langchain-core langchain-community
from langchain_community.chat_models import ChatTongyi
llm = ChatTongyi(temperature=1.0, model="qwen-turbo", max_retries=50)
response = llm.invoke("介绍一下langchain框架")
print(response)
对于文本生成模型服务来说,实际的输入和输出本质上都是字符串,因此直接裸调用LLM服务带来的问题是要在输入格式化和输出结果解析上做大量的重复的文本处理工作。LangChain当然考虑到这一点,提供了Prompt和OutputParser抽象,用户可以根据自己的需要选择具体的实现类型使用。
代码示例参考:
from langchain_core.output_parsers import StrOutputParser
from langchain_core.prompts import ChatPromptTemplate
from langchain_community.chat_models import ChatTongyi
# 创建LLM
llm = ChatTongyi(temperature=1.0, model="qwen-turbo", max_retries=50)
# 创建Prompt
prompt = ChatPromptTemplate.from_template("{question}")
# 创建输出解析器
output_parser = StrOutputParser()
# 调用LLM
message = prompt.invoke({'question': '介绍一下langchain框架'})
response = llm.invoke(message)
answer = output_parser.invoke(response)
print(answer)
模型的 IO 组件确实可以减少重复的文本处理工作,但形式上依然不够清晰,这里就引入了 LangChain 中的关键概念:链(Chain)。
LangChain 的表达式语言(LCEL)通过重载__or__
运算符的思路,构建了类似 Unix 管道运算符的设计,实现更简洁的 LLM 调用形式。
代码示例参考:
# 创建Chain
chain = prompt | llm | output_parser
# 调用Chain
answer = chain.invoke({'question': '介绍一下langchain框架'})
print(answer)
当然,为了简化 Chain 的参数调用格式,也可以借助RunnablePassthrough透传上游参数输入。
from langchain_core.runnables import RunnablePassthrough
# 创建Chain
chain = {"question": RunnablePassthrough()} | prompt | llm | output_parser
# 调用Chain
answer = chain.invoke('介绍一下langchain框架')
print(answer)
Chain 也可以分叉、合并,组合出更复杂的 DAG 计算图结构。
代码示例参考:
from operator import itemgetter
from langchain_core.output_parsers import StrOutputParser
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.runnables import RunnablePassthrough
from langchain_community.chat_models import ChatTongyi
# 创建LLM
llm = ChatTongyi(temperature=1.0, model="qwen-turbo", max_retries=50)
# 创建输出解析器
output_parser = StrOutputParser()
# 创建Prompt
topic_prompt = ChatPromptTemplate.from_template("生成一种'{input}'的名称")
good_prompt = ChatPromptTemplate.from_template("列举{topic}的好处:")
bad_prompt = ChatPromptTemplate.from_template("列举{topic}的坏处:")
summary_prompt = ChatPromptTemplate.from_messages(
[
("system", "生成最终结论"),
("ai", "{topic}"),
("human", "好处:\n{good}\n\n坏处:\n{bad}"),
]
)
# 创建组合Chain
topic_chain = topic_prompt | llm | output_parser | {"topic": RunnablePassthrough()}
goods_chain = good_prompt | llm | output_parser
bads_chain = bad_prompt | llm | output_parser
summary_chain = summary_prompt | llm | output_parser
chain = (
topic_chain
| {
"good": goods_chain,
"bad": bads_chain,
"topic": itemgetter("topic"),
}
| summary_chain
)
# 调用chain
answer = chain.invoke({"input": '常见水果'})
print(answer)
通过调用chain.get_graph().print_ascii()
可以查看 Chain 的计算图结构。
+-------------+
| PromptInput |
+-------------+
*
*
*
+--------------------+
| ChatPromptTemplate |
+--------------------+
*
*
*
+------------+
| ChatTongyi |
+------------+
*
*
*
+-----------------+
| StrOutputParser |
+-----------------+
*
*
*
+-----------------------+
| StrOutputParserOutput |
+-----------------------+
*
*
*
+-------------+
| Passthrough |
+-------------+
*
*
*
+-------------------------------+
| Parallel<good,bad,topic>Input |
+-------------------------------+
****** * *****
***** * *****
*** * ******
+--------------------+ +--------------------+ ***
| ChatPromptTemplate | | ChatPromptTemplate | *
+--------------------+ +--------------------+ *
* * *
* * *
* * *
+------------+ +------------+ *
| ChatTongyi | | ChatTongyi | *
+------------+ +------------+ *
* * *
* * *
* * *
+-----------------+ +-----------------+ +--------+
| StrOutputParser | | StrOutputParser | **| Lambda |
+-----------------+*** +-----------------+ ***** +--------+
****** * ******
***** * *****
*** * ***
+--------------------------------+
| Parallel<good,bad,topic>Output |
+--------------------------------+
*
*
*
+--------------------+
| ChatPromptTemplate |
+--------------------+
*
*
*
+------------+
| ChatTongyi |
+------------+
*
*
*
+-----------------+
| StrOutputParser |
+-----------------+
*
*
*
+-----------------------+
| StrOutputParserOutput |
+-----------------------+
基于LCEL确实能描述比较复杂的LangChain计算图结构,但依然有DAG天然的设计限制,即不能支持 “循环”。于是LangChain社区推出了一个新的项目——LangGraph,期望基于LangChain构建支持循环和跨多链的计算图结构,以描述更复杂的,甚至具备自动化属性的AI工程应用逻辑,比如智能体应用。其具体使用方式可以参考LangGraph文档。
LangGraph声称其设计理念受Pregel/Beam的启发,构建支持多步迭代的计算能力,支持“流 / 批 / 图”等能力是构建AI Agent的工程基础。
通过 Chain,LangChain 相当于以 “工作流” 的形式,将 LLM 与 IO 组件进行了有秩序的连接,从而具备构建复杂 AI 工程流程的能力。而我们都知道 LLM 提供的文本生成服务本身不提供记忆功能,需要用户自己管理对话历史。因此引入 Memory 组件,可以很好地扩展 AI 工程的能力边界。
短期记忆让你的应用程序能够在单一的线程或对话中记住之前的交互,对话历史是表示短期记忆的最常见形式。
由于LLM的限制,完整的对话历史(长对话)可能甚至无法适应LLM的上下文窗口,导致不可恢复的错误。即使如果您的LLM在技术上支持完整的上下文长度,大多数LLMs在处理长上下文时仍然表现不佳。它们会被过时或离题的内容“分散注意力”,同时响应时间变慢且成本更高。
管理短期记忆是平衡精准度与召回率与其他性能要求(延迟和成本)的练习。始终重要的是,要批判性地思考如何为您的 LLM 表示信息,并查看您的数据。我们在下面介绍了一些常见的管理消息列表的技术,希望提供足够的背景,让您能够为应用程序选择最佳的权衡方案:
在将消息列表传递给语言模型之前进行裁剪和过滤。
def manage_list(existing: list, updates: Union[list, dict]):
if isinstance(updates, list):
# Normal case, add to the history
return existing + updates
elif isinstance(updates, dict) and updates["type"] == "keep":
# You get to decide what this looks like.
# For example, you could simplify and just accept a string "DELETE"
# and clear the entire list.
return existing[updates["from"]:updates["to"]]
# etc. We define how to interpret updates
class State(TypedDict):
my_list: Annotated[list, manage_list]
def my_node(state: State):
return {
# We return an update for the field "my_list" saying to
# keep only values from index -5 to the end (deleting the rest)
"my_list": {"type": "keep", "from": -5, "to": None}
}
修剪或移除消息存在的问题是:我们可能会因消息队列的裁剪而丢失信息,针对这个问题可以通过模型来总结消息历史的方法来解决。
def summarize_conversation(state: State):
# First, we get any existing summary
summary = state.get("summary", "")
# Create our summarization prompt
if summary:
# A summary already exists
summary_message = (
f"This is a summary of the conversation to date: {summary}\n\n"
"Extend the summary by taking into account the new messages above:"
)
else:
summary_message = "Create a summary of the conversation above:"
# Add prompt to our history
messages = state["messages"] + [HumanMessage(content=summary_message)]
response = model.invoke(messages)
# Delete all but the 2 most recent messages
delete_messages = [RemoveMessage(id=m.id) for m in state["messages"][:-2]]
return {"summary": response.content, "messages": delete_messages}
LangGraph 中的长期记忆使系统能够在不同的对话或会话中保留信息。不同于短期记忆,它是线程范围的,长期记忆是保存在自定义的“命名空间”中。
LangGraph 将长期记忆存储为 store (参考文档) 中的 JSON 文档。每个记忆都在自定义 命名空间(类似于文件夹)和唯一的 键(类似于文件名)下组织。命名空间通常包括用户或组织 ID 或其他有助于整理信息的标签。这种结构支持记忆的层次化组织。通过内容过滤器支持跨命名空间搜索。请参见下面的示例。
from langgraph.store.memory import InMemoryStore
def embed(texts: list[str]) -> list[list[float]]:
# Replace with an actual embedding function or LangChain embeddings object
return [[1.0, 2.0] * len(texts)]
# InMemoryStore saves data to an in-memory dictionary. Use a DB-backed store in production use.
store = InMemoryStore(index={"embed": embed, "dims": 2})
user_id = "my-user"
application_context = "chitchat"
namespace = (user_id, application_context)
store.put(
namespace,
"a-memory",
{
"rules": [
"User likes short, direct language",
"User only speaks English & python",
],
"my-key": "my-value",
},
)
# get the "memory" by ID
item = store.get(namespace, "a-memory")
# search for "memories" within this namespace, filtering on content equivalence, sorted by vector similarity
items = store.search(
namespace, filter={"my-key": "my-value"}, query="language preferences"
)
长期记忆是一个复杂的挑战,没有一种通用的解决方案。
这里不得不提到 OpenAI 的 Chat Completion API 提供的函数调用能力(注意这里不是 Assistant 的函数调用),通过在对话请求内附加 tools 参数描述工具的定义格式(原先叫 functions calling),LLM 会根据提示词推断出需要调用哪些工具,并提供具体的调用参数信息。用户需要根据返回的工具调用信息,自行触发相关工具的回调。
为了简化代码实现,我们用 LangChain 的注解 @tool 定义了一个测试用的 “获取指定城市的当前气温” 的工具函数。然后通过bind_tools方法绑定到 LLM 对象即可。需要注意的是这里需要用JsonOutputToolsParser解析结果输出。
import random
from langchain_core.output_parsers.openai_tools import JsonOutputToolsParser
from langchain_core.runnables import RunnablePassthrough
from langchain_core.tools import tool
from langchain_openai import ChatOpenAI
# 定义Tool
@tool
def get_temperature(city: str) -> int:
"""获取指定城市的当前气温"""
return random.randint(-20, 50)
# 创建LLM
llm = ChatOpenAI(model_name='gpt-4')
# 创建JSON输出解析器
output_parser = JsonOutputToolsParser()
# 创建Chain
chain = (
RunnablePassthrough()
| llm.bind_tools(tools=[get_temperature])
| output_parser
)
# 调用Chain
print(chain.invoke('杭州今天多少度?'))
对于Qwen也有自己的tools可以用,推荐使用dashscope sdk,同时百炼平台还支持更多的tools/app调用。
langchain 框架的基本开发就已经完成了,剩下更进阶的内容就是:
Retrieval-Augmented Generation,RAG指的是在LLM回答问题之前从外部知识库中检索相关信息,RAG有效地将LLM的参数化知识与非参数化的外部知识库结合起来,使其成为实现大型语言模型的最重要方法之一:
后续我们会继续看看怎么基于langchain框架开发RAG。
AI Agent(人工智能代理)是一种能够感知环境并根据感知到的信息采取行动以实现特定目标的自主系统。它可以在不同的环境中运行,如虚拟环境、物理环境或混合环境。AI Agent 通常具有感知、决策和行动的能力,并且可以通过学习和适应来改进其性能。
Agent当下是兵家必争之地,需要加大投入进行研究和学习,后续先看看langchain框架是如何支持Agent开发的。
P.S. 后续会在 GitHub 开源该文章相关的 ipython noteook,stay tuned
2025-03-02 11:30:04
经历了3篇长文的先验知识的准备:
终于来到正主DeepSeek了。
DeepSeek能够引起轰动甚至能把OpenAI等领跑者吓出一身冷汗,除了它的模型性能、成本优势之外,我个人更多的觉得是它的毫无保留和开源贡献,这让绝大多数没有足够资金支持的学术机构、中小企业看到了自己拥有自己大模型的可能性且有非常高的性价比。同时DeepSeek的论文事无巨细,毫无保留一步一步的介绍了自己的如何训练DeepSeek的,这样的开源精神远远超越了OpenAI论文中暧昧与含糊其辞。
2024年春节期间引起全员关注的DeepSeek主要有两个模型:DeepSeek-V3以及DeepSeek-R1,这两个模型均有对应的论文、测试数据、开源模型等原始资料可以支撑。这篇文章我先来研究一下DeepSeek-V3模型:
DeepSeek-V3 基于 Transformer 框架,采用 MLA 和 DeepSeekMoE 架构。MLA 通过低秩联合压缩注意力键和值,减少推理过程中的 KV 缓存。DeepSeekMoE 使用更细粒度的专家和隔离的共享专家,以提高模型性能。此外,DeepSeek-V3 引入了无辅助损失的负载平衡策略,通过动态调整每个专家的偏差项来实现负载平衡,避免了辅助损失对模型性能的负面影响。多令牌预测(MTP)训练目标则通过预测多个未来 token 来增强模型性能。
图中展示了 DeepSeek 从传统 MoE 模型架构1的基础上,做的两部分改进2与3:
更进一步地,DeepSeek-V3 针对 MoE 中常见的负载不均衡问题,提出了一种新的负载均衡策略。在用于选择专家的 Gate 模块中引入了一个可学习的偏置项。在计算路由得分时,这个偏置项会被动态地加到每个路由专家的得分上。该方式的主要特点在于:
在标准的 Transformer 模型中,多头注意力(Multi-Head Attention, MHA)机制通过并行计算多个注意力头来捕捉输入序列中的不同特征。每个注意力头都有自己的查询(Query, Q)、键(Key, K)和值(Value, V)矩阵。对于序列中的每一个 token,都需要计算各自的 QKV,进而计算注意力。在推理过程中,当前大模型所采用的 token by token 递归生成方式,上文 token 的 KV 计算不会受到后续生成 token 的影响,因此可以缓存下来,避免重复计算,提高推理效率,这就是 KV cache 的由来。也就是说,当生成第\( t+1 \)个 token 时,可以利用之前事先算好的上文\( t \)个 token 的 KV 值。同样地,\( t+1 \)位置 token 的 KV 值计算出来后也将保存在 KV cache 中。
目前大模型对于注意力机制做的一些改进,包括MQA (Multi-Query Attention)、GQA (Group Query Attention)都是为了想方设法减少 KV Cache。DeepSeek 提出的 MLA 的出发点也是如此。减少KV Cache就可以实现在更少的设备上推理更长的Context,或者在相同的Context长度下让推理的batch size更大,从而实现更快的推理速度或者更大的吞吐总量。最终目的都是为了实现更低的推理成本。
如上图所示,MQA 与 GQA 的办法是通过共享 K,V 的注意力头,降低 KV Cache的数据维度。MLA 的办法本质上是对原本 MHA 的 KV Cache 作低秩分解,得到一个低维的隐向量(Latent Vector)。在推理阶段,MLA 只需要缓存该隐向量,由此大大降低需要缓存的数据量。
具体地,对于某一层某一个 token 的表征 \( h_{t} \), MLA 通过降维映射矩阵(down-projection matrix)\( {W}^{DKV} \)得到对 \( K \) 、\( V \) 压缩后的隐向量:
\( {c}^{KV}_{t}={W}^{DKV}{h}_{t} \)
在前向过程中,需要对此隐向量进行升维还原,即:
\( {k}^{C}_{t}={W} ^{UK}{c} ^{KV}_{t} ; {v} ^{C}_{t}={W} ^{UV}{c} ^{KV}_{t} \)
其中,\( {W}^{UK} \) 与 \( {W}^{UV} \) 为对应的升维映射矩阵(up-projection matrix),可得到\( h_{t} \)对应的 \( K \) 、\( V \)向量 \( {k}^{C}_{t} \)、\( {v}^{C}_{t} \)。可以这么理解,MLA利用低秩分解的办法,通过增加少量的模型参数变量(降维映射矩阵与升维映射矩阵),引入低维隐向量 \( {k}^{C}_{t} \)作为 KV Cache,降低 KV Cache 所带来的显存压力,以此降低推理成本。
此外,DeepSeek 还将 Query 也进行了低秩分解,能够在训练过程中降低显存占用,以此提高训练资源利用率。
上述方案还需要针对位置编码RoPE(Rotary Position Embedding)进行处理。因为如果在隐向量\( h_{t} \)中包含RoPE,经过升降维操作后,会对位置信息造成破坏。为了解决这个问题,MLA(Multi-Head Linear Attention)提出了“解耦RoPE”的方法。具体来说,对于隐向量\( {c}^{KV}_{t} \),不将位置编码包含在其中,而是专门为注意力头的 Query 和 Key 新增向量维度,以添加 RoPE 的位置信息。
当前主流的采用自回归的大模型都是单 token 预测。即根据当前上文预测下一个最可能的 token。而 MTP 的核心思想是让模型一次性预测多个 token,以提升了模型的训练效率、生成质量和推理速度。
比如现在上文是“今年春节的天气”,传统的单 token 预测模式会逐 token 预测“真的”、“好”、“冷”、“。”;而 MTP 会并行地预测这几个 token 。因此,模型不仅要学习预测下一个 token 的能力,还需要同时具备预测下\( n \)个token的能力。
这种方式在推理角度的好处显而易见,一次性生成多个 tokens,减少自回归生成的步数,达到推理加速效果。而在训练过程中,MTP 的训练目标函数同时考虑了多个 token 的估计准确性,因此被认为可以捕捉 token 间的依赖关系,从而提升模型效果。
这里将简单介绍 DeepSeek V3 的 MTP 模块采用了级联式的结构,使用k个串行模块来预测k个token,保留因果语言模型(Causal Language Model)的连接关系,有利于效果的提升,如下图所示:
图中展示了模型用\( D \)个顺序的模块,预测\( D \)个 tokens。定义预测深度为\( k \)的含义为,预测后续第\( k \)个 token。
首先,在每一个预测深度模块中,都共享了一个嵌入层(embedding layer),即模型除了最后负责最后预测部分的层之外,其他的所有层,用于得到 token 的 embedding。对于输入的第\( i \)个token,在第\( k \)个预测深度处,模型将前一个深度的表示与第\( i+k-1 \) 的 embedding 拼接,作为新的输入表示。
然后通过一个预测深度\( k \)专用的 Transformer 模块,生成当前预测深度的输出表示,将用于下一个深度的表示计算,同时用共享的输出层获得 token 预测, 与训练样本中\( i+k \)计算损失。
值得注意的是 DeepSeek V3 论文中根据使用 MTP 模块的实验结果,他们在推理过程中不使用 MTP 模块,只在训练过程中利用该模块约束模型的优化。
DeepSeek-V3 在由 2048 个 NVIDIA H800 GPU 组成的集群上进行训练,采用 16-way Pipeline Parallelism (PP)、64-way Expert Parallelism (EP) 和 ZeRO-1 Data Parallelism (DP)。为了提高训练效率,设计了 DualPipe 算法,通过计算和通信的重叠来减少管道气泡。此外,开发了高效的跨节点 All-to-All 通信内核,充分利用了 InfiniBand (IB) 和 NVLink 带宽。
大模型训练大体可以分为3种模式,预训练(Pretraining),有监督精调(Supervised Fine-Tuning, SFT),基于人类反馈的强化学习(Reinforcement Learning from Human Feedback, RLHF)。SFT让模型通过学习训练数据数据分布的方式来提高模型在特定任务或指令上的表现,与其不同的是,RLHF使用人类反馈来定义奖励函数,然后通过强化学习算法优化模型。让模型能生成符合人类喜好的回复。
DeepSeek-V3 采用了 FP8 混合精度训练框架,通过细粒度的量化策略和高精度累加来提高训练精度。FP8 训练框架通过将激活和权重量化为 FP8 格式,减少了内存消耗并加速了训练过程。此外,通过低精度存储和通信进一步降低了内存和通信开销。
为了增强训练稳定性以及维持训练效果不至于下降太多,DeepSeek 提出了一种精细的量化策略,另外为了进一步减少 MoE 训练中的内存和通信开销,在 FP8 中缓存和分发激活值,同时以BF16格式存储低精度优化器状态。在实验中,FP8 训练模型与 BF16 基线相比,相对损失误差始终低于0.25%,在训练随机性范围内是可以接受的。
基于此,DeepSeek-V3 文中提出了一种 FP8 训练的混合精度框架。在这个框架中,大多数计算密集型操作在 FP8 中进行,而一些关键操作则保持其原始数据格式,以平衡训练效率和数值稳定性。为了加速模型训练,主要的核心计算内核(如 General Matrix Multiplication,GEMM 操作)在 FP8 精度下实现,这些操作接受 FP8 张量作为输入,并生成 BF16 或 FP32 格式的输出。所有与线性操作相关的三个 GEMM(前向传播、激活反向传播和权重反向传播)都在 FP8 中执行,这种设计理论上将计算速度提高了一倍。此外,FP8 权重反向传播 GEMM 允许激活值以 FP8 格式存储,以便在反向传播中使用,从而显著减少了内存消耗。
训练框架在以下组件中保持了原始精度(如 BF16 或 FP32):Embedding 模块、输出头、MoE 门控模块、归一化算子和注意力算子等。这些高精度的保留确保了 DeepSeek-V3 的稳定训练动态。为了进一步保证数值稳定性,作者将模型的主权重、权重梯度和优化器状态均存储在更高的精度中。该混合精度框架示意图可见下图。
DeepSeek-V3 在 14.8 万亿个高质量 token 上进行了预训练,数据包括数学、编程样本和多语言覆盖。预训练过程中,采用了 Fill-in-Middle (FIM) 策略,以提高模型对中间文本的预测能力。此外,通过优化数据处理流程,减少了冗余并保持了语料库的多样性。
DeepSeek-V3 的后训练包括监督微调(SFT)和强化学习(RL)阶段。SFT 阶段使用了 1.5M 个实例,涵盖多个领域。RL 阶段则通过奖励模型和组相对策略优化(GRPO)来提升模型性能。奖励模型包括基于规则的奖励模型和基于模型的奖励模型,以确保模型输出的准确性和可靠性。
主流的 RLHF 算法有 PPO(Proximal Policy Optimization)、DPO(Direct Preference Optimization)以及 DeepSeek 用到的 GRPO 算法等(强化学习的基础理论具有较高的综合性以及深度,我就不深入学习了,主要也是弄不明白)。
在介绍GRPO之前,需要先了解PPO算法,因为GRPO可以算作是PPO的计算效率优化版本,在保持效果的同时,降低计算资源消耗。在强化学习领域,PPO 算法被广泛认为是强化学习中的基准算法之一。PPO 采用了 Actor-Critic 架构,这一架构可以形象地理解为:有一个演员(actor)在舞台上表演,而一个评论家(critic)在台下观看。演员的目标是通过不断调整自己的表演行为来获得观众的认可,并从观众那里获得及时反馈。而评论家的任务则是评估演员的表演,并提供全面的建议。
在自然语言处理(NLP)生成模型的场景中,被训练的模型相当于演员,其表演即为生成的回复。相应地,会有评论家和观众模型来评价回复的质量。具体来说,PPO使用了四个模型:(有没有发现对应了 Reasoning Schema)
为了更直观地理解 Value 模型的总收益和 Reward 模型的即时收益,可以用“磨刀不误砍柴工”来举例说明。假设现在有一把钝刀,一分钟可以劈一根柴火;如果把刀磨锋利了,一分钟就可以劈两根柴火。现在你可以选择直接用钝刀劈柴,或者先把刀磨锋利。前者的当前收益比后者高,但未来的收益会低。也就是说,Value 模型会对后者“磨刀”这一行为更为推崇,而 Reward 模型会给前者“直接砍柴”一个更高的分数。
PPO 在大模型的 RLHF 阶段被成功应用,不断提升模型回复表现的上限。然而,PPO 在计算成本和训练稳定性方面仍然存在一定的挑战。GRPO 算法对此进行了优化,其核心目标是去除 Value 模型,以此来减少训练的计算资源。
2025-03-01 22:58:33
items | Details |
---|---|
by | Advanced Fiction Writing |
date | 2025-02-25T15:06:32+08:00 |
source | The Snowflake Method For Designing A Novel |
This page introduces the Snowflake Method, a structured approach to writing a novel. Developed by Randy Ingermanson, who has published multiple novels and won awards, this method involves 10 steps that help writers design and organize their stories, from a one-sentence summary to detailed character charts and scene lists. The method is flexible and can be used for planning a new novel, revising a draft, or organizing a completed manuscript. It emphasizes the importance of design in creating good fiction and aims to make the writing process more efficient and enjoyable.
原文链接:The Snowflake Method For Designing A Novel
items | Details |
---|---|
by | 即刻 |
date | 2025-02-25T15:17:30+08:00 |
source | 打伞的蜗牛.bit分享了图片 - 即刻App |
你先帮公司做事,月底才发工资,是你相信公司;如果公司拖欠工资了,是。。。
items | Details |
---|---|
by | 微信公众平台 |
date | 2025-02-25 16:46:51 |
source | 长达20年!复盘Linux之父对C++的「炮轰」史:C++究竟为何被“拉黑”? |
本文讨论了Linux内核创始人Linus Torvalds对C++的批评及其背后的技术原因。Linus反对将C++用于Linux内核开发,主要论点包括:C++异常处理机制不可预测、编译器隐藏内存管理带来的性能风险、面向对象编程在C语言中也可以实现、引入C++库和依赖项的稳定性问题、低效且臃肿的抽象、最终还是会用回纯C语言等。文章强调,在追求高性能和稳定性的Linux内核中,这些因素使得C++并不适合。通过分析这些观点,我们可以学到在软件开发中选择合适工具的重要性以及对依赖关系进行明智决策的重要性。
原文链接:长达20年!复盘Linux之父对C++的「炮轰」史:C++究竟为何被“拉黑”?
items | Details |
---|---|
by | 即刻 |
date | 2025-02-25 17:10:32 |
source | 你要试着不做,以前觉得不做天会塌的事 想起几年前在新能源行 - 即刻App |
你要试着不做,以前觉得不做天会塌的事
想起几年前在新能源行业有一次和同事聊天,他是公司的运营总监,也是小镇做题家出身,人非常聪明且有责任感,对做事有一种洁癖般的执着
那时公司刚渡过Virus的劫难稳定下来,我们聊到这一年个人有啥收获。他说,“以前以为事项清单上的事情必须做完,否则到了deadline就完蛋了,搞得自己和部门的人都压力很大。”
后来还是开会的时候总裁告诉他,“你要再成长一步的话,就是要学会有些事不做,你会发现以前觉得不得不做的事真的没做,其实没什么大不了,天不会塌下来。”
他后来就真的像唐僧惦着一只脚尖一样试着跨出了火圈,发现一些事没做,那就仅仅是没做而已,并没什么严重的后果,反倒是自己的精神状态好了很多,也有更多时间去做一些“不着调”的探索,以及更关注自己的同事和家人的感受
放弃了一点执念,生活一下子就变好了
最后我想起那个所谓的做事经典四象限分类,“紧急重要,紧急不重要,重要不紧急,不重要不紧急。”
其实这个世界上的真相是【只有三个象限】,不重要不紧急的事,为什么要花精力去做?尽快把它从你的生命中去掉
这时候你会发现自己的多出了比做另外三个象限还多的时间...
“给张卷子就把题给做了,也不看看这是不是自己应该考的试。”
这是我等小镇做题家从小被培养出来的惯性,也是一些异常努力,却依然把生活过得很糟的人的问题所在
原文链接:你要试着不做,以前觉得不做天会塌的事 想起几年前在新能源行 - 即刻App
items | Details |
---|---|
by. | 从码农到工匠 |
date | 2025-02-25 20:00:56 |
source | 不被AI取代的工程师 |
作者讲述了使用AI帮助解决设计挑战的经历,通过编程生成了一个丝绸质感的logo。随后讨论了AI在软件工程中的作用,强调虽然AI可以显著提高效率和知识获取速度,但远不能替代人类工程师。文章指出实现通用人工智能(AGI)至少还需要100年的时间,即便实现了AGI,管理大规模软件系统的复杂性对AI来说仍然是个挑战。某些技能如问题结构化、提示工程及批判性判断的重要性增加,而快速编码和小规模重构等能力的价值则有所下降。结论是AI将作为助手,使工程师能够专注于软件开发中更有价值的部分。
原文链接:不被AI取代的工程师
items | Details |
---|---|
by | 即刻 |
date | 2025-02-26 11:52:05 |
source | 时间、精力、生命力是你逆袭人生的三个血条 其实每个人是有三 - 即刻App |
时间、精力、生命力是你逆袭人生的三个血条
其实每个人是有三个血条的,它们分别是【时间】【精力】【生命力】,那这三个有啥不同?
你要和一般人的生命质量区别开来的话,你就要知道一个道理,每个人每天都有24个小时,大家在“同一起跑线上”,除非你比别人活得久睡得少,否则很难拉开差距。但在【时间】之上的更高纬度杠杆就是【精力】,而比【精力】更高一个维度的杠杆就是【生命力】或者叫心力
首先来说精力,你会发现人每天精力充足的时间其实是非常有限的,24小时里可能只有10个小时是精力充沛的黄金状态,而每一次运用理性去思考问题和做决策都会耗费精力,所以你会发现为什么乔布斯、扎克伯格、黄仁勋这些科技大佬都喜欢每天穿同一套衣服,就是为了不在这些细枝末节上耗费宝贵的精力
如果你迅速耗光了你自己的精力,这一天剩下的时间就都是“垃圾时间”,不仅学习效率很低,处理人际关系和做决策也都会非常糟糕
所以聪明人都是在每天的“黄金时间”高效处理工作和决策,在“滚刀肉时间”运动或娱乐。比如拿我自己举例,我再想看视频看电影也会忍住等晚上洗完澡再看,而之前的时间都是用来工作、思考、写作,而且基本是晚上才运动…
所以谈判专家熊浩就有句名言,“不要在能量不足的时候做决策。”就是这么个道理
其次比精力更珍贵的是生命力。举个例子,你会发现很多老人六七十岁就好像无所事事,每天只能晒太阳打瞌睡,而巴菲特在65岁后才赚到了他人生99%的财富,今年已经90多岁高龄还在工作;以及任正非已经80岁了,还在带领华为发展;小一点的雷军也已经55岁了,依然压上全部身家重新带小米做汽车…
这些企业家和一般“老头”的区别是什么?就是生命力大小的区别,而你需要知道,生命力也是可以补充的
如果被人说过感觉缺乏一些活力;年纪轻轻却过着“老年人”的生活;太佛了缺少年轻人的“干劲”等等…甚至你自己都感觉有时候浑浑噩噩的,就是缺乏生命力的表现
而心理学认为人生命力来自于3个方面,自我欣赏、性、攻击性
比如,为什么很多老人会让人觉得缺乏生命力,就是因为在退休后丧失了社会身份的老人,同时随着年岁渐长性和攻击性也都减弱了,就会给人没有生命力的感觉
但你肯定会发现像上面举例的企业家们,从自我欣赏方面补充了足够多的生命力,依然能让别人感知到非常旺盛的生命力
当然,除了自我欣赏,还有一个快速补充生命力的方式,就是释放你自己的攻击性
在《蜘蛛侠》里我们会发现,蜘蛛侠一开始是一个经典的好男人:羞涩、封闭、宅,虽然会感动你,但总会让人感觉缺少一些魅力
但在第2部里,当外星的黑色能量附在了蜘蛛侠身上,他化身为带着点邪气的男人时,有意思的改变就出现了,他一下子就变帅了,走路昂首挺胸,浑身都放着电,所到之处异性被迷倒一片
所以,怎样让你更有【生命力】这个问题的解法就不言自明了,你需要让自我欣赏、攻击性、甚至是通过健身或规律作息等建立性魅力,让自己的生命力更适当地释放和流动起来
![[Pasted image 20250226144200.png|300]]
原文链接:时间、精力、生命力是你逆袭人生的三个血条 其实每个人是有三 - 即刻App
items | Details |
---|---|
by | 即刻 |
date | 2025-02-26 11:55:14 |
source | 如何寻找自己需要的AI工具: 1。 豆包:查资料、聊天、写 - 即刻App |
如何寻找自己需要的AI工具:
原文链接:如何寻找自己需要的AI工具: 1。 豆包:查资料、聊天、写 - 即刻App
items | Details |
---|---|
by | |
date | 2025-02-26 15:05:45 |
source | 什么是产品力?产品定价的能力!(5000字中长文) – 人人都是产品经理 |
本文探讨了产品力在商业竞争中的重要性,从产品定义、构成要素到定价策略。首先,文章解释了产品的三个层次(核心产品、形式产品、附加产品)和四种价值(使用价值、功能价值、形象价值、社会价值)。接着,通过Lululemon的案例展示了如何通过强特性与强功能占据市场。文章还强调了找对标、造场景、占空位和差异化的重要性,并提出了产品力的四个关键步骤:从品类入手、从概念入手、从定价入手以及正确的营销口号。
原文链接:什么是产品力?产品定价的能力!(5000字中长文) – 人人都是产品经理
items | Details |
---|---|
by | 即刻 |
date | 2025-02-26 15:42:50 |
source | ✨分享一下山竹小香薰✨ - 即刻App |
✨分享一下山竹小香薰✨
原文链接:✨分享一下山竹小香薰✨ - 即刻App
讲武则天的播客中有一段聊到了一人公司、数字游民【54:14】,这引发了我对自由向往的新的反思:想要自由需要先学会规则,人是社会动物所以肯定逃脱不了社会规则,即便是一人公司、数据游牧,其实你还是到了另外一个环境,还是要遵循那个环境、那个阶段的规则。在追求爽感的同时需要看到这背后的代价,离职获得自由的代价是你以后的社保没人交了,一人公司的获得话语权的代价是承担一定的经济压力乃至生活的不稳定。遵循规则和妥协并不是懦弱,它只是一种处事方式而已。
items | Details |
---|---|
by | |
date | 2025-02-27 11:27:49 |
source | 盘点2024年十大营销事件 – 人人都是产品经理 |
营销的核心驱动力已经从追求最低价格转变为建立最高级别的信任,这一转变标志着商业策略的重点首次完全转向以用户为中心。
周至说:
items | Details |
---|---|
by | Romain Beaumont |
date | 2025-02-27 16:56:43 |
source | Semantic search with embeddings: index anything |
The article discusses the concept and implementation of semantic search, which uses small vectors (embeddings) to represent items. It covers the motivation for semantic search, how it differs from classical search, and its applications in various domains like fashion, music, and news. The article also delves into the technical details of building a semantic search system, including encoding items as embeddings, indexing them, and using these indices for fast search. It explores different types of encoders for images, text, and other content, as well as methods for combining and training embeddings. Additionally, it provides practical solutions and tools for building semantic search systems, such as Jina, Milvus, and Elastic Search, and discusses the broader implications of representation learning.
原文链接:Semantic search with embeddings: index anything
items | Details |
---|---|
by | shashank Jain |
date | 2025-02-27 17:09:50 |
source | Unlocking the Power of Contextual Document Embeddings: Enhancing Search Relevance |
The page discusses the concept of contextual document embeddings (CDE) and their importance in improving information retrieval. It explains that while traditional embeddings represent documents or queries independently, CDEs consider the broader context of the document corpus, leading to more accurate and relevant search results. The benefits include better understanding of relationships, improved performance in large datasets, and handling out-of-domain queries. The post also provides a step-by-step guide on implementing CDE using a pre-trained model, including loading the model and dataset, preparing a mini corpus for contextual embeddings, embedding the mini corpus, and embedding queries and documents with context. Finally, it shows how to compare queries to documents using cosine similarity.
原文链接:Unlocking the Power of Contextual Document Embeddings: Enhancing Search Relevance
items | Details |
---|---|
by | 即刻 |
date | 2025-02-28 10:34:47 |
source | 好奇一个技术问题:现在各家的「联网搜索」都是用的什么引擎?都 - 即刻App |
好奇一个技术问题:现在各家的「联网搜索」都是用的什么引擎?都是自建的爬虫系统,还是有一些公开的引擎调用?
当前行业呈现明显的马太效应,头部厂商通过搜索+AI的闭环构建护城河,而创新企业则通过「API组合+垂直爬虫」实现差异化竞争。未来随着W3C推出ML-enhanced crawling标准,可能会催生新的技术范式。
原文链接:好奇一个技术问题:现在各家的「联网搜索」都是用的什么引擎?都 - 即刻App
items | Details |
---|---|
by | |
date | 2025-02-28 11:45:49 |
source | Material Theme has been pulled from VS Code's marketplace | Hacker News |
The discussion revolves around a security issue with a VS Code theme extension, which was found to contain potentially malicious code. The VS Code team removed the extension and uninstalled it from all instances. Users faced issues manually uninstalling the extension due to an infinite loop. There is debate over the security model of VS Code, with concerns about the lack of sandboxing for extensions. The community discusses the implications of relying on third-party code and the need for better security measures. Some users suggest running development environments in a VM or using alternative IDEs. The maintainer of a forked version of the theme has taken steps to remove suspicious code and is working with the VS Code team to ensure its safety.
松烟阁评论:值得围观的年度安全事件,vscode 主题“包含恶意代码”,微软下场直接删,作者声称是obfuscate,替代者直接改Apache License。值得围观吃瓜
原文链接:Material Theme has been pulled from VS Code's marketplace | Hacker News
2025-02-23 22:30:21
先看一个DeepSeek算24点游戏的例子:
跟准备数学考试一样,这道题的结果不重要,重要是学习思考过程,这样下次再碰到类似的问题我们才能自己解决问题。那么看看DeepSeek是怎么思考的:
可以看出来DeepSeek在生成最后答案之前经过了40秒的思考,按照问题的规则约束一步一步的思考、试错,最终得出答案,这个过程就是今天我要介绍的RLM的推理机制(Reasoning Schema)。首先回顾一下关于DeepSeek我是怎么研究的-1中RLM的架构,看看推理机制在RLM中处于什么位置(蓝色框):
推理机制(Reasoning Schema)是推理语言模型(Reasoning Language Models,简称RLMs)的核心组成部分,它定义了推理过程的结构和策略。推理机制决定了模型如何组织和推进推理步骤,以逐步解决复杂问题。
推理机制(Reasoning Schema) 是指在RLMs中用于组织和推进推理过程的一套规则和策略。它包括以下几个关键部分:
推理结构是推理机制的基础,它定义了推理步骤如何组织和连接。常见的推理结构包括:
推理策略是推理机制的核心,它定义了推理结构如何演变和扩展。常见的推理策略包括:
推理操作是推理机制的具体实现,定义了在推理过程中可以执行的具体操作。常见的推理操作包括:
推理机制通过以下步骤在RLMs中工作:
推理机制(Reasoning Schema) 是RLMs的核心组成部分,它通过定义推理结构、推理策略和推理操作,组织和推进推理过程。推理机制不仅提高了模型的推理能力,还增强了其灵活性、可扩展性和可解释性。通过结合多种推理策略和操作,RLMs能够高效地解决复杂问题,生成高质量的推理路径。
最后插一个题外话,解释一下我自己在学习Reason Schema过程的一个困惑:DeepSeek流行之前大多使用的是System 1 Thinking的大模型,也接触到推理(Inference),DeepSeek出现之后也有推理(Reason),字面中文看上去是一样,两者到底有什么区别呢?
先说我自己的总结:「Inference和Reason它们都涉及从已知信息或数据中得出结论的过程,但在具体的应用场景和侧重点上有所不同。Inference主要是指LLM根据已知的参数权重和激活函数等推断相应token的概率高低(System 1);Reason主要是指分析问题的思考逻辑和推理过程(System 2);」
Reason(推理)通常是指一个理性思维的过程,它涉及到一系列逻辑步骤,从已知的前提或假设出发,通过逻辑规则、第一性原理或经验规则推导出结论。这个过程可以是演绎的(从一般到具体)或归纳的(从具体到一般),并且通常需要更强的逻辑结构和解释性。
特点:
Inference(推断)是指从已知的数据或信息中得出新的知识或结论的过程。推断可以是统计的、概率的或基于模式的,它更多地依赖于数据和模型的预测能力,而不一定需要完全理解其背后的逻辑过程。
特点:
特性 | Reason(推理) | Inference(推断) |
---|---|---|
侧重点 | 逻辑结构和解释性数据 | 处理和预测能力 |
过程 | 多步骤的逻辑分析和决策 | 数据驱动的统计或概率预测 |
透明度 | 高(每一步都需要解释) | 低(模型内部决策过程可能不透明) |
应用场景 | 解决复杂问题、验证假设 | 数据分析、模式识别、预测 |
依赖 | 逻辑规则、第一性原理 | 数据、统计模型 |
结果 | 明确的结论或解释 | 概率性的预测或估计 |
效率 | 较低(需要详细分析) | 较高(自动化处理大量数据) |
适应性 | 较低(依赖于明确规则) | 较高(适应不同数据和场景) |
2025-02-15 22:08:37
书接上回:关于DeepSeek我是怎么研究的(1),继续我的DeepSeek研究之旅。
这次主要是研究清楚出 DeepSeek 在它的论文中提到的 System 1 Thinking 和 System 2 Thinking,这个概念其实源自于诺贝尔经济学奖得主丹尼尔·卡尼曼(Daniel Kahnemann),他最著名的研究是关于人类决策以及影响我们决策过程的各种缺陷/偏见。在他的《思考,快与慢》这本书中有详细研究和说明了这个概念:
P.S. :当我发现诺贝尔经济学奖关于人的研究居然应用到了 AI 领域之后,我有点反应过来大模型已经从表层的模仿人类向深层的学习人类过渡了,或许很快就会找到《超验骇客 Transcendence》中的奇异点 Technological Singularity 创造出了能够超越人脑的 AI。
下面我就研究一下 DeepSeek 如何在 RLM 中应用 System 1、2 Thinking 的:
定义:
System 1 Thinking 是一种快速、直观、基于模式匹配的思维方式。它依赖于预训练的模式和统计规律,能够迅速生成响应。这种思维方式与人类心理学中的“直觉系统”相对应,主要通过识别输入与训练数据中的相似模式,直接生成最可能的输出。
特点:
定义:
System 2 Thinking 是一种缓慢、深思熟虑、基于逻辑和结构化分析的思维方式。它依赖于逻辑推理和逐步分析,能够处理复杂的任务和问题。这种思维方式与人类心理学中的“逻辑系统”相对应,主要通过逐步推理和全局评估来生成解决方案。
特点:
特性 | System 1 Thinking | System 2 Thinking |
---|---|---|
速度 | 快速生成响应 | 较慢,需要更多时间进行分析 |
推理深度 | 缺乏深度推理 | 深入分析和逐步推理 |
灵活性 | 缺乏灵活性 | 高度灵活,能够适应不同任务 |
依赖 | 依赖于训练数据中的模式 | 依赖于逻辑规则和推理步骤 |
结果 | 生成连贯但可能缺乏深度的文本 | 生成经过深思熟虑的解决方案 |
应用场景 | 适合生成连贯文本和快速响应 | 适合处理复杂问题和需要深入分析的任务 |
人类思考的过程中 System 1 经常起主导作用,它高效运行防止我们的大脑因过度分析而陷入困境。这是通过使用认知偏差来实现的。尽管偏差通常被视为贬义词,但实际上它们是一种中性的现象。从信息理论的角度来看,偏差只是决策模型(无论是我们的大脑还是 AI)用来优先处理和使用信息的一种捷径。 这种偏差可以是积极的(因为某物气味奇怪而不吃它),中性的(我喜欢巧克力牛奶),或者是消极的(种族偏见)。
人类和 AI 偏差之间的主要区别在于其来源:人类的偏差源于结构,而 AI 的偏差则揭示了我们数据的深层次问题。
在 AI 领域中,System 1 是一个简单的检查器,而 System 2 是一个功能强大的深度学习模型。然而,System 1 的作用并不仅限于此。在大多数情况下,System 1 还充当我们的特征提取器/数据管道,直接提供输入给 System 2。以下是两种主要方式:
Reversion to the Mean(均值回归)描述了极端结果或事件之后往往会跟随较不极端的结果,直到情况收敛回到平均值的统计倾向。这听起来非常显而易见,但理解其含义对任何决策者(尤其是那些处理数据的人)至关重要。几个因素促成了 System 1/2 的均值回归:
基于上面的 System 1、2 均值回归的理解,RLM 的设计、训练等过程中需要注意避免错误推理:
P.S.:我慢慢理解为什么 DeepSeek 做数据蒸馏之后的训练效果还是那么好了!
丹尼尔·卡尼曼关于损失厌恶的研究发现,避免损失的动机是追求同等规模胜利动机的 2.5 倍。
以下是跟 AI 相关的损失规避的规律:
P.S.:用 RL 在 RLM 的 post 阶段增强推理思考的处理看上去是有据可循的。
System 1 Thinking 在 RLM 中的应用:
System 2 Thinking 在 RLM 中的应用:
结合 System 1 和 System 2:
System 1 Thinking 和 System 2 Thinking 在 RLM 中各有其独特的应用和优势。System 1 Thinking 通过快速生成推理步骤,推动推理过程的进展;System 2 Thinking 通过全局评估和逐步推理,优化推理路径的选择和扩展。通过结合这两种思维方式,RLM 能够高效地解决复杂问题,生成高质量的推理路径,并在各种任务中表现出色。