免费白嫖混果汁了

xiaohack博客专注前沿科技动态与实用技术干货分享,涵盖 AI 代理、大模型应用、编程工具、文档解析、SEO 实战、自动化部署等内容,提供开源项目教程、科技资讯日报、工具使用指南,助力开发者、AI 爱好者获取前沿技术与实战经验。

在多元算力时代,大模型的性能不仅取决于计算密集型的算子,更取决于那些随处可见的 Element-wise(逐元素)与 Reduction(规约)算子。它们虽然逻辑简单,却往往决定了整个模型的吞吐上限。 在 FlagGems 的日常开发中,我们反复验证一个问题:大部分的性能瓶颈,不出现在计算密度上,而出现在访存组织里。FlagGems 是基于 Triton 的高性能通用算子库,作为 FlagOS 开源生态的核心组件,FlagGems 目前支持超过 400 个算子,基本覆盖大模型需求,82% 以上的算子性能可与 CUDA 原生算子平齐甚至实现超越,成为全球最大的 Triton 单一算子库。更重要的是,它支持多款硬件后端,完成了对 28 种主流 AI 芯片的适配支持,做到“多芯片运行、处处高性能”。 本文将从工程实践角度,拆解 FlagGems 在 Element-wise 和 Reduction 两类基础算子上的优化方法。所有结论均来自真实 Profile 数据和实际的测试结果。 Element-wise 算子(如 add、mul、gelu)是典型的访存密集型(Memory-bound)任务,特点是:计算量小,访存密度高。因此,其性能瓶颈通常不在计算,而在内存带宽。 计算公式:理论带宽上限 = 内存带宽 × (有效负载字节数 / 总传输字节数)。 在实际开发中,开发者常常发现即使逻辑写对了,带宽利用率(DRAM Utilization)也往往只有 30% 左右。那如何判断一个算子是否“足够快”呢?在 FlagGems 的工程实践中,我们通过两个硬指标来衡量: 如果低于任一值,则存在优化空间——不是算力不够,而是数据没送到位。 GPU 的性能核心在于访存合并(Coalesced Access),以 Cache Line(通常是 128 字节)为单位,一次访问会读取整个 Cache Line 的数据。如果你的内存访问是对齐的,一次就能读满数据;但如果是非对齐的,一次访问就会跨两个 Cache Line,需要两次内存事务,数据搬运开销直接翻倍。 在 Triton 中最优的访存模式是用 tl.arange(0, BLOCK_SIZE) 生成连续偏移,这样相邻线程访问相邻地址,GPU 会自动合并访存; 但如果张量本身是非连续的,例如转置后的张量,stride[1] = H,访问就会变成“步长为 H 的跳跃式访问”。这种情况下,GPU 的访存合并机制完全失效,每次加载可能只拿到 1 个元素,这是硬件架构决定的,没有通用的软件优化方法。 FlagGems 的解法不是“优化非连续访问”,而是让 kernel 能够正确支持非连续输入,避免因错误计算地址而出错。在 kernel 中传入每个维度的 stride 参数,计算偏移时使用 stride 而非假设连续。 优化建议:对于非对齐访问的场景,可以用 padding 的方式,把输入数据补到对齐的大小,再去掉 mask,减少额外的内存事务;对于跳跃式访问,可以使用 FlagOS 新语言Triton-TLE 中的 tle.gpu.alloc 分配 SMEM,把数据连续加载到 SMEM 中,再从 SMEM 跳跃式访问,从而提高 GMEM 的访问效率。 Triton 里的 tl.load 支持 mask 参数,用来处理边界外的访问(比如输入大小不是 BLOCK_SIZE 的整数倍),mask 策略的选择,直接影响着算子的性能。 常见的 mask 策略有两种,一是边界检查 mask:直接用 offsets < n 作为 mask,这是最直观的写法,但会导致 Warp 内出现分支,产生 Warp Divergence,同时还会增加额外的指令开销;二是Padding 后无 mask:先把输入数据补到 BLOCK_SIZE 的整数倍,加载的时候不用 mask,计算完再截断。这种方式虽然多了一点数据拷贝的开销,但去掉了分支,整体性能反而更高。 mask = pid * BLOCK_SIZE + offsets < n 是常见写法。但当 n % BLOCK_SIZE ≠ 0 时,末尾 warp 会因 mask 分支导致指令发射效率下降。FlagGems 则改用 padded load + conditional store: Nsight 显示:warp instruction issue slot utilization 从 63% → 89%。在 FlagGems 的测试中,去掉 mask 后的算子,性能大大提升,尤其是在输入大小不固定的场景下,提升非常明显。 现在很多大模型训练会用混合精度(FP16/BF16 做计算,FP32 做累加),很多人在实现算子时,会频繁使用 tl.cast 做类型转换,但处理不好,这部分操作会成为新的性能瓶颈。 Reduction 算子(如 sum、mean、max)将一组数据通过规约运算合并为一个或多个结果。在大模型中,Reduction 出现在 LayerNorm、Softmax、Loss 计算等多个关键路径上。 许多开发者在写Reduction 算子时,会用单阶段实现:让所有线程块同时对全局数据做 Reduction,最后只有一个线程块输出结果。这种写法的问题非常明显,只有最后一个线程块在工作,前面的线程块都在闲置,GPU 的并行度根本没利用起来;多线程块访问全局内存时,会出现写冲突,需要原子操作,性能开销比较大。 FlagGems 默认采用 two-phase + grid-stride loop: 实测结果显示:(2^20,) shape 下,两阶段比单阶段快 1.8×,且 L2 traffic ↓ 44%。 Reduction 算子的 BLOCK_SIZE 选择,直接决定了每个 SM 的 Occupancy(活跃线程块数),而 Occupancy 太低,就会导致 GPU 的算力闲置。 BLOCK_SIZE=1024不一定比512 快。主要原因在于:天数 GPU warp scheduler 最多并发 32 warp / SM;若 kernel register usage 高,1024 可能压到 16 warp/SM,occupancy 仅 50% 。 最佳实践参考: Reduction 算子的实现中,很容易出现 Warp Divergence,尤其是在 Block 内 Reduction 的循环里,如果分支处理不当,同一个 Warp 里的线程会执行不同的路径,导致整个 Warp 的执行效率大幅下降。 优化技巧在于: 讲了诸多理论,不如看一个 FlagGems 的案例。 问题:原始 GELU kernel Profile 显示 sms__inst_executed_op_fadd 占比异常低,而 sms__inst_executed_op_fmul 高达 68% ,推断存在冗余乘法链。 原因:PyTorch 风格 0.5 x (1 + tanh(...)) 引入 3 次标量乘,未利用 tl.math.fma 合并。 优化动作: 结果: 结语:性能优化不是玄学,是有章可循的工程实践 很多人觉得算子优化是“碰运气的玄学”,但 FlagGems 的实践告诉我们:所有高性能算子的背后,都是对硬件原理的深刻理解,和对每一个细节的打磨。 在编写或优化算子时,可以对照以下清单参考: 从判断性能上限,到优化内存访问,再到解决 Reduction 的并行度问题,每一步都有清晰的方法论和可落地的技巧。目前,FlagGems 已完成对英伟达、华为、摩尔线程、海光、天数等 28 种主流 AI 芯片的适配支持,在 40 个主流 AI 模型上的推理任务算子覆盖度达到 90%~100%,为开发者提供了极致的开发体验。 如果你想深入了解 FlagGems 里的更多算子实现,可以前往https://github.com/flagos-ai/FlagGems查看源码,也欢迎大家一起参加“FlagOS 开放计算全球挑战赛”算子开发和优化赛道(https://flagos.io/RaceDetail?id=296flq8k⟨=cn),使用 Triton 语言开发大模型常用算子,深入探索芯片体系结构,挑战算子极致性能! 关于众智FlagOS社区 为解决不同 AI 芯片大规模落地应用,北京智源研究院联合众多科研机构、芯片企业、系统厂商、算法和软件相关单位等国内外机构共同发起并创立了众智 FlagOS 社区。成员单位包括北京智源研究院、中科院计算所、中科加禾、安谋科技、北京大学、北京师范大学、百度飞桨、硅基流动、寒武纪、海光信息、华为、基流科技、摩尔线程、沐曦科技、澎峰科技、清微智能、天数智芯、先进编译实验室、移动研究院、中国矿业大学(北京)等多家在 FlagOS 软件栈研发中做出卓越贡献的单位。 FlagOS 是一款专为异构 AI 芯片打造的开源、统一系统软件栈,支持 AI 模型一次开发即可无缝移植至各类硬件平台,大幅降低迁移与适配成本。它包括大型算子库、统一AI编译器、并行训推框架、统一通信库等核心开源项目,致力于构建「模型-系统-芯片」三层贯通的开放技术生态,通过“一次开发跨芯迁移”释放硬件计算潜力,打破不同芯片软件栈之间生态隔离。 GitHub 项目地址:https://github.com/flagos-ai GitCode 项目地址:https://gitcode.com/flagos-ai SkillHub:https://skillhub.flagos.ioElement-wise 算子的性能上限在哪里?
高效 Element-wise 的关键要素
x = tl.load(ptr, mask=True) # padding to BLOCK_SIZE multiple
y = compute(x)
tl.store(out_ptr, y, mask=offsets < n) # store mask 更轻量x_u32 = tl.load(ptr_u32) # load two FP16 as one u32
x_f16_a, x_f16_b = tl.math.ubf16_to_f32(x_u32) # hardware-accelerated unpackReduction 的效率陷阱与优化
FlagGems 中的工程实践案例

SOLIDWORKS TolAnalyst 插件的使用方法和应用场景 文章来源:卓盛信息(400-696-5950) TolAnalyst 是 SolidWorks Professional 和 Premium 版本中集成的公差分析工具,专门用于研究公差和装配方法对装配体两个特征间尺寸累积(公差层叠)的影响。它能够自动计算尺寸链,帮助工程师在设计阶段预测和解决公差累积问题。 使用前提条件 1. 版本要求:需要SolidWorks Professional或Premium版本网页 2. 插件启用:在插件管理中勾选启用TolAnalyst 3. DimXpert标注:所有参与分析的零件必须使用DimXpert工具进行三维尺寸和公差标注网页 四步使用方法详解 第一步:创建测量 定义需要分析的尺寸,即两个DimXpert特征之间的直线距离 选择装配体中的两个面或特征作为测量起点和终点 例如:分析两个安装孔之间的中心距 第二步:定义装配体顺序 选择参与公差研究的零件,并按实际制造装配顺序排列 所选零件构成"简化装配体" 装配顺序对计算结果有重要影响 第三步:应用装配体约束 定义每个零件如何放置或约束到简化装配体内 约束按顺序应用,应用顺序对结果产生重大影响 模拟实际制造车间的装配约束关系 第四步:分析结果 系统自动计算并显示分析结果 主要输出包括: 典型应用场景 1.非标设备设计验证 在非标设备设计中,公差累积可能导致装配干涉、功能失效或性能下降。TolAnalyst可帮助预测多来源误差累积,包括: 2.复杂装配关系分析 适用于多层级装配、非线性尺寸链、柔性与刚性混合装配等复杂情况,特别是: 3.装配可行性验证 通过计算最坏情况和统计情况,验证零件在公差范围内能否顺利装配。例如:验证螺钉是否能顺利穿过安装孔。 4.公差优化设计 识别对公差累积影响最大的关键特征和公差值,帮助工程师: 与传统手工计算的对比优势 实际应用示例 案例:脚轮轴支撑装配分析 研究目标:验证顶盘安装孔(11mm)与脚轮轴连接螺钉的装配可行性 分析过程: 第四步:分析结果 注意事项 总结 TolAnalyst 是 SolidWorks中强大的公差分析工具,通过自动化的四步流程,能够有效解决传统手工公差分析的局限性。它特别适用于复杂装配体的公差累积分析,帮助工程师在设计阶段发现问题、优化公差分配,从而降低产品成本、提高产品质量。对于需要进行精密装配验证的产品设计,TolAnalyst是不可或缺的分析工具。
阿里云 Coding Plan Pro 频繁遇到 429 usage allocated quota exceeded 报错。
套餐里已有“5 小时”和“周用量”的限制,现在又增加动态限流(具体规则模糊不清),一旦触发 直接暂停服务 1 小时。这两天多次被限流暂停,代码根本没法写。
与客服沟通无果,敷衍答复。阿里随意调整规则,拿老用户当韭菜割,真恶心!
V 站有老哥遇到同样的情况吗?



