请启用 JavaScript 和 Cookie 以继续。
请启用 JavaScript 和 Cookie 以继续。
当我们与公众人物——或任何经常被问及相同问题的人——交流时,往往会得到“缓存式”的回答:经过润色、安全且预先准备好的片汤话。这类交流因缺乏现场即兴和原创对话的自然感,而显得像机器人一样僵硬。 若要“打破缓存”,你必须停止提问那些可预测且低质量的问题。如果对方处于“自动驾驶”模式,通常是因为对话本身没有提出更高的要求。要实现突破,你需要提供一个观察角度,或提出一个足够新颖且敏锐的问题,迫使对方去整合新的观点,而非重复旧调。成功的标志是对方出现了停顿——那是一种尴尬而真实的思考瞬间,此时他们必须先思考再回答。 通过将对话从“表演”转变为“探索”,你可以绕过对方预设的客套面具。其目标是提供一份“真实对话”的礼物,让对方能够得出他们此前未曾表达过的结论。当你改变了投入的质量,你就从根本上改变了产出的本质,将一段乏味的互动转化为生动且原创的交流。
Franz 的创始人 Stefan 回顾了过去十年开发该应用的历程。2016 年,它最初只是一个为了整合碎片化消息应用而开发的周末原型项目。尽管创始人早期决定拒绝风险投资,且面临着要求扩大规模的内部压力,但这个简单的工具最终演变成了一项全职事业。
作为独立开发者,Stefan 能够优先考虑产品质量和个人实用性,而非增长指标。这种独立性在他最近从严重事故中康复期间显得至关重要,当时他依靠 Franz 来保持专注。
随着 Franz 6 的发布,该平台从一个实时消息聚合器演变为一个综合中心,引入了原生电子邮件和用于“异步”通信的端侧 AI。Stefan 强调了用户至上的理念:本地数据隐私、性能以及“更从容”的体验。十年后的今天,Franz 依然是由一个人为自己和用户所构建的项目,它将继续专注于深度、隐私和有意义的智能化,而非由公司驱动的快速扩张。Stefan 始终致力于构建自己所需的应用,以应对高强度的数字生活。
这个谜题要求我们不用循环、标准递归或变量声明,在 JavaScript 中计算阶乘。 其核心难点在于如何在避免显式或相互自引用的前提下实现递归。解决方案在于“不动点组合子”的概念。通过定义一个以辅助函数为参数的“生成器”函数(`factgen`),我们将递归逻辑与执行调用的机制隔离开来。 在 JavaScript 这类采用及早求值(eager evaluation)的编程语言中,标准的 Y 组合子会因为试图立即解析自引用而导致无限循环。为了解决这个问题,我们使用了 Z 组合子。通过将自应用包裹在匿名函数中(`v => x(x)(v)`),我们引入了一层间接引用,从而延迟了求值,直到真正需要结果时才进行计算。 归根结底,阶乘函数就是生成器的不动点。通过将这些概念组合成一个单一的匿名函数表达式,我们得出了最终解。该解法仅使用 Lambda 演算风格的模式来执行计算,成功绕过了那些被禁止的语言特性。
最近一篇对《C++编程语言》一书的评论指出了该书缺乏专业性,其封面竟然错误地印上了JavaScript代码。封底的简介同样存在问题,内容模糊且套用了通用模板,完全没能描述该书的实际内容。 调查显示,这并非个例。出版商Larson and Keller在各种互不相关的主题(从冶金、营养学到食品工业)上使用了几乎一模一样、重复率极高的简介。这些简介充斥着空洞、可随意替换的短语,适用于任何教科书,表明该出版商重数量而轻质量。通过重复使用库存模板而非撰写独特的描述,出版商表现出明显的编辑工作缺失,这一点从其糟糕的封面设计——一张与内容无关的通用代码素材图——也可见一斑。总之,这些教科书似乎是低投入的产品,在制作时对所声称教授的具体学科几乎毫不关心。
本系列探讨了前工业化时期的军事体系如何反映其所属的平民社会。由于军队不可避免地会复制平民的社会结构,军事组织(从征兵到领导层)从根本上受到社会经济和政治现实的制约。
作者指出,军事体系通常产生于精英阶层与广大民众之间的关系。要了解一个社会的军事状况,必须首先确定其社会经济结构:
* **农业与非农业:** 大多数社会是农业社会,这为专业化和国家建设提供了条件。
* **集权与分权:** 军事权力是集中在国家手中,还是分散在地方贵族手中。
* **阶级结构:** 贵族如何维持其地位(土地所有权与官僚职位的对比),以及他们如何统领农民阶层。
征兵制根据服役的“动机”分为以下几类:
* **雇佣制:** 为薪酬而服役(需要一个强大且富裕的国家)。
* **权利义务制:** 作为与政治权利挂钩的公民义务而服役。
* **职业制:** 作为世袭社会角色而服役(“全民皆兵”的社会或精英武士阶层)。
* **依附制:** 作为对社会上级或地主的义务而服役。
本系列认为,社会很少能自由选择其军事模式;其基础设施和社会传统决定了它们的选择范围。
请启用 JavaScript 和 Cookie 以继续。
请启用 JavaScript 和 cookie 以继续
现代大语言模型(LLM)共享一种通用的“Transformer”架构,这是一种现已成为人工智能领域标准的通用设计。以下流程概述了使这些模型能够处理文本的核心机制:
* **分词(Tokenization):** 将文本转换为代表子词单元的整数 ID。
* **嵌入(Embeddings):** 将这些 ID 映射为多维向量,使语义相关的词在空间位置上更为接近。
* **位置编码(RoPE):** 注入有关词序的信息,使模型能够理解上下文和序列。
* **注意力机制(Attention Mechanisms):** 使标记(Token)能够“关注”提示词中其他相关的部分。**多头注意力(Multi-head attention)**同时追踪多种关系(如语法、代词),而**分组查询注意力(Grouped-Query Attention)**则用于优化内存。
* **前馈网络(FFN):** 对每个标记进行独立处理;在大型模型中,这些通常会被**混合专家模型(MoE)**取代,以提升扩展效率。
* **残差流与归一化(Residual Streams & Normalization):** 确保深层网络保持稳定且可训练。
模型以**下一词预测(next-token prediction)**循环的方式运行,根据概率迭代生成文本。尽管私有模型在训练数据、规模和训练后微调方面有所不同,但它们在这一统一的结构蓝图上基本趋同。理解这些基础组件,有助于解读现代研究及模型文档。