26 KiB
title | date | slug | featuredImage | categories | tags | series | summary | description | wikilinks | lastmod | |||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
岁时录(十九) | 2025-05-09 | weekly-19 | https://img.viento.cc/cover/weekly-19-cover.webp |
|
|
岁时录 | 岁时录其十九 | 本文是作者周报的第十九期,分享了近期在技术实践与思考方面的一系列动态,包括在反复尝试后最终为GoToSocial服务“Spectral”选择了新的域名`spect.im`并完成部署的曲折过程,在MacBook Air上测试本地大语言模型Qwen3的体验与得失,服务器意外宕机后建立数据备份机制的经历,以及对于一种“自顶向下”、从具体兴趣项目出发构建技能树的理想化高等教育模式的深入思考,并提出了一个通过在域名下设置标准文件来实现统一网络头像的IndieAvatar构想。最后作者分享了近期最为核心的困扰:对过往残留数字足迹可能带来的隐私泄露风险感到焦虑,并详细剖析了更换一个全新ID以求彻底“干净”的利弊。作者对是否值得这样做深感纠结,并在文末真诚地向读者征询意见。 | true | 2025-05-09 |
各位老友,晚上好。这里是 Chlorine。在现实中亮着昏黄灯光的公共空间中,再写一点小小的东西。
各位老友应该也能看出来,这一期周报小氯写得有一点心不在焉。具体原因的话,您可以看最后面。
GoToSocial
小氯已经记不清这是小氯搭的第几个 GoToSocial 实例了,或许是第八个?
Why GoToSocial?
小氯其实挺喜欢 *Key 的。1虽然说对于小氯来说功能有些冗余且过于二次元了,但是表情回复难道不 cool 吗?
然而虽说小氯觉得它很酷,但小氯的 VPS 并不这么认为。整个 Key 系的资源占用半斤八两,总体而言可能需要预留 1.5~2 G 的空间,也就是我们需要一台单独的,配置在 2 G 或者 2.5 G 的服务器去承载它,这听上去还是有点恐怖的。哦,Iceshrimp.NET
除外,它的资源占用主要在于 PostgreSQL,本体极其轻量,总的占用和 Pleroma 差不多,只不过界面没那么好看。
此外,整个 Mastodon 系和 Key 系都有一个让小氯几乎无法忍受的缺点:运维困难。小氯说过,自己喜欢 Set and Forget 的东西。
那这么看,还是得选一点轻量级的选手。只不过吧,Snac2 实在是太过朴实了(它甚至没有数据库),而 Ktistec 大概还只能算是个半成品。说来说去,还是 GoToSocial 看起来最靠谱。反正小氯已经给 GoToSocial 写了个还不错的主题,展示界面看起来也不至于太难看。
具体的部署流程小氯不多说了,官方文档说得很明白。只是不知道为什么,compose.yaml
的配置不能被读取,只好全写成环境变量了。
瞎折腾
按照小氯之前的说法,自己希望把所有的社交服务聚合到同一个域名下。GoToSocial 也不例外,毕竟 chlorine@eigen.im
这个去中心化 ID 还是挺不错的。
在 docker-compose.yml
的环境变量中添加:
env:
GTS_HOST: gts.yourdomain.tld
GTS_ACCOUNT_DOMAIN: yourdomain.tld
然后主域名做好 301 就可以了。
本来事情到这里就可以结束了。Fedi 的各位老友可以非常顺畅地使用 @chlorine@eigen.im
来灌注关注小氯,和 Owu 的联合也很顺利。
然而!小氯在使用 PL-FE 的时候发现了一个让人很难受的事情:用户域名的显示还是 gts.eigen.im
。各种 Key 也是同样的情况。这其实很合理,因为大部分的请求都是发往 gts.eigen.im/api/xxx
的。但是,看着是一顶一的难受,尤其是 gts
这个二级前缀看着毫无美感。
不过,使用主域名是不可能的,那么咱们就改一个更美观的 HOST
吧。例如 space.eigen.im
,特征空间嘛,合理。
重启服务……好像哪里不太对劲?我怎么没办法关注 Owu 上的用户了?
赶紧去翻官方文档,看到了这么一句:
You cannot change your domain layout after you've federated with someone. Servers are going to get confused and you'll need to convince the admin of every instance that's federated with you before to mess with their database to resolve it. It also requires regenerating the database on your side to create a new instance account and pair of encryption keys.
其实从数据库里面也可以看到这一点,例如我们执行:
SELECT * FROM instances;
可以看到表的结构中有两个字段:domain
和 uri
,里面写的都是 HOST
。如果你后期再更改,是要对方手动调数据库的。小氯在已经有联合的情况下改了后端 API 的域名,那不出问题才怪。
真是 JFK 坐敞篷车——乐死了。
那就趁着事情还没闹大,赶紧把 HOST 切回来吧。
这下倒是正常了,可是为什么用户变成两个了?
这似乎也合理,毕竟 HOST 都不同了。
于是小氯把数据库下载了下来,开始复习 SQL。一顿 DELETE
之下,确实是把问题解决了——大体就是删以及删完之后查一下表的健康程度。然而最初的问题还是没有解决,在 Key 的世界里小氯还是要顶着这个很丑的 gts
后缀。
由于这是一个 what is done cannot be undone 的时代,因此 eigen.im
算是彻底和 gts
这个前缀绑定了。那么剩下的方法只有一种:转生。
然而这就不符合小氯「社交服务聚合化」的计划了,而且还需要多付一个域名的续费。
纠结了好久,最终不知道是什么促使小氯下定了决心,小氯在备份了旧的数据(备份是个好习惯)之后,毅然决然地买了一个新的域名——我重生了,这一世,我要拿回属于我的一切!
新的域名是 spect.im
(没错,又是 .im
,这个后缀还挺不错的)。spect 是 Spectral 的缩写,这也是小氯的 GoToSocial 新的名字。
Spectral 的字面意思是「谱」,意为矩阵或者线性算子特征值的集合,当然也可以理解为物理或者化学中的谱,例如光谱和色谱。此外这个词好像还有幽灵的、飘忽不定的的意思,作为一个 GoToSocial 的名字似乎还挺不错的。
sayso.im
:孩子们,我还能说什么呢?
总而言之,就是这样。这次小氯干脆也不搞什么分域部署了,直接用这个好看的域名当后缀。docker-compose
一把梭,启动,初始化,开始配置,开始联合,完事。
我用呆毛发誓绝对不再删库重来了!遇到更好的实现了除外。
总而言之,小氯终于是搭建了一个比较稳定的 GoToSocial 实例了。这个实例目前还在测试阶段,但是应该是不会轻易关停了
Spectral 目前运行在 LA US 机房的一台 1C2G 的 VPS 上,线路经过了优化,国内速度应该会不错。上面除了它还有一个 Bluesky PDS,但这个 PDS 大概率是要关了(Bluesky 不太对我胃口)。目前整台机器内存占用大概是一半,PDS 停了之后还能省下一些。这个配置别说 GoToSocial,跑一个 Akkoma 甚至是 Sharkey 都够了。
不过有一个问题:小氯当初是为了研究信息安全才拉来一个同学一起续费这台 VPS 的,但是发现其优化线路在校园网环境下效果不明显,那这个性价比可就不高了。所以等到这台服务器过期之后,Spectral 大概率是要做一次迁移的。可能会搬到小氯的 RackNerd 电子垃圾上,最好的选择应该是搬到 Hetzner 的欧洲区服务器,有 GDPR 嘛——前提是我能注册成功。
本地化大模型
本地化大模型应该不算是一个新话题了,从开源的对话大模型出现(比如 LLaMA 和 ChatGLM)就有大神尝试着在自己的电脑上部署大模型。这样做的优点很明显:所有的权重、过程和交互都在本地,可以完全离线使用,隐私性和安全性比云端模型高了几个数量级,而且几乎没有跑路风险。缺点则是除此以外:你需要比较好的硬件配置(CPU,显卡和内存),同时本地大模型的性能和智力通常都不如云端的模型(废话,你想用你的电脑去对抗一台砸了好几万甚至十几万的服务器吗)。
小氯也试过用 Ollama 部署一些本地模型,比如当时似乎试过 LLaMA 3.1 中文微调版和 Gemma 2。结果嘛……不得不说是不得不说了。
你说 9.11 比 9.7 大我能理解为你在说版本号,可你说鲁迅和周树人既是师生又是父子还是兄弟是否有些太过分了?
从此小氯放弃了在自己心爱的 MacBook Air 部署本地大模型,每天幻想着买一台 Intel I9 + RTX 4090 的家用服务器跑最好的开源大模型(DeepSeek-R1:嗯)。众所周知,幻想本身也是能够狠狠满足自己的 (/ω\)
直到前几天在 Fedi 乱逛的时候看到了寒寒的帖子,发现……
这个 Qwen3 1.7B 似乎还挺拟人的?
Qwen(通义千问)也算是国产开源大模型的老朋友了,而且应该算是里面做得比较好的(最好的大概是 DeepSeek 大将军,然后就是千问和 ChatGLM 它们了)。虽然说小氯不太喜欢牢巴,但是显然也不能把对公司的态度代入具体的开源产品上。
对于 Qwen3 的话,小氯在一个 Demo 里试过最大参数的 Qwen3 235B A22B,给人的感觉大概是「一股 DeepSeek 味」,不知道是不是训练的数据重合太多了。不过很多推理模型都是这个毛病,也不能说就是什么大的缺点。
这么胡思乱想着,才发现自己已经打开 Ollama 的搜索界面了。小氯自己推测,电脑的配置跑一个 8B 应该是绰绰有余的,14B 可能有点慢,但应该也可以。那我们先从 8B 试一下吧。
ollama pull qwen3 # 默认就是 8B 的
8B 大概 5 G 多,也不算大。pull
完就可以 run
了。跑了几个问题发现最多只能说是差强人意,于是又 pull
了 14B 的。
14B 的模型有 9 G 多,从虚拟网卡的日志看是托管在 Cloudflare R2 上。不过注意:此处最好不要用优选。
拟人测试
这里放一个比较正常(指我问的问题)的结果吧,放心,没有猫娘。
Q:用轻松幽默的口吻简要介绍凯恩斯和哈耶克的经济学论战。
A:凯恩斯和哈耶克这对经济学界的"双胞胎兄弟",堪称经济学界的"相爱相杀"天花板。凯恩斯像一位总在派发优惠券的店长,认为经济低迷时政府该出手,用基建、发钱、降利率等"魔法"让市场重新热络;哈耶克则像一位坚持不打折的老板,坚信市场就像一锅正在沸腾的汤,政府乱插手只会让汤汁溢出来,反而让经济"咕嘟咕嘟"地崩盘。
这场论战本质是"政府该当导演还是观众"的终极辩论:凯恩斯说"市场需要导演手把手教",哈耶克说"市场是自洽的交响乐,别总插手打节拍"。两人观点就像外卖平台和传统餐馆的较量——一个是送餐机器人(政府干预),一个是等客上门的老板(自由市场),谁更懂消费者(经济)的真正需求?
最终这场"经济学武林大会"没有胜负,反而让后世经济学家们学会了"左手凯恩斯主义,右手哈耶克主义"的平衡术——毕竟在现实世界里,既要防止经济"过冷",也要警惕"过热"的泡沫,这大概就是经济学界的"中庸之道"吧!
总体速度还过得去,一秒几个到十几个中文字吧。不过首个 token 一如既往地很慢。
再使用同样的问题问一下 14B 版本,得到的回答是这样的(内容基本没有调,只改了下格式方便显示):
A:好的!让我们来一场经济学界的世纪大戏——凯恩斯 vs 哈耶克,两位经济学界的“老冤家”,用一场关于“该不该让政府插手经济”的论战,把经济学变成了“现实版权力的游戏”。
凯恩斯(John Maynard Keynes):这位英国“经济急救医生”信奉一句话:“当经济感冒时,政府该打针。”他主张:经济危机就像发烧,政府要立刻出手——大搞基建、发钱、借钱,用“财政刺激”让经济回暖。他坚信“短期痛苦,长期快乐”,甚至说“通货膨胀比失业更可怕”(虽然后来他的理论被证明在某些情况下确实有效)。
哈耶克(Friedrich Hayek):这位奥地利“自由市场卫士”则怒吼:“别碰市场!它不是一锅汤,是精密的钟表!”他坚信:政府干预就像让一群外行修钟表,结果只会越修越乱。他警告“计划经济会导致信息失灵”,甚至预言“通往奴役之路”(别误会,他不是说政府会直接抓人,而是说过度干预会让经济失去活力)。
论战高潮:1930年代大萧条时,凯恩斯的理论成了“经济急救包”,而哈耶克则像“自由市场苦行僧”,坚持“让市场自己舔伤口”。后来,凯恩斯的理论在战后大放异彩(比如美国的“罗斯福新政”),但哈耶克的警告在2008年金融危机时被重新翻出来——“政府救市,可能救的是泡沫”。
现实版结局:如今的经济学界,像“左右手打架”——凯恩斯的“政府出手”和哈耶克的“自由市场”成了政策工具箱里的“双刃剑”。比如:疫情期间,政府发钱(凯恩斯风),但长期高通胀时,又得靠市场调节(哈耶克风)。总之,这场论战就像经济学界的“辩论赛”,吵了100年,现在还在继续——毕竟,谁说得对?可能得看经济“感冒”有多严重。
总结:
凯恩斯:“救救经济,别让市场饿死。” 哈耶克:“别救,让市场自己活过来。” 而我们:“快点,别吵了,我钱包在哭。” 😂
明显比 8B 更拟人一些,虽然有些措辞并不准确甚至有错误(别的不说……罗斯福新政是在战后吗?!)。速度的话,在终端单轮对话的时候二者意外地差不多,但是在 Cherry Studio 里面做多轮对话的时候 8B 明显更快。
至于具体是 Cherry Studio 的问题还是模型本身的问题,我倾向于是前者。虽然我还没做完整的实验,但 Cherry Studio 的速度比在终端里慢了不止一点,
硬件负担问题
好像问题不太大,后台生成的时候正常开浏览器上网、开 IINA 听歌和写博客都没问题(指没有明显的卡顿现象),只是电脑有点温暖——说实话,小氯用了这么久的 MacBook,头一次看到自己的电脑这么明显地变温暖……
TL; DR
论 TL; DR 为什么要放到最后面
- Qwen3 做得还算不错,对于简单的任务是够用的,但目前还是没法和云端大模型比。
- 硬件要求不太高,M2 + 16 GB 的 UAM 应该差不多,但如果是 8 GB 的 UAM 估计就很难了。
宕机与备份
这事说起来很无厘头,就是小氯闲着没事想看看自己 spect.im
的主界面,然后发现加载错误了。
这一般是被墙了的标志,于是小氯换了个网络再看一眼……这怎么还是进不去?
这就很罕见了。再看看自己魔法猫咪,这台服务器显示 Timeout 了。断网重连,没有作用。
更奇怪了。SSH 上去看一下……Connection Closed?
坏了,这八成是服务器本身出问题了。去服务商官方的控制台看一下……好家伙,522。
小氯当时就不淡定了:这该不会是跑路了吧?
先不管钱的事情,小氯的 GoToSocial 实例数据还在上面呢——我甚至没做备份。对自己的服务依赖稳定性过于有信心然后惨遭教♀育的小氯酱。不过仔细想想,就算跑路了,不也应该提前发个通告吗?那么只剩下了一种可能:机房出现了不可抗力故障。
这一点是暂时无法亲自确认的,于是小氯去 NodeSeek 逛了一下,发现不少网友反映自己的 VPS 断联了。再仔细看看,大概情况是机房不知道为什么断电了。如果是机房断电了,那应该还好,毕竟按照现代服务商和系统的鲁棒性,就算再不济,断电保护应该还是有的。只要不像某服务商火灾之后直接扔给用户一台全新的服务器就行(RackNerd:阿嚏)。
那就等着吧。大概等到一两点钟的时候,上去看了一下,已经恢复了,数据还在。
不过经此一役,小氯也是不敢再 RAID -1 了。赶紧写了个脚本,把数据每几天打包备份到 R2 一份。由于不太了解 SQLite 怎么消除竞争与冒险问题(数电学多了),所以采用了最粗暴的方法:备份之前 docker-compose 停掉,备份后再打开。数据用 GPG 加好密,也不怕放到第三方去。
自顶向下的学习
我不太知道这种方式到底应该叫「自顶向下」还是「自底向上」,或许「从具体到抽象」是个比较好的叫法——但也没那么好,因为我们所需要的东西其实并不抽象。
具体些说吧。例如小氯有一天突发奇想,要做一个课题:《从某国际事件的网络舆情变化分析官方策动在现代互联网民心中的作用》。具体是什么国际事件我们姑且不提,不过研究方法大体一致。
小氯不太懂互联网传播学和政治学,不过我们也能拼凑一个大概的研究过程:先获取足够的舆论数据,清洗、整理、分析后得到一个直观的趋势,然后结合外部信息进行分析并总结出一般规律。
当然,这个步骤无异于如何把大象装进冰箱。那我们来看看,一个「外行」,要学习什么技术才能把这个自己感兴趣的话题做成一篇可以发表的「论文」。
获取数据这一步,直观来看应该没有现成的数据集可用,需要自己爬,那就需要爬虫技术。那么,我们就需要先知道什么是爬虫,以及学习相关的语言,比如说 Python,然后动手写或者是直接复用和改进已有的爬虫。而获取到数据后,我们还需要把这些数据整理为我们便于处理的格式(例如纯文本),粗略洗去其中「脏」的部分(例如无意义的占位符),然后整理为一个有序的、便于 AI 进行「阅读」的格式。下面就需要对舆情数据进行分析,例如将其倾向打一个标签之类的,这涉及到情感识别等领域的内容。然后我们还需要把结果整理为一个 human-friendly 的形式。此外,我们还需要搜集一些和我们研究的因素有关的事件,这可能是外交的或者官方媒体的或者是什么别的。下面的事情就是政治学和传播学大放异彩的时候了,这部分可以交给我们研究这些领域的朋友,如果我们的通识教育足够的话,甚至自己上也可以……
好的,那么现在我们已经获得了丰硕的研究成果。如果我们做得足够认真且运气足够好,甚至可以得出一些有开创性的结论,而不是仅仅做一点分析总结。下面就需要把这些文字转化为论文了。这当然需要基础性的学术写作训练,以及对于论文投稿流程的了解——这个过程比你想的要复杂,最好能有一位前辈,例如导师或者学长学姐来指引一二。此外,涉及到的其他工具,例如 Word,LaTeX,Typst 以及 Git 和 Zotero 一类我们就不多提了。
很好,现在你已经有了一个明确的、自己感兴趣的目标,以及小氯为你勾勒出的(虽然不太严谨的)完整的技能树。现在从一个离你最近的点开始,把这棵树一点点点满吧。感觉很多吗?当然是这样的,毕竟你是在做学术,是在做一件改变世界的事情。只需要记住三样东西:你最初对这个目标的热忱,规划好的技能树,以及在你踏上旅程之前学的那些被称为「基础课程」和「通识教育」的东西。这样,即使你最后发现自己已经没有必要做这个课题了,你也已经向着合格的学者或者工程师迈出了坚实的一步。
各位老友,这就是小氯眼中,高等教育最理想的形态。
并不是带着你,按照某条轨迹,走过一个领域小径分叉的花园,而是在留下几个基本的节点后,将一切交予你。如同突触中神经递质的传递,或是电路板衔接处亮起的火花。思想在有意无意的探索中扩展、延伸、卷曲、纠缠,不断扩大自己芝诺的圆。若是看到了哪一个走不动路的点,便停下,深挖,直到触摸到铁矿、化石或者岩浆。如是这般,建起一座巍峨的地下城市,如同森林中菌丝相连的精致与复杂,亦有不可见底的锚点,让阳光直到古登堡界面。
这种方式或许可以叫「自顶向下」,或许可以叫「T 型人才培养」,或许可以叫「学研结合」,或许也可以叫别的名字。这种思想有过许多实践,也取得了一定的成果。只不过,由于资源、人的惰性等各种现实因素,其还难以在现代高等教育中很好地铺开罢了。不过小氯依然觉得,如果我们希望培养「乐于探索、思维先进的终身学习者」,这或许可以是个好的思路,尤其是对于跨学科的学生而言,他们更需要这样的探索和融合空间——学科交叉大概可以算是现代学界和业界研究的必然趋势了,而多一些领域的知识——即使并没有那么直接地「交叉」,也可以让我们在思考问题的时候多一些角度。毕竟,一个不会画画的保险箱破坏者不是擅长打鼓的物理学家,您说是吧,费曼先生?
IndieAvatar
这是我突然有的一个想法,但我认为值得记录一下。
事情大概是这样的:众所周知,IndieWeb 运动的一个核心是:Domain is identity,你的域名就是你的网络身份。而得益于什么都能装的 .well-known
路径,我们可以把自己的各种乱七八糟的身份,从 Mastodon 到 Matrix 都放在这下面。那么头像为什么不可以呢?
例如我们可以在 .well-known/avatar
放一个这个东西:
{
"url": "https://img.mys3.com/path/to/your/avatar.suffix",
"alt": "My best avatar forever!"
}
然后希望获取你的头像时,只需要查找你的域名下的这个文件,把里面的 URL 拎出来就行了。什么时候想换头像了,改一下 URL 字段就完事。这样在不同的社交平台上——例如,Fediverse,Bluesky,Fedi-Forge,乃至各个符合 IndieWeb 的网站的评论区,我们只要放置自己的域名,就可以有统一的视觉形象。
当然,如果真的要把这个主意变成一个标准的话,还是有很多工作要做的——我们需要制定一个完整的 JSON 文件规范,需要提供易于使用的 SDK 和 API,最重要的是,需要有人来用。这大概会是一个漫长的工作,不过我可能暂时没精力去做它了。
我应该换个 ID 吗?
这个问题显得很无厘头,特别是我在不算很久以前,还认认真真地写过一篇讨论昵称和自我认同的小氯,Chlorine抑或我。
好吧,事情要从小氯的前几天的「大清洗」说起。在处理了一大批个人信息后,小氯大致是放心了几天,不过几乎就是字面意思的几天而已。由于小氯过去在隐私保护方面经验的缺少,之前留下的数字足迹不算少。虽然小氯已经清除了其中的大部分,但「信息不可逆定律」(或者我们可以换一个更通俗的说法:覆水难收)教育我们:只要信息传播出去了,就必然留下可追溯的痕迹。
平心而论,这样的遗留威胁在客观上不算太大。因为小氯只是个在互联网的冷僻角落种花种草的元素娘,而且也并不写敏感内容,所以说担心大型的社会工程学攻击(这里说是社工学攻击其实不太准确,大家理解这个意思即可)或者国家级检查意义不大。我也不算太过在意让一些可靠的老友们知道适量的我的身份信息。而剩下的读者中,一般的好奇者 / 社工学黑客大概百不存一,而这些人大概也几乎都不愿意闲着没事来针对小氯。而且,小氯已经做好了很多防护措施(防盒掩体)。退一万步说,就算真的被盒出来一些东西,也不会有什么实质性威胁——小氯说过,咱从不惹事,最多只是有点尴尬罢了。
但是一个显而易见的事实是:对于小氯目前所能考虑的最高的威胁等级来说,现在的防护还是有点不够。这给小氯带来了很大的心理压力。而如果要尽可能干净地解决这个问题,唯一的方法大概就是换个 ID。
如果换一个 ID 的话,那大概率就是真的「重新开始」了——不是像刚刚使用 Chlorine 这个昵称的时候,只是把站点简介改了一遍。小氯倒是并不惧怕重新开始——虽然这意味着抛弃掉现在的人设、形象、社交账户。甚至 SEO 也没问题——咱也不是没重新来过。最重要的是——我的文章,那些用「日光,热茶和位流」写下的数十万的文字,我也必须永远地将它们收好在自己的抽屉中,连提及它们都不可以。我唯一能保留的,也就只有记忆了。
此外,我也不能将自己的园子重定向到自己新的小岛,也不能大张旗鼓地告诉自己的老友们:我换马甲了,新的马甲是 XXX(这样等于前功尽弃)。我过往建立的所有线上社交联系都将断绝,即使再有缘在互联网见到过去的老友们,也只能小心翼翼地打个招呼,而不能提及「还记得我们在园子里喝过的那壶果茶吗」。
这样值得吗?
于是我就被这样一个问题困扰了一个星期,连周报都写得心不在焉的。
所以……我希望听听各位老友的意见。如果您有自己的见解,烦请您一定一定要告诉小氯——评论或者邮箱或者别的什么都可以。说实话,我感觉我像个幼稚的小孩子,在转着圈地要别人在自己的笔记本上签名。2