Posts for: #Tech

图灵测试:背景、方法、意义和现状

背景

1950 年,图灵在《Mind》杂志发表《计算机器与智能》。他开头就说,“机器能思考吗”这个问题太模糊,没法回答,于是换了一个可以动手做的实验,叫“模仿游戏”。那一年,全世界能跑的电子计算机只有几台。

方法

一个人当裁判,用文字和两个看不见的对象聊天,一个是人,一个是机器。裁判想问什么都行。聊完,裁判猜哪个是机器。

图灵的预言是:到 2000 年,聊五分钟后,普通裁判猜对的概率不超过 70%。也就是说,机器能骗过三成裁判,就算过关。

只用文字,是这个设计的关键。声音、长相、身体都被挡在外面,剩下的只有对话本身。

意义

它给人工智能定了第一条终点线:只要表现得和人分不出来,就算智能。它绕开了“什么是思考”的哲学争论,只看行为。

反对的人也是围着它打。1980 年塞尔提出“中文房间”:一个不懂中文的人,照着规则手册处理中文纸条,也能让房间外的人以为里面有个懂中文的人。他的结论是,通过测试不等于理解。今天关于大模型“懂不懂”的争论,还是这个框架。

现状

早期的“通过”都是取巧。1966 年的 ELIZA 靠模板套话,骗过了一些人。2014 年的 Eugene Goostman 假扮一个 13 岁的乌克兰男孩,英语不好有了借口,骗过了三成裁判。业内没人把这两次当真。

大模型改变了局面。2025 年加州大学圣地亚哥分校做了一次三方测试,五分钟对话,GPT-4.5 在被要求扮演一个具体人设时,有 73% 的裁判把它当成了人。这个比例高于同场真人。多数研究者现在认为,经典图灵测试已经过了。

过了之后,大家发现它测的东西比想象中少。同一批模型在长任务规划、稳定推理、承认自己不知道这几件事上仍然会翻车。聊天像人和做事靠谱,是两回事。

这个领域已经转向更难的考题:数学和编程题、跑几个小时的代理任务、裁判有几周而非五分钟的“长图灵测试”。还有人把问题反过来:现在难的是在网上证明你是人。

图灵画的那条终点线,我们在 2024 到 2025 年之间跨过去了,然后发现它是起跑线。

海盗博弈:怎么从下一轮倒推分金币

海盗博弈的题面很简单:5 个海盗要分 100 枚金币,按资历从高到低轮流提方案。提案通过,按方案分钱;被否决,提案者被扔下海,由下一位提案。

它的难处不在算术,在于每个人都知道其他人会怎么算。

这里采用一个常见版本:提案须得到不少于半数的赞成票;提案者也能投票。每个海盗的偏好依次是活下来、金币更多、看到别人被扔下海。

从两个人开始

给海盗按资历编号 A、B、C、D、E,A 最高。

只剩 B 和 C 时,B 投自己一票就达到半数。因此 B 会提 100 比 0,C 会投反对,但方案照样通过。

只剩 A、B、C 三人时,A 还需要一张票。A 知道自己被否决后,B 会拿 100,C 会拿 0。于是 A 给 C 1 枚,方案是:

海盗ABC
金币9901

C 拿 1 枚比下一轮的 0 枚多,会投赞成。

四人时,最资深者也只需要多拿一票。他去看三人局的结果,找下一轮拿 0 的人,给他 1 枚。

五人时,A 需要包括自己在内的 3 张赞成票。若 A 被否决,B 的四人方案会是:

海盗BCDE
金币99010

所以 A 找 C 和 E,各给 1 枚:

[阅读全文]

Omarchy 用户常用的 mise 命令

mise 来自法语 “mise en place”,意思是把东西准备妥当。厨师开工前备好食材,mise 则在进入项目时备好正确版本的 Node.js、Python、Go 等工具,以及环境变量和任务。

它解决的问题很直接:不同项目需要不同版本;换电脑后,开发环境很难重新配齐;nvm、pyenv、rbenv 各管一摊。项目把配置写进 mise.toml,mise 会按目录自动切换。