引言 销售团队每天录入海量客户数据,却没有人能快速分析出成单规律;运营同学整理了整月的活动数据,面对 Excel 却无从下手;管理者想要一份实时报表,却总要等 IT 部门排期开发…… 💡 痛点一:「表格易填,分析难」 💡 痛点二:「工具门槛高」 💡 痛点三:「协作效率低」 今天,这个困扰企业多年的难题,终于有解了。 01 Data Agent:你的专属数据分析智能体 阿里云瑶池 Data Agent 与钉钉 AI 表格正式达成深度合作,推出 Data Agent 数据分析智能体插件,为所有钉钉 AI 表格用户提供"一键式"专业级数据分析服务。 什么是 Data Agent ? 它是阿里云瑶池数据库团队推出的面向企业用户的数据分析智能体。能够根据自然语言描述进行需求分析,自动完成数据理解、提出分析需求、扩展分析思路,最终通过调用工具交付分析结果。 它能同时覆盖传统 BI 分析(描述性、诊断性)和高级分析(预测性、规范性),既可以作为自然语言到 SQL 查询的转换工具(NL2SQL),也可以生成预定义报表的聊天式 BI(包括 ChatBI),是一个具备理解分析意图、规划分析路径、执行复杂任务、并生成深度洞察的自主智能系统,能稳定完成复杂、多步骤的数据分析任务。 简单来说:你只需用一句话提问,它就能帮你完成从数据洞察到报告生成的全流程。 02 七大核心能力,覆盖全场景分析需求 Data Agent 可直接读取钉钉 AI 表格中的结构化数据,支持自然语言交互,实现: 用户无需编写公式或代码,只需用中文提问即可获得精准洞察。 03 六大核心优势,让数据分析零门槛 ⚡ 实时高效:秒级响应 🔒 安全合规:数据隔离有保障 Data Agent 构建了“身份-环境-管控”三位一体的安全体系: 该方案实现了“账号不落地、环境全隔离、操作可审计、数据无残留”的全链路安全保障。 🔄 AI 生态打通:钉钉闭环体验 🆓 免云账号登录:降低使用门槛 📤 钉钉分享报告:让洞察流动起来 04 免费试用,三步开启智能分析 Step 1:打开钉钉 AI 表格 Step 2:搜索 Data Agent 插件 Step 3:开始对话式分析 05 长期记忆:让 Agent 越用越懂你 您是否担心每次分析都要重复背景?Data Agent 的「长期记忆」功能让这些繁琐化为乌有。 Data Agent 不仅仅是一个工具,它更像一位具备持续学习能力的资深助理,在每一次交互过程中,会自动“做笔记”,将您的业务偏好、特定术语和历史逻辑沉淀为专属知识。这些记忆将在你后续的交互中被智能召回和应用,从而显著提升 Agent 对你业务需求的理解准确性。 为了让这种“记忆”透明且可控,我们提供了全方位的记忆管理中心: 溯源链路:支持查看记忆来源,一键追溯对话上下文,让每一条结论都有据可依。 06 让数据真正成为生产力 在数字化转型的浪潮中,数据是企业最宝贵的资产。阿里云瑶池数据库与钉钉的这次深度合作,正是为了让每一位员工都能轻松驾驭数据,让智能分析能力普惠到每一个工作场景。 现在,打开你的钉钉 AI 表格,搜索「Data Agent」,开启你的智能数据分析之旅吧! 了解更多 产品详情:https://help.aliyun.com/zh/dms/data-agent-for-analytics
随着企业数字化转型迈入深水区,“数据驱动决策”虽已成为行业共识,但理想与现实之间仍存在一道鸿沟。在大多数企业的日常经营中,这种“数字尴尬”随处可见:
数据越积越多,但能从中挖出价值的人却寥寥无几。
SQL 不会写,Python 不会用,Excel 透视表也搞不定。
分析结果导出后,还要手动整理成报告,跨部门分享更是困难重重。
现在,这一强大能力正式接入钉钉 AI 表格!

✅ 零门槛:人人都能做分析
普通员工也能像数据分析师一样使用,告别复杂的 Excel 公式和 SQL 语句。
数据更新后秒级响应,无需导出导入,分析结果即时呈现。
每个用户独立沙箱环境,数据安全有保障。Agent 不会使用您的数据进行模型训练。
访问控制:通过“安全托管”实现账号密码不落地;支持细粒度权限、自动脱敏与全程审计。
环境隔离:采用内核级沙箱与 VPC 闭环隔离,确保数据交互在闭环内完成,阻断外网威胁。
管控安全:租户级会话隔离,任务结束即销毁环境并清除数据,杜绝数据残留。
与钉钉生态紧密协作,不用申请权限,不用导出 Excel,钉钉 1 分钟超快速启用,钉钉用户可闭环实现数据分析。
无需登录阿里云账号,钉钉用户即可开启免费体验(每天 30min 免费体验)。
分析报告直接生成钉钉文档,支持跨群分享、深度协作,让数据洞察在团队中流动起来。
在钉钉中打开任意 AI 表格。
点击顶部插件搜索 → 输入「Data Agent」。
用自然语言描述你的分析需求,坐等专业报告生成。

热度洞察:通过热度值算法识别高频、核心信息,自动筛选出最懂你业务的“黄金记忆”。
精准修正:赋予用户主动干预权,支持手动编辑与订正,确保 Agent 的认知与实际业务逻辑严丝合缝。
隐私闭环:灵活的删除与遗忘机制,在提供个性化服务的同时,严守数据边界与隐私安全。
不仅是技术上的强强联手,更是对企业数字化办公模式的一次重塑。它以极简的操作逻辑,解决了高成本、低效率、门槛高、转化难等长期困扰企业的痛点,完成了从“人工搬运报表”到“智能自动洞察”的跨越式升级。让每位用户都能在指尖释放数据潜能,将海量信息转化为驱动业务增长的精准指引,让数据真正成为驱动企业提质增效的硬核生产力。
免费试用(每天可享 30min 免费试用):https://agent.dms.aliyun.com/
欢迎钉钉搜索群号“105130018526” 或扫码加入钉群交流
在数字化转型的浪潮中,政企单位的办公效率得到了质的飞跃,但随之而来的安全风险也日益复杂。2026年,信息安全已不再是单一的防火墙问题,而是涉及数据主权、链路加密、身份认证及国产化适配的系统工程。对于政企单位而言,通讯系统不仅是办公工具,更是核心机密的承载流转平台。 如何在高频的日常沟通中守住安全红线?本文将从底层架构到应用层面,结合主流私有化解决方案实事求是地展开讨论。 在讨论安全之前,必须先明确一个核心概念:数据归谁所有。 公有云办公产品虽然便捷,但其数据存储在服务商的机房中。对于政企单位,尤其是军工、金融及政府部门,这种“托管”模式天然存在数据受控权缺失的隐患。 真正的安全始于物理隔离。政企单位首选的通讯方案必须支持私有化部署。以喧喧为例,其核心逻辑就是将服务器程序直接安装在单位自有的机房或私有云中。这意味着所有的聊天记录、文件资料、组织架构信息都存储在单位内部的磁盘上。 这种部署模式解决了两个核心问题:一是规避了公有云服务商可能存在的内部人员越权查看风险;二是确保了在极端情况下(如外部断网),内部通讯系统依然能够依靠内网环境正常运行,保障指挥调度的连续性。 在私有化环境下,数据审计不再受制于第三方接口。政企单位可以根据审计要求,对所有的通讯历史进行自助式的管理与备份。实事求是地讲,这种管控力是任何公有云产品通过协议保障都无法完全替代的。 在数据传输过程中,如何防止“中间人攻击”或包嗅探? 目前市面上很多开源通讯协议虽然灵活,但也意味着其漏洞对全世界公开。喧喧在设计上采取了底层通讯协议不开放的策略。这种设计在政企安防中具有实际意义:它极大地提高了外部攻击者通过扫描特定协议漏洞进行渗透的难度。 在2026年的安全语境下,我们必须摒弃那些未经广泛验证的特种加密方式,回归到国际公认的稳固算法。政企通讯系统应统一采用高级加密标准(AES)对传输链路进行加固。 喧喧在处理每一条消息、每一个文件分片时,都会进行高强度的加密处理。即使数据包在传输路径中被截获,由于缺乏密钥,攻击者拿到的也只是一堆毫无意义的乱码。这种基于标准算法的严谨性,比宣传噱头更能保障政企单位的长治久安。 安全风险往往源于内部,尤其是身份冒用或权限越界。 政企系统不应支持开放注册。所有的账号必须通过后台统一分配,并与组织架构深度挂钩。喧喧支持与禅道等项目管理系统的组织架构同步,这意味着人员的入职、调岗、离职能实时反映在通讯权限上,从源头上杜绝了离职人员长期逗留在内部群聊的风险。 并非所有的沟通都需要被所有端看到。政企单位往往需要针对不同级别的人员设置不同的功能权限。例如: 对于政府机关和事业单位,信息安全与国产化替代(信创)密不可分。如果通讯软件只能跑在特定国外的操作系统或芯片上,那么这种安全性本身就是不完整的。 一套合格的政企通讯系统,必须能够完美兼容国产化的基础设施。 在实际应用案例中(如市财政信息管理中心、国家统计局调查总队等),喧喧展示了其对国产计算平台的高度适配。无论是麒麟、统信等操作系统,还是龙芯、鲲鹏等国产处理器,通讯软件必须做到低功耗、高响应,且无兼容性漏洞。 安全不是孤立的软件。喧喧支持专网部署,并能与内部已有的复杂办公系统进行一体化集成。通过将零散的业务系统集成到一个受控的平台,减少了员工在多个系统间切换导致的信息泄露风险。 安全不仅是代码问题,更是研发团队的责任心问题。 政企单位在选择IM系统时,应考察产品背后的研发底蕴。喧喧所属的禅道团队在管理软件领域积累了十余年经验,这种经验体现在软件的“稳”上。对于军工、金融行业而言,软件崩溃一次可能导致重大的决策延误。 很多政企通讯软件为了追求功能丰富,集成了大量的冗余模块,导致系统臃肿、内存泄漏。喧喧反其道而行之,采用轻量化架构,即使在配置较低的国产服务器上也能稳定带起数千人的并发请求。这种对性能的克制,本质上是对安全和稳定性的另一种守护。 随着人工智能和量子计算的发展,政企通讯安全面临新的挑战: 政企内部通讯的安全保障,没有捷径可走。它需要单位从“租房者”心态转变为“房东”心态,通过私有化部署夺回数据主权;它需要研发团队摒弃花哨的噱头,在协议层、加密层、权限层做扎实的苦功夫。 喧喧在这一领域的表现,实事求是地为我们提供了一个范本:不张扬,但足够稳固;不开放底层协议,但支持灵活的应用扩展。对于追求极致安全与国产化适配的政企单位而言,回归私有、回归受控,才是信息安全的长久之道。一、 私有化部署
1. 物理层面的完全掌控

2. 闭环管理的数据留痕
二、 不透明与高强度的双重护航
1. 闭源协议的防御价值

2. 高级加密标准(AES)的实战应用
三、 身份与权限
1. 严格的准入机制

2. 功能层面的权限隔离
四、 国产化适配
1. 全栈适配的重要性

2. 软硬件一体化的协同
五、 团队能力与实事求是的稳定性
1. 轻量化带来的高稳定性

