随记

或学而有得,或思而有得,辄札记之。 ——[清] 王筠

随记,主打随性乱炖,看到、想到什么就记下点什么,大多都是没有实际用处的,只是觉得好玩罢了。

2025

Week 4

5.31

  • latex中使用xurl包,可以让url自动换行,且不局限于在斜杠等符号处换行
  • 早在抗日战争期间,主席就指出要推广八小时工作制了。即使很难,但也可以小步地推进。类似地还有提升薪酬等,不能幅度太大,但也要尽量推进

5.28

  • Top-up(e.g., ezLink) vs. Recharge(e.g., 食堂充值区)
    • Top-up在英联邦国家较普遍,Recharge在美洲使用更多
    • Top-up一般指小额、即时的充值,如公交卡。Recharge更通用,可指设备充电,抽象的“恢复”之意(recharge your creativity)
  • AS庞氏骗局:大意是集资一个空壳公司,隔一段时间股价上扬10%,翻倍时“拆分”为二,循环往复。早入局的人割后来者的韭菜,受害者再成为拉人头的加害者——中招的往往都是有闲钱的中产以上,一坑一个不吱声,本质上还是人心的贪欲作祟

5.27

  • OWASP Mobile TOP 10,不同的类别之间也有重叠,CWE则更具体
  • 复制网络图片到PPT中,选择“仅粘贴图片”,则不会有与远程服务器通信的进度条。猜测可能是向server获取图像的描述等元信息

5.26

  • 听了两场PhD Defense。最大的感受就是Thesis的质量和支撑工作的发表质量并不是严格相关的。如果好好写Thesis,可能需要半年的打磨修改。答辩的PPT等反而不太重要,气场ok即可。具体评阅意见有:
    1. 每章研究问题从技术上讲,要透彻地点出问题,分析问题,随后在具体的研究内容中回答(解决)问题
    2. 论文内容框图需highlight出每部分的核心思想,分章描述要与研究内容严格对应
    3. 已有工作避免做出“缺乏xx”等笼统描述,需具备学术性。如果有,那就是对问题分析不透彻。研究的必要性不是从已有工作“缺失xx”而来的。此外,对已有工作的讨论也要在文中各部分一致
    4. 不要硬下结论,除非有引用且引用权威。基本概念最好引用教材
    5. 摘要中问题要明确、贡献要highlight(如具体实验结果的数据)
    6. 展望要体现对学科的把握,要有思考。总结在摘要基础上拓展而不是复制
    7. 避免陷入工程性描述,要体现思路

5.21

  • 首次在音乐厅现场听到以古典吉他为主角的音乐会:“从巴赫到披头士”米洛什古典吉他音乐会。一些个人印象如下:
    • 勃兰登堡变奏曲(弦乐协奏):质量很高,低音提琴非常醇厚
    • 恰空(吉他独奏):“你们可能听过很多遍恰空,但这次是新的,由一个法国作曲家compose,和恰空一样反映了人生”。确实如此,从大约20节之后完全是一首全新的曲子了,总体曲目长度也有提升,引入了佛拉门戈式的技法,有点受到了惊吓
    • 爱的罗曼斯(合奏):吉他的分解和弦,再加上弦乐器,和声很强,稍有遗憾的是不是变奏版本
    • LiberTango,磨坊主之舞,Astulias(吉他独奏):适合吉他表现的经典曲目,中规中矩。Asturias有好几个音弹劈了,感觉琴有点紧张
    • 泪(吉他独奏):最后的曲目技术难度最低,但是音色反而最圆润。要是巴里奥斯扩写的变奏版就更好了,但是encore应该也不会有特别重量级的曲目
    • 总体上还是非常值得票价(80¥)的,非要说有什么美中不足的话,一是吉他音色稍逊,其二是节目单上面的“BWV 1004”,曲名和作曲家都不准确

5.19

  • 认识清醒才能行动坚定

  • 生命诚可贵,一时的挫折不应当使人自暴自弃、一了百了。对于导师,“学生读博等于导师又重读了两个博士学位”,摘自网友分享的学校培训新入职老师的讲义

Week 3

5.15

  • 支部学习会及发展对象答辩,4进1,按录用率计算难度甚至大于一篇CVPR。认真讲好自己的故事的同志脱颖而出——能在师弟thesis致谢中占据比女友更多篇幅的人,确实不一般。

5.14

  • 基于python API流式写入CSV
    1
    2
    3
    4
    with open("demo.csv", "w+", encoding='utf-8', newline="") as f:
    writer = csv.DictWriter(f, fieldnames=["col1", "col2"])
    writer.writeheader()
    writer.writerow({"col1": 100, "col2": 200})

『重庆森林』

每天你都有机会跟别人擦身而过,你也许对他一无所知,不过也许有一天,他会变成一个朋友或者是知己