普通用户常用这些命令:

mise ls                    # 查看已安装及当前使用的工具
mise use node@22           # 给当前项目安装并指定 Node.js 22
mise use -g node@22        # 设置全局默认版本
mise install               # 安装项目声明的全部工具
mise outdated              # 查看哪些工具可以升级
mise up                    # 升级 mise 管理的工具
mise run test              # 运行 mise.toml 里的 test 任务
mise doctor                # 检查配置和环境问题

临时用某个版本运行命令,可以写:

mise x node@22 -- node app.js

在 Omarchy 里,更新所有 mise 工具还可以用:

omarchy update mise

进入一个配置好 mise.toml 的项目,通常只需运行:

mise install
mise run test

Artifactory 是什么

Artifactory 是 JFrog 做的软件包仓库,可以把它理解成开发团队的软件仓库。Python 包、npm 包、Docker 镜像、编译好的程序,都可以放进去,供其他项目或服务器下载。

Git 保存源代码和修改记录。Artifactory 保存开发时用到的软件包,以及代码打包后的成品。

拿一个 Python 服务来说:代码提交到 GitHub 后,自动构建程序通过 Artifactory 下载依赖,完成测试,再把做好的 Docker 镜像上传到 Artifactory。部署时,生产服务器从这里下载指定版本的镜像。

除了保存团队自己的包,它还能代理 PyPI、npm 等公共仓库,把下载过的包缓存下来。后续构建可以复用缓存,减少重复下载和对外网的依赖。开发工具里出现 artifactory 地址,通常就是在通过这样的仓库取包。

多个项目共享内部包、集中保存发布版本时,会用到这类工具。它可以部署在自己的服务器上,也可以使用 JFrog 的云服务。

来源:JFrog Artifactory 概览、仓库类型。

用 AeroSpace 给 Mac 加上 Omarchy 式的平铺和快捷键

在 Omarchy 上习惯了 Super+Return 开终端,新窗口自动排在当前窗口旁边。回到 Mac 上想要同样的东西,发现缺两块:macOS 不会自动平铺新窗口,Alacritty 也没有分屏。

AeroSpace 一个工具补上两块。它是 i3 风格的平铺窗口管理器,不用关 SIP,自带全局快捷键,所以 yabai 和 skhd 都不用装。

brew install --cask nikitabobko/tap/aerospace

配置是一个 toml 文件,放在 ~/.config/aerospace/aerospace.toml。我配的键:

  • Cmd+Return:新开一个 Alacritty 窗口,自动平铺到当前窗口旁边
  • Cmd+Shift+Return:开浏览器
  • Cmd+Shift+F:开 Finder
  • Alt+H/J/K/L:切焦点,加 Shift 移动窗口
  • Alt+1 到 9:切工作区,加 Shift 把窗口送过去
  • Alt+F 全屏,Alt+R 进 resize 模式

开终端那一条走的是 alacritty msg create-window,在已经跑着的 Alacritty 进程里开新窗口,没在跑就用 open -a 拉起:

[mode.main.binding]
cmd-enter = 'exec-and-forget /Applications/Alacritty.app/Contents/MacOS/alacritty msg create-window || open -a Alacritty'
cmd-shift-enter = 'exec-and-forget open -a "Brave Origin"'
cmd-shift-f = 'exec-and-forget open -a Finder'

系统设置、Raycast 和 Finder 的复制进度窗设成浮动,其余全部平铺。首次启动要给 Accessibility 权限,给了才能动窗口。

[阅读全文]

一个人训一个小模型:成本、步骤和真正的难点

42 章经 8 月 29 日那期,曲凯对谈逯雨鑫。他不是 AI PhD,也没在 AI Lab 待过,用一张显卡、两周、几百美元后训出的小模型两次登上 Hugging Face 热度榜第一。

这期没有文稿,小宇宙上这档节目关掉了官方 AI 转录,所以我把音频扒下来让 whisper 转了一遍,再把方法整理成下面这份可以照着做的清单。转录是机器做的,数字和英文名词我做了批量校正但没有逐句核对,最后一节列了几处没听清的地方。

