语言世界观

世界客观存在,它有固定的结构和运行原理。而人类对世界的理解,本质上是一种拟合——我们通过认知、观察、实验不断逼近真实,但这个逼近永远伴随着误差。这不是悲观的结论,而是认知的基本处境。承认这一点,反而让我们能更清醒地思考”理解世界”这件事究竟意味着什么。

如果用语言来类比,会更直观。每个学科都是人类尝试表达世界的一种语言。物理学、数学、经济学、音乐、艺术,都不是世界本身,它们是我们为了理解世界、描述结构而创造的表达系统。每种学科强调世界不同的维度,就像不同语言有不同的词汇和语法,表达同样的意思也会有不同方式。在这个视角下,学科不再是孤立的板块,而是对世界不同维度的不同拟合方式。

这些不同的语言,是否共享同一套底层字母?我的判断是肯定的。但这里需要一个重要的澄清:底层字母不是基本元素,而是基本运行原理。我们容易把”底层”理解成最小的组成单位,比如夸克、基因、像素——这是名词思维。但世界的底层语言是动词的,是运动、是原理、是规律,而不是静态的砖块。物理学从”物体与力”走向”最小作用量原理”再走向场论,正是这个方向:粒子是场的激发态,元素是运动的表现形式。不同学科共享的底层字母,是那些跨越具体领域、在不同维度上反复出现的基本原理——对称性、守恒、反馈、涌现……它们在物理学里是一种面貌,在经济学里是另一种面貌,但底层结构可能是同一件事。

由此带来一个核心推论:复杂性不来自元素数量,而来自组合方式。数学公理有限,但可以组合出无穷定理;音符有限,但可以组合出无限音乐;逻辑门有限,但可以组合出无穷程序。世界的复杂性,是有限原理构成的生成系统在运作。值得注意的是,这个结构是自相似的——它不只适用于学科之间,在一个学科内部同样成立。每个领域内部也有自己的底层原理和组合规则,子领域之间也像不同语言一样彼此关联。同样的逻辑,在不同尺度上反复出现。

理解了这一点,自然会问:怎么实际利用它?答案是类比。类比不是打比方,不是修辞手段,而是认知的底层机制——用一种语言的结构来理解另一种语言,或者发现两种语言在描述同一件事。侯世达在《表象与本质》里的核心论点正是如此:类比不是思维的装饰,而是思维本身。但类比有好坏之分。表面相似的类比只是隐喻,有用但不深。真正有力的类比,是两个领域在底层结构上真正同构——不只是描述上相似,而是能用A领域的逻辑,推导出B领域里你原本不知道的东西,然后去验证它。香农把”信息”用数学严格定义之后,信息论可以直接应用在生物学、物理学、经济学里,这不是隐喻,而是结构真的是同一件事。能产生新的可验证推论的类比,就不只是理解工具,而是发现工具。

在这个框架下,创新也有了更清晰的分类。最根本的创新,是发现新的底层原理,拓展我们的字母表,让我们能够表达之前触及不到的结构。这类创新改变整个表达系统的边界,带来范式级突破。另一类创新,是在已有字母表上进行新的组合,形成新的结构或模式。两类创新都不容易——把两个字母有机地组合到一起,逻辑自洽地把一个领域的思想应用到另一个领域的问题上,本身就是一件极难的事。发现一个新字母,则更难。现实中这两类创新交织存在,但它们的难度和意义是不同量级的。

认知不是线性进步的,这也是这套框架必须正视的一个现实。每一种语言在深入使用的过程中都会积累误差——不是因为语言错了,而是因为任何语言都有边界,越深入越接近边界,误差越大,直到不得不引入新的语言来填补,乃至整个框架的崩溃与重构。这个节奏在科学史上反复出现:19世纪末的物理学家面对黑体辐射问题,很多人以为只是计算不够精细,继续在经典框架内修补,但普朗克最终发现是底层假设出了问题——能量不是连续的。这里有一个关键判断需要做:误差到底来自哪里?如果是底层假设失效,需要换语言或扩展语言;如果只是复杂度不够,在同一语言内部精细化就够了。误判来源,就会在错误的方向上耗费大量资源。遇到困难时,元认知的第一步,是先诊断误差的性质,再决定用力的方向。