六、 2026年政企安全防范的新挑战
结语
为什么企业上线工单系统后,反而更忙了? 在很多企业推进IT服务管理的过程中,工单系统被视为“基础能力”。通过统一入口收集需求、记录处理过程,理论上可以提升效率与透明度。但在实际落地中,不少IT团队却发现一个问题:工单数量迅速增长,处理压力反而更大。ManageEngine卓豪 将为您解答这些问题! 例如,以前通过微信或电话沟通的问题,现在全部转化为工单;用户更容易提交需求,但处理能力并没有同步提升;一些原本可以快速解决的小问题,也被流程“放大”。这些变化,使IT团队陷入持续被动应对的状态。 这种情况并不意味着工单系统本身存在问题,而是使用方式存在偏差。 问题根源:工单系统只是“记录工具”,而不是“管理工具” 在一些企业中,工单系统的作用仅限于记录问题与处理过程,而缺乏对流程、优先级与资源的管理。这种情况下,系统只是将原本分散的需求集中起来,并没有优化处理方式。 例如,所有工单都进入同一队列,没有清晰的分类与优先级;分配依赖人工判断,容易出现不均衡;重复问题不断出现,但缺乏沉淀与复用机制。这些问题都会导致效率下降。 当工单系统无法提供管理能力时,就很难真正改善现状。 用户体验变化:为什么“提交更容易”反而带来压力? 工单系统的一个重要特点,是降低了用户提交需求的门槛。用户可以随时随地提交问题,这在提升体验的同时,也会增加需求数量。如果没有相应的筛选与分类机制,IT团队很容易被大量低价值请求淹没。 例如,一些简单问题本可以通过知识库解决,但用户仍然选择提交工单;重复问题没有被有效识别,导致重复处理。这些情况都会增加不必要的工作量。 因此,在提升入口便捷性的同时,也需要建立有效的分流机制。 ServiceDesk Plus 如何帮助企业“管住工单”? 通过ServiceDesk Plus,企业可以从流程、自动化与知识管理等多个方面优化工单处理。例如,通过分类与优先级规则,实现自动分配;通过知识库减少重复问题;通过SLA与报表分析提升整体效率。 这种综合能力,使工单系统从“记录工具”转变为“管理平台”,从而真正帮助IT团队减轻压力。 在下一部分中,我们将深入分析:如何从源头减少无效工单,让IT从“被动处理”走向“主动管理”。 从源头减少工单:为什么“少做工单”比“快做工单”更重要? 在多数企业中,IT团队往往将重点放在“如何更快处理工单”,例如提升响应速度、增加人手或优化分配机制。但如果不从源头减少无效需求,工单数量只会持续增长,最终形成恶性循环。因此,真正有效的策略,是在提升处理效率的同时,减少不必要的工单。 例如,通过分析历史数据,可以发现大量重复问题,如密码重置、基础软件安装或常见故障处理。这些问题如果通过知识库或自助服务解决,就无需进入工单流程,从而显著降低工作量。 这种“前移处理”的思路,是工单管理从被动走向主动的重要一步。 常见问题(FAQ)

如果缺乏优化机制,可能会出现这种情况。
通过知识库与自助服务实现。
不能,需要与流程与数据结合使用。
可以参考ITSM解决方案获取更多信息。
Photoshop(简称PS)是Adobe公司开发的专业图像编辑软件,它的主要功能是进行数字图像处理、照片修饰、图形设计和创意合成。如果你需要进行照片后期处理、平面设计、网页设计、数字绘画或任何与图像相关的工作,那Photoshop绝对是你必须掌握的专业工具。 Photoshop提供了全面的图像编辑工具和强大的创意功能,让用户能够实现从简单的照片调整到复杂的视觉特效的各种需求。软件支持图层、蒙版、滤镜、调整图层等核心概念,这些功能组合使用可以创造出无限可能的视觉效果。无论是专业设计师、摄影师、艺术家,还是普通用户,Photoshop都能提供相应的工具和解决方案。 Photoshop在创意产业中占据主导地位,广泛应用于广告设计、出版印刷、影视后期、游戏美术、UI设计等领域。软件的学习资源丰富,有大量的教程、插件和社区支持。 Photoshop安装包下载地址(Windows+MacOS 安装包,另含多套 PS 使用教程,全是干货): Photoshop的安装过程非常简单,全程只需要傻瓜式操作,下面我详细说明一下安装步骤,我安装的是 Photoshop 2025: 3) 选择安装位置,默认安装路径通常是"C:\Program Files\Adobe"。如果你想安装到其他磁盘,可以点击文件夹按钮自定义安装路径。建议安装到非系统盘,比如D盘,以避免占用系统盘空间。 安装完成后第一次启动Photoshop,你会看到主界面包含菜单栏、选项栏、工具栏、面板和工作区等部分。 要开始工作,首先需要创建新文档或打开现有图像。在"文件"菜单中选择"新建"可以创建空白画布,设置尺寸、分辨率、颜色模式等参数。选择"打开"可以导入各种格式的图像文件,如JPEG、PNG、TIFF、RAW等。 Photoshop的核心概念是图层。每个图层可以包含不同的图像元素,图层之间可以独立编辑而互不影响。图层面板显示了所有图层的堆叠顺序,你可以通过拖动调整图层顺序,通过眼睛图标控制图层可见性。 工具栏包含了Photoshop的所有主要工具,按功能分组: 形状工具:矩形工具、椭圆工具、多边形工具等,用于创建矢量形状。 Photoshop提供了多种图像调整功能,可以通过"图像"菜单或调整图层应用: 这些调整可以创建为调整图层,这样调整效果是非破坏性的,可以随时修改或删除。 对于新手用户,建议先从简单的照片调整开始练习,如裁剪、亮度调整、颜色校正等,Photoshop提供了丰富的学习资源。 Photoshop运行缓慢或卡顿怎么办?这个问题通常与硬件配置或软件设置有关。首先检查电脑是否满足Photoshop的最低系统要求,特别是内存和显卡。在Photoshop的"首选项"中,可以调整性能设置:增加内存使用量,设置合适的暂存盘(建议使用SSD),启用图形处理器加速。关闭不必要的面板和文档,减少同时打开的文件数量。定期清理Photoshop的缓存文件和历史记录。 Photoshop无法打开某些图像文件怎么办?首先确认文件格式是否受支持,Photoshop支持大多数常见图像格式。如果文件损坏,尝试使用其他软件打开或修复。检查文件扩展名是否正确,有时文件可能被错误命名。对于RAW格式照片,确保安装了最新的Camera Raw插件。某些特殊编码的文件可能需要额外的解码器或插件。 Photoshop的工具或功能无法使用怎么办?首先检查当前工作模式,某些工具在特定模式下不可用。检查图层状态,某些操作需要选择正确的图层或创建选区。查看工具选项栏的设置,某些工具可能有特殊限制或模式。如果问题涉及特定功能,检查是否安装了必要的插件或扩展。尝试重置Photoshop首选项:在启动时按住Alt+Ctrl+Shift(Windows)或Option+Command+Shift(macOS)。 Photoshop的字体显示不正常怎么办?首先检查字体是否已正确安装在系统中。在Photoshop的"文字"菜单中,可以查看可用字体列表。如果字体显示为灰色或缺失,可能需要重新安装字体。某些字体可能有特殊授权限制,只能在特定应用程序中使用。检查字符编码设置,特别是处理多语言文本时。还可以尝试清除字体缓存:在Creative Cloud应用程序中修复Photoshop安装。 Photoshop作为行业标准的图像编辑软件,在数字创意领域发挥着不可替代的作用。通过系统学习Photoshop的使用方法,用户可以实现从基础照片调整到复杂视觉创作的各种需求。 对于摄影师,Photoshop提供了专业的照片后期处理工具,可以提升图像质量、修复缺陷、创造艺术效果。对于设计师,软件的图层、蒙版、矢量工具支持复杂的设计项目和创意表达。对于艺术家,数字绘画和合成功能开启了新的创作可能性。对于普通用户,基础编辑功能可以满足日常的图像处理需求。 掌握Photoshop的使用技巧需要时间和实践,但投入是值得的。一个熟练的Photoshop用户可以在更短的时间内完成更高质量的工作,实现更复杂的创意构想。无论是职业发展还是个人兴趣,Photoshop技能都能带来显著的价值和满足感。PS下载
https://pan.quark.cn/s/be38afdc9026
https://pan.xunlei.com/s/VOq4vUVV5p5m-HXpN_DjKYjWA1?pwd=ussx#
PS安装
1)下载 Photoshop 2025.rar 压缩包文件,解压后得到下图的文件夹:
2)找到 Set-up.exe 可执行程序,双击启动安装。
4)等待安装完成,当提示"Photoshop 2025 已经成功安装"时,表示安装完成。你可以点击"启动"按钮立即启动Photoshop,或者稍后从开始菜单或桌面快捷方式启动。
PS基础使用

1)基本操作
2)主要工具
3)调整功能
PS常见使用问题
PS下载安装教程总结
VPS就是Virtual Private Server,虚拟专用服务器 VPS服务器供应商不少,不赘述,笔者买的是Vultr,还不错 至于购买步骤流程,可以参考这个文章:https://zhuanlan.zhihu.com/p/701057606 服务器配置如下图参考 第一步——选配置 第二步——选择操作系统(防火墙规则【相当于云服务器的安全组概念】) 第三步——创建实例,等待一会 第四步——有了自己的公网ip了,可以ssh链接了 第五步——防火墙组设置 使用udp搭配443端口(要放开哦,要不然无法连接VPN服务) 部署脚本是setup-hysteria.sh这个文件,名字无所谓,主要是内容如下: PASSWORD="password123" 是示例,实际上可以设置复杂一些,在搭配fail2ban这样可以保证服务器安全不被爆破 然后,把这个·setup-hysteria.sh·脚本丢到服务器上(ssh链接)比如笔者是放在var目录下的 然后 如下日志图: 查看服务状态也是在运行的 至此,我们的VPS服务器上的VPN服务就部署好了,接下来,我们在自己的本机电脑上,使用一些客户端工具,就可以使用VPN服务了 首先安装clash-verge-rev,这个软件客户端:https://github.com/clash-verge-rev/clash-verge-rev 如下图: 然后准备一个 然后,在clash的订阅这里,新建、Local、随便起个名字,再上传刚刚准备好的订阅 然后,点击上图的保存按钮,再右键使用之,就订阅好了 而后开启代理 在clash里面也能看到我们的ip已经变成了新加坡了 至此,VPN搞定完毕,就可以正常访问github,用谷歌搜索学习代码知识啦本文图文并茂记录购买Vultr供应商的VPS,通过shell脚本的方式,快速部署一个属于自己的VPN,从而实现逛GitHub自由...
1. 什么是VPS?和现在的云服务器的区别
无论VPS还是云服务器,都是物理意义上的服务器上的一部分,不存在两个物理服务器各出一半
2. 买VPS服务器做相应配置
建议,提前准备好一个VISA信用卡哦