他到底做了什么

  • 基座是 Gemma 3 12B,老师模型是 Fable 5(他估算 3T 参数以上),做法是拿老师的回答喂给小模型,也就是蒸馏加监督微调(SFT)。
  • V1 用了 5 天,其中 3 天做数据、1 天训练。V2 用了两三周,其中 12 天在做数据。
  • 硬件是一张 5090,方法是 QLoRA。真正跑训练只有十几个小时。另有一份 200 美元的 Claude Max 订阅,用来合成靶向数据。总成本几百美元。
  • 效果:在 agentic 工具调用类的基准上,原版 15 分,训完 55 到 60 分。代价是其他基准或多或少掉分。

这条路只有一个衡量标准:模型在你那一个场景里是不是更好用了。全局变聪明是 AI Lab 的事。

六步

第一步,先想清楚要做什么。他强调不要看什么火做什么,热的方向竞争对手也多。做应用的就围绕自己的业务想。目标不明确,后面每一步都无从判断对错。

第二步,选基座模型。中文场景直接选 Qwen,他说 Qwen 是坑最少的,训练脚本、部署、周边工具都最全。Gemma 3 12B 的中文很差,不管哪个量化版本,大部分时候会往粤语上飘。Llama 4 和最近那个 30B 的模型架构不主流,训起来会很麻烦。

[阅读全文]

Caddy 是什么,和 Nginx 有什么区别

Caddy 是一个 Web 服务器,也可以做反向代理。它和 Nginx 属于同一类软件。

一套 Web 应用部署到服务器后,通常只监听本机端口,比如:

http://127.0.0.1:3000

用户访问的则是:

https://app.example.com

Caddy 放在应用前面,接收来自互联网的请求,再把请求转给本机的应用:

用户 → HTTPS → Caddy → HTTP → 应用程序

它主要处理几件事:

  • 接收 80 和 443 端口的公开流量。
  • 根据域名,把请求转给对应的应用。
  • 自动申请和更新 HTTPS 证书。
  • 把 HTTP 请求跳转到 HTTPS。
  • 提供静态文件、压缩、访问日志和负载均衡。

应用程序只管自己的业务。域名、证书和公开流量交给 Caddy。

和 Nginx 的区别

Caddy 和 Nginx 能做的事情很接近。Nginx 历史更久,市场更大,文档、模块和运维经验也更多。复杂的流量规则、大规模部署和已有的 Nginx 系统,继续使用 Nginx 很自然。

Caddy 的配置短很多。它默认处理 HTTPS 证书,也会自动续期。一个最简单的反向代理只要几行:

app.example.com {
    reverse_proxy localhost:3000
}

用 Nginx 完成同样的部署,通常还要配置证书,并用 Certbot 或其他工具处理续期。对只有几台服务器、几个域名的小团队,Caddy 可以少维护一套证书流程。

Caddy 也很适合 Docker。服务器只把 80 和 443 端口开放给 Caddy,其他容器留在内部网络里:

[阅读全文]

GeoLite2 免费 IP 库可以商用吗

MaxMind 的 GeoLite2 是一个免费的 IP 地理位置数据库。它可以商用,但用法不同,许可要求也不同。

如果一款 SaaS 产品把 GeoLite2 数据库放在自己的服务器上,用它查询用户 IP 所在的国家、城市或 ASN,免费的 GeoLite 最终用户许可通常就够了。产品可以收费,也可以把查询结果展示给用户。

这种用法要满足几个条件:

  • 在产品文档、法律声明或相关页面注明数据来自 MaxMind。
  • 保持数据库更新。MaxMind 发布新版后,要在 30 天内停止使用并删除旧版。
  • 不得用这些数据定位具体个人、家庭或街道地址。
  • 不得把数据用于信用、保险、就业或政府福利资格判断等 FCRA 规定的用途。
  • 不得删除数据库里的版权和许可声明。

MaxMind 给出的署名范例是:

This product includes GeoLite Data created by MaxMind, available from https://www.maxmind.com.

