全球粮食风险共振:粮食安全年底进入压力测试区?
“中选决战”在即,为避免被横扫,共和党要保“基本盘”
伊朗正研究万斯提议,外长称暂无会谈计划,军方称将“高强度且不受地理限制”对抗美以
AI“完美风暴”剧本:债市“吹响号角”,财报“雪上加霜”,中选“最后一击”?
决定下周市场走势!美国中选“最大悬念”:共和党意外守住参院 vs 民主党取得53席以上
93 Blog Posts To Learn About Live Streaming
Let's learn about Live Streaming via these 93 free blog posts. They are ordered by HackerNoon reader engagement data. Visit the Learn Repo or LearnRepo.com to find the most read blog posts about any technology.
Live-streaming is the real-time broadcasting of video and audio content over the internet, allowing immediate interaction between creators and viewers. It has revolutionized communication, entertainment, and education by enabling instantaneous global reach and dynamic engagement.
1. How to Use DeepAR For AR Effects on Amazon IVS Live Streams
Now that people are more accustomed to using video technology, AR stands to dial up both the functionality and fun factor of the medium.
2. How Live Streaming Is Helping Businesses During The Coronavirus Crisis?
The World Health Organization (WHO) declared COVID-19 as a global pandemic, which means that it is an infectious disease passing from person to person in many parts of the world at the same time. The maximum cases have been reported in China where it originated and has more than 245,463 confirmed cases across the world. While China has quickly coped with the situation and reported zero new locally transmitted cases, Italy has become the epicenter with over 41,035 cases. As Governments have halted flights from affected countries, shut down businesses and entire cities, people are being insisted to stay at home to contain the spread.
3. 10 Best Platforms To Build a Live Video Streaming Website, App or Service in 2022
Whether you’re an enterprise business professional, Individual or content creators, a live streaming platform can be a double-edged sword, it all depends on which platform you prefer to use for your streaming business.
4. Live Stream in the Cloud with Amazon IVS: Part 1
Amazon Interactive Video Service (or Amazon IVS) is the service that powers Twitch. You can use it to power your own interactive live video streaming app.
5. Using OBS Macros to Automate Your Processes for Streaming
In this post, we teach you how to create macros for starting a stream, intro video, and ending a stream in OBS.
6. How Much Do Twitch Streamers and YouTubers ACTUALLY Make from Donations?
Most full-time streamers get an average $3000-$6500 per month. Gamers received up to $1,000,000 donations on Twitch.
7. How I Live Stream My Brain with Amazon IVS, a Muse Headband and React
This is the first time we've used React to broadcast live streaming our brain data
8. How to Live Stream With Multiple Hosts using a Browser and Amazon IVS
In this post, we'll build on the previous demo to combine the audio and video feeds from all participants into a single feed and broadcast that feed.
9. The Rise of Digital Humans and Deepfakes in China
In this article, I will demonstrate the use of AI-driven digital humans and deepfakes in various industries and media channels.
10. Create On-Demand Past Live Stream Playback w/Full Chat Replay on Amazon IVS
In our last few posts, we've looked at how to auto-record Amazon Interactive Video Service (Amazon IVS) live streams to Amazon S3.
11. A Quick Guide to LiveLike: How to Enhance Live Stream Interactivity
LiveLike solutions can now be easily layered with Amazon Interactive Video Service (Amazon IVS) Amazon IVS provides customers with more options to build.
12. How to Broadcast Interactive Web Based Gaming Live Streams with Amazon IVS
The Web Broadcaster SDK is a game changer that gives developers the ability to integrate the broadcast experience directly into their streaming applications.
13. 5 Powerful Reasons Why Live Streaming Is So Important For Enterprises
Businesses with a well establis
Ubuntu LXD 爆出满分 10.0 高危漏洞,无需密码即可接管虚拟机|CVE-2026-112816
10 月 30 日,Canonical(Ubuntu 背后的公司)披露了一项严重安全漏洞 CVE-2026-112816,CVSS 4.0 评分高达 10.0 分,达到最高危险等级。
该漏洞影响 Canonical LXD,一款用于管理 Linux 容器和虚拟机的开源工具,常见于 Ubuntu 服务器、私有云及服务器集群环境。