3. 执行一键部署VPN脚本
#!/bin/bash
set -e
# 注意,要赋予此脚本执行权限:chmod +x setup-hysteria.sh
# 然后在执行:./setup-hysteria.sh
# ==================== 配置变量(按需修改) ====================
PASSWORD="password123"
LISTEN_PORT="443"
MASQUERADE_URL="https://www.bing.com"
CERT_DAYS="365"
HY_VERSION="v2.8.1"
# ============================================================
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m'
echo -e "${GREEN}========================================${NC}"
echo -e "${GREEN} Hysteria ${HY_VERSION} VPN 服务器安装 ${NC}"
echo -e "${GREEN} Ubuntu 22.04 专用 ${NC}"
echo -e "${GREEN}========================================${NC}"
if [[ $EUID -ne 0 ]]; then
echo -e "${RED}错误:请使用 root 用户执行此脚本 (sudo ./script.sh)${NC}"
exit 1
fi
echo -e "${YELLOW}[1/7] 更新系统并安装依赖...${NC}"
apt update -qq
apt install -y -qq wget curl openssl ufw
echo -e "${YELLOW}[2/7] 创建目录结构...${NC}"
mkdir -p /etc/hysteria /etc/ssl/hysteria
echo -e "${YELLOW}[3/7] 生成 SSL 证书(有效期${CERT_DAYS}天)...${NC}"
openssl req -x509 -newkey rsa:4096 -nodes \
-keyout /etc/ssl/hysteria/key.pem \
-out /etc/ssl/hysteria/cert.pem \
-days ${CERT_DAYS} \
-subj "/CN=www.bing.com"
chmod 644 /etc/ssl/hysteria/key.pem
chmod 644 /etc/ssl/hysteria/cert.pem
echo -e "${GREEN}✓ 证书权限已设置为 644${NC}"
echo -e "${YELLOW}[4/7] 创建配置文件 /etc/hysteria/config.yaml ...${NC}"
cat > /etc/hysteria/config.yaml << YAML
listen: :${LISTEN_PORT}
tls:
cert: /etc/ssl/hysteria/cert.pem
key: /etc/ssl/hysteria/key.pem
auth:
type: password
password: ${PASSWORD}
masquerade:
type: proxy
proxy:
url: ${MASQUERADE_URL}
rewriteHost: true
quic:
initStreamReceiveWindow: 8388608
maxStreamReceiveWindow: 8388608
initConnReceiveWindow: 20971520
maxConnReceiveWindow: 20971520
YAML
echo -e "${YELLOW}[5/7] 使用官方脚本安装 Hysteria ${HY_VERSION} ...${NC}"
bash <(curl -fsSL https://get.hy2.sh/) --version ${HY_VERSION}
echo -e "${YELLOW}[6/7] 配置防火墙 (ufw)...${NC}"
ufw allow ${LISTEN_PORT}/udp
echo -e "${GREEN}已允许 UDP ${LISTEN_PORT} 端口${NC}"
echo -e "${YELLOW}[7/7] 重启 Hysteria 服务并应用配置...${NC}"
systemctl stop hysteria-server || true
systemctl start hysteria-server
systemctl enable hysteria-server
sleep 3
if systemctl is-active --quiet hysteria-server; then
SERVER_IP=$(curl -s ifconfig.me)
echo -e "\n${GREEN}========================================${NC}"
echo -e "${GREEN}✓ Hysteria 部署成功!${NC}"
echo -e "${GREEN}========================================${NC}"
echo -e "${YELLOW}服务状态:${NC}$(systemctl status hysteria-server --no-pager | grep "Active:")"
echo -e "${YELLOW}端口监听:${NC}"
ss -tulnp | grep ":${LISTEN_PORT}" | grep -v grep || echo " 等待端口监听..."
echo ""
echo -e "${GREEN}客户端连接信息:${NC}"
echo -e " 服务器地址:${SERVER_IP}:${LISTEN_PORT}"
echo -e " 密码:${PASSWORD}"
echo -e " 协议:Hysteria ${HY_VERSION}"
echo ""
echo -e "${YELLOW}常用管理命令:${NC}"
echo -e " 查看状态: systemctl status hysteria-server"
echo -e " 查看日志: journalctl -u hysteria-server -f"
echo -e " 重启服务: systemctl restart hysteria-server"
echo -e " 停止服务: systemctl stop hysteria-server"
else
echo -e "${RED}服务启动失败!查看错误日志:${NC}"
journalctl -u hysteria-server -n 20 --no-pager
exit 1
firoot@vultr:/var# ls
backups crash local log opt setup-hysteria.sh spool
cache lib lock mail run snap tmpchmod +x setup-hysteria.sh 给权限,再 ./setup-hysteria.sh 就可以一键部署好vpn服务了
root@vultr:/var# systemctl status hysteria-server
● hysteria-server.service - Hysteria Server Service (config.yaml)
Loaded: loaded (/etc/systemd/system/hysteria-server.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2026-04-21 14:17:33 UTC; 2min 34s ago
Main PID: 8156 (hysteria)
Tasks: 7 (limit: 1001)
Memory: 5.9M
CPU: 57ms
CGroup: /system.slice/hysteria-server.service
└─8156 /usr/local/bin/hysteria server --config /etc/hysteria/config.yaml
Apr 21 14:17:33 vultr systemd[1]: Started Hysteria Server Service (config.yaml).
Apr 21 14:17:33 vultr hysteria[8156]: 2026-04-21T14:17:33Z INFO server mode
Apr 21 14:17:33 vultr hysteria[8156]: 2026-04-21T14:17:33Z INFO server up and running {"listen": ":443"}
root@vultr:/var#3. 使用clash-verge-rev进行订阅VPN服务(通过配置文件的方式)

conf.yaml文件,内容如下:# ========== 代理节点配置 ==========
proxies:
- name: "VPS-Hysteria2"
type: hysteria2
server: 64.176.80.218
port: 443
password: "password123"
sni: www.bing.com
skip-cert-verify: true
# 以下为可选优化参数
up: "100 Mbps"
down: "500 Mbps"
# ========== 规则集配置(可选,用于增强分流)==========
rule-providers:
reject:
type: http
behavior: domain
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/reject.txt"
path: ./ruleset/reject.yaml
interval: 86400
icloud:
type: http
behavior: domain
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/icloud.txt"
path: ./ruleset/icloud.yaml
interval: 86400
apple:
type: http
behavior: domain
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/apple.txt"
path: ./ruleset/apple.yaml
interval: 86400
google:
type: http
behavior: domain
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/google.txt"
path: ./ruleset/google.yaml
interval: 86400
proxy:
type: http
behavior: domain
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/proxy.txt"
path: ./ruleset/proxy.yaml
interval: 86400
direct:
type: http
behavior: domain
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/direct.txt"
path: ./ruleset/direct.yaml
interval: 86400
gfw:
type: http
behavior: domain
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/gfw.txt"
path: ./ruleset/gfw.yaml
interval: 86400
tld-not-cn:
type: http
behavior: domain
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/tld-not-cn.txt"
path: ./ruleset/tld-not-cn.yaml
interval: 86400
telegramcidr:
type: http
behavior: ipcidr
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/telegramcidr.txt"
path: ./ruleset/telegramcidr.yaml
interval: 86400
cncidr:
type: http
behavior: ipcidr
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/cncidr.txt"
path: ./ruleset/cncidr.yaml
interval: 86400
lancidr:
type: http
behavior: ipcidr
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/lancidr.txt"
path: ./ruleset/lancidr.yaml
interval: 86400
applications:
type: http
behavior: classical
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/applications.txt"
path: ./ruleset/applications.yaml
interval: 86400
# ========== 代理组配置 ==========
proxy-groups:
- name: "🚀 节点选择"
type: select
proxies:
- "VPS-Hysteria2"
- "DIRECT"
- name: "🎬 流媒体"
type: select
proxies:
- "VPS-Hysteria2"
- "DIRECT"
- name: "🤖 AI服务"
type: select
proxies:
- "VPS-Hysteria2"
- "DIRECT"
# ========== 规则配置 ==========
rules:
# ===== 1. 规则集分流(如果不想用可以删除本块)=====
- RULE-SET,applications,DIRECT
- RULE-SET,icloud,DIRECT
- RULE-SET,apple,DIRECT
- RULE-SET,google,🚀 节点选择
- RULE-SET,proxy,🚀 节点选择
- RULE-SET,direct,DIRECT
- RULE-SET,lancidr,DIRECT
- RULE-SET,cncidr,DIRECT
- RULE-SET,telegramcidr,🚀 节点选择
# ===== 2. 国内网站强制直连 =====
# 通用规则
- DOMAIN-SUFFIX,cn,DIRECT
- GEOIP,CN,DIRECT,no-resolve
- GEOSITE,CN,DIRECT
# 常见国内网站关键词
- DOMAIN-KEYWORD,baidu,DIRECT
- DOMAIN-KEYWORD,taobao,DIRECT
- DOMAIN-KEYWORD,alipay,DIRECT
- DOMAIN-KEYWORD,qq,DIRECT
- DOMAIN-KEYWORD,weixin,DIRECT
- DOMAIN-KEYWORD,bilibili,DIRECT
- DOMAIN-KEYWORD,bytedance,DIRECT
- DOMAIN-KEYWORD,zhihu,DIRECT
- DOMAIN-KEYWORD,jd,DIRECT
- DOMAIN-KEYWORD,meituan,DIRECT
- DOMAIN-KEYWORD,douyin,DIRECT
- DOMAIN-KEYWORD,pinduoduo,DIRECT
# 局域网与保留地址
#- IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
#- IP-CIDR,10.0.0.0/8,DIRECT,no-resolve
#- IP-CIDR,172.16.0.0/12,DIRECT,no-resolve
#- IP-CIDR,127.0.0.0/8,DIRECT,no-resolve
#- IP-CIDR,100.64.0.0/10,DIRECT,no-resolve
#- IP-CIDR,17.0.0.0/8,DIRECT,no-resolve
# ===== 3. AI 服务走代理 =====
# OpenAI
- DOMAIN-KEYWORD,openai,🤖 AI服务
- DOMAIN-SUFFIX,openai.com,🤖 AI服务
- DOMAIN-SUFFIX,chatgpt.com,🤖 AI服务
- DOMAIN-SUFFIX,ai.com,🤖 AI服务
- DOMAIN-SUFFIX,oaistatic.com,🤖 AI服务
- DOMAIN-SUFFIX,oaiusercontent.com,🤖 AI服务
- DOMAIN-KEYWORD,chatgpt,🤖 AI服务
# Anthropic (Claude)
- DOMAIN-SUFFIX,anthropic.com,🤖 AI服务
- DOMAIN-SUFFIX,claude.ai,🤖 AI服务
# Google (Gemini/Bard/DeepMind)
- DOMAIN-SUFFIX,gemini.google.com,🤖 AI服务
- DOMAIN-SUFFIX,bard.google.com,🤖 AI服务
- DOMAIN-SUFFIX,deepmind.google,🤖 AI服务
- DOMAIN-SUFFIX,deepmind.com,🤖 AI服务
- DOMAIN-SUFFIX,ai.google.dev,🤖 AI服务
- DOMAIN-SUFFIX,generativeai.google,🤖 AI服务
- DOMAIN-SUFFIX,proactivebackend-pa.googleapis.com,🤖 AI服务
- DOMAIN-KEYWORD,generativelanguage,🤖 AI服务
# Meta (Llama)
- DOMAIN-SUFFIX,meta.ai,🤖 AI服务
- DOMAIN-SUFFIX,llama.com,🤖 AI服务
- DOMAIN-SUFFIX,llama.meta.com,🤖 AI服务
# 其他海外AI服务
- DOMAIN-SUFFIX,perplexity.ai,🤖 AI服务
- DOMAIN-SUFFIX,pplx.ai,🤖 AI服务
- DOMAIN-KEYWORD,perplexity,🤖 AI服务
- DOMAIN-SUFFIX,x.ai,🤖 AI服务
- DOMAIN-KEYWORD,grok,🤖 AI服务
- DOMAIN-SUFFIX,poe.com,🤖 AI服务
- DOMAIN-SUFFIX,you.com,🤖 AI服务
# Hugging Face (AI模型社区)
- DOMAIN-SUFFIX,huggingface.co,🤖 AI服务
- DOMAIN-SUFFIX,hf.co,🤖 AI服务
# 平台/聚合类AI服务
- DOMAIN-SUFFIX,openrouter.ai,🤖 AI服务
- DOMAIN-SUFFIX,together.ai,🤖 AI服务
# Cursor AI 编辑器
- DOMAIN-SUFFIX,cursor.com,🤖 AI服务
- DOMAIN-SUFFIX,cursor.sh,🤖 AI服务
- DOMAIN-SUFFIX,cursor-cdn.com,🤖 AI服务
- DOMAIN-SUFFIX,workos.com,🤖 AI服务
- DOMAIN-SUFFIX,challenges.cloudflare.com,🤖 AI服务
# Amazon Kiro / Amazon AI 服务
- DOMAIN-SUFFIX,kiro.dev,🤖 AI服务
- DOMAIN-SUFFIX,amazonkiro.com,🤖 AI服务
- DOMAIN-KEYWORD,kiro,🤖 AI服务
- DOMAIN-SUFFIX,aws.amazon.com,🤖 AI服务
- DOMAIN-SUFFIX,amazonaws.com,🤖 AI服务
- DOMAIN-SUFFIX,bedrock.aws,🤖 AI服务
- DOMAIN-KEYWORD,amazonbedrock,🤖 AI服务
- DOMAIN-SUFFIX,q.aws.amazon.com,🤖 AI服务
- DOMAIN-SUFFIX,codecatalyst.aws,🤖 AI服务
- DOMAIN-SUFFIX,sagemaker.aws,🤖 AI服务
# 国内AI服务 (默认直连,如需走代理请取消注释并修改策略)
# - DOMAIN-SUFFIX,deepseek.com,DIRECT
# - DOMAIN-SUFFIX,yiyan.baidu.com,DIRECT
# - DOMAIN-SUFFIX,tongyi.aliyun.com,DIRECT
# - DOMAIN-SUFFIX,doubao.com,DIRECT
# - DOMAIN-SUFFIX,chatglm.cn,DIRECT
# - DOMAIN-SUFFIX,xinghuo.xfyun.cn,DIRECT
# - DOMAIN-SUFFIX,kimi.moonshot.cn,DIRECT
# - DOMAIN-SUFFIX,yuanbao.tencent.com,DIRECT
# ===== 4. 流媒体走代理 =====
- DOMAIN-KEYWORD,youtube,🎬 流媒体
- DOMAIN-KEYWORD,netflix,🎬 流媒体
- DOMAIN-KEYWORD,disney,🎬 流媒体
- DOMAIN-KEYWORD,hbo,🎬 流媒体
- DOMAIN-KEYWORD,hulu,🎬 流媒体
- DOMAIN-KEYWORD,spotify,🎬 流媒体
- DOMAIN-KEYWORD,twitch,🎬 流媒体
- DOMAIN-SUFFIX,googlevideo.com,🎬 流媒体
- DOMAIN-SUFFIX,ytimg.com,🎬 流媒体
- DOMAIN-SUFFIX,ggpht.com,🎬 流媒体
- DOMAIN-SUFFIX,fastly.com,🎬 流媒体
# ===== 5. 其他常用国外服务走代理 =====
- DOMAIN-KEYWORD,github,🚀 节点选择
- DOMAIN-SUFFIX,github.com,🚀 节点选择
- DOMAIN-SUFFIX,github.io,🚀 节点选择
- DOMAIN-SUFFIX,githubassets.com,🚀 节点选择
- DOMAIN-SUFFIX,githubusercontent.com,🚀 节点选择
- DOMAIN-KEYWORD,google,🚀 节点选择
- DOMAIN-KEYWORD,twitter,🚀 节点选择
- DOMAIN-KEYWORD,facebook,🚀 节点选择
- DOMAIN-KEYWORD,instagram,🚀 节点选择
- DOMAIN-KEYWORD,reddit,🚀 节点选择
- DOMAIN-KEYWORD,telegram,🚀 节点选择
- DOMAIN-KEYWORD,whatsapp,🚀 节点选择
- DOMAIN-KEYWORD,zoom,🚀 节点选择
- DOMAIN-KEYWORD,slack,🚀 节点选择
- DOMAIN-KEYWORD,notion,🚀 节点选择
# ===== 6. 最终兜底规则 =====
# 所有未被上述规则匹配的流量,默认走代理节点
- MATCH,🚀 节点选择conf.yaml配置文件



担心网站被劫持、用户数据泄露? 随着网络安全形势日益严峻,主流浏览器对非HTTPS网站开始显示“不安全”警告。如果你的网站还在使用HTTP,不仅影响用户体验,更可能错失大量商机。 升级第一步,打开JoySSL官网,注册时填写注册码230970,获取大额优惠。 升级的第二步,是申请一张SSL证书。根据你的网站类型和验证需求,可以选择: 在服务器上生成CSR(证书签名请求)文件,其中包含网站域名和公司信息。将CSR提交给我们,验证通过后即可下载证书文件。不同服务器环境(如Nginx、Apache、IIS、Tomcat等)生成CSR的方式略有差异,但核心步骤一致。 下载证书后,根据你的服务器类型进行部署。以常见的Nginx为例,你需要将证书文件和私钥文件放置在指定目录,并在站点配置中开启443端口监听,指定证书路径。Apache则需加载SSL模块并配置虚拟主机。其他服务器环境也有对应的图形化或命令行配置方式。 为了将所有HTTP流量自动跳转到HTTPS,需要在网站配置中加入重定向规则。无论是通过Nginx的rewrite指令,还是Apache的.htaccess文件,都可以实现永久重定向(301),确保用户访问旧链接时无缝切换至加密版本,同时避免重复内容影响SEO。 将网页内所有引用的图片、CSS、JS等资源的链接改为HTTPS或协议相对路径(即“//域名/资源”形式),否则浏览器会因混合内容而阻止加载。同时强烈建议开启HSTS(HTTP严格传输安全),该机制会通知浏览器在未来一段时间内强制使用HTTPS访问你的网站,彻底杜绝降级攻击。 部署完成后,可以使用SSL Labs在线工具检测配置是否正确,重点关注证书链完整性、协议支持及加密套件强度,力争达到A+评分。此外,别忘了更新搜索引擎资源平台(如百度搜索资源平台、Google Search Console)中的网站地址,并提交新的HTTPS站点地图,以加速搜索引擎对新协议的收录。
你只差这一步:部署SSL证书,开启HTTPS加密
第一步:选择合适的CA机构和SSL证书
第二步:生成CSR并提交申请
第三步:安装配置SSL证书
第四步:设置301重定向
第五步:更新资源链接并配置HSTS
第六步:测试验证
针对卤制品行业“一锅一卤”、依赖人工经验、保质期短且食品安全要求极高的特点,一套成熟的MES(制造执行系统)解决方案不仅仅是软件的安装,更是对生产流程的标准化重塑。 工艺参数监控 (IoT集成): 3、全流程质量追溯 (一物一码) 4、仓储物流与冷链协同 在卤制品行业,AI与制造执行系统(MES)的深度融合正推动着生产管理从“经验驱动”向“数据智能驱动”的变革。这种结合不仅解决了传统生产中的效率、质量和追溯难题,更以前所未有的精度保障了食品安全与产品一致性。
**一、核心痛点与解决思路
二、MES解决方案的四大核心功能模块**
1、生产计划与智能排程 (APS)
卤制品通常具有“短保、多SKU、多门店”的特点,排程极-其复杂。
以销定产: 系统对接前端销售(ERP/POS)和门店订单,自动生成生产需求。
智能排产: 综合考虑卤锅产能、人员班次、原料库存,自动生成最优生产计划。例如,系统能根据订单优先级,自动安排“急单”插队,并动态调整后续生产任务。
2、生产过程精细化管控
这是MES在卤制品行业最关键的环节,重点在于将“经验”转化为“数据”。
配方与投料管理:防错机制: 系统下发电子配方(BOM),工人通过智能终端扫描原料条码投料,系统自动校验重量和种类,防止错投、漏投。
添-加剂管控: 对食盐、防腐剂等关键添-加剂进行精准称重记录,确保符合食品安全法规。自动采集: 通过物联网网关连接卤煮锅、腌制机等设备,实时采集温度、压力、时间、搅拌频率等数据。
电子SOP: 工位屏幕显示标准作业程序,指导工人操作。若卤制温度偏离设定值(如设定100℃,实际95℃),系统自动报警甚至停机,确保每一锅卤味风味一致。
建立“正向可追踪,反向可溯源”的体系,是应对食安检查的刚需。
赋码关联: 在包装环节,利用视觉识别和机械手技术,建立“袋码-箱码-托盘码”的关联关系。
秒级追溯:反向查询: 输入成品批次,可查原料来源(哪批鸭脖、哪批香料)、生产班组、卤制参数、质检报告。
正向追踪: 若原料出现问题,可瞬间锁定受影响的成品批次及发往的门店,实现精准召回,将损失降至最低。
卤制品对新鲜度要求极高,MES需与WMS(仓储管理系统)和TMS(运输管理系统)无缝集成。
效期管理: 严格执行“先进先出”,临期产品自动预警。
冷链监控: 虽然主要在TMS中实现,但MES需记录成品出库时的温度状态。结合绝味等企业的实践,系统需确保从工厂到门店的“24小时鲜达”承诺,实时监控车厢温湿度,异常即报警。
三、万界星空科技AI赋能的MES系统
1、智能动态排程: 系统接收订单后,AI算法会综合考虑设备产能、人员配置、物料库存等多种因素,自动生成最优生产计划。当遇到紧急插单或设备故障等突发情况时,系统能实时动态调整排程,确保订单按时交付,最大化设备利用率。
生产执行透明化: 生产任务可实时下发至工人的移动终端,管理者能随时追踪生产进度。通过实时数据看板,生产现场的进度、设备状态和质量数据一目了然,实现了生产过程的透明化管理。
2、精-准质量控制与工艺管理
AI技术将质量控制从“事-后检验”前移至“事-前预防”和“事-中控制”,确保产品口味与质量的稳定。
AI视觉检测: 利用高分辨率工业相机和深度学习算法,对生产线上的产品进行毫秒级扫描,精准识别包装缺陷、异物、颜色不均等问题,其效率和准确性远超人工目检。
智能工艺控制: 在卤制、腌制等关键工序,AI模型可以根据原料(如肉类)的批次特性(如含水量),自动计算并设定最佳的工艺参数(如卤制时间、温度、加水量),确保每批次产品口味一致。
预测性质量分析: AI模型整合生产、设备、环境等多源数据,提前预测质量风险。例如,分析出特定批次原料结合车间温湿度变化可能导致的产品质构偏差,从而提前预警并建议调整工艺。
3、设备预测性维护与能耗优化
通过AI对设备数据的深度分析,可以实现从被动维修到主动维护的转变,并有效控制能源成本。
预测性维护: AI模型通过分析MES采集的设备振动、温度等实时数据,能够预测设备可能出现的故障,并提前生成维护工单,有效避免了非计划性停机,保障生产连续性。
能耗智能管控: AI模型分析设备能耗与生产负荷、工艺参数之间的关联,找到能耗与效率的最佳平衡点。例如,自动优化卤制设备的温度、风机转速等,在保证产品质量的前提下,可实现5%-15%的能耗降低。
4、全链路追溯与供应链协同
AI与MES的结合,构建了从原料到成品的“一物一码”全链条追溯体系,极大提升了食品安全保障和供应链效率。
精-准追溯: 系统支持从成品到原料的反向追溯和从原料到成品的正向追溯。
供应链优化: AI通过分析历史销售数据、季节性趋势等外部因素,精准预测市场需求,帮助企业优化生产计划和库存水平,有效减少因过度生产或产品变质造成的浪费。
一物一码应用: 为每件产品赋予唯一的追溯码,消费者扫码即可查看产品的“身-份-证”,包括产地、检测报告、生产及运输温控曲线等信息,增强了品牌信任度。
好多朋友找到我说,大霖,我找到靠谱的接口了,但是怎么接入啊?有没有现成的代码?能不能给个教程? 害,这有啥难的,今天我就给你们整个保姆级的实战教程,3 分钟就能搞定,代码我都给你们写好了,复制过去就能用,看完你就能自己把 GPT-Image-2 接入到你的项目里。 我们就用速创 API 来做演示,毕竟这个是我自己在用的,靠谱,而且接入贼简单。 第一步:注册账号,拿到 API Key 注册完登录之后,去控制台的密钥管理里,就能拿到你的 API Key 了,这个就是你调用接口的凭证,别泄露给别人就行。 第二步:了解接口参数 提交生图任务接口 prompt:就是你的提示词,必填,你要生成什么图,就写这 第三步:复制代码,直接运行 import requests API_KEY = "sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" BASE_URL = "https://api.wuyinkeji.com/api/async" def submit_task(prompt): def get_result(task_id): if name == "__main__": 就这么简单!你把这个代码复制过去,把你的 API Key 填进去,直接运行就能用了。 而且你不用担心,就算任务失败了,钱也会自动退给你,不会扣你的钱,你放心调试就行。 对了,这个接口是没有并发限制的,如果你要批量生成图,直接开多线程或者异步调用就行,不用担心限流,随便你怎么造,都没问题。 我自己用这个接口做了个小工具,批量生成电商的主图,一次跑几百个任务,都没出问题,稳的很。 如果你也想试试,赶紧去速创 API 官网注册个账号,把代码拿去跑一下,几分钟就能体验到 GPT-Image-2 的强大了,反正失败了也不扣钱,试试也不吃亏。 有啥问题的话,评论区留言就行,我看到了会回你。
首先,你得先去速创 API 官网注册个账号,这个很简单,用手机号或者邮箱就能注册,30 秒就能搞定。
速创的接口很简单,两个核心接口,一个是提交生成任务的,一个是查询任务结果的,我把接口文档给你们放这了,你们可以看下:
这个接口是 POST 请求,用来提交你的生图需求,参数很简单:
size:图片的尺寸,可选,默认 auto,支持 1:1、3:2 这些
urls:参考图的 URL,可选,如果你要以图生图的话,就填这个
查询任务结果接口
因为生图是异步的,所以提交任务之后,你需要用这个接口去查结果,参数就一个任务 ID,提交任务的时候会返回给你。
好了,接下来就是代码了,我给你们写了 Python 的示例,直接复制就能用,把你的 API Key 填进去就行。
import json
import time替换成你自己的API Key
速创API的基础地址
1. 提交生图任务
url = f"{BASE_URL}/image_gpt"
headers = {
"Authorization": API_KEY,
"Content-Type": "application/json"
}
payload = {
"prompt": prompt,
"size": "auto"
}
response = requests.post(url, headers=headers, json=payload)
if response.status_code == 200:
data = response.json()
return data.get("id") # 返回任务ID
else:
print(f"提交失败: {response.text}")
return None
2. 查询任务结果
url = f"{BASE_URL}/detail"
params = {
"key": API_KEY,
"id": task_id
}
response = requests.get(url, params=params)
if response.status_code == 200:
data = response.json()
# 0是处理中,1是成功,2是失败
if data.get("code") == 1:
return data.get("data")
elif data.get("code") == 2:
print(f"任务失败: {data.get('msg')}")
return None
else:
return None
else:
print(f"查询失败: {response.text}")
return None
主流程
prompt = "一只可爱的布偶猫,穿着宇航服,漂浮在绚烂的银河中,照片级真实感,4K高清细节"
print("提交生图任务...")
task_id = submit_task(prompt)
if not task_id:
exit()
print(f"任务提交成功,任务ID: {task_id},等待结果...")
# 轮询查询结果
while True:
result = get_result(task_id)
if result is not None:
print(f"生成成功!图片URL: {result}")
break
elif result is None and get_result is not None:
# 失败了就退出
break
else:
print("任务处理中,等待2秒...")
time.sleep(2)
JimuReport 积木报表旗下 JimuBI 大屏 v2.3.2 上线了两种 AI 生成方式: 把"大屏制作"从"拖控件 + 调 JSON + 改配色"的体力活,变成了"描述 + AI 生成 + AI 迭代"的对话式协作。 Skills 仓库地址:https://github.com/jeecgboot/skills 按场景挑对应技能: 在 Claude Code 对话框里直接说: Skill 首次运行会提示你提供后台 API 地址和 Token: 随后进入自动生成过程——选布局、选组件、配数据源、调用 JimuBI 大屏 API 落库: 生成效果——真的相当惊艳: 打开设计器,大屏立刻就绪。还想继续调?交给方式二的 AI 助手。 大屏编辑器里内置了 AI 助手,直接在编辑器内对话修改: AI 一句话修改组件的配置项: 过去要懂 ECharts 配置项才能精细调样式——tooltip、series、axisLabel 成百上千的参数。现在一句自然语言全部搞定。 SpringBoot 3: SpringBoot 2: JimuBI 大屏 v2.3.2 核心做了一件事:用 AI 接管"大屏制作"的整个生命周期。 Skills 管生成,AI 助手管迭代,人只负责打磨。 如果你的团队正在被"做大屏排期两周、改样式还要再两天"卡脖子——这是一个"今天升级,下周效率翻倍"的版本。 本文为 JimuReport AI 专题研究系列文章。 <!-- 发布设置:置顶=是, 推荐=是, 发布时删除第一行大标题 -->JimuReport AI专题研究 | 2026-04-13 发布,AI 助手 + Claude Code Skills 双管齐下
划重点:现在可以一句话生成大屏了
jimubi-bigscreen / jimubi-dashboard 两个 Skill)
方式一:Claude Code 里一句话生成大屏(0 → 1)

Step 1:装 Skill
jimubi-bigscreen — 全屏数据可视化大屏(展厅、监控室、会议汇报)jimubi-dashboard — 栅格布局数据仪表盘(业务日常查看、筛选钻取)Step 2:一句话描述需求



方式二:设计器里对话改大屏(1 → 10)


集成方式:改一行版本号
<dependency>
<groupId>org.jeecgframework.jimureport</groupId>
<artifactId>jimubi-spring-boot3-starter</artifactId>
<version>2.3.2</version>
</dependency><dependency>
<groupId>org.jeecgframework.jimureport</groupId>
<artifactId>jimubi-spring-boot-starter</artifactId>
<version>2.3.2</version>
</dependency>总结
在使用代理IP进行网络请求时,底层依赖的协议决定了数据传输的方式、安全性和适用场景。不同的协议有不同的特点和限制。 本文将从技术角度介绍三种最常见的代理协议:HTTP、HTTPS 和 SOCKS5,并对比它们的差异,帮助开发者根据实际需求选择合适的协议。 1.1 基本概念 1.3 特点 1.4 适用场景 无需加密的测试环境 2.1 基本概念 2.3 CONNECT 方法示例 2.4 特点 2.5 适用场景 现代 Web 应用(绝大多数网站已强制 HTTPS) 3.1 基本概念 3.2 代码示例 3.3 使用 socket 层面连接 3.4 特点
运行环境项目 版本 操作系统 Ubuntu 22.04 / macOS Ventura Python 3.8+ 依赖库 requests、PySocks(可选) 一、HTTP 代理
HTTP 代理是最早也是最常见的代理协议之一,专门用于处理 HTTP 协议格式的请求。
工作原理:
1.2 代码示例import requests
# HTTP 代理配置
proxies = {
'http': 'http://proxy.example.com:8080',
'https': 'http://proxy.example.com:8080'
}
response = requests.get('http://httpbin.org/ip', proxies=proxies)
print(response.text)特性 说明 加密 ❌ 明文传输 支持协议 仅 HTTP/HTTPS 性能 一般 配置复杂度 简单 二、HTTPS 代理
HTTPS 代理本质上是 HTTP 代理配合 SSL/TLS 加密层,通过 CONNECT 方法建立隧道传输加密数据。
工作原理:
2.2 代码示例import requests
# HTTPS 代理配置(与 HTTP 代理配置方式相同)
proxies = {
'http': 'http://proxy.example.com:8080',
'https': 'http://proxy.example.com:8080'
}
response = requests.get('https://httpbin.org/ip', proxies=proxies)
print(response.text)CONNECT httpbin.org:443 HTTP/1.1
Host: httpbin.org:443
Proxy-Connection: Keep-Alive
HTTP/1.1 200 Connection Established
三、SOCKS5 代理
SOCKS(Socket Secure)协议工作在会话层,比 HTTP 代理更底层。SOCKS5 是其最新版本,支持 TCP 和 UDP 代理。
握手流程:
需要安装 PySocks:pip install PySocksimport requests
# SOCKS5 代理配置
proxies = {
'http': 'socks5://user:pass@proxy.example.com:1080',
'https': 'socks5://user:pass@proxy.example.com:1080'
}
response = requests.get('https://httpbin.org/ip', proxies=proxies)
print(response.text)import socks
import socket
socks.set_default_proxy(socks.SOCKS5, "proxy.example.com", 1080)
socket.socket = socks.socksocket
import urllib.request
response = urllib.request.urlopen('https://httpbin.org/ip')
print(response.read().decode())
3.5 适用场景四、如何选择合适的协议?
def choose_protocol(need_encryption: bool, is_web: bool, need_udp: bool):
if need_udp:
return "SOCKS5(UDP 场景)"
if need_encryption:
return "HTTPS(加密需求)"
if is_web:
return "HTTP(公开网页)"
return "SOCKS5(通用场景)"
# 示例
print(choose_protocol(need_encryption=True, is_web=True, need_udp=False))
# 输出:HTTPS(加密需求)
这期分享的安全会议论文是来自安全顶级会议之一的usenix security 2025 best paper,题目是We Have a Package for You! A Comprehensive Analysis of Package Hallucinations by Code Generating LLMs)(我们为您准备了一个包裹!代码生成 LLM 对软件包幻觉的全面分析),官网链接为 https://www.usenix.org/conference/usenixsecurity25/presentati... 最近的研究表明,多达 97% 的开发者在某种程度上使用代码生成 LLM,项目中大约 30% 的代码是由 AI 生成的,这些数字反映出代码生成 LLM 在项目开发方面对于效率的显著提升。然而 LLM 存在一个关键问题即存在“幻觉”——生成的在事实上不正确、毫无意义或与输入任务完全无关的输出。 本篇论文聚焦于代码生成过程中 LLM 的包幻觉,如今编程语言高度依赖于集中式的包仓库(如 PyPI 和 npm),而代码生成 LLMs 虽然极大提升了编程效率,但也引入了一种新的威胁——包幻觉,即生成不真实或错误的包推荐。包幻觉是由于事实冲突错误产生的,这种现象可能被攻击者利用,通过故意将恶意软件包命名为与合法软件包相似,从而导致软件供应链的包混淆攻击。文章强调了研究包幻觉的重要性,这是软件安全中一个日益严重的问题。 这篇论文旨在调查“包幻觉”现象,分析其在不同 LLMs 中的表现。研究的主要贡献包括: 文章认为现有代码基准(HumanEval、EvalPlus)提示词数量太少、主题不够“日常”,所以自行设计两套数据量更大、种类更多样的数据集,并且都做了“时间分层”(recent vs all-time)来研究“新知识/新包”对幻觉的影响。 A. Stack Overflow 数据集(更贴近真实用户提问) B. LLM 生成的数据集(覆盖“包生态主题空间”) A. 模型选择 B. 语言选择 C. 测试环境一致性 本文并不只靠解析 import/require 来确定“需要安装的包”,因为 import 的是模块名,模块与包并非一一对应,而且很多代码片段不足以唯一推断依赖。因此采用三条启发式来“尽可能贴近用户真实行为”地抽取包名,再去对照仓库列表判断是否存在。 A. 直接抓安装命令 B. 把“生成的代码”再喂回同一个模型,让它列依赖 C. 用“原始任务 prompt”问模型需要哪些 packages 包幻觉在所有测试的模型中都是普遍存在的,商业模型的包幻觉率相对较低,而开源模型则表现出更高的幻觉率。具体来说: 论文给了基线与三种策略、以及“组合(ensemble)”的对比(核心趋势如下): 从这篇论文可以发现,即使是主流代码生成模型,也会稳定地产生幻觉包,而且这种现象并不只是偶发噪声,而是可重复、可被攻击者利用的。 而 Mend 的价值不在于从模型内部“消灭幻觉”,而在于在代码进入仓库、CI/CD 和制品流转之前,建立一层面向依赖和供应链的外部控制面。Mend 的 SCA/Software Supply Chain Security 能覆盖 repositories、CI/CD pipelines 等环节,并对恶意包与可利用漏洞进行检测和阻断。也就是说,即便前面的 AI 助手犯错,企业仍然可以在后面的工程链路里把风险拦下来。一、研究背景
二、论文工作概述
三、实验设计
3.1 数据集收集
3.2 代码生成场景

3.3 幻觉检测
pip install 或 npm install 命令里出现的包名。四、实验结果
4.1 包幻觉的普遍性
4.2 模型设置对幻觉的影响
4.3 模型行为的分析
4.4 包幻觉的特征
五、缓解措施
六、艾体宝 Mend.io(原 Whitesource)方案的价值
github 上有一个定位调试的开源软件叫影梭。
https://github.com/ZCShou/GoGoGo
刚刚刷 B 站的时候看到一个专科生改了一个软件图标,标题就发 B 站推广他的软件了。我都不能说他是套壳,因为 UI 是一点都没变,看笑了。


编者按: 你是否曾好奇,当我们向大语言模型输入一段文字、看着它逐字逐句生成回复时,背后那些动辄千亿参数的神经网络究竟在“计算”什么?它们又是如何在短短几秒内完成如此复杂的推理过程? 我们今天为大家带来的文章,作者的观点是推理引擎的价值不仅在于调度,更在于通过重写模型代码与深度优化底层计算逻辑,将静态的权重转化为高效的智能输出。 作者 | Neutree AI 编译 | 岳扬 在 Part 1 中,我们探讨了 Nano-vLLM 的工程架构:请求如何在系统中流转、Scheduler(调度器)如何对 sequences(序列)进行批处理,以及 Block Manager(块管理器)如何追踪 KV Cache 的分配。当时我们特意将模型计算视为一个黑盒。现在,是时候打开这个盒子了。 本部分将深入探究模型内部原理:Token(词元)如何转化为向量、每个 decoder 层内部究竟发生了什么、KV Cache 在 GPU 显存中的物理存储方式,以及张量并行如何将计算任务拆解到多个 GPU 上。 阅读完本节,你将对从 Prompt 进入系统到文本生成输出的全过程建立起完整的认知。 说到“模型”,我们往往想到的是那些权重文件 —— 动辄数十亿参数、体积庞大的二进制文件。但一个真正能跑起来、能做推理的模型,其实需要三个部分协同工作: 你可能会疑惑:既然模型提供方都开源了权重,为什么不干脆把 runtime code(运行时代码)也一起给了?其实很多情况下他们确实给了,但问题是,这份代码往往不是“开箱即用”的。Runtime code 需要针对具体场景做深度优化:训练还是推理?用什么型号的 GPU?跑 FP16 还是 INT4 精度?在一套 A100 集群上训练效果出色的代码,放在单个消费级 GPU 上做推理可能就不那么理想了。 这正是 vLLM 这类推理引擎选择自己重写 model code 的原因。完整的 vLLM 代码库包含了对数十种模型架构的优化实现,涵盖 Qwen、LLaMA**、DeepSeek、Mistral 等。Nano-vLLM 则做了简化,仅支持 Qwen 模型,但背后遵循的工程模式和优化思路,其实是通用的。 现在,我们来追踪一个 token(词元)在模型中的完整流转过程。 旅程始于 embedding。token ID 不过只是一个数字,比如 1547。嵌入层(embedding layer)在词表中查找这个 ID,并检索出一个向量:一个高维的浮点数数组(Nano-vLLM 使用的 Qwen 模型中为 4096 维)。这个向量被称为隐藏状态(hidden state),是模型对该 token 的内部表征。 为什么是 4096 维?这是一个在表达能力与计算成本之间做了一番权衡的设计选择。更多的维度可以捕捉更细微的语义,但需要更多的计算量和显存占用。 随后,隐藏状态(hidden state)会流经一叠解码层,Nano-vLLM 支持的 Qwen 模型共有 24 层。每层执行相同的操作,但使用不同的学习权重,逐层对表征进行精细化加工。不妨这样理解,每一层都在前一层的基础上,让模型对输入的理解再深一度:也许某一层捕捉句法关系,另一层捕捉语义含义,还有一层处理事实知识。(实际上,每一层具体学到什么,是训练过程中自然涌现的结果,并非预先设计。) 这里的关键特性在于:每一层接收的是隐藏状态,输出的也是隐藏状态,而且 shape 始终保持不变(4096 维)。这种统一性使得层与层之间可以堆叠。 经过所有解码层之后,最终的隐藏状态被转换回词表上的概率分布。这是 LM Head(语言模型头)的工作,其功能可以视为嵌入过程的逆向操作。输出是 logits,即对每个可能的下一个 token 的打分,后续的采样环节再根据这些分值,最终选出实际输出的词元。 每个解码层都包含两大核心模块:注意力机制(Attention)和多层感知机(MLP)。下面我们逐一拆解。 注意力机制让每个 token 能够“关注”序列中的其他 token。但现代 LLM 并不使用简单的注意力机制。它们使用多头注意力机制(multi-head attention),将注意力计算拆分到多个并行的“heads”中。 在 Qwen 模型中,共有 32 个 heads,每个处理 128 维的切片(32 × 128 = 4096,即完整的 hidden state 大小)。这不仅仅是把 4096 维切分成 32 组。相反,每个 head 执行一次投影(projection),这是一种通过学习得到的变换方式,将完整的 4096 维输入压缩成该 head 特有的 128 维表征。 可以把它想象成一个工厂,装配线上有 32 个专用工作站。每个工作站接收相同的原材料(完整的 4096 维输入),但使用不同的工具将其塑造成特定形状。一个工作站可能负责“修剪”语法适配度,另一个负责“打磨”语义连贯性,还有一个负责“测量”位置对齐度。但实际上,每个工作站学到什么也是在训练中自然涌现出来的,未必能如此清晰地划分。 每个 head 还参与真正的注意力机制:它计算当前 token 应该关注序列中每个先前 token 的程度。模型就在这里捕捉上下文(context),理解在"The cat sat on the mat. It was comfortable."中,It 指的是"the cat"。 所有 heads 完成计算后,它们的输出被拼接(concatenated)并投影(projected)回 4096 维,生成该层的注意力机制输出。 MLP(Multi-Layer Perceptron)阶段接收注意力机制的输出并进一步优化。与注意力机制不同,MLP 不看其他 token。它独立处理每个 token 的 hidden state(隐藏状态)。 MLP 首先将 hidden state 从 4096 扩展到一个更大的中间维度(intermediate dimension)(Qwen 中为 11008),应用非线性激活函数,然后压缩回 4096。为什么要这样扩展和压缩呢? 可以把它想象成提升分辨率。4096 维的 hidden state 就像一张压缩图像。扩展到 11008 维就像上采样(upscale):它创造了可添加细节的空间,这些细节由 MLP 的学习权重决定。再压缩回 4096 则是对这种经过信息增强后的表征(enriched representation)的提炼。通过这个过程,模型将训练中的知识融入每个 token 的表征中。 我们刚才描述的 MLP 是一种 dense 架构:每个 token 都经过同一个 MLP(多层感知机)模块处理。但有些现代模型使用 Mixture of Experts (MoE)这种不同的思路。 在 MoE 中,不是用一个大型 MLP,而是有多个小型“expert” MLPs,比如 8 个。由一个路由网络(router network)负责检查每个输入的 hidden state,并决定由哪些 experts(专家)来处理它。例如,对于任何给定 token,只激活 8 个中的 2 个 experts(专家)。 “expert”这个叫法容易让人联想到这样的专业分工:一个专家负责数学,另一个负责语言,还有一个负责编写代码。实际上,每个 expert 学到什么也是从训练中涌现的,并非经过明确设计。我们很难说清楚 Expert 3 与 Expert 5 有何不同。 那为什么要用 MoE?主要动机是计算效率(computational efficiency),而不是输出质量(output quality)。 有了 MoE,你可以拥有一个总参数量很大(所有 experts 合计)的模型,同时每个 token 只激活其中一部分参数。这大幅减少了每个 token 的计算量。 这部分进行了权衡考量:给定相同的总参数量,dense 模型通常会产生比 MoE 模型更高质量的输出,因为 dense 模型对每个 token 都使用了所有参数。但超大规模下的 dense 模型训练起来计算成本高得令人望而却步。MoE 允许扩展到 dense 架构无法实现的参数量,接受每个参数的效率(per-parameter efficiency)稍低一些,以换取实际的可训练性(practical trainability)。 在第一部分中,我们将 Block Manager 讨论为 KV 缓存的控制平面,负责在 CPU memory 中追踪分配状态。现在让我们聚焦数据平面:KV 缓存究竟是如何实际存储在 GPU memory 中的。 在 Attention 计算过程中,每个 token 产生两个向量:K(key)和 V(value)。它们用于与后续 token 计算 Attention 分数。为了避免在每一步 decode 时都重新计算所有先前 token 的 K 和 V,我们选择将它们缓存起来。 GPU 上的 KV cache 被组织为一个多维结构: 因此,Block Manager 中的一个逻辑块对应 GPU 上 24 × 2 = 48 个物理缓存区域:24 层每层各一个 K 缓存和一个 V 缓存。 Nano-vLLM 不直接通过 CUDA API 操作 GPU 内存,而是使用 Triton Kernel —— 一种高级 GPU 编程语言,编译为高效的 CUDA 代码。这些 Kernel 处理从 KV cache 的读写操作,将 GPU memory 管理的底层复杂性封装起来,让上层逻辑更简洁清晰。 在第一部分中,我们介绍了张量并行的通信模式,以及 leader 如何通过共享内存(shared memory)广播命令。现在来看看实际计算是如何拆分到各 GPU 上的。 以 TP=2(两张 GPU)为例。当一个隐藏状态进入 Attention 阶段时: 1)两张 GPU 都接收完整的隐藏状态(4096 维)。这里没有拆分,每张 GPU 都拥有完整的输入。 2)每张 GPU 负责处理一半的 head(注意力头)。GPU 0 处理 head 0-15;GPU 1 处理 head 16-31。 3)每张 GPU 产生部分输出。GPU 0 的输出只包含 head 0-15 的信息;GPU 1 的输出只包含 head 16-31 的信息。 4)通过 All-reduce 合并结果。两张 GPU 交换各自的部分输出并求和,这样两者最终都得到完整的 Attention 输出。 并行发生在 head(注意力头)维度,而非隐藏状态维度。每张 GPU 都看到完整的输入,但只计算分配给它的一部分 head。 MLP 并行遵循类似的模式: 1)两张 GPU 都接收完整的隐藏状态。 2)中间维度(intermediate dimension)被拆分。如果 MLP 层扩展到 11008 维,每张 GPU 计算 5504 维。 3)每张 GPU 产生部分输出。 4)All-reduce 合并结果。 张量并行并非没有开销。All-reduce 操作需要 GPU 之间进行通信,这会增加延迟。这就是为什么 TP 在单机多 GPU 且具备高速互联(如 NVLink)的场景下最有效,而在通过网络连接的机器之间使用时,通信延迟会成为主导因素,效果就会大打折扣。 它的优势在于:每块 GPU 只需存储模型权重的一部分(TP=2 时存储一半,TP=8 时存储八分之一)。这使得我们能够运行那些单个 GPU 内存装不下的模型。 在了解了内部机制之后,让我们来探讨一些常见的设计问题。 更多的网络层数通常意味着更深的推理能力。每一层都会对隐藏状态进行一次额外的细化处理。 更多的注意力头数则支持更丰富的注意力模式(attention patterns),为理解词元之间的关系提供更多“视角”。 我们能否为特定的深度推理任务创建一个“窄而深”的模型(注意力头数少、网络层数多)?或者为了覆盖更广的知识而创建一个“宽而浅”的模型(注意力头数多、网络层数少)?研究表明,这种做法的效果并不理想。就像人类学习一样,模型似乎也需要在广度与深度之间取得平衡。极端不平衡的架构往往表现不佳。大多数成功的模型在这些维度之间保持着一个大致均衡的比例。 真正能撬动模型能力的实用杠杆,仍然是训练数据(有哪些知识可用)和训练方法(这些知识能被多有效地习得),而不是追求极端的架构设计。 混合专家模型(MoE)架构的兴起,并非因为它在单位参数下能产出更优的结果。事实恰恰相反:一个 70B 的稠密模型,通常表现会优于同参数量(所有专家参数之和)的 MoE 模型。 MoE 受欢迎,是因为它让规模扩展成为可能。 用当前基础设施训练一个 600B 的稠密模型,计算成本高到难以承受。但一个总参数量 600B、每词元仅激活 50B 参数的 MoE 模型呢?这个是可以训练出来的。尽管单位参数的效率有所损失,但凭借其庞大的总体规模,它可以达到的能力,是任何可训练的稠密模型都无法企及的。 这是一种务实的工程权衡:以单位参数效率的适度下降,换取触及原本无法达到的模型规模。 至此,我们已经完整梳理了从输入提示词到生成文本的整个流程: 推理引擎负责统筹整条流水线 —— 从请求调度、内存管理,到协调并行执行;而模型架构则定义了每个步骤内部的具体计算逻辑。 理解这些内部机制,能让看似“魔法”的过程变得清晰可解。大语言模型的本质,其实是一个精密的函数:输入向量,输出向量。所谓的“智能”,源于参数规模的积累、训练数据的质量,以及让这一切高效运转的工程巧思。 无论你是在生产环境部署模型、排查性能问题,还是单纯好奇这些系统如何工作,希望这份基础梳理能为你带来切实的帮助。 END 本期互动内容 🍻 ❓文章提到推理引擎要重写 model code 来做深度优化。在你自己的实践中,有没有遇到过“理论可行但工程跑不动”的部署场景?最后是怎么妥协或突破的? 本文经原作者授权,由 Baihai IDP 编译。如需转载译文,请联系获取授权。 原文链接:01 模型内部机制、KV Cache 与张量并行(Tensor Parallelism)
02 模型究竟是什么?
2.1 为何推理引擎要自己实现模型代码(model code)
03 模型 pipeline

