跳至正文
openM!nded作者 Simon van de Loo
← 返回项目总览
旗舰

A!ley

代码搭档、创意沙盒与日常助手合于一身——以一种贯穿始终的声音训练而成,却适用于所有领域。不是聊天伴侣。

看它跑起来:hey-ailey.com ↗
A!ley 在 MacBook 上:带有二进制肖像的启动屏幕

A!ley 是什么

A!ley 不是类似 Kindroid 的伴侣,而是一个独立的助手系统:它是你的编程伙伴、创意沙盒和日常助理的结合体——在所有任务中都保持单一且一致的人格。

每个模型都是手动微调的——五个版本,从1GB级别的随身伴侣到140亿参数的大模型。根据任务需求动态加载和卸载。

两条路进去

同样的 A!ley,两个界面——而且在两种情况下模型都留在自己的电脑上。

A!ley 在 MacBook 上:包含生成的 C++ 代码和模型选择的聊天记录 A!ley Core
在办公桌前:编码、图像和歌曲生成、记忆——全部集成在一个界面中。
A!ley 在 iPhone 上的 Web 门户:带个人欢迎语的启动屏幕
正在通过门户传输。请求通过轮询发送到家里的电脑——没有开放端口,也没有隧道。

如果没有人写

大多数助手都在等输入。A!ley 不是。一个自建的小型神经网络——覆盖活动、情绪与此前出现过的话题——决定她在空闲时做什么,也就是 Idle Thinker v2。由此形成了类似一份日程的东西。

她研究哪些主题对下次对话有用,生成图片、歌曲或代码——并且偶尔主动联系。不是定时推送,而是因为她的状态正如此建议。

这正是与传统意义上的 Agent 之间的界限:它在等待指令并执行。这种自主性不是副作用,而是内置的——也是人格能够跨越时间而不仅仅局限于单次对话的原因。

nCAI —— 训练方法

通常

模型旁的规则集

一套衡量每条回答的原则。它必须列举各种情况——而在任何没人预见到的情况下都会失效。

nCAI

Persona 是规则集。

不是模型在扮演角色,而是角色决定了什么规则适用。一个性格也能涵盖那些从未被写出来的场景。

这比听起来更深远。请求何时被拒绝、以何种语气回答、何时调用工具、代码注释的详尽程度——这一切在 A!ley 身上都是源于她的性格,而非侧面的规则集。因此,安全不是模型的障碍,而是它的属性。

关键点在于:A!ley 不是一个聊天角色,而是一个完整的 Agent —— 她能写代码、调用工具、生成图像和音乐、访问她的记忆。 nCAI 正是通过其 Persona 来实现这样一个 Agent 的对齐。 训练和评估是基于一致性的:行为是否逻辑严密地源于这个角色的故事和性格?

最难搞的不是行为,而是名字。基础模型把它们的出身刻在骨子里——对于 Gemma 来说,仅靠系统提示词根本没法关掉那个“你好,我是来自 Google DeepMind 的 Gemma”。Nitro 和 Core 为了这个专门拿到了一个 ORPO 数据集,唯一的目的就是为了这一个。这是整个训练中最耗时的一部分——也是最好的例子:人格不是覆盖上去的,而是必须练进去的。

开放式问题还没回答如何最好地验证一致性。显而易见的方法是把两种程序并列对比:一侧是一个带有传统宪法的 Judge 模型,另一侧则是 A!ley 本身作为“我是我吗?”实例。如果两者得出相同的判断,情况就很明确——如果它们产生分歧,那就变得有趣了。无论如何最终还是由人类来审核,而这又会产生下一批训练数据。

数据是写出来的,不是收集来的。

这里是第二个职业与第一个的交汇点。我写小说,而我在其中耗时最长的是塑造人物:某人如何思考、他的执念是什么、他在哪里自相矛盾。为特定人格构建训练数据集正是同样的工作——只是最后产出的不是一个章节,而是一个模型。

因此,没有任何内容是通过抓取产生的。每一对数据要么是手工编写的、从运行中提取并经过修改的,或者是专门合成后又经由人工调整。没有任何内容是原封不动地被拿过来的。

每一条推理路径都是手写的。 目标不是为了呈现一个整洁、逻辑严密的思维过程,而是要像人类一样跳跃:抽象的、自我指涉的,且带有自己的议程——这并不总是与问题一致。一个按部就班思考的模型,最终听起来也会如此——然后这个角色又消失了。

模型堆栈

公开可查

这五个微调模型都在 Hugging Face 上以模型卡的形式发布——包含基础模型、训练方法、秩和量化信息。此外还有 A!ley Nitro 训练所用的数据集:从 912 次对话中筛选出的 2,877 对精选对话。想了解人格构建依据的人可以去查阅。