漏洞有多严重?
正常情况下,远程管理 LXD 需要通过客户端证书验证身份。
但此次漏洞存在证书验证缺陷,攻击者只需获得受信任客户端的公开证书,就可能通过伪造证书链绕过身份认证。
无需密码,也无需窃取私钥,就可能获得整个 LXD 集群的管理权限。
成功利用后,攻击者可以控制集群中的容器和虚拟机,甚至可能获得宿主机的 root 权限。
哪些用户受到影响?
主要是使用 LXD 或 MicroCloud 管理服务器的用户,包括:
- Ubuntu 服务器上的 LXD 用户
- 使用 LXD 管理容器、虚拟机的个人及企业用户
- 使用 MicroCloud 部署私有云、服务器集群的管理员
普通 Ubuntu 桌面用户,以及仅使用 Docker、Proxmox VE(PVE)自带 LXC 容器的用户不受此次漏洞影响。
如何修复?
Canonical 已于 10 月 29 日发布修复版本:
| 产品 | 修复版本 |
|---|---|
| LXD 6.x | 6.10.1 |
| LXD 5.21 LTS | 5.21.9 |
| LXD 5.0 LTS | 5.0.11 |
| LXD 4.0 LTS | 4.0.15 |
| MicroCloud 3.x | 3.4.1 |
| MicroCloud 2.x | 2.1.5 |
通过 Snap 安装的用户,可以执行:
sudo snap refresh lxd
MicroCloud 用户执行:
sudo snap refresh microcloud
原文:
相关链接:
相关阅读
- PowerToys、Wintoys 等 70 多款 Windows 软件遭遇冒牌官网攻击
- PwnEscape:Linux 爆 9.3 分严重漏洞,一台 VPS 可能攻陷整台宿主机|CVE-2026-99999
- 群晖两连更:几乎没人用功能,Telnetd 爆出两个 9.8 分 CVE 漏洞
- React 爆出满分 10.0 漏洞(CVE-2025-55182)上一次同等级漏洞还是 Log4Shell
- Windows 记事本爆出 8.8 分漏洞,专门针对 markdown 格式|CVE-2026-20841
©2021 青小蛙 for 小众软件 | 加入我们 | 投稿 | 订阅指南
3659b075e72a5b7b1b87ea74aa7932ff
点击这里留言、和原作者一起评论
[Google Gemini] 不用 Jio 的那个 Gemini pro 还有别的国内购买渠道吗?
有没有靠谱一点的购买渠道可以推荐?要能用国内的支付方式的。
不靠谱的,如果它提供全套账号,不需要我用自己的 google 账号也行。封了最多损失点钱
[程序员] 压缩的尽头是自指?从 LZMA2、PAQ8PX 到 zstd/ZIP/RAR Quine,我折腾了一遍“自包含压缩包”
最近把之前关于压缩的各种折腾整理成了一篇长文,发在博客上,想搬来论坛和大家聊聊。
一开始只是想给博客离线包找更强的压缩算法:7-Zip 的 LZMA2 已经很能打,但我不信邪,又试了 ZPAQ 、PAQ8PX 、NNCP 、cmix 。结果挺有意思:
- ZPAQ:一分钟左右把 16MiB 压到约 3.5MiB ,老算法但速度和压缩比还挺平衡;
- PAQ8PX:压到约 3.1MiB ,本次冠军,但花了一个半小时、吃了 30GiB 内存,解压同样痛苦;
- NNCP:FFmpeg 作者 Fabrice Bellard 的 Transformer 压缩算法,RTX 4090 上跑了一个半小时,结果 4.1MiB ,还没 LZMA2 高;
- cmix:测试时压到一半崩溃,内存和耗时也很夸张。
结论大概是:追求极限压缩比,PAQ8PX 很强;日常使用,LZMA2 的 7-Zip 依然是最稳的选择;想在小文件上再挤一点,ZPAQ 可以试试。
更有意思的是后半篇:继续折腾“自包含压缩包 / Quine 压缩包”——也就是压缩包里包含一份和自身字节完全相同的副本。之前做过 7z Quine ,这次又让 AI 研究了:
- zstd Quine:利用可跳过帧、RAW block 和 XXH64 校验值构造,最终做成
.tar.zst,Windows 资源管理器也能直接打开;文章里附了完整生成代码; - ZIP Quine:利用成员数据重叠绕过窗口限制,7-Zip 和 libarchive 能正常解压,但 Python
zipfile会因为检查压缩数据越过后续局部头而报错,算是一点兼容性代价;文章里也附了生成器; - RAR Quine:原理上也能做,AI 也生成出来了,但因为 RAR 不是开源软件,文章里只放了生成后的样例供研究。
文章里还有一段让我挺感慨的:这些代码我基本看不懂,但 AI 就是能把问题解决。复杂格式、校验值构造、兼容性坑,全都硬啃下来了。于是最后也忍不住写了点关于 AI 和“记录还有没有意义”的感想。
原文在这里:《关于压缩的各种探索》
感兴趣的朋友可以聊聊:
- 你用过最离谱但确实有效的压缩算法是什么?
- 极限压缩比和可用性之间,你会怎么选?
- 对这种“压缩包包含自身”的 Quine 玩法,有没有其他格式可以继续挑战?
- AI 生成这种复杂但能跑的代码,你觉得是解放生产力,还是让人越来越看不懂基础设施?
欢迎拍砖、补充算法和格式,也欢迎试试文中的 zstd/ZIP 生成器~
[程序员] 我在 2 核 2G 云主机上跑 OpenViking:一次关于云主机、模型选型与长期成本的真实复盘
最近把自己的 AI Coding Agent 记忆底座迁移到了自建的 OpenViking 上( OpenViking 真的满足我所有的要求:即是各种 Agent 的统一大脑自进化、又是知识库,检索的时候是两方面综合起来的)。RAG 相关的东西看着挺吓人,动辄推荐高配服务器和本地显存,实际上用下来,只要选型想清楚,一台几十块钱的入门级云服务器完全能跑得飞起。
这篇不是教你怎么敲命令的安装教程,只是聊聊折腾这一圈下来,在云主机、模型组合、算力开销上的一些真实心得和踩坑取舍。
1. 云主机:为什么我选 99 元的 2G ,不选友商更便宜的 4G ?
买云服务器时,第一眼很容易被一些友商“几十块钱买 4G 甚至 8G”的新客促销吸引。但我最终还是选了阿里云 99 元/年的 2 核 2G ( ecs.e-c1m1.large )。
核心原因就一个:算长期的续费账,避开“首年低价、次年暴涨”的套路。
如果只是搭个无状态的个人博客,一年一换、到处搬家无所谓。但 OpenViking 是你的记忆数据库,里面存的是日常所有的会话轨迹、沉淀的项目架构、实体图谱和向量索引,是强状态资产。很多友商首年 60 块,第二年续费直接跳到 600 、800 甚至上千,一年后为了省钱被迫停机、跨云拷贝几千兆数据、重新配安全组和域名解析,折腾成本远超那点差价。
阿里云这款活动最大的诚意,是保证来年依然可以 99 元无套路同价续费。
2G 内存虽然紧凑,但只要做好 Swap 兜底,限制好容器内存,并把计算全都甩给外部 API ,机器本地只做存储检索,日常内存占用常态也就几百兆。拿稍微调优一下系统为代价,换一个每年只要 99 块、不用频繁搬家的稳定记忆底盘,这笔账怎么算都更划算。
2. 向量模型( Embedding ):花钱的大头,必须一步到位
整套系统跑起来,持续花钱的大头其实就是向量模型。但我从一开始就放弃了“白嫖免费模型”的想法,坚定选择花钱买商业服务,并且要“一步到位”。
为什么必须一步到位?
VLM 、意图分析、重排模型这些都是即时推理,今天觉得不好用,改一行配置重启一下直接就换了。但向量模型决定了数据库底层的空间几何特征。一旦以后你想换向量模型,哪怕输出维度一模一样,之前的向量也全都废了,必须全库全量重建索引( Re-index )。随着记忆越积越多,二次重构的代价和停机风险极高,所以向量模型选型必须一开始就选最好的。
为什么放弃 SiliconFlow 免费的 BGE-M3 ?
很多教程推荐用硅基流动上免费的 BGE-M3 。我们在实际做向量召回测试时发现,它的召回质量被新一代模型拉开了非常明显的代际差距。BGE-M3 是 2024 年 1 月的模型,底子太老,而且是个纯文本模型,图片只能当附件存,根本建不了索引,做不到“以文搜图”。
更关键的是,公用免费池已经被羊毛党挤烂了。我们在测试免费模型做路由时频繁遇到丢包、高延迟、无响应。作为核心基础设施的底座,把身家性命系在免费公共池上,纯属给自己找麻烦。
为什么选火山方舟的豆包 Vision ( 0.7 元),没选阿里千问?
最终我用的是火山方舟的 doubao-embedding-vision-251215,官方定价是推理输入 0.7 元 / 百万 tokens。
其实阿里百炼也有一款多模态向量模型(qwen3-vl-embedding),价格一模一样也是 0.7 元,但两者有个致命差距:
- 阿里千问的上下文窗口只有 32K;
- 火山豆包的上下文窗口高达 128K。
对于 Agent 场景,经常要塞入长篇开发规范、长上下文代码切片或者多张高清截图,128K 带来了整整 4 倍的安全容限,彻底不用担心超长切片溢出。加上 OpenViking 本身就是字节火山引擎开源的,原生 Provider 兼容最稳,同价位下显然选 128K 的豆包。
注:如果你完全没有图片、截图的检索需求,只做纯文本或代码笔记,阿里百炼的纯文本向量 qwen3.7-text-embedding 是个很好的省钱备选,价格只要 0.5 元/百万 tokens 。
3. 意图分析( Query Planner ):90% 的人都漏看的“隐藏开关”
很多人刚用 OpenViking 时都有个共同的困惑:“为什么这玩意儿响应这么迟钝?每次在 IDE 或终端里刚敲完一句话,光标都要卡顿个五六秒才开始有反应?”不少人甚至因此觉得是机器配置不够,或者系统本身设计笨重。
其实根本不是性能问题,而是绝大多数人压根没仔细看配置文档,不知道还能单独配一个意图分析模型。
官方默认示例里大家一般只填 vlm 和 embedding。但只要没在配置里显式声明 query_planner,OpenViking 在处理每一轮对话时,就会默认回退去调用主模型 VLM 来分析这轮对话是不是闲聊、要不要搜记忆、怎么提取关键词。如果你的 VLM 选了个大模型或者带思考链的模型(比如智谱 glm-5.3-flash),单次前置分析直接就能吃掉 6~7 秒,前端交互自然卡成 PPT 。
为了解决这个前置卡顿,起初我试图在主流的通用大模型里寻找替代方案。但跑了一圈下来非常沮丧:
- 阿里百炼官方的 Qwen3.7-Flash 默认带深度思考,跑一次要想 10 秒;
- 硅基流动上的 Qwen/Qwen3.5-9B 吞吐偏慢(常态 30 tok/s ),每次提问依然要停顿 4 秒;
- 硅基流动上的 Qwen/Qwen2.5-7B 格式飘忽,爱吐裸数组;
- 硅基流动公用免费池的模型(如 Qwen3.5-4B)更是被羊毛脚本挤爆,频繁丢包超时。
正当我们卡在通用大模型的选型瓶颈时,**我在阿里百炼模型广场里无意间翻出了一个宝藏模型——tongyi-xiaomi-analysis-flash(伶鹊-对话分析-flash )**。官方介绍写得很朴实:专攻对话信息抽取、场景分类与低时延分析的领域模型。
我立刻把它拉进测试矩阵,和前面的候选模型来了一场同台竞技。需要特别说明的是,为了公平对比,我们在压测所有候选模型时,全都显式关闭了思考模式(开启非思维链模式,纯直接输出)。
在实际评估中,我们重点死磕了三个核心维度:响应耗时、生成结构、规划表现。在三项严苛检验下,这个意外淘到的宝藏模型给出了教科书级的表现:
维度一:响应耗时(时间预算必须死守在 1 秒内)
query_planner 处于用户敲下回车、模型真正回答前的关键阻塞路径( Critical Path )上,耗时哪怕多 1 秒,体感都是极其明显的卡顿。
- 阿里百炼 Qwen3.7-Flash:即使关掉思考模式(
enable_thinking: false),单次分析依然要 1.1~1.4 秒( 70~90 tok/s ),作为高频前置拦截还是略重; - 硅基流动 Qwen/Qwen3.5-9B:关掉思考后,受限于供应商 30 tok/s 的生成吞吐瓶颈,跑完一段多轮分析依然需要 3.8 ~ 4.2 秒;
- 硅基流动免费池(如 Qwen3.5-4B ):公用免费池常年被羊毛脚本挤占,延迟严重抖动甚至直接超时;
- 通义伶鹊( Flash ):首字延迟( TTFT )仅 0.31 秒,生成吞吐高达 200+ tok/s,整轮规划耗时直接干到了 0.8 秒左右,完美落在亚秒级预算内。
维度二:生成结构(严苛遵循 OpenViking 要求的 JSON 协议)
OpenViking 底层的意图解析器对输出格式有明确的契约要求:模型必须返回形如 {"queries": [...]} 的标准 JSON 对象结构(由内部代码直接反序列化提取检索意图),容不得半点格式偏差:
- 通用大模型的通病:喜欢画蛇添足加礼貌用语(“好的,为您规划如下”),或者在外面套一层
json ...围栏,把本该干净的输出搞得拖泥带水,全靠系统写正则兜底去清洗; - 硅基流动 Qwen/Qwen2.5-7B 的硬伤:虽然速度压缩到了 1.8 秒,但格式极其不服从规范,经常丢掉 OpenViking 要求的顶层 Key ,直接吐出一个裸数组
[...]。一旦丢了对象结构,极易触发解析异常导致检索失败; - 通义伶鹊( Flash ):官方特性主打“自定义分析标准遵循”,实测下来对 OpenViking 要求的 JSON 协议做到了 100% 严格执行——输出纯净裸 JSON ,没有 markdown 围栏,没有前后废话,与 OpenViking 的反序列化契约严丝合缝。
维度三:规划表现评估(业务意图的决断质量)
意图分析模型绝不是盲目生成检索词,它必须具备清晰的业务场景决断力:
- 闲聊拒搜率:面对“你好”、“谢谢”、“帮我写个冒泡排序”这种无需长程记忆介入的输入,通义伶鹊能像防火墙一样在 0.4 秒 内果断断定无需检索,并输出空数组
{"queries": []},避免了无意义的向量库查询与上下文污染; - 多轮指代消解与实体抽取:在多轮对话中(比如用户追问“把刚才说的那个服务端口发我”),它能从历史上下文里把代词精准还原成具体的实体词(展开为“OpenViking 1933 端口配置”),提取出来的 Query 极其精准紧凑,绝不发散脑补。
事实证明,这个无意间淘到的宝藏模型绝非侥幸胜出,而是其专攻“对话抽取、场景分类、格式遵循”的垂直微调定位,正好与 OpenViking 前置路由的工程诉求完成了教科书般的精准对齐。
4. 重排序( Rerank )与 VLM:务实的经济账与容灾
最后说说剩下的两个组件:
- 重排序( Rerank ):我依然放在了硅基流动上,用的是
Qwen/Qwen3-Reranker-4B。 之所以用它,是因为它走的是轻量商业计费通道(避开了免费池的排队),调用一次只要几厘钱。关键是我账号里还有送的 16 块钱代金券,不用白不用。实测 4 条文档打分 0.26 秒,30 条文档打分 0.57 秒,速度快而且打分很准,性价比拉满。 - VLM (多模态语义抽取):用的是智谱 Coding 套餐里的
glm-5.3-flash,顺便配了双 Key 主备容灾。 这里有个极其关键的实战经验:配置里一定要把思考模式显式改为reasoning_effort: "low"。 我们专门做过多组 A/B 实测,默认不传参或者设为high时,模型会先深度思考大几十秒(耗时 20~48 秒,生成上千个无意义的思维链 Token ),而最终提取出来的实体和概览内容与low几乎毫无区别。记忆提取本质上是信息抽取和结构化归档,根本用不着复杂的数学逻辑推演,开high纯属白白浪费时间和算力。 即使设为low,单次抽取依然需要 4~6 秒(有底层基础思考和 20~30 tok/s 的吞吐上限),它也是目前系统唯一的耗时点。但因为 VLM 只在后台异步做会话归档和概览生成,完全不阻塞前端的提问交互;加上 Coding 套餐按年付费极度便宜,配合双 Key 容灾非常稳定,现阶段完全不需要花钱折腾换它。
5. 写在最后的一些大白话心得
折腾完这套配置,最大的几点感悟:
- 状态型服务,买服务器先看续费:做长期记忆库,宁可前期在 2G 上花点时间调优,也别为了贪图首年几块钱的便宜去买续费暴涨的机器,搬家真的很累。
- 核心资产一步到位,无状态节点随时优化:向量模型决定了你的底层空间,别贪免费,多模态 + 大上下文( 128K )直接锁死,避免以后二次重建;而 VLM 和 Rerank 这种纯推理节点,谁快谁便宜就换谁。
- 专用小模型在垂直场景吊打通用大模型:意图分析这种讲究“分类、提取、严格 JSON 格式、极速”的任务,微调过的对话分析小模型比动不动就写小作文、开思考链的通用大模型好用太多倍。
[推广] 《我享云》机场代理 · 性价比之王 · 十一月份优惠码 · 注册免费试用 5-10 天 · 一块钱用上专线
所有级别套餐节点资源一致,套餐倍率不同,两种套餐模式,按需选择,让一块钱也能用上专线!
直连节点 | 住宅节点 | 优化节点 | 大带宽节点 | 下载专用节点 | 专线节点,应有尽有!
目前阻断比较严,下线了直连相关节点,保留专线节点
套餐优惠信息
| 套餐类型 | 折扣 | 优惠码 | 适用场景 | 领取地址 | 有效期 |
|---|---|---|---|---|---|
| 周期性套餐(订阅制) | 6.8 折 | eZSdiffE | 适合长期稳定使用的用户,按周期自动续费,性价比极高 | https://m.vxcloud.cfd/coupon.html | 2026/11/01 — 2026/11/15 |
| 无时间限制套餐(买断制) | 7 折 | disNPffz | 适合一次性投入、长期拥有的用户,无到期压力,灵活省心 | https://m.vxcloud.cfd/coupon.html | 2026/11/01 — 2026/11/15 |
[云计算] [数据分享] 基于 ISLP 负载实测: OCI Ampere A1 (ARM64)、Kaggle、Lightning 与本地 6800H 多线程性能对比
跑《统计学习导论》(ISLP) 实验时,顺手测了一下常用免费云端算力实例与本地标压笔记本在基础机器学习负载下的性能差异。非严格学术评测,仅记录单机工程数据供参考
一、 测试环境
-
OCI ARM:Ampere Altra 架构,4 OCPU (独立物理核),24 GB RAM ,Ubuntu 22.04
-
Lightning AI:Free CPU Studio ( 4 vCPU 共享容器)
-
Kaggle:标准 CPU 实例( 4 vCPU )及 Tesla T4 GPU 实例
-
Local:AMD Ryzen 7 6800H ( 8 核 16 线程)+ RTX 3050 Laptop (4GB VRAM)
二、 基准测试数据
1. scikit-learn:随机森林分类( CPU )
- 数据规格:合成二分类数据集,40,000 样本,40 特征,200 棵树( 32k 训练 / 8k 测试),
random_state=42。全平台测试集准确率均为 95.59%
并行任务数 (n_jobs) |
OCI ARM (Ampere) | Lightning CPU | Kaggle CPU | Ryzen 7 6800H (本地) |
|---|---|---|---|---|
| 1 | 34.12 s |
| 28.34 s
| 70.88 s
| 27.63 s
| | 2 | 17.74 s
| 15.54 s
| 36.97 s
| 14.12 s
| | 4 | 9.50 s
| 11.13 s
| 24.79 s
| 7.43 s
| | 8 | — | — | — | 4.50 s
| | 16 | — | — | — | 3.04 s
|
注:Kaggle CPU 在 4 线程时表现出较明显的扩展瓶颈,耗时为本地 6800H 的 3.3 倍; OCI ARM 在 1 核至 4 核间表现出接近线性的加速比(约 3.59x )
2. PyTorch:CPU 矩阵乘法( 4096×4096 ,float32 )
- 测试逻辑:
torch.set_num_interop_threads(1),显式预热,多次采样取中位数耗时
线程数 (threads) |
OCI ARM (Ampere) | Lightning CPU | Kaggle CPU | Ryzen 7 6800H (本地) |
|---|---|---|---|---|
| 1 | 3.66 s (37.5 GFLOP/s) |
| 0.90 s
| 2.03 s
| 1.20 s
| | 2 | 1.85 s (74.3 GFLOP/s)
| 0.48 s
| 1.05 s
| 0.64 s
| | 4 | 1.06 s (129.9 GFLOP/s)
| 0.93 s
| 1.02 s
| 0.44 s
| | 8 | — | — | — | 0.27 s
| | 16 | — | — | — | 0.24 s
|
注:Lightning CPU 在 1~2 线程下受益于 x86 高级矢量扩展(AVX)及底层优化的数学库,单核吞吐占优,但打满 4 线程时收益见顶; OCI ARM 多核扩展曲线相对平稳
3. GPU 单算子基准参照( 4096×4096 Matmul )
- 参数设定:PyTorch float32 ,显式关闭 TF32 ,包含
torch.cuda.synchronize()同步
| 硬件平台 | 单次中位数耗时 | 计算吞吐 |
|---|---|---|
| Ryzen 7 6800H (16 线程 CPU) | 236.80 ms |
| ~580 GFLOP/s | | Kaggle Tesla T4 (16GB VRAM) | 40.86 ms
| ~3363 GFLOP/s | | 本地 RTX 3050 Laptop (4GB VRAM) | 36.91 ms
| ~3723 GFLOP/s |
注:纯单算子吞吐下移动端 3050 略胜 T4 ,但 4GB 显存无法承载大规模上下文与 Batch Size ,仅适用于小模型原型快速验证
三、 观察与局限
-
物理核 vs 容器超卖: Kaggle 与 Lightning 的 4 vCPU 在高并发下扩展性衰减,推测主要受宿主机多租户超卖导致的上下文切换(Context Switch)及 CPU 配额(Quota)节流限制; OCI ARM 绑定的为独立物理核心,扩展曲线受多租户干扰相对较小
-
测试局限: 各实例未强制对齐底层线性代数库与依赖环境(如 OpenBLAS / MKL 编译后端差异),随机森林单次采样可能存在瞬态扰动
四、源码
import importlib.metadata as metadata import os import platform import statistics import sys import time
import numpy as np import sklearn import torch from joblib import cpu_count from sklearn.datasets import make_classification from sklearn.ensemble import RandomForestClassifier from sklearn.metrics import accuracy_score from sklearn.model_selection import train_test_split
ORACLE_RF_SECONDS = {1: 34.124, 2: 17.737, 4: 9.503} ORACLE_TORCH_CPU_SECONDS = { 1024: {1: 0.0571, 2: 0.0293, 4: 0.0158}, 2048: {1: 0.4531, 2: 0.2266, 4: 0.1237}, 4096: {1: 3.6563, 2: 1.8504, 4: 1.0573}, } OFFICIAL_TARGETS = { "numpy": "2.3.5", "scipy": "1.16.3", "scikit-learn": "1.8.0", "ISLP": "0.4.1", "torch": "2.10.0", }
def installed_version(name): try: return metadata.version(name) except metadata.PackageNotFoundError: return "未安装"
def environment_report(): print("=" * 72) print("环境检查") print("=" * 72) print(f"OS / 架构 : {platform.platform()} / {platform.machine()}") print(f"Python : {sys.version.split()[0]}") print(f"逻辑 CPU ( OS ) : {os.cpu_count()}") print(f"可用 CPU ( joblib ) : {cpu_count()}") print(f"PyTorch : {torch.version}") print(f"PyTorch 默认线程数 : {torch.get_num_threads()}") print(f"CUDA 可用 : {torch.cuda.is_available()}") if torch.cuda.is_available(): print(f"GPU : {torch.cuda.get_device_name(0)}") print("\nISLP_labs v2.2.2 官方 requirements 相关目标版本:") for package, target in OFFICIAL_TARGETS.items(): actual = installed_version(package) print(f" {package:16} 当前={actual:18} 目标={target}") print("提示:先记录平台预装版本。不要只为版本号相同就替换 Kaggle 预装的 PyTorch ;这可能影响 GPU/CUDA 配置。") print("线程数 1/2/4 用于与 Oracle 的结果横向比较;若平台可用 CPU 少于 4 ,4 线程结果可能受资源限制。")
def random_forest_benchmark(): print("\n" + "=" * 72) print("任务 A:scikit-learn 随机森林( CPU )") print("=" * 72) print("数据:40,000 个样本、40 个特征;训练集 32,000 ,测试集 8,000 ; 200 棵树。") data_start = time.perf_counter() X, y = make_classification( n_samples=40_000, n_features=40, n_informative=20, n_redundant=10, n_classes=2, random_state=42, ) X_train, X_test, y_train, y_test = train_test_split( X, y, test_size=0.2, random_state=42, stratify=y ) print(f"数据准备耗时:{time.perf_counter() - data_start:.3f} 秒") results = [] for n_jobs in (1, 2, 4): model = RandomForestClassifier( n_estimators=200, max_features="sqrt", random_state=42, n_jobs=n_jobs ) t0 = time.perf_counter() model.fit(X_train, y_train) train_seconds = time.perf_counter() - t0 t0 = time.perf_counter() pred = model.predict(X_test) predict_seconds = time.perf_counter() - t0 accuracy = accuracy_score(y_test, pred) results.append((n_jobs, train_seconds, predict_seconds, accuracy)) print(f"\nn_jobs={n_jobs}: 训练 {train_seconds:.3f}s | 预测 {predict_seconds:.3f}s | 准确率 {accuracy:.4%}") baseline = results[0][1] print("\n 与 Oracle 同一任务实测对比(训练时间):") for n_jobs, seconds, predict_seconds, accuracy in results: oracle = ORACLE_RF_SECONDS[n_jobs] if seconds > 0: ratio = oracle / seconds label = f"Kaggle 约快 {ratio:.2f} 倍" if ratio > 1.01 else (f"Oracle 约快 {1/ratio:.2f} 倍" if ratio < 0.99 else "两者接近") else: label = "无法计算比例" print(f"{n_jobs} 线程 | Kaggle {seconds:.3f}s | Oracle {oracle:.3f}s | {label} | 加速 {baseline/seconds:.2f}x") return results
def pytorch_cpu_benchmark(): print("\n" + "=" * 72) print("任务 B:PyTorch CPU 矩阵乘法(与 Oracle 使用相同矩阵规模)") print("=" * 72) print("dtype=float32 ;只测 CPU ;每轮使用中位数,包含一次预热但不计入耗时。") torch.manual_seed(42) torch.set_num_interop_threads(1) all_results = {} for n in (1024, 2048, 4096): print(f"\n 矩阵:{n} × {n}") a = torch.randn(n, n, dtype=torch.float32, device="cpu") b = torch.randn(n, n, dtype=torch.float32, device="cpu") repeats = 5 if n == 1024 else (3 if n == 2048 else 2) all_results[n] = {} for threads in (1, 2, 4): torch.set_num_threads(threads) _ = a @ b # 预热 samples = [] for _ in range(repeats): t0 = time.perf_counter() c = a @ b samples.append(time.perf_counter() - t0) del c seconds = statistics.median(samples) gflops = (2 * n**3) / seconds / 1e9 all_results[n][threads] = seconds oracle = ORACLE_TORCH_CPU_SECONDS[n][threads] if seconds > 0: ratio = oracle / seconds label = f"Kaggle 约快 {ratio:.2f} 倍" if ratio > 1.01 else (f"Oracle 约快 {1/ratio:.2f} 倍" if ratio < 0.99 else "两者接近") else: label = "无法计算比例" print(f"threads={threads} | 中位数 {seconds1000:.1f} ms | {gflops:.2f} GFLOP/s | Oracle {oracle1000:.1f} ms | {label}") del a, b return all_results
def pytorch_gpu_benchmark(): print("\n" + "=" * 72) print("任务 C:PyTorch GPU 矩阵乘法(仅当 CUDA 可用时运行)") print("=" * 72) if not torch.cuda.is_available(): print("跳过:torch.cuda.is_available() 为 False 。若想测试 Kaggle GPU ,请在 Notebook 的 Settings / Accelerator 中选择 GPU 后重启会话。") return device = torch.device("cuda") print(f"GPU:{torch.cuda.get_d
[推广] [免费自荐] Linkit:本地优先的 AI 书签管理器,自动摘要 + 语义搜索 #24
分享一个桌面端的书签管理应用 Linkit ,完全免费,MIT 协议。
要解决的痛点
浏览器书签就是个 URL 列表。存了两千条毫无压力,找回其中一条才是问题。我自己的收藏库 2000+ 条,真正再看的大概 5 条。
商业书签服务普遍按月订阅,不付费就把搜索、标签、设备数都锁住。你的阅读习惯托管在别人商业云上,还得担心服务倒闭和隐私泄露。
Linkit 做了什么
- AI 自动摘要与要点提炼:每条收藏保存时抓取正文,生成摘要并拆成几条要点。读摘要就行,不用点开十几个标签页
- 全库语义搜索:按含义检索,不是按关键词。"怎么把大文件传输变快"能搜到标题里写"传输优化"的那条
- 知识关联图谱:整个库可视化成网络,看得出哪些主题之间有联系、哪些区域是空白
- 主题空间 + AI 策展:用一句话下达目标("收集现代前端工具"),AI 从你已有的收藏里组出合集,再推荐更多。建议在你确认前都可编辑
- 链接健康检查:后台扫描 404 和内容变更,死链不会烂在收藏里
- 近似重复合并:同一条文章从不同 URL 存了三次能自动发现
- Spotlight 闪念呼出:Cmd/Ctrl + K 随时搜索或粘贴入库
- 一键导入:Chrome 、Edge 、Firefox 、Safari 导出的 bookmarks.html ,以及第三方 CSV/JSON
- 界面缩放跟随系统:8 档界面大小,缩放与系统显示比例联动,缩放区间做了安全钳制
- 存储模式切换:本地与云端之间切换会先弹确认对话框,把两侧数据摘要摆清楚再动手
- 导入导出带回滚:导入出问题时自动从快照恢复,不会让你卡在半迁移状态
- 重新分析:对已存的收藏可以单独重跑一次 AI 分析
- 标签建议更省事:AI 每次最多给 3 个标签建议,从短列表里挑就行
- 同步失败更清楚:独立提示条直接告诉你发生了什么,云端会话过期时给一个返回登录的入口
- 批量导入不撞车:从浏览器批量导入时会正确处理保存冲突,不会自己跟自己冲突
- 快捷键自由组合:Ctrl 、Alt 、Shift 、Cmd 可以任意搭配改绑,按住不放会实时预览组合,被别的软件抢占了会提示; macOS / Linux / Windows 的修饰键映射也修了
- AI 建议标签可点击:新建收藏时点一下建议标签就能选中或直接创建
- 同步时不再闪:顶部那条进度条和闪烁动画去掉了
- 批量操作:进入多选模式后出现批量操作栏,全选按钮会选中当前视图里的全部书签,全部选中后自动变成取消全选;按住
Shift点选可以框选一段区间,按Cmd/Ctrl点选可以单条增删。选中的书签可以移动分类、删除、移出主题空间,或者直接生成一个新主题空间 - 写入错误码更稳定:本地库根路径不是目录时,写入返回稳定的错误码,而不是原始系统错误
- 依赖安全升级:
zod从 4.0.1 升到 4.6.7 ,修掉审计报告里的漏洞


本地优先,数据在自己机器上
默认存本机 SQLite ,完全离线可用,零遥测,无账号也能跑。跨设备同步可选,走 Supabase + PostgreSQL 行级安全,每行数据绑定你自己的 auth.uid(),连后台运维也查不到你存了什么。
AI 侧不绑定任何厂商
接任意 OpenAI 兼容接口( DeepSeek 、OpenAI 、Kimi ),或者本地 Ollama 模型,密钥存在系统钥匙串里。完全不想用 AI ?其他功能照常。
技术栈
Go + Wails + React + SQLite ,桌面应用。macOS / Windows / Linux 。
安装
brew install blue-idea/tap/linkit
其他平台去 Releases 页下 .dmg / .exe / .AppImage / .deb 。
永久完全免费,无付费墙,无广告,无订阅。
安装包和项目主页都在这里: https://github.com/blue-idea/linkit
(仓库里放的是 README 、截图、安装脚本和 Homebrew tap ;应用本身以预编译二进制发布,按 MIT 协议免费使用。)
欢迎试用,也欢迎提 issue 指出哪里不好用。
[程序员] AI 能替代运维吗?
我们在 AI 和运维之间扮演什么角色?安全套吗?
[分享创造] 搭手 1.0 发布:搜索条、可视化自动化和 AI,一个人写完了
搭手是我一个人写的效率工具,Windows 和 macOS 都能用,1.0 刚发。三块东西:Alt+Space 唤出的搜索条、可视化编辑的「组合动作」、以及一个能直接操作应用的 AI 工作台。免费功能不用登录,动作、笔记、待办、剪贴板这些数据都存在本机。
一、为什么做这个
我日常用的工具分三类:启动器( uTools 、Raycast )、自动化( Quicker 、影刀)、AI 客户端。分开用的问题不是功能少,而是来回切:搜到一半要开另一个窗口做批量处理,自动化里想加一步 AI 又得出去调接口。
搭手只做一件事:把「找东西」「做重复的事」「让 AI 帮你做」放进同一个入口。不是为了替代谁,是我自己每天要用。
和 uTools 比,组合动作和 AI 是原生的,不靠插件补;和 Raycast 比,Windows 也能用。代价是插件生态现在为零,后面会讲。
二、搜索条
Alt+Space 唤出。一个列表里放已安装应用、组合动作、网页快开、备忘、笔记、待办、脚本命令、AI 命令;支持拼音和模糊匹配,空查询按最近使用排序。
几个我天天在用的内置应用:剪贴板历史、JSON 编辑器、调色板与屏幕取色、翻译、计算器、结束进程。剪贴板会记文字、图片和文件,能忽略指定应用,密码管理器标记的敏感内容会跳过;选中一条直接粘回唤出前的应用。
两个细节:组合动作在后台跑的时候,搜索条顶部会固定一条「正在运行」,点进去能看到执行到哪个节点;输入框可以直接拖着窗口走,不用抓边框。
三、组合动作
这是花时间最多的一块,本质是一个可视化的工作流引擎:左边节点库、中间流程、右边全局变量,拖拽插入,双击改参数。流程是线性的步骤列表加控制块嵌套,不是自由连线——分支一多,连线图反而看不清。
现在有一百二十个业务节点,加上 if / while / for / foreach / try / parallel 这些控制块。文件、文本、正则、图片、二维码、OCR 、日期、列表、数学、压缩、键鼠、浏览器、HTTP 、邮件都有。节点之间传的是 JSON 和二进制游标,参数里可以写 {{ }} 表达式。
三个真实在用的例子:
- 收到一批截图,按日期命名、移动到归档目录,同时 OCR 出文字存成 txt ;
- 每天早上定时抓取某个网页的数据,拼成消息发到企业微信;
- 在 Finder 里选中几个文件,打开搜索条运行动作,批量复制到项目目录。
还有子动作、全局变量、运行记录和逐节点日志、动作包 zip 导入导出。浏览器自动化有两种跑法:内置 Chromium 在后台跑,不抢焦点;或者连本机 Chrome 的调试端口,用你登录好的会话。
HTTP 模块做成了市场:别人写好的接口节点可以下载启用,也能用本地设计器自己做一个,不用跟着发版。
四、AI 工作台
不是聊天窗口加个输入框。它有两副面孔。
通用 AI 是 Raycast 那种会话式工作台,能带图片和文件,能按需加载技能(~/.agents/skills 里的 Markdown )。
动作助手是给组合动作用的:你说「把下载目录里的 PDF 按月份归类」,它给方案,你确认后直接把动作建好,还能自己发起调试,失败后读日志改。
AI 能读写内置应用里的数据(笔记、待办、备忘、网页快开),还能查进程、结束进程;删除、结束这类危险操作会先弹确认框。
模型是 BYOK:接口地址、key 、模型名自己填,请求从本机直连供应商,不经过我的服务器,也支持 OpenAI 兼容的第三方网关。
另外还有 AI 命令:选中一段文字,调出「润色」「翻译」「解释」这类预设命令,或者自己写带参数的 prompt 。预置了九条。
五、实现与问题
Electron + Vue 3 + TypeScript + TDesign 。四个 SQLite 库按用途分开(配置 / 缓存 / 剪贴板 / 日志),没有云端数据库; IPC 按域切,preload 只暴露白名单。内置 Agent 是自己写的 OpenAI 兼容循环:流式拼 tool_calls 、多轮工具调用、重试、取消、上下文预算,没有套壳别的 agent 框架。
现在的问题:
- 插件系统还没有,1.0 能扩展的只有三十来个内置应用。能力模型我还在改,不想先放一个收不回来的口子。
- 教程少。功能多,不少藏在设置和右键菜单里,第一次用会漏。
- macOS 需要辅助功能 / 屏幕录制权限,键鼠和截图节点才可用; OCR 和翻译要自备服务商凭证; AI 要自己配模型。
- 不做云同步,换机器只能导出动作包。
- 不接自动更新,关于页手动检查新版本。
收费方面:免费版不登录就能用,组合动作 10 个、子动作 3 个、定时任务 3 个、备忘 20 条、剪贴板保留 30 天;会员解除数量限制,自定义主题也归会员。首版购买还没接支付,只能激活码。只是日常用的话,免费版基本够。
六、下载
官网: https://www.da-shou.cn/download
Windows 和 macOS 都有,版本 1.0.0 ; macOS 首版是 Apple Silicon 包。Windows 如果被 SmartScreen 拦一下,是还没做代码签名。
如果你打开后第一反应是「怎么没有 XX 」,那正是我想听的。评论区说,或者应用内「设置 → 反馈」提。
MiniToolDesk v1.0 发布:纯前端离线开发者工具箱,杜绝数据泄露与广告骚扰
酷瓜云课堂(网校企业版)v2.0.3 发布,PHP在线网校系统