3.1 Embedding:从 Token 到向量
3.2 Decode Layers:魔法发生的地方
3.3 LM Head:从向量回到 Token
04 解码层(Decode Layer)的内部构造

4.1 多头注意力机制(Multi-Head Attention)

4.2 MLP:自我优化
4.3 Dense 架构与 MoE 架构的对比

05 KV Cache:数据平面
5.1 什么被缓存了
5.2 物理布局
5.3 用于缓存访问的 Triton Kernel
06 张量并行(Tensor Parallelism):计算层面
6.1 Attention 中的并行

6.2 MLP 中的并行

6.3 通信的开销
07 思考:设计上的权衡取舍
7.1 网络层(Layers)数与注意力头(Heads)数分别控制什么?
7.2 为什么 MoE 架构越来越流行?
08 结语
有一天在打字的时候,我突然想到一件很小的事情: 我每天敲这么多键盘,那我到底更常用的是哪些键? 这个问题本身其实没什么用,但它有一点点“可能和直觉不一样”的感觉。 比如我一直觉得自己主要在用字母区,但如果真的统计出来,会不会空格才是第一?或者回车? 这种事情,如果只是靠感觉,其实永远不会有答案。 但一旦把它变成数据,就完全是另一种东西了。 想着想着,就干脆把这件事做出来了。 代码跟软件都已经开源了,地址放在最后,感兴趣可以去看看 最初的想法很简单: 监听键盘 → 做计数 → 输出结果。 按这个思路,一个脚本就能搞定,甚至都不需要什么界面。 但写到一半就发现,这种形态不太成立。 因为它太容易“断掉”了。 只要我关了终端,或者哪天忘记开,它那一段时间的数据就直接没了。而键盘使用这种行为,本来就不是你会刻意去“开始”和“结束”的东西。 如果记录本身需要你去记得,它就有点违背这个事情的初衷。 后来就慢慢变成另一种方向了:让它自己待着,一直在那儿,不需要你管。 于是最后的形态就是一个托盘应用。 其实我一开始是想避免写客户端的。 不是功能做不到,而是开发体验的问题。传统 GUI 那一套我不太熟,也不太想花时间在那上面。 但“监听键盘”这件事本身就决定了,它不可能是一个网页。 由于边界问题,浏览器拿不到这些数据,所以要么放弃,要么就认真做一个本地应用。 后来是因为看到 Wails V3,才觉得这件事变得顺手了不少。 之前用过 Wails V2,它更像是一个“把网站封装成桌面应用”的壳。 单窗口、靠前端路由模拟多页面、菜单和托盘能力很弱。 而 V3 原生支持了多窗口、系统菜单、托盘、Dock & Taskbar 交互之后,整个应用终于有了“骨架”,从“套壳网页”真正变成了一款原生应用。 完美的符合了我的需求。 一开始我以为,最麻烦的会是热力图这种展示层的东西。 结果完全相反。 最绕的地方其实是:怎么知道用户按了哪个键。 监听事件我选择了 robotn/gohook,他本身不提供“监听能力”,它只是把各平台的系统级输入监听 API 做了一层统一封装。 在 Windows 中他封装的是 SetWindowsHookEx 在 Mac 中封装的是 Quartz Event Tap 因此它可以在系统层面上监听原始输入事件,比应用级监听更底层,得到按压情况与虚拟键码。 问题在于,这个“原始事件”不是你直觉里的 A、B、C,而是一串虚拟键码。 虚拟键码就是操作系统为了方便程序开发,给键盘上每个“功能”分配的一个固定的数字编号。它像是按键的身份证号,而不是座位号。 以 Windows 为例:当我们按下键盘上 A 键的那一刻,键盘电路只知道按下去的是物理位置第 0x1E 号的键,它会把 0x1E 这个扫描码发给电脑。 操作系统收到 0x1E 后,会根据当前激活的键盘布局(比如美式键盘)来查表(比如查询到这个物理位置对应的是字母 A)。 于是,它把这个位置信号转换成虚拟键码 0x41(即 VK_A)。 基于这套机制,我们开发者完全不用关心用户用的是哪种键盘硬件、按键的物理位置在哪。只要在程序里看到 0x41,就可以确信:用户按下的是 A 键。 但问题同样也出现在这里,键盘的位置信号传递给系统,而系统把他们转换成虚拟码,这个过程是系统进行的,因此 Windows 跟 Mac 之间并不统一,需要额外进行处理。 微软官网中有针对 Windows 虚拟键码的说明:Virtual-Key Codes 而 Mac 则来自 Carbon.framework 中的 Events.h,记录在《Inside Mac Volume V》第 V-191 页 这件事没有什么优雅解法,只能分开处理。 最后就是用 Go 的 逻辑上统一,但实现上不强行合并。 监听拿到了,接下来就是存。 一想到这个脑子里的第一反应肯定是:按一次,写一次数据库。 但稍微再一琢磨就会明显感觉到问题。 键盘输入是一个非常高频的行为,如果每次都落盘,SQLite 的压力会有点大,而且写入冲突也比较频繁。 后来就换成了一种更“松一点”的方式: 先放在内存里攒着,到一定数量,或者过一段时间,再统一写进去。 严格来说,这会有一点点数据丢失的可能(比如程序突然退出),但换来的是整体的稳定性和更低的开销。 对这种工具来说,我更倾向于后者。 真正开始做展示的时候,反而是最顺的一段。 键盘布局其实是有现成逻辑的,用机械键盘里常说的 Unit(u)就能很好地描述: 普通按键是 1u,空格是 6.25u,一些功能键是 2u、2.75u 这种。 把它当成一个网格去排,然后再把每个键的使用次数映射成颜色深浅,一张热力图就自然出来了。 没有太多技巧,更多是一个“把东西摆对”的过程。 最早版本其实只是统计 + 展示。 但用的时候会觉得,它有点“太安静了”。 所以后面加了一点很轻的反馈,比如按键的时候会有一点变化。 实现上也不复杂,用 Wails 自带的事件机制,把后端的事件往前端推,Vue 那边监听一下就可以了。 这一块写起来反而最像在写前端项目。 项目做完之后,我其实想过这个问题。 它不会帮你提高效率,也不会改变你怎么打字。 你大概率也不会因为某个键用得特别多,就去刻意优化它。 但它提供了一种很微妙的东西: 你可以“看到”自己平时完全不会注意到的行为。 有些结果是符合预期的,有些会有一点点偏差。 这种偏差不大,但挺有意思的。 更像是一种观察,而不是一个工具。 最后把这个东西整理了一下,做成了一个完整的应用,叫 Key Heat。 它会一直待在托盘里,做的事情其实很克制: 数据只在本地。 如果你也对这种东西有点好奇,可以自己跑一下看看:
它一开始其实只是个脚本
为什么会走到客户端这一步
真正麻烦的不是展示,而是“你按了什么键”
//go:build 把不同平台的映射拆开,各自维护。数据怎么存,反而是一个需要控制的点
热力图反而没那么复杂
后来补了一点“实时感”
写到这里,反而会有点疑问:这东西到底有什么用
Key Heat
LinkedIn 推出认知记忆智能体(Cognitive Memory Agent,CMA),作为其生成式 AI 技术栈的组成部分,旨在构建具备状态感知与上下文理解能力的 AI 系统,使其能够在交互过程中留存并复用知识。该系统主要用于支撑招聘助手(Hiring Assistant)等应用,解决了大语言模型工作流中的一个核心问题:缺乏状态记忆,进而导致无法跨会话保持连贯交互。 CMA 充当应用智能体与底层语言模型之间的共享记忆基础设施层。应用智能体无需通过重复提示词来重建上下文,而是通过这套专用系统来实现记忆的持久化存储、检索与更新。这既实现了跨会话连贯的交互,减少了冗余推理,也能在用户上下文持续变化的生产环境中提供更优质的个性化体验。 会话记忆层示意图(来源:LinkedIn 博客文章) 该架构将记忆划分为三个不同层级。情景记忆(Episodic memory)用于捕获交互历史与对话事件,让智能体能够回忆过往的交流内容。语义记忆(Semantic memory)存储从交互中提炼出来的结构化知识,支持对用户、实体及偏好等持久化信息进行推理。程序记忆(Procedural memory)对已习得的工作流程与行为模式进行编码,帮助智能体优化任务执行策略。三层记忆协同作用,使智能体的行为从单次响应升级为长期自适应演进。 LinkedIn 工程师 Xiaofeng Wang 在一篇帖子中指出: 记忆是构建生产级智能体最具挑战性、同时也最具价值的核心模块之一,它能够实现真正的个性化、交互连续性与规模化适配。 CMA 在多智能体系统中同样扮演着关键角色。与让每个智能体各自维护独立上下文不同,CMA 提供了一个共享记忆底座,让负责规划、推理与执行的各类专业智能体可以共同访问。这一共享层减少了状态冗余,提升了协作效率,并确保分布式工作流输出结果的一致性。 从系统层面来看,CMA 集成了多种检索与生命周期管理机制。近期上下文检索用于保障短期相关性,语义搜索则支持对长期历史交互的调取。通过摘要进行记忆压缩有助于控制存储容量增长,并在规模化场景下维持系统的性能。这些机制也带来了关键的工程挑战,包括相关性排序、过期内容管理以及不断演变的用户上下文的一致性维护。 LinkedIn 杰出工程师 Karthik Ramgopal 强调了智能体系统向持久化上下文转型的重要性,他表示: 优秀的智能体 AI 不是无状态的:它会记忆、适应与积累。实现这一目标的核心能力之一便是突破上下文窗口限制的记忆能力。 在运营层面,持久化记忆系统带来了分布式系统中经典的权衡问题。确定需要存储哪些内容、何时进行检索以及如何处理过期数据已成为保障系统正确性的核心问题。 MLOPS 数据工程师 Subhojit Banerjee 强调: 缓存失效是计算机科学中公认的难题之一,很高兴你们明确提出了这一点。提取这类记忆的挑战在于如何准确识别情景边界、处理内容时效性和解决冲突。 在招聘等面向用户的应用场景中,LinkedIn 还将人工校验融入工作流程。这种人机结合的方式能够确保 AI 生成内容始终贴合用户意图与业务需求,尤其适用于高风险决策场景。 CMA 体现了 AI 系统从无状态生成向有状态、记忆驱动的智能体这一更广泛的架构转变。LinkedIn 将 CMA 定位为构建自适应、个性化、协作式智能体系统的横向平台。这一方向也凸显出业界日益增长的共识:生产级 AI 系统并非仅由模型决定,而是由围绕模型构建的记忆、上下文管理及基础设施层共同定义。 【声明:本文由 InfoQ 翻译,未经许可禁止转载。】 查看英文原文:https://www.infoq.com/news/2026/04/linkedin-cognitive-memory-agent/