最后,跨学科探索的价值也在这个框架下有了新的理解。通常我们认为跨学科是为了”覆盖更多维度”,用更多语言拟合世界,让理解更全面。但还有另一层价值往往被忽视:互相纠偏。每一种语言都自带认知偏移,用一种语言越深入,就越容易被这种语言的框架所塑造,看到的问题形状会被工具本身扭曲。切换语言,不只是获得新视角,也是校正当前语言带来的系统性偏差。这意味着,跨学科能力的核心不是”我掌握了很多字母”,而是能主动跳出当前语言,从外部审视它——看到它的边界,看到它的预设,看到它开始失真的地方。这种能力,比单纯积累学科知识要难培养得多,但也更根本。

这套认知框架本身,也是一种语言,有自己的假设和边界。边界在哪里,现在还不知道——边界往往是用出来的,不是想出来的。它的价值不在于给出终极答案,而在于提供一条路径:理解世界的关键不在于记住规则,而在于掌握组合的能力,培养跳出语言审视语言的元认知,并在实践中不断扩展和校正自己的底层表达单位。

阅读全文 »

三段创造

我发现任何有点难度的工作,尤其是科研或高科技领域,都能分成三个阶段:0→1、1→99、99→100。这不是什么严谨的理论,就是个帮我自己理解世界的框架。

0→1

从学术上没人提过的想法,到写成论文、实验上严格证明出来。起点是空白,终点是一个可被复现的原理验证。

这个阶段的核心问题是“这事能不能成”。做这件事的人需要容忍模糊、不怕试错、有点叛逆。让他们去搞流程管理或者跑渠道推广,基本是折磨。

1→99

原理有了,但还不稳定、不靠谱。1→99就是把它变成稳定、可规模化、可交付的东西。对一首歌来说,是编曲、录音、混音、母带。对一项技术来说,是把实验室里动不动就坏的原型变成一条能稳定运行的生产线。

这个阶段的核心问题是“怎么能一直稳定地做成”。需要的是系统思维、耐心、项目管理能力。数字“1到99”只是个代号,不代表具体的进度值。

99→100

这是最容易被误解的一段。99→100不是把产品做到完美无瑕,而是让需要它的人能够通过便捷的渠道轻易找到并使用。

阅读全文 »

Automatic Fortran to C++ conversion

1. 安装fable环境

Pre-requisites:

  1. Please have a Linux environment, bash shell.

  2. Please create a working directory

    1
    2
    export WORK=<new working directory>
    cd ${WORK}
  3. Download source code:

    1
    2
    wget https://raw.githubusercontent.com/cctbx/cctbx_project/master/libtbx/auto_build/bootstrap.py --no-check-certificate
    python bootstrap.py hot update --builder=cctbx

Create and configure a conda environment:

1
2
3
4
5
6
7
8
9
10
wget https://repo.continuum.io/miniconda/Miniconda2-latest-Linux-x86_64.sh --no-check-certificate
chmod u+x Miniconda2-latest-Linux-x86_64.sh
./Miniconda2-latest-Linux-x86_64.sh # tested with conda 4.5.11
# please install in directory ${WORK}/miniconda2
# no, do not prepend Miniconda2 to .bashrc

source miniconda2/etc/profile.d/conda.sh
conda create -y --name fable36 python=3.6
conda activate fable36
conda install six future

Create and configure FABLE:

1
2
3
4
5
6
7
mkdir build36
cd ${WORK}/build36
python ../modules/cctbx_project/libtbx/configure.py fable
# python ../modules/cctbx_project/libtbx/configure.py --enable_cxx11 fable # support C++11 standard
source ${WORK}/build36/setpaths.sh
cd ${WORK}/build36; make; cd ${WORK}
cd ${WORK}/build36; make; cd ${WORK}

Test FABLE in a new login shell (bash, cd ${WORK}):

1
2
3
4
5
source miniconda2/etc/profile.d/conda.sh
conda activate fable36
source ${WORK}/build36/setpaths.sh
mkdir test36; cd test36
libtbx.run_tests_parallel module=fable nproc=Auto
阅读全文 »

断网 GPU 服务器使用 Claude Code 指南

适用场景:本地 macOS + SSH 密码登录 + 服务器完全断网

原理

1
服务器 → SSH 反向隧道 → 本地电脑(Clash/pproxy)→ 互联网 → Anthropic API

方案选择

场景 推荐方案
本地使用 Clash 代理上网 方案一:直接转发 Clash 端口(推荐)
本地直连外网,无代理工具 方案二:pproxy 自建代理

