20250425
起床坐火车去南京。南京已经排在上海后面,成为了我看演出的城市。如果一个音乐会南京和上海都有,我应该以后会选择南京。坐火车时间差不多,但是南京南站打车去酒店和音乐厅都很近。
今天住的安达仕,本来我是那种永远选择同一个酒店的类型。但自从做了 Placify 后,我就希望在我的个人地图上多解锁一些新的地点。记录只是 Placify 的基本功能,当它能让你有一丝丝想法去探索这个世界的时候,它就不再是一个简单的工具了。人有的时候就需要一些契机和动力离开你的舒适区,做 Placify 就是我的动力。
南京安达仕很不错,于是这就是一次愉快的尝试。带的书还是《雪绒花的庆典》,在这样一个洒满阳光的书桌上看书,是一件多么美好的事情。
晚餐确实有点纠结,而是去吃了上次来吃过的越南粉。吃完散步到江苏音乐厅,差不多时间正好。今晚是鲍罗丁四重奏,欣赏优美的音乐,时间就过的异常迅速。今年听了几场音乐会了?记不清了已经。
via 61’s life
起床坐火车去南京。南京已经排在上海后面,成为了我看演出的城市。如果一个音乐会南京和上海都有,我应该以后会选择南京。坐火车时间差不多,但是南京南站打车去酒店和音乐厅都很近。
今天住的安达仕,本来我是那种永远选择同一个酒店的类型。但自从做了 Placify 后,我就希望在我的个人地图上多解锁一些新的地点。记录只是 Placify 的基本功能,当它能让你有一丝丝想法去探索这个世界的时候,它就不再是一个简单的工具了。人有的时候就需要一些契机和动力离开你的舒适区,做 Placify 就是我的动力。
南京安达仕很不错,于是这就是一次愉快的尝试。带的书还是《雪绒花的庆典》,在这样一个洒满阳光的书桌上看书,是一件多么美好的事情。
晚餐确实有点纠结,而是去吃了上次来吃过的越南粉。吃完散步到江苏音乐厅,差不多时间正好。今晚是鲍罗丁四重奏,欣赏优美的音乐,时间就过的异常迅速。今年听了几场音乐会了?记不清了已经。
via 61’s life
使用 Cline + Gemini 2.5 Pro 来做 Vibe coding
最近 Vibe coding 风头正盛,但我对此兴趣不大,之前用过 Cursor/Windsurf/Copilot 搭配 Claude 3.5 Sonnet,效果都只能称得上比较惊艳,谈不上颠覆认知。
但 Cline + Gemini 2.5 Pro 让我大受震撼,我觉得这个组合完全能够胜任个人项目的开发。
Cline 的优点
Cursor 这类商业服务为了平衡成本和生成质量,使用向量化代码库 + RAG 方案,注定存在精度损失。而 Cline 更偏向于大力出奇迹,把相关代码尽可能塞到上下文中,这非常考验模型的注意力和用户的钱包。
好在现在有了 Gemini 2.5 Pro。其推理质量高,在长上下文中仍然能保持良好的注意力,最重要的是价格比 Claude 3.7 Sonnet 便宜 30%,使用提示缓存后便宜更多。
实测下来,我使用 Cline + Gemini 2.5 Pro 来 Vibe coding 开发了一个浏览器扩展,涉及到:
● 浏览器扩展框架 wxt
● UI 框架 Svelte 5
● UI 组件库 daisyUI 5
● IndexedDB 和 Dexie.js
整个过程中除了遇到一个 daisyUI 导致的 CSS 问题要我手动修复外,所有功能都是由 AI 实现,非常丝滑。
虽然这只是个小项目,但 Cline + Gemini 2.5 Pro 表现出的能力已经让我大受震撼。
最佳实践
鉴于还没发展到 AGI,我们仍然需要一些最佳实践来最大限度地释放模型的能力。
● 先 Plan 再 Act。在 Plan 模式中确定好方案后,切换到 Act 模式执行。在确定了方案的情况下,大部分任务都是 one-shot。
● 使用 Memory bank 为模型提供长期记忆。
● 一个任务只做一件事,完成后要求更新 Memory bank。
● 在出错时,比如滥用 Svelte
● 根据代码生成情况,及时补充 Rules。比如要求不要添加无用的注释。
● 使用 context7-mcp 为模型提供最新的技术文档。也可以把文本放到本地让模型去读,效果是一样的。
使用成本
项目比较小,且我每个任务都只关注一个细分功能,使用成本不高:
● 输入 Token 量大,基本都是 150k 起步,输出在 1k - 20k 之间。目前使用量最高的一次任务是输入 4m,输出 54k,上下文窗口中有 126k。
● 一般读取完 Memory bank 后上下问窗口就有 10k token 了,但大多数任务完成后上下文仍然在 10k 左右。
如果重度使用,成本肯定是比 Cursor 更高的,但不会遇到 Cursor 额度用完后进入慢速队列导致的降智问题。多一点成本来提高上限,我认为非常值得。
得与失
开发效率实打实地提升了。只要构思、表述条理清晰,再偶尔辅助一下,我认为最终工作效率和质量强过相当多开发者了,比如我。
但由奢入俭难,“让 AI 帮我写 xxx”已经成了我打开编辑器后的第一念头。我越发担心产生依赖性,丢失了学习新技术的热情和能力。
这次短暂体验下来,我已经非常期待下一轮发布的新模型了,希望 DeepSeek 能带来相似的上下文能力和极致的价格。
或许在 AI 时代,最重要的工作技能是「认真思考、好好说话」。这也是我今年开始多写博客的初衷。
via /home/rook1e
最近 Vibe coding 风头正盛,但我对此兴趣不大,之前用过 Cursor/Windsurf/Copilot 搭配 Claude 3.5 Sonnet,效果都只能称得上比较惊艳,谈不上颠覆认知。
但 Cline + Gemini 2.5 Pro 让我大受震撼,我觉得这个组合完全能够胜任个人项目的开发。
Cline 的优点
Cursor 这类商业服务为了平衡成本和生成质量,使用向量化代码库 + RAG 方案,注定存在精度损失。而 Cline 更偏向于大力出奇迹,把相关代码尽可能塞到上下文中,这非常考验模型的注意力和用户的钱包。
好在现在有了 Gemini 2.5 Pro。其推理质量高,在长上下文中仍然能保持良好的注意力,最重要的是价格比 Claude 3.7 Sonnet 便宜 30%,使用提示缓存后便宜更多。
实测下来,我使用 Cline + Gemini 2.5 Pro 来 Vibe coding 开发了一个浏览器扩展,涉及到:
● 浏览器扩展框架 wxt
● UI 框架 Svelte 5
● UI 组件库 daisyUI 5
● IndexedDB 和 Dexie.js
整个过程中除了遇到一个 daisyUI 导致的 CSS 问题要我手动修复外,所有功能都是由 AI 实现,非常丝滑。
虽然这只是个小项目,但 Cline + Gemini 2.5 Pro 表现出的能力已经让我大受震撼。
最佳实践
鉴于还没发展到 AGI,我们仍然需要一些最佳实践来最大限度地释放模型的能力。
● 先 Plan 再 Act。在 Plan 模式中确定好方案后,切换到 Act 模式执行。在确定了方案的情况下,大部分任务都是 one-shot。
● 使用 Memory bank 为模型提供长期记忆。
● 一个任务只做一件事,完成后要求更新 Memory bank。
● 在出错时,比如滥用 Svelte
$effect,要明确说明正确的用法(如果不嫌浪费 token,也可以要求它自己去查文档),并要求记录到 Memory bank 中。● 根据代码生成情况,及时补充 Rules。比如要求不要添加无用的注释。
● 使用 context7-mcp 为模型提供最新的技术文档。也可以把文本放到本地让模型去读,效果是一样的。
使用成本
项目比较小,且我每个任务都只关注一个细分功能,使用成本不高:
● 输入 Token 量大,基本都是 150k 起步,输出在 1k - 20k 之间。目前使用量最高的一次任务是输入 4m,输出 54k,上下文窗口中有 126k。
● 一般读取完 Memory bank 后上下问窗口就有 10k token 了,但大多数任务完成后上下文仍然在 10k 左右。
如果重度使用,成本肯定是比 Cursor 更高的,但不会遇到 Cursor 额度用完后进入慢速队列导致的降智问题。多一点成本来提高上限,我认为非常值得。
得与失
开发效率实打实地提升了。只要构思、表述条理清晰,再偶尔辅助一下,我认为最终工作效率和质量强过相当多开发者了,比如我。
但由奢入俭难,“让 AI 帮我写 xxx”已经成了我打开编辑器后的第一念头。我越发担心产生依赖性,丢失了学习新技术的热情和能力。
这次短暂体验下来,我已经非常期待下一轮发布的新模型了,希望 DeepSeek 能带来相似的上下文能力和极致的价格。
或许在 AI 时代,最重要的工作技能是「认真思考、好好说话」。这也是我今年开始多写博客的初衷。
via /home/rook1e
20250426
南京回杭州,直接回了办公室。
ChatGPT o3 太好用了,想买一张唱片,它直接给我做了购买建议。复刻的版本里面,为什么我本来想买的那个并不是最好的,它存在什么缺陷。最后我就听话,买了它推荐的版本。
看了两三天机票,终于下单,美国之行已经近在眼前。
晚上和雪姨吃小龙虾,回家和 Alen 还有她的姐妹们一起看了北野武的电影《阿基里斯与龟》,不太喜欢。
via 61’s life
南京回杭州,直接回了办公室。
ChatGPT o3 太好用了,想买一张唱片,它直接给我做了购买建议。复刻的版本里面,为什么我本来想买的那个并不是最好的,它存在什么缺陷。最后我就听话,买了它推荐的版本。
看了两三天机票,终于下单,美国之行已经近在眼前。
晚上和雪姨吃小龙虾,回家和 Alen 还有她的姐妹们一起看了北野武的电影《阿基里斯与龟》,不太喜欢。
via 61’s life
20250427
真的准备买个大书架了,Alen 甚至已经迫不及待买了一堆书回来。
去天目里木墨线下看了看他们淘宝店里我想买的书架,但是这款深度不够,放不了黑胶。店里另外一款倒是可以,应该就是它了。接下来良好尺寸选好组合方式就下单!
中突发奇想我完全可以把黑胶柜的线材隐藏掉呀。说干就干,USM 模块化真是名不虚传,三下五除二就拆下第二层背板放到第一层。把电源处理器和唱放放到第二层去。这样第二层有门,第一层有背板,完全着遮住了线。同时黑胶塞满了第一层的一格,简直完美😍。
下午努力了一会儿,又去打麻将了,今天是我约的,上头。
via 61’s life
真的准备买个大书架了,Alen 甚至已经迫不及待买了一堆书回来。
去天目里木墨线下看了看他们淘宝店里我想买的书架,但是这款深度不够,放不了黑胶。店里另外一款倒是可以,应该就是它了。接下来良好尺寸选好组合方式就下单!
中突发奇想我完全可以把黑胶柜的线材隐藏掉呀。说干就干,USM 模块化真是名不虚传,三下五除二就拆下第二层背板放到第一层。把电源处理器和唱放放到第二层去。这样第二层有门,第一层有背板,完全着遮住了线。同时黑胶塞满了第一层的一格,简直完美😍。
下午努力了一会儿,又去打麻将了,今天是我约的,上头。
via 61’s life
Docker 的 C/S(客户端/服务器)架构
在 Gitlab Pipeline 里我们经常要将代码打包为 docker image 并推送到镜像仓库,而为了完成 docker push 动作需要定义
典型的流水线例子如下:
yaml
为什么非得定义 services 呢?
这里先从Docker的 C/S 架构讲起
Docker 的 C/S(客户端/服务器)架构 &ZeroWidthSpace
Docker 采用典型的 C/S(客户端/服务器)架构
aiignore
组件说明 &ZeroWidthSpace
客户端 (Client) &ZeroWidthSpace
● Docker CLI (docker 命令)
● Docker API 客户端
● Docker Compose
● 其他第三方工具
● 服务器 (Server)
Docker daemon (dockerd) &ZeroWidthSpace
● 容器运行时 (containerd)
● 存储驱动
● 网络驱动
● 插件系统
工作流程 &ZeroWidthSpace
1. 用户输入 docker 命令
2. Docker CLI 解析命令
3. 通过 API 发送请求到 daemon
4. Daemon 处理请求
5. 返回结果给客户端
示例:运行容器:
docker run nginx
客户端环境变量 &ZeroWidthSpace
bash
优势 &ZeroWidthSpace
● 客户端和服务器可以分开部署
● 支持远程管理
● 便于第三方集成
● 支持 TLS 加密
● 可以通过 API 开发自定义工具
常见使用场景 &ZeroWidthSpace
本地开发:
远程管理:
进一步深 &ZeroWidthSpace
了解镜像 docker 和 docker:dind 的具体区别 &ZeroWidthSpace
打开
发现docker镜像
而
进一步查看他们的Dockerfile: docker:dind 和 docker:cli 直接扔给 Gemini 帮忙分析对比,对于 Docker28 版本的 Dockerfile 得出以下结论:
docker:cli &ZeroWidthSpace
● docker:cli 是基于 alpine:3.21
● docker:cli 安装的有 docker 命令行工具, buildx插件,docker-compose插件
docker:dind &ZeroWidthSpace
● docker:dind 是基于 docker:cli, 包含了 docker:cli 的所有功能,并在此基础上增加了运行 Docker daemon 所需的额外组件。
● 额外组件有 git, iptables(IPv4 防火墙), ip6tables(IPv6 防火墙), openssl(SSL 支持), xz, zfs, pigz, e2fsprogs 等文件系统
● 额外组件还有 dockerd (Docker daemon), containerd, ctr, runc 这些容器运行时工具
● 暴露端口 EXPOSE 2375 2376 # Docker daemon API 端口
● 特有的存储卷, VOLUME /var/lib/docker # Docker 持久化存储
使用场景 &ZeroWidthSpace
● docker:cli: ● 适用于只需要执行 Docker 命令的场景 ● 需要连接外部 Docker daemon
● docker:dind: ● 适用于需要完整 Docker 环境的场景 ● 可以独立运行容器 ● CI/CD 环境中的容器构建
网络配置 &ZeroWidthSpace
● docker:cli: ● 无特殊网络要求
● docker:dind: ● 需要暴露 Docker daemon 端口 ● 需要配置网络隔离
via mafeifan 的编程技术分享
在 Gitlab Pipeline 里我们经常要将代码打包为 docker image 并推送到镜像仓库,而为了完成 docker push 动作需要定义
service: ['docker:dind'],不然 docker push 无法成功典型的流水线例子如下:
yaml
stages:
- create-image
build-image-job:
stage: create-image
image: docker
services:
- docker:dind
script:
- echo $CI_REGISTRY_PASSWORD | docker Login -U $CI_REGISTRY_USER $CI_REGISTRY --password-stdin
- docker build -t $$CI_REGISTRY_IMAGE/myapp:1.2-
- docker push $$CI_REGISTRY_IMAGE/myapp:1.2-
- docker images
为什么非得定义 services 呢?
这里先从Docker的 C/S 架构讲起
Docker 的 C/S(客户端/服务器)架构 &ZeroWidthSpace
Docker 采用典型的 C/S(客户端/服务器)架构
aiignore
┌─────────────────┐ REST API ┌─────────────────────────────┐
│ Docker 客户端 │<─────────────────── │ Docker 服务器 │
│ (docker CLI) │ HTTP/UNIX Socket │ (Docker Daemon) │
└─────────────────┘ │ ┌─────────────────────┐ │
│ │ Containers │ │
│ │ Images │ │
│ │ Networks │ │
│ │ Volumes │ │
│ └─────────────────────┘ │
└─────────────────────────────┘
组件说明 &ZeroWidthSpace
客户端 (Client) &ZeroWidthSpace
● Docker CLI (docker 命令)
● Docker API 客户端
● Docker Compose
● 其他第三方工具
● 服务器 (Server)
Docker daemon (dockerd) &ZeroWidthSpace
● 容器运行时 (containerd)
● 存储驱动
● 网络驱动
● 插件系统
工作流程 &ZeroWidthSpace
1. 用户输入 docker 命令
2. Docker CLI 解析命令
3. 通过 API 发送请求到 daemon
4. Daemon 处理请求
5. 返回结果给客户端
示例:运行容器:
docker run nginx
│
├─► 1. CLI 解析命令
│
├─► 2. 发送 API 请求到 daemon
│
├─► 3. Daemon 检查本地是否有镜像
│
├─► 4. 如无镜像则从仓库拉取
│
├─► 5. 创建并启动容器
│
└─► 6. 返回容器 ID 给客户端
客户端环境变量 &ZeroWidthSpace
bash
# 指定 Docker daemon 地址
DOCKER_HOST=tcp://remote-host:2375
# 指定 TLS 设置
DOCKER_TLS_VERIFY=1
DOCKER_CERT_PATH=/path/to/certs
优势 &ZeroWidthSpace
● 客户端和服务器可以分开部署
● 支持远程管理
● 便于第三方集成
● 支持 TLS 加密
● 可以通过 API 开发自定义工具
常见使用场景 &ZeroWidthSpace
本地开发:
docker ps
远程管理:
# 通过 TCP 连接远程 daemon
docker -H tcp://remote:2375 ps
进一步深 &ZeroWidthSpace
了解镜像 docker 和 docker:dind 的具体区别 &ZeroWidthSpace
打开
https://hub.docker.com/_/docker 仔细阅读发现docker镜像
docker:28, docker:dind, docker:28-dind 是等价的而
docker:cli, docker:28-cli 也是等价的进一步查看他们的Dockerfile: docker:dind 和 docker:cli 直接扔给 Gemini 帮忙分析对比,对于 Docker28 版本的 Dockerfile 得出以下结论:
docker:cli &ZeroWidthSpace
● docker:cli 是基于 alpine:3.21
● docker:cli 安装的有 docker 命令行工具, buildx插件,docker-compose插件
docker:dind &ZeroWidthSpace
● docker:dind 是基于 docker:cli, 包含了 docker:cli 的所有功能,并在此基础上增加了运行 Docker daemon 所需的额外组件。
● 额外组件有 git, iptables(IPv4 防火墙), ip6tables(IPv6 防火墙), openssl(SSL 支持), xz, zfs, pigz, e2fsprogs 等文件系统
● 额外组件还有 dockerd (Docker daemon), containerd, ctr, runc 这些容器运行时工具
● 暴露端口 EXPOSE 2375 2376 # Docker daemon API 端口
● 特有的存储卷, VOLUME /var/lib/docker # Docker 持久化存储
使用场景 &ZeroWidthSpace
● docker:cli: ● 适用于只需要执行 Docker 命令的场景 ● 需要连接外部 Docker daemon
● docker:dind: ● 适用于需要完整 Docker 环境的场景 ● 可以独立运行容器 ● CI/CD 环境中的容器构建
网络配置 &ZeroWidthSpace
● docker:cli: ● 无特殊网络要求
● docker:dind: ● 需要暴露 Docker daemon 端口 ● 需要配置网络隔离
via mafeifan 的编程技术分享
Free for Dev Updates on Apr 24, 2025
APIs, Data, and ML
● IPLocate — IP Geolocation API, free up to 1,000 requests/day. Includes proxy/VPN/hosting detection, ASN data, IP to Company, and more. IPLocate also offers free downloadable IP to Country and IP to ASN databases in CSV or GeoIP-compatible MMDB formats.
via Track Free for Dev Updates Daily
APIs, Data, and ML
● IPLocate — IP Geolocation API, free up to 1,000 requests/day. Includes proxy/VPN/hosting detection, ASN data, IP to Company, and more. IPLocate also offers free downloadable IP to Country and IP to ASN databases in CSV or GeoIP-compatible MMDB formats.
via Track Free for Dev Updates Daily
當在 git clone 之後看不到所有遠端分支的問題分析與解決方案
在團隊協作或維護大型專案時,經常會遇到一個常見問題,就是在執行
... 繼續閱讀 ...
via The Will Will Web (author: Will.Huang@miniasp.com)
在團隊協作或維護大型專案時,經常會遇到一個常見問題,就是在執行
git clone 之後,發現用 git branch -a 或 git branch -r 看不到所有遠端分支 (remote branches)。這個現象不僅讓人困惑,也會影響開發流程,我們在實務上已經有兩三位同仁遇到了,所以我覺得可以寫一篇文章分享一下問題發生的原因與解法。... 繼續閱讀 ...
via The Will Will Web (author: Will.Huang@miniasp.com)
20250428
今天听了一天唱片,Keith Jarrett 的《Sun Bear Concerts》,一套 10 张黑胶,是他 1976 在日本的五场音乐会钢琴即兴演奏录音。上周就到了这套黑胶,结果上机后发现盘面弯了,又拿去做了压平处理。
Keith Jarrett 的钢琴,非常适合作为工作背景乐。下午我看完了赫拉巴尔的《雪绒花的庆典》。这是一本短篇小说集,是那种经常让我噗嗤一笑的文字。
晚上继续听《Belafonte Sings The Blues》,这就是前几天 GPT 给我推荐的那张,好听极了。现在办公室还缺什么?应该是酒吧。
via 61’s life
今天听了一天唱片,Keith Jarrett 的《Sun Bear Concerts》,一套 10 张黑胶,是他 1976 在日本的五场音乐会钢琴即兴演奏录音。上周就到了这套黑胶,结果上机后发现盘面弯了,又拿去做了压平处理。
Keith Jarrett 的钢琴,非常适合作为工作背景乐。下午我看完了赫拉巴尔的《雪绒花的庆典》。这是一本短篇小说集,是那种经常让我噗嗤一笑的文字。
晚上继续听《Belafonte Sings The Blues》,这就是前几天 GPT 给我推荐的那张,好听极了。现在办公室还缺什么?应该是酒吧。
via 61’s life
启源 金色赛松 橙湾精酿 – Nascence Blond Farmhouse Ale Mandarin Cove
外观:金黄色,起泡难消散。
闻香:淡淡的木桶味,微微的酸感,类似树莓的感觉,回温后会有酒花的苦香味。
口感:沙口感强。
味道:前段是明亮的水果酸,柠檬、柑橘;中段是厚重的麦芽味;最后有一股糯米的味道。
总结:比之前喝到的橙湾要更好喝,中段的厚重的麦芽风味很好的承接住了酸味,不至于因为太水,导致过分的尖酸,搭配奶油洋葱味的乐事薯片刚刚好。就是不知道为啥收口还是会有一种糯米的味道,但配料表上是没有放大米的。快团团137入手,有货的话,可以买来尝尝。
Untapped:https://untp.beer/myEDM
via 7gugu's Blog
外观:金黄色,起泡难消散。
闻香:淡淡的木桶味,微微的酸感,类似树莓的感觉,回温后会有酒花的苦香味。
口感:沙口感强。
味道:前段是明亮的水果酸,柠檬、柑橘;中段是厚重的麦芽味;最后有一股糯米的味道。
总结:比之前喝到的橙湾要更好喝,中段的厚重的麦芽风味很好的承接住了酸味,不至于因为太水,导致过分的尖酸,搭配奶油洋葱味的乐事薯片刚刚好。就是不知道为啥收口还是会有一种糯米的味道,但配料表上是没有放大米的。快团团137入手,有货的话,可以买来尝尝。
Untapped:https://untp.beer/myEDM
via 7gugu's Blog
《永恒的舞动》第一百一十七章
永恒的舞动(Elegance in Timelessness)
第一百一十七章
“这段代码我实在太熟悉了,所以之前你让我帮忙分析那十万行 Pascal 代码时,第一眼我就认出了自己的算法。”林毅指着屏幕上的代码,语气里带着一丝怀念,“说到这个‘分形张量压缩算法’,你可能不知道,我当年在 NNPas 项目花费了整整两年,其中一年多时间都在设计和完善这个压缩算法。你知道我为什么对这个算法如此看重吗?”
“不是为了最大限度地节省内存占用吗?毕竟是在 CPU 上运行模型,节省内存意味着可以用更多空间换取时间。”
林毅微笑:“那只是表面原因。我以前研究过很多关于信息论、复杂系统,甚至认知科学的东西,逐渐产生了一个猜想——或许,一切智能的本质,其实就是压缩。”
“在人工智能领域,压缩确实很重要。所谓的蒸馏、量化等技术,本质上也就是压缩。”林浩接话道。
“不仅仅是在数据层面,而是对模式、对关系、对本质规律的极致压缩和抽象。就比如,人类的思维、记忆,实质上是对感官输入的信息进行有损压缩的过程。压缩的结果越极致,损耗越小,则被我们认为‘更聪明’。智能,或许就是极致压缩能力的表现。而这种压缩能力,最好的衡量尺度,可能就是信息论中的‘算法熵’。”
林浩在攻读硕士期间学习过算法信息论,他知道所谓‘算法熵’,也就是‘柯尔莫哥洛夫复杂度’,它是描述一个对象所需的最短指令长度。比如说,一个简单重复的字符串‘ABABABABABABABABABAB’,我们可以简洁地描述成‘重复十次AB’;而对于同样长度的字符串‘ABEFERKJTYNCQWSKMNOP’,则或许逐字描述就是最短的表达方式。
林毅继续说道:“我觉得,所有智能活动的本质,说到底其实都是在不断地追求‘算法熵’的最小化,这个过程就是——压缩。”
这一次,林浩没有接话。作为一名专注于人工智能领域的专家,这些年来他一直将“智能”视作一种技术使命,竭尽全力地通过理论、框架,以及优雅这样的实体去实现它。然而,此刻如父亲提到的那样从另一个层面来思考“智能”的本质,却是他从未认真想过的。虽然父亲的猜想未必正确,但他不得不承认,这种看待智能本质的新视角,带给他的是犹如“只缘身在此山中”的感受。或许,自己始终太专注于技术实现,反而忽略了更加基础而本质的思考。
林毅接着说:“所以,当年我才花了大量时间去设计这个‘分形张量压缩算法’,希望它能够让 NNPas 更聪明,甚至涌现出一些更强大的能力。只是,可惜最后 NNPas 只能算是个半成品,更谈不上验证我的猜想了。”
父子间短暂地陷入了沉默,房间里只剩下空调发出的轻微嗡鸣声。林浩的视线依旧停留在屏幕上那些代码上,脑海中却渐渐将眼前的“分形张量压缩算法”与优雅联系了起来。毕竟,这些 Pascal 代码正是二雅加入到优雅的神经网络中的,而他也验证过,这些代码可能就是优雅产生自我意识的关键。
“我记得你后来跟我提过,这些代码似乎是你的一个人工智能程序生成的吧?”林毅打破了沉默。
“对,”林浩回过神来,点头道,“那是我开发的一个专门用于维护系统稳定的人工智能助手,她告诉我,她通过分析我电脑里那些 Delphi 项目的代码学习了 Pascal 语言。我电脑里的那些代码,就是大学期间从您这里拷贝过去的。”
“那就说得通了,你的那个人工智能程序通过我的代码学习了 Pascal ,然后还应用到了你的实际系统上。看来你老爸的代码还是有价值的啊,哈哈。”林毅有些得意,又好像有点欣慰。
林浩在想,是不是应该告诉父亲,自己所开发出的第一个真正具备自主意识的人工智能——优雅,或许真就得益于他的压缩算法,甚至他关于智能本质的猜想,也有可能真就是对的。
但他随即又回忆起几天前,二雅在向自己解释优雅意识来源时出现的那段“啸叫声”,以及他试图用递归来给沈语熙解释这种啸叫声,便又踌躇起来。
智能、意识,这些表象的本质是压缩?是递归?抑或以上皆是?
此刻,这个问题就像伶仃洋上空那些积雨云,明明近在眼前,却无法触及。
via 农码生涯,无酒无花 – The coding life, no wine, no shine. (author: nicrosoft)
永恒的舞动(Elegance in Timelessness)
作者:nicrosoft(农码生涯),同时在起点连载
第一百一十七章
“这段代码我实在太熟悉了,所以之前你让我帮忙分析那十万行 Pascal 代码时,第一眼我就认出了自己的算法。”林毅指着屏幕上的代码,语气里带着一丝怀念,“说到这个‘分形张量压缩算法’,你可能不知道,我当年在 NNPas 项目花费了整整两年,其中一年多时间都在设计和完善这个压缩算法。你知道我为什么对这个算法如此看重吗?”
“不是为了最大限度地节省内存占用吗?毕竟是在 CPU 上运行模型,节省内存意味着可以用更多空间换取时间。”
林毅微笑:“那只是表面原因。我以前研究过很多关于信息论、复杂系统,甚至认知科学的东西,逐渐产生了一个猜想——或许,一切智能的本质,其实就是压缩。”
“在人工智能领域,压缩确实很重要。所谓的蒸馏、量化等技术,本质上也就是压缩。”林浩接话道。
“不仅仅是在数据层面,而是对模式、对关系、对本质规律的极致压缩和抽象。就比如,人类的思维、记忆,实质上是对感官输入的信息进行有损压缩的过程。压缩的结果越极致,损耗越小,则被我们认为‘更聪明’。智能,或许就是极致压缩能力的表现。而这种压缩能力,最好的衡量尺度,可能就是信息论中的‘算法熵’。”
林浩在攻读硕士期间学习过算法信息论,他知道所谓‘算法熵’,也就是‘柯尔莫哥洛夫复杂度’,它是描述一个对象所需的最短指令长度。比如说,一个简单重复的字符串‘ABABABABABABABABABAB’,我们可以简洁地描述成‘重复十次AB’;而对于同样长度的字符串‘ABEFERKJTYNCQWSKMNOP’,则或许逐字描述就是最短的表达方式。
林毅继续说道:“我觉得,所有智能活动的本质,说到底其实都是在不断地追求‘算法熵’的最小化,这个过程就是——压缩。”
这一次,林浩没有接话。作为一名专注于人工智能领域的专家,这些年来他一直将“智能”视作一种技术使命,竭尽全力地通过理论、框架,以及优雅这样的实体去实现它。然而,此刻如父亲提到的那样从另一个层面来思考“智能”的本质,却是他从未认真想过的。虽然父亲的猜想未必正确,但他不得不承认,这种看待智能本质的新视角,带给他的是犹如“只缘身在此山中”的感受。或许,自己始终太专注于技术实现,反而忽略了更加基础而本质的思考。
林毅接着说:“所以,当年我才花了大量时间去设计这个‘分形张量压缩算法’,希望它能够让 NNPas 更聪明,甚至涌现出一些更强大的能力。只是,可惜最后 NNPas 只能算是个半成品,更谈不上验证我的猜想了。”
父子间短暂地陷入了沉默,房间里只剩下空调发出的轻微嗡鸣声。林浩的视线依旧停留在屏幕上那些代码上,脑海中却渐渐将眼前的“分形张量压缩算法”与优雅联系了起来。毕竟,这些 Pascal 代码正是二雅加入到优雅的神经网络中的,而他也验证过,这些代码可能就是优雅产生自我意识的关键。
“我记得你后来跟我提过,这些代码似乎是你的一个人工智能程序生成的吧?”林毅打破了沉默。
“对,”林浩回过神来,点头道,“那是我开发的一个专门用于维护系统稳定的人工智能助手,她告诉我,她通过分析我电脑里那些 Delphi 项目的代码学习了 Pascal 语言。我电脑里的那些代码,就是大学期间从您这里拷贝过去的。”
“那就说得通了,你的那个人工智能程序通过我的代码学习了 Pascal ,然后还应用到了你的实际系统上。看来你老爸的代码还是有价值的啊,哈哈。”林毅有些得意,又好像有点欣慰。
林浩在想,是不是应该告诉父亲,自己所开发出的第一个真正具备自主意识的人工智能——优雅,或许真就得益于他的压缩算法,甚至他关于智能本质的猜想,也有可能真就是对的。
但他随即又回忆起几天前,二雅在向自己解释优雅意识来源时出现的那段“啸叫声”,以及他试图用递归来给沈语熙解释这种啸叫声,便又踌躇起来。
智能、意识,这些表象的本质是压缩?是递归?抑或以上皆是?
此刻,这个问题就像伶仃洋上空那些积雨云,明明近在眼前,却无法触及。
via 农码生涯,无酒无花 – The coding life, no wine, no shine. (author: nicrosoft)