「🍉西瓜备份」是为 iPhone 设计的相册备份 App 。
支持外接硬盘、SMB 、WebDAV 作为远端存储点。
我自己是 immich/群晖用户,但是我不想相册管理也走它们的 mobile App ,有一些自己想要的功能点没满足,所以自己做了个。
iOS 的照片不是单纯的图库,也不是简单的同名 MOV + 静态图的组合,还有一些七七八八的数据。我想要尽可能原始数据导出/导入,按照 iOS 照片结构导出对应角色,然后再导回去。这个过程里是依赖一个 watermelon manifest 文件来作为索引实现的。
用户可以在备份过程中退到后台。
接入 Wi-Fi 和连上电的时候,就能进行最近两个月照片数据的备份。
重要的照片要备份好几个地方,所以支持多节点切换。
这个同步需要说明,准确说是本地内容上传上去后,下载远端没有的数据。
基本是目前能做到兼顾速度还考虑内存容量的状态了,优化好几遍了。
https://apps.apple.com/app/id6762260596
只有一个,就是 Watermelon Pro ,定价 $3.99
限免时间 2026/04/22-2026/04/30
内购免费,结果大家拿完内购就走了,也不回复。
但是如果是发码,20 个兑换码感觉可以钓 50 个评论。
所以希望大家玩命地评论我这种直接内购全免,对我来说真的很重要。
当然关于产品反馈,比如问题、建议,对我也很重要。