方案一:转发 Clash 端口(推荐)

如果本地使用 Clash/Clashy 上网,直接把 Clash 的代理端口通过 SSH 隧道转发给服务器,流量完全走 Clash 的规则,VPN 分流等策略全部生效。

阅读全文 »

曾经沧海难为水,除却巫山不是云

终有弱水替沧海,再无相思寄巫山

深爱之人藏心不挂嘴,久爱之人在梦不在眼

相遇就像你特别喜欢可乐,喝的时候爽到了就是意义;重点不是结局在不在一起,而是共同创造了独属于你们的时间线。

“如果有一天我不来找你,你会怎么办?”
“我会试着不期望你来。”

他说:
“九叶重楼二两,
冬至蝉蜕一钱。
煎入隔年雪煮沸,
可医世人相思疾苦。”
我又问:
“可重楼七叶一花,
冬日何来蝉蜕
雪又怎能隔年
相思又怎可解。”
大夫说:
“孰不知,夏枯即为九重楼,
掘地三尺寒蝉现,
除夕子时雪,落地已隔年,
过了离别时,相思亦可解!”
——
吾悲叹:“可奈何,
夏枯辛苦深寒,
寒蝉体小声微,
面拂寒夜风,隔年雪冻人。
相思虽可解,但寒苦卑弥已入喉,肠已断,泪难收,回首白头亦乃无解。”

没有什么一成不变,要学着允许一切发生。

当你凌晨睡不着 突然意识到自己曾经最想共度一生的人 居然变成了人生中的一个教训时

你根本没做错什么 我们都一样 爱就是会消散

“她满脸厌恶的求我放过她,我忽然愣住了,想起很久以前她小心翼翼的问我,你会离开我吗”

阅读全文 »

一般来说,开发岗位的算法面试是不会出题要求面试者临时设计一个数据结构来解决某个问题,大多数时候只是要求面试者能够熟练掌握常见的数据结构及其实现、能够说出这种数据结构的优缺点即可。

大模型架构

原始 Transformer

transformer

分词方式

字节对编码 BPE

本质上是subword作为词表,只不过是优先合并出现频率高的字符,直到词表大小合适或者最高词频为1

注意力机制

注意力评分函数

  • 加性注意力评分函数

    加性注意力评分函数可以看作,将查询和键连结起来后输入到一个多层感知机(MLP)中, 感知机包含一个隐藏层,其隐藏单元数是一个超参数ℎ。 通过使用tanh作为激活函数,并且禁用偏置项,

  • 缩放点积注意力评分函数

    为确保无论向量长度如何, 点积的方差在不考虑向量长度的情况下仍然是1, 将点积除以

阅读全文 »

心理学效应

彼得原理

《彼得原理》(英语:Peter Principle)是管理学家劳伦斯·彼得在1969年出版的一本同名书,里面提出的“彼得原理”是指:在组织或企业的等级制度中,人会因其某种特质或特殊技能,令他被擢升到不能胜任的高阶职位,最终变成组织的障碍物(冗员)及负资产。

孕妇效应

孕妇效应意即偶然因素随着自己的关注而让你觉得是个普遍现象,就是当人怀孕了就更容易发现孕妇,你开了奔驰就更容易看到奔驰,你拎了一个LV就容易发现满大街都是LV。用来形容人们容易把自己的关注点投射在外界,以寻找更多案例来证实内心想法的情况。

梅拉宾法则

梅拉宾法则(The Rule of Mehrabian):梅拉宾在1971年提出:一个人对他人的印象,约有7%取决于谈话的内容,辅助表达的方法如手势、语气等则占了38%,肢体动作所占的比例则高达55%,

鹅卵石法则

今天看到一个说法:人们会时不时把有趣的短视频、图片或者可爱的小故事分享给所爱的人。这种行为叫Pebbling,意为“丢鹅卵石”。据说有一种企鹅喜欢在伴侣的巢穴中留一块鹅卵石,告诉它我来过,我很关心你。

GABA

阅读全文 »