其实了解一个人并不代表什么,人是会变的。今天她喜欢凤梨(厨师沙拉),明天她可以喜欢别的(炸鱼薯条)

如果记忆也是一个罐头的话,我希望这罐罐头不会过期。如果一定要加一个日子的话,我希望它是一万年

5.13

  • 3FS分布式文件系统 (Ref)
    graph TD
    Client --> Mgmtd
    subgraph "Mgmtd as a router"
    Mgmtd -.-> Meta
    Mgmtd -.-> Storage
    end
    
    • Client:请求Mgmtd发现节点,请求Meta执行文件操作
    • Mgmtd:管理节点,类似于路由器,定期向Meta和Storage节点发送心跳以确认它们处于活动状态
    • Storage:保存实际数据。数据存取按链式(CRAQ)进行,链尾始终包含最新提交的数据。正向写入时中间节点数据标记为dirty,到链尾后反向向前commit,并flip dirty为clean。clean的数据可以安全返回Client。优点是可拓展、低延迟读取,代价是写入延迟较高(所有节点延迟的总和)
    • Meta: 元数据,例如权限、TS、大小等

Week 2

5.8

  • 减少大模型幻觉:
    • 数据:数据清洗与RAG
    • 模型:思维链(Chain of Thought,CoT)、温度缩放等
    • 后处理:基于规则或事实的校验、人工标注反馈
  • 检测图环路可通过DFS、拓扑排序等实现

5.7

  • 训练的几种并行方式:
    • Data Parallelism(数据并行):不同device处理不同的数据子集、分别计算梯度,之后再同步梯度
    • Model Parallelism(模型并行):将模型拆分到多个device,例如将Transformer的编码和解码器拆分的层间并行,或将矩阵乘法按行列拆分的层内并行(亦称张量并行)
    • Pipeline Parallelism(流水线并行)​:将模型按层拆分,同时将mini-batch进一步划分为若干micro-batch,可减少Pipeline Bubble(流水线气泡,即空闲时间窗口)
  • Batch Norm
    • 优点:平滑优化过程、减轻梯度消失,加快收敛,允许更大学习率,在batch较大且数据分布稳定时可加速训练
    • 缺点:batch size过小可能加剧噪声、降低效果,不适合输出分布不稳定(如GAN)或变化(如在线学习)的情形

5.6

  • RAG(Retrieval-Augmented Generation,检索增强生成)
    • 流程概括:检索外部知识库 -> 提示词增强,改善问题答案;
    • 关键技术:高效向量搜索(如FAISS)与相似度计算(快速从海量数据中检索相关片段)
    • 优势:动态更新,生成内容依据可追溯,减少幻觉

Week 1

5.4

  • 悲剧[ひげき],喜剧[きげき],何其相似

5.3

  • 有的人居然可以晚上、上午、下午睡一天,感觉还不如打一天游戏。

5.2

  • 观展:中央美院研究生毕业展。绘画、书法、装置/现代艺术、电影、软件、调查报告,形式多样、内容丰富。有的作品反映了一定的社会现象或问题,有的则是作者个人内心思考的映射。非常钦佩同龄的艺术家们。
  • 经过精密计算,斥资0.99元购买了单次一小时内0.99元骑行卡,骑了两次,一共花了三个0.99,相比两个1.5共节省高达0.03元。晚上吃贵州酸汤火锅没有用券,多花了几十块。

5.1

  • 人越来越像AI,AI越来越像人。DS强化了新模型的数学推导证明能力,具体细节不能完全看懂,但大体思想应该就是把复杂任务拆解成若干子任务,然后在子任务之间构建推理思维链,和人做题的思路是类似的。

Week 4

4.30

  • 能力之外的资本等于零

4.27

  • 提出需求后让Hunyuan或DS写代码,如果深度思考反而会钻牛角尖,围绕“用户的需求到底是什么”疯狂思考,因此体感有时效率并不高,还不如自己写。如果能把算法的需求和边界条件明确地用自然语言表述出来,那其实已经相当于自己写好了。
  • NAS还可以装docker,部署站点或者当云服务器,感觉玩法很多

4.26

  • JetBrain更新是增量的,一个版本一个版本往上叠,直到更新到最新版本,类似于windows
  • 云服务商是真赚钱
  • AI面试,感觉就是接入一个语音识别,最多再用LLM打个分

4.25

  • LLM参数减少(如蒸馏或量化)后,减少的两大能力是语义的理解能力与复杂任务推理的能力
  • 正则化通俗的理解:通过在损失中添加一个额外的项使得模型不会完全拟合到目标,而是在正确的梯度优化方向下最终与目标保持一定距离(margin)