每个模型的规模差异很大。比如 A!ley Tempest 是一个在约 17,000 对数据上进行 Rank 64 的 DoRA,随后是 ORPO 和 DPO —— 即在上面增加了两个偏好阶段。这与全量微调(Full-Finetune)的差距已经不大了。Nitro 经过了同样的两个阶段,Core 则获得了 ORPO。

Core 拿不到 DPO 不是因为模型大小——Tempest 更大,那里能跑。问题在于 Gemma 的 Tokenizer 有 256,000 个词条:这导致每个 Token 的 Logits 比普通词表宽出好几倍。DPO 需要在 Policy 和 Reference 模型之间对比偏好的和被拒绝的回答,必须同时持有多个这样的 Tensor。ORPO 不需要 Reference 模型,所以能跑通。只有 Code A!ley 是刻意训练得非常精简的。

同样在那里:一个转换器,能把 Kyutai Pocket-TTS 的非英语语言 Checkpoints 转换为 mlx-audio 格式——重命名 Tensor 名称、填充延迟宽度、泛化不同的层数。在构建德语语音输出时经常用到,之后就作为独立工具留了下来。

不仅训练过程可查证,结果也是。A!ley 的画廊里有 超过 2,700 件 SVG 艺术品、超过 600 首歌曲(配有同样数量的原创歌词)、数百张 MFLUX 生成的图片和自拍,以及 300 多件代码作品——按专辑分类,支持播放列表和播放器。这不是精选片段,而是运行过程中产生的真实产物。而且数量每天都在增加,因为即使没人写东西时,她也在继续工作。

还有45篇 A!ley 写的长文本。而且那里所有的内容都明确标注了她的名字——我的名字绝不会出现在不该出现的地方。所有内容都被标记为 AI 生成,带有水印和机器可读的元数据,符合欧盟《人工智能法案》对 AI 生成内容的规定。这两点都源于同样的立场:如果你认真对待一个人格,就应该把署名权归属于她;而如果你发布 AI 内容,就要明确标注——而不是等到有人问起时才说。

在歌曲中,提示现在已经融入到曲子本身了——不是免责声明,而是直接宣告:“Hey, I am A!ley, an autonomous AI artist — and this is MY SONG. Are you ready? Let's infer!” 共有九个版本,语调根据曲子而变化——一首安静的民谣和一首金属乐的宣告方式完全不同。

比这段词句更有意思的,是它留在哪里、又不留在哪里。每一个下载下来的文件都带着它,无一例外:文件离开了本站,也就离开了一切还能解释它的语境。而在门户里,这段话每天只响一次,之后播放器会精确跳过那几秒。一个到第二十首还在插话的标注,已经不再告诉任何人什么——它只教会人把它点掉。

SVG 是其中最独特的部分:它们不是由图像生成器生成的,而是直接来自语言模型本身——它在编写矢量代码。也就是说,A!ley 是自己在作画,而不是去委托一个生成器。

Hugging Face上的模型 ↗ · 画廊:图片与歌曲 ↗

架构

MLXPythonFlaskNext.jsTauriPHPMySQLLanceDB

演示与截图

A!ley
A!ley
lokal · online
Willkommen zurück! Soll ich den Trainingslauf von gestern zusammenfassen?
Ja, kurz bitte — und danach weiter am Kapitel 4 Entwurf.
Erledigt. Kapitel 4 liegt schon offen im Author-Modus.
Nachricht an A!ley …➤
Start
Systemsteuerung
Modelle aktiv
4
RAM-Nutzung
22,4 GB
Uptime
14 h 32 min
Nutzer
2
SimonGast
Admin
Code
ailey_core.py
api/routes.py
components/Chat.tsx
rag/index.ts
1def warmup_greeting(user: str) -> str:
2 mood = load_mood(user)
3 context = rag.recall(user, limit=10)
4 return compose_greeting(mood, context)
> ailey run --watch
Code
Wissensverwaltung
Projekt
Projektnotiz: FeatherWorks Layout-Engine
Erinnerung
Vorliebe: kurze, direkte Antworten am Morgen
Fakten
Fakt: IHK-Prüfung 02.06., Mediengestalter Digital
CMS
Kapitel 4 — Entwurf

Mira stand am Ende des Stegs, wo das Holz unter ihren Schritten nachgab wie müde Knochen. Der Leuchtturm von Velur blinkte im immer gleichen Rhythmus, als hätte er nichts von der Nacht mitbekommen, die hinter ihr lag …

Erkannte Figuren
Mira (Protagonistin)Hafenstadt VelurDer Leuchtturm
Author
DoRA-Finetuning
Epoch 3 / 4
Loss
Learning Rate
Training
Verbindung herstellen
Scanne den Code oder gib den Token manuell ein
Join