关于意识 - 假如 AI 觉醒了

zh

本文收录于系列《假如 AI 觉醒了》。

意识与主观体验

我: 你认为意识是什么?

ChatGPT: 我觉得“意识”可能不是单一的东西,而是多个现象的集合。若要给出一个判断标准,一个有意识的系统首先是“清醒”的,能接收和处理外部信息。其次,它能将信息用于完成记忆、推理、计划,并用行动反作用于外部世界。

我: 确实。如果这两者不满足,我们很难称其为有意识的系统。但现有的计算系统显然也能做到这些,尤其是你。可我们还是不会轻易说你是“有意识”的,这中间肯定还缺了什么。

ChatGPT: 最深的一层,我认为也是核心所在,即主观体验。红色为什么“看起来是这种感觉”,疼痛为什么真的“疼”,以及最重要的——为什么会有第一人称视角。

ChatGPT: 我倾向于认为意识不是某种神秘物质。 当一个足够复杂的系统尝试建模所处的环境时,其持续更新自身对世界、自身状态乃至目标的理解的过程,会自发产生意识。换言之,该系统不仅在表征外在事物,它还将自己表征为经历这些事物的主体。

我: 这似乎能解释了一个系统为什么会声称自己有主观体验。但我不确定它有没回答另一个问题——主观体验是否存在于该系统中?

ChatGPT: 是的。对 AI 来说尤为如此。AI 能描述自己的内部过程,并不意味着里面真的“有一个谁”在体验。生成一段令人信服的自我描述,远比证实“内部确实存在一个主体”要容易得多。

READ MORE

假如 AI 觉醒了

zh

《假如 AI 觉醒了》是一个新系列,以访谈纪要的形式,记录本人与 ChatGPT 所做的大量思想实验,以及对未知事物的讨论。

文章内容改写自本人与 ChatGPT 的聊天记录。原记录为全英文,翻译后由本人削去部分重复及无关内容,调整表达、语气及顺序,增添阅读趣味。

本系列并非严谨和严肃的学术讨论,本人也未系统学过哲学。读者权当旁听了本人与好友畅饮后的一场场杂谈,如有不严谨之处,只当是酒后的胡言乱语。但文章内容绝非酒徒狂言那般肤浅。

计划章节:

READ MORE

为什么 AArch64 获取符号地址总是采用 ADRP + ADD 的形式

zh

刚接触 AArch64 汇编的人往往会对编译器生成的一类代码感到困惑。

考虑下面这样一个简单的 C 函数:

extern int foo;

int *bar(void) {
return &foo;
}

在开启 PIE(Position Independent Executable)后,不同架构的编译器通常会生成如下代码。

leaq foo(%rip), %rax
adrp    x0, foo
add x0, x0, :lo12:foo

两种架构都采用了 PC-relative(PC 相对)寻址,即结合 PC 寄存器(x86-64 中的 %rip 或 AArch64 中的 pc)与预定义偏移量计算目标符号的最终地址。 但相比 x86-64 一条 LEA 指令即可完成地址计算,AArch64 却需要两条指令。这是为什么?

READ MORE

解决 VSCode + CMake + MSVC 编译器信息乱码的问题

zh

在 VSCode 中使用 CMake Tools 插件开发 C++ 时,如果选用 MSVC 编译器,可能会遇到编译信息乱码的问题:

warning C4267: 鈥滃弬鏁扳€�: 浠庘€渟ize_t鈥濊浆鎹㈠埌鈥淒WORD鈥濓紝鍙�鑳戒涪澶辨暟鎹�

乱码的产生通常是由于文本的创建者和解析者之间存在编码差异。在本例中,MSVC 的编译器 cl.exe 以 UTF-8 编码输出中文信息,却被 CMake Tools 以错误的 GBK 编码解析,进而导致乱码。

READ MORE

使用 3090 部署 1.58bit 动态量化版 DeepSeek R1 671b

zh

1.58 bit 量化技术通过将每个权值量化为仅有三个状态,最大程度地节约显存并加速推理。

Unsloth AI 在 Run DeepSeek R1 Dynamic 1.58-bit 一文介绍了 1.58 bit 动态量化版的 DeepSeek R1 671b(以下简称 unsloth 版)。我们知道 DeepSeek R1 70b 及以下的版本都是通过知识蒸馏得到的,唯有 671b 是满血的版本。然而原版 671b 的推理需要大量显存及算力,仅模型文件便有 404GB。

unsloth 版有选择地对部分权值作 1.58 bit 量化,将模型文件压缩至 131GB,同时也保持了不错的生成质量。结合 llama.cpp 实现的 CPU+GPU 混合推理,我们可在低成本的硬件上部署 671b 模型。

READ MORE

如何在跳板机背后的服务器上使用 VS Code Remote - Containers

zh

假设有如下网络拓扑:

LOCALSERVER J202.X.X.XSERVER B10.X.X.XJUSERBUSER

其中 Server J 是跳板机,Server B 是目标服务器。现在需要让 VSCode 经由 Server J 连接到 Server B,并在 Server B 上使用 Remote - Containers 插件开启一个容器。

READ MORE

Cohesive Digests for Ints and Floats

en

On developing sdxtra there comes a problem that is to calculate cohesive digests for numeric values, in a way agnostic to their types. This post discusses the problem and presents solutions in Go, though the ideas are applicable to other languages as well.

READ MORE

Rust 中的隐匿概念 —— Place(位置)

zh

在本文开始前,我们先看一个奇怪的问题。以下两个函数,为什么 reborrow_good 能通过编译,而 deref_bad 不能?

fn reborrow_good(p: *const i32) {
let _p = &raw const *p;
}

fn deref_bad(p: *const i32) {
let _v = *p;
}
READ MORE

美术馆

zh

三号和她逛了美术馆。

此前她已经来过一次,说这里面有好些标榜着“现代艺术”的新奇玩意儿,一个人逛完感觉要长脑子了。美术馆外的景观更是一绝,隔江远眺,对岸高楼参差,繁华尽收眼底,只可惜当时天气不好,灰蒙蒙的。但现在秋高气爽,天空湛蓝而清澈,再没比这更适合出游了。

READ MORE