如果把 .mmdb 或 .csv 数据库文件打包进桌面软件、私有部署版本或交付给客户的软件里,情况就不同了。这属于分发数据库,需要购买 GeoLite 商业再分发许可。每个包含 GeoLite 数据库的产品都需要单独购买许可。

如果产品只在自己的服务器上查询数据库,再把国家、城市等结果返回给用户,一般不算把数据库交给客户。对大多数在线服务来说,这是最简单的做法。

还有一个实际问题:MaxMind 明确说,免费的 GeoLite City 准确度低于付费的 GeoIP City,不建议用于要求较高的商业场景。这是准确度提醒,并非禁止商用。涉及风控、合规或重要业务判断时,应该同时考虑数据精度,不要只看许可是否允许。

以上结论基于 MaxMind 在 2026 年 2 月 12 日更新的许可。正式上线前,可以按自己的使用方式再确认一次:数据库留在服务端,可以使用免费许可;把数据库文件交给客户,需要商业再分发许可。

来源

VPS 从 NixOS 迁出后,我会选 Debian

我有一些服务放在虚拟主机上,以前一直跑 NixOS。最近我把 NixOS desktop 都删掉了,服务器上的 NixOS 还在,但我已经不再每天碰它。

NixOS 的配置能进 Git,换机器能重建,升级和回滚也有边界。服务多、机器多、配置经常改时,这一套很有用。

我现在的 VPS 规模不大,服务也相对稳定。上服务器多半是续证书、查日志、升级服务,或者处理故障。NixOS 的配置语言、包版本和模块机制,成了额外一层要记住的东西。

这次我会选 Debian。

Debian stable 的包不会频繁换大版本,安全更新会继续进入。Debian 13 的完整支持到 2028 年,LTS 到 2030 年。Debian 的发布页 也把 stable 作为生产环境的推荐版本。

Ubuntu 也可以。某个服务的官方安装文档只覆盖 Ubuntu,或者需要更近的新版本时,我会直接用 Ubuntu。Ubuntu Server 26.04 LTS 的免费安全和维护更新到 2031 年。官方支持周期在这里。

Arch 留给桌面。它采用滚动发布,系统要完整升级,部分升级不受支持。ArchWiki 的维护要求,对无人盯着的 VPS 不合适。

我会新开一台 Debian 13 虚拟主机迁服务,不在旧机上硬改发行版。服务配置放 Docker Compose,数据做异机备份;新机先恢复和验证,再切域名。旧 NixOS 机器留到恢复流程跑通后再下线。

先从最简单的一台开始。

Bark 是什么:给 iPhone 推自定义通知的极简通道

开源 App + 可选自建后端,用一条 HTTP 请求把消息打到系统通知栏。对「AI agent 跑完任务提醒我」这种场景,往往比钉钉/飞书/Telegram 机器人更短、更贴锁屏。

iOS onlyHTTP → APNs开源 + 免费
接收端是 Bark App(系统推送)你发请求,后端转苹果推送App 与 bark-server 均开源;公共服长期维护承诺

一句话

Bark(Finb/Bark)是一款 iOS App:装好后你会得到一个设备 key,之后任何脚本/服务器/Agent 只要访问类似 https://api.day.app/你的key/标题/内容 的 URL(或 POST JSON),消息就会以系统推送出现在 iPhone 上——App 不必一直在前台跑。

它解决的不是「团队 IM」,而是「把事件打到我自己的手机锁屏」。所以你说适合 AI agent 任务完成推送,方向是对的。

它怎么工作

步骤内容
1 · APPApp Store 装 Bark,打开拿到 device key(也可扫码/复制推送 URL)。
2 · 请求脚本对公共服 api.day.app 或自建 bark-server 发 GET/POST。
3 · 转发bark-server 把消息交给 Apple APNs(系统推送通道)。
4 · 到达iOS 弹出通知;可分组、点按跳 URL、归档历史等。

相对「自己接 APNs」:你不用管苹果开发者证书、HTTP/2、token 刷新。公共 Bark 把这些藏在 App/官方后端里;自建时多数人仍可继续用官方 App 的 APNs 能力(按项目文档部署 bark-server)。

[阅读全文]