4.23

  • 专利保护范围:特征表示>特征编码>特征矩阵
  • 值集分析(Value Set Analysis,VSA)​
    • 建立抽象内存模型后,计算抽象变量(地址)的​取值​集合​​(区间、符号、范围等)
    • 抽象性:不关注具体值,而是值的集合,属于数据流分析中的一种抽象方法
    • 可用于数组越界检测、空指针分析、资源泄漏检测等

4.21

  • 谨小慎微,说话前一定需要过脑

Week 3

4.20

  • 定时刷新命令,可用于nvidia-smi等:watch -n 2 nvidia-smi,默认为每2秒刷新一次(-n
  • 在电脑端,可访问edge://inspect以配置手机等设备上的站点调试
    • 手机打开USB调试并进入浏览器
    • 电脑端edge://inspect可显示已连接设备、配置端口转发(如本地localhost:xx转发到手机localhost:xx)

4.19

  • 回到了windows + WSL的配置,终于解决了ubuntu 24下间歇卡死的问题
  • 配置拓扑(内部主机指和server处于一个内部网的主机,比如校园网):
    graph TD
    subgraph server [<span>&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;GPU HOST</span>]
    direction TB
    style server fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px,opacity:0.5
    Host["Win"]
    WSL["WSL"]
    end
    %% 定义其他节点
    InternalHost["内部主机"]
    ExternalHost["外部主机"]
    Jump["跳板机(Jump)"]
    %% 内部局域网连接
    InternalHost -->|ssh -p 6000| Host
    Host -.->|FRP Server| WSL -.->|FRP Client| Host
    %% 外部网络连接
    ExternalHost -->|SSH -p 22| Jump
    Jump -.->|SSH -p 2222| WSL
    WSL -.->|autossh -N -R 2222:localhost:22| Jump
    style Host fill:#fff,stroke:#333,stroke-width:2px,stroke-dasharray:6
    style WSL fill:#bbf,stroke:#333,stroke-width:2px
    style InternalHost fill:#9f9,stroke:#333,stroke-width:2px
    style ExternalHost fill:#ff9,stroke:#333,stroke-width:2px
    style Jump fill:#ff9,stroke:#333,stroke-width:2px
    
  • 配置步骤:
    • Win
      1. 设置防火墙,允许WSL连接宿主
        1
        New-NetFirewallRule -DisplayName "WSL" -Direction Inbound -InterfaceAlias "vEthernet (WSL)" -Action Allow
      2. 开启FRP Server:frps.exe -c ..toml (frps.toml 内容:bindPort = 7000)
    • WSL
      1. 开启SSH服务:sudo service ssh start
      2. 开启FRP Client:frpc -c frpc.tomlfrpc.toml内容为
        1
        2
        3
        4
        5
        6
        7
        8
        9
        serverAddr = "<ip_of_vEthernet (WSL)>"
        serverPort = 7000

        [[proxies]]
        name = "ssh"
        type = "tcp"
        localIP = "127.0.0.1"
        localPort = 22
        remotePort = 6000
      3. 开启反代
        1
        autossh <jump_user>@<jump_ip> -i <ssh_key> -N -R 2222:localhost:22 -vvv -o ServerAliveInterval=60 -o ServerAliveCountMax=3

4.18

  • Thesis摘要中,最后分点罗列本文工作之前,也需要用一个四五行的段落高度凝练下面要罗列的内容

  • 学信网的心理测评,选择两项中最符合自己的一项,诗人握持:

    • A. 我对任何事情都提不起兴趣 & B. 我认为周围的同事都在算计我

    • A. 我觉得自己的工作没有任何价值 & B. 我因为害怕失败,而不愿意付出努力

    • A. 我感觉生活没有任何意义 & B. 工作中,我常抱怨和指责别人

4.17

  • 连续几日被NVidia搞得高血压,GPU占用率一高就有概率整机卡死,只能硬重启,24.04,550-570(open source or not)驱动均不稳定

4.15

  • 30多度,热化了。脚下还有一块450W的暖气片,持续给两个人做着高强度张量运算。它应该更热。
  • MUSA提供SDK了,希望有朝一日CUDA的垄断能被打破。

4.14

  • 服务器host无公网IP,以拥有公网IP的主机jump为跳板设置反向代理,可实现任意可连接jump的主机client连接到host。具体步骤:
    • 在host上设置反向代理(autossh可自动进行隧道重连,其中-M 0表示禁用autossh的监控端口,使用SSH自带的保活机制):
      1
      autossh -M 0 -N -R 2222:localhost:22 jump_usr@jump_ip -vvv
    • 在client上连接host:
      1
      ssh -J jump_usr@jump_ip host_usr@localhost -p 2222

Week 2

4.13

  • 词袋模型可以理解为仅计频次的单词编码方法,比逆文本序数还要naive一点。虽然技术过时了,term还是第一次对上号

4.12

  • 实验室太热,外面又太冷,冰火两重天
  • 视奏了卡尔卡西25首练习曲,弹得一坨。需要多练,特别是严格按照谱面上的指法。

4.11

  • 测评强化日。
  • 大人に目覚めてく、あなたに出来ることを さぁ ——《蝶》柴田 淳

4.10

  • 刷到了某大佬关于手机云控的一个视频。在熟悉的通过系统更新等方式“反向升级”(包括但不限于降频)之外,云控居然还会硬编码VIP用户和评测商,以此优化他们的体验。甚至还可以对拍照等功能进行基于样张的优化,和在🌕上P个环形山有异曲同工之妙。几个值得探索的点:
    • 云控指令是如何下发的?为什么拥有调度设备的权限?
    • 这是手机定制OS的后门吗?如果是,是否存在伪造身份进而攻击特定设备、破坏完整性/保密性/可用性的可能?

4.9

  • 发现很多单位博士后-入职薪资倒挂,原来是因为国家有补贴。国家真是给高校付出了很多,缝缝补补

4.8

  • 学到了一个新单词:Tariff。US发布的各国税率是依靠几个简单的权重系数计算而来的,居然还在官网给了几个参考文献,近两年的都有。可见很多严谨“学术”的背后就是先画靶子再射箭,反正世界之大,总能找到related work。成功了就是“All you need is XXX”,失败了就是“Rethink XXX”。
  • 大家都在说世界是草台班子,说明不迷信、不盲从逐渐成为趋势,普通人也在对曾经高高在上的东西祛魅,开始思考和审视——这不是正好说明时代在发展、社会在进步吗?所以世界是草台班子,恰恰说明世界不是草台班子。草台班子说说说则矣,认真就输了。班子存在的不足和巨大的改善空间,恰恰给了普通人做出一番改变和事业的机会,如果班子草包,普通人也跟着草包,那就真成🤡、刍狗了。

4.7

  • Java中,匿名表达式中的变量和匿名表达式外部的引用(下例中的list)并不是同一个,而是复制了一个新的引用。因 此,匿名表达式中的变量必须是final或等同final的,以避免内部修改,外部不变的不一致情形
    1
    2
    3
    4
    5
    List<String> list = null;
    list = new ArrayList<>();
    List<String> missingElements = Arrays.stream(target)
    .filter(e -> !list.contains(e)) // ERROR: Variable used in lambda expression should be final or effectively final
    .toList();
    Workaround:
    • 匿名体前复制变量到一个新的final变量
    • 使用循环等非lambda方式
    • Lambda仅保证变量引用的不可变性,不限制对象状态的修改。因此修改引用变量成员是ok的,不过可能导致线程安全问题(并发修改、竞争)

Week 1

4.6

  • 玩手机,颓废。复工第一天,可以试试番茄🍅工作法,高效又健康
    • 每25分钟休息5分钟
    • 每个番茄周期内不能干其他与当前计划工作无关的事情

4.5

  • 居庸关长城,由明代徐达、常遇春等人于1368年所建,1993年由解放军某部队整修。全程敌楼共14座,走遍共用约五个半小时。矿泉水十元一瓶。初见很多老外,三座敌楼后基本就没什么说外语的了。白发的老奶奶比十岁的小胖墩矫健十倍甚至九倍,是学习的好榜样

4.4

  • 清明假期第一天,下午给自己放半天假,久违两个月打开P5,闪退了两次,红温了

4.3

  • LLM通过了图灵测试。但是这不是早就应该发生的吗?LLM本身就是人类常识的集合体,从性格与输出的稳定性上来看甚至可能比大多数人都好

4.2

  • 做梦梦到了早起6点半就出门,晨光熹微,众人在一仁兄的练琴🎹声下奔赴一天的努力,心情非常愉悦。醒来坐起已经8点半了
  • 遗传算法:适者生存。也可用于非凸问题,相比变异,可能定义合适的适应性函数更为重要

4.1

  • 感觉每天的有效工作时间都不多,可惜这并不是一个玩笑
  • 反卷积/转置卷积
    • 实现上采样(无法恢复原矩阵,主要目的是大小相同)
    • 建立一对多的关系(卷积:多对一)
    • 也可用于特征解释

Week 4

3.31

  • 哥德堡变奏曲第26变奏听上去和亨德尔HWV435神似,是巴洛克时代大师们的共鸣吗?
  • Fork Bomb,用几个字符crash linux——:(){ :|:& };:
    • 定义了一个名称为:的函数(到;为止)并立刻运行
    • 函数体中执行两次,结果被pipe到同名函数,子线程会以 $ 2^n $ 增长
    • &把函数调用放到后台,因此子线程一直运行不会结束
    • 结果:耗尽系统资源
0%