模型 分数
glm-4-9b-chat-1m_7.csv 53
glm-4-9b-chat-1m_15.csv 64
glm-4-9b-chat-1m_20.csv 63
Yi-9B-chat-15 70
Yi-9B-chat-7 63
Yi-9B-chat-20 53
glm-4-9b-chat-1m_have_kongge_7.csv
glm-4-9b-chat-1m_have_kongge_15.csv 59
glm-4-9b-chat-1m_have_kongge_20.csv 74
glm-4-9b-chat-1m_have_kongge_25.csv 81
glm-4-9b-chat-1m_have_kongge_30.csv 79
glm-4-9b-chat-1m_have_kongge_35.csv 84
glm-4-9b-chat-1m_have_kongge_40.csv 79
glm-4-9b-chat-1m_have_kongge_45.csv 84
glm-4-9b-chat-1m_have_kongge_50.csv 76
glm-4-9b-chat-1m_have_kongge_55.csv 82
glm-4-9b-chat-1m_have_kongge_60.csv 81
glm-4-9b-chat-1m_have_kongge_65.csv 81
glm-4-9b-chat-1m_have_kongge_70.csv 77
glm-4-9b-chat-1m_rerank_30_15 77
glm-4-9b-chat-1m_rerank_70_30 82
glm-4-9b-chat-1m_rerank_80_25 80
glm-4-9b-chat-1m_rerank_80_30 79
glm-4-9b-chat-1m_have_kongge_story_new_45 81
glm-4-9b-chat-1m_have_kongge_story_new_35 83
Yi-9B-chat-7_have_kongge_15 50
Yi-9B-chat-7_have_kongge_16 61
Yi-9B-chat-7_have_kongge_17 58
Yi-9B-chat-7_have_kongge_12 59
Yi-9B-chat-7_have_kongge_13 59
Yi-9B-chat-7_have_kongge_7 52
Yi-9B-chat-7_have_kongge_20 57
qwen2-72B-In-have_kongge_15 68
57
Yi-9B-chat-7_rerank_30_15 52
  • 数据清洗,去除文档里面的脏数据
  • 切割文档的长度 这个参数还可以调
  • 多次答案投票
  • 微软的GraphRAG技术
  • 英文没有空格

A Controllable Text Generation Framework based Prompt learning for Query Auto-completion

论文思路

研究领域是query自动补全(QAC),对应的显示场景是搜索栏的用户搜索场景,用的研究方法是生成式模型而非召回是模型(该领域常规的方法是先生成候选词,然后对候选词排序)

对于QAC领域,传统的召回式生成query仅仅通过候选词频率进行召回,缺乏对于query语意层面的理解,同时对于unseen 的输入,难以生成高质量的补全,以及召回式的生成难以充分实现个性化的生成

其他生成模型的历史信息的局限性:时间跨度短,数据量比较少,随着NLP领域中NLG模型的发展,transformer系列的自然语言生成式模型在各个领域展现出巨大的潜力,而且像GPT2这样在大量无监督数据上训练的模型,拥有强大的语意理解能力,有越来越多的研究工作研究生成式模型用于QAC,生成式的模型能够有效应对上述的几个问题。(蹭大模型的热度,垂直领域生成模型)

对于GPT模型,我们使用提示学习来对GPT的生成做进一步的控制,来达到用户的个性化需求,通过使用提示学习对GPT进行微调,可以使GPT模型生成的query更加贴近用户偏好习惯,而传统上的提示学习包括hard提示和soft提示都是从自然语言语意层面对GPT的输出进行提示,而用户个人的消费行为习惯可能无法简单的从语言层面展现,而在使用bert模型进行语意理解和语意抽取进而进行下游任务的分类时,bert可以很好地进行高维度的特征表征,所以在本文中我们采用bert模型抽取高维度的用户个人特征表征作为GPT模型的提示,进而使GPT的输出达到个性化的要求。(特别的,bert和GPT使用统一词表来保证两个模型的高维映射空间是一致的)

Abstract

Query auto-completion (QAC) aims at suggesting plausible completions for a given query prefix. The recent QAC methods introduce Natural Language Generation to generate the completions for user input.

However, NLG (Natural Lagnuage Generation) methods ususally output unsense or wrong words without controll. Moreover, A serious drawback of generative methods is that they can produce an ether effect. It severely affected the performance of the generative methods.

We proposed a framework that controls the generation of queries using prompt learning methods, thereby making the generative methods controllable. This framework consists of three parts: the control module, the prompt module, and the generation module. The control module generates a prompt vector endowed with implicit features, then the prompt module ingests the prompt vector and user input into the generation module, and ultimately, the generation module generates the query under control.

阅读全文 »

程序员的数学2-概率统计

前言

  • 概率是面积与体积的泛化
  • 随机变量是一种以变量为名的函数
0%