【日记】2025年7月

从掌控冲动开始,逐步建立更专注、有掌控感的生活。

7月总览

1 2 3 4 5 6
7 8 9 10 11 12 13
14 × 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31

2025/07/14

今天是失败的一天,来复盘一下发生了什么。

崭新的一周,我8:45左右来到公司,吃完早餐大约9点。做到工位上的第一件事是用电脑打开了B站,为了升级到Lv6,最近我每天都会投币三次。完成每日经验任务后,我并没有停下,而是继续看B站,由于最近对手机的关注,开始看各种各样的手机测评视频和网购链接,今天主要看了一加13T。B站大约看到11点。

也就是说早上一到公司就看了2个小时B站,B站首页尝尝推荐一些软色情视频,即便没有点开,但一眼看过去还是会有一丝邪念在心中升起。

11点左右,想起刚刚更新的仙逆还没有看,所以又去看仙逆。最新一集的仙逆中,王林在尸阴宗遇到了一漂亮女子,破我道心,这应该算是今天的Trigger。就这样去了厕所,下载了Telegram,打开了jable.tv,做了不该做的事情。

反思:

  1. 少看B站。每天只点开三个视频,把币投完,不观看内容,10秒钟内完成。
  2. 禁止下载Telegram。

**罪恶!**想到今天已然是失败的一天,多来一次也无妨,所以晚上回家之后,一个人在家居然又来了一次!

2025/07/15

今天7:50出门,8:30吃完早饭坐在工位上了。今天专注力恢复计划的第一天,我一定能够可以的!

  • 9:00 - 10:00 制定公考备考计划。

  • 10:00 - 12:30 学习论文《Towards Efficient Generative Large Language Model Serving: A Survey from Algorithms to Systems》。

  • 12:30 - 14:00 午间休息。

  • 14:00 - 17:00 思考树莓派硬件身份识别工作如何开展。

工作碎碎念

LLM优化

如果要将LLM应用于自动驾驶,那么LLM的输入是道路场景,包含丰富的信息,即大输入;而输出可能只有一两个token,如刹车、右转等,即小输出。在大输入-小输出的场景,对LLM的优化是否应该聚焦在prefilling阶段呢? prefiiling和decoding的主要区别是prefilling阶段没有KV cache,所以如果要针对prefilling阶段进行优化,那么与KVcache相关的优化思路的优先级就低一些?

decoding阶段的优化在小输出场景收益有限:优化如KV Cache管理、加速单个token生成的技术(如更好的解码算法、小kernel优化)当然也有价值,但由于生成阶段本身耗时占比小,其优化的绝对收益远不如优化Prefilling显著。在小输出场景下,投入过多精力在生成阶段优化上性价比不高。

树莓派硬件身份识别

我们在空闲、中负载、高负载三种情境下采集涵盖CPU、GPU、内存、SD卡的指标,如温度、时钟周期、执行时间差异等,每次采样的数据组成一条特征向量,每台树莓派采几百条,然后针对每台设备训练一个小模型,学习对应设备的特有运行轨迹。这样再从新设备上采集参数序列,输入到所有设备的模型,理论上,误差应该是全部过大,判定为“未知设备”

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
import subprocess
import time
import csv
import os
from datetime import datetime

def run_cmd(cmd):
    result = subprocess.run(cmd, shell=True, capture_output=True, text=True)
    return result.stdout.strip()

def get_temp():
    return float(run_cmd("vcgencmd measure_temp").split('=')[1][:-2])

def get_freq():
    return int(run_cmd("vcgencmd measure_clock arm").split('=')[1])

def get_volts():
    return float(run_cmd("vcgencmd measure_volts core").split('=')[1][:-1])

def get_mem_free():
    mem = run_cmd("free -m").split('\n')[1].split()
    return int(mem[3])  # free memory in MB

def get_sd_write_speed():
    cmd = "dd if=/dev/zero of=tempfile bs=1M count=10 oflag=dsync status=none && sync"
    start = time.perf_counter()
    run_cmd(cmd)
    elapsed = time.perf_counter() - start
    os.remove("tempfile")
    return round(10 / elapsed, 2)  # MB/s

def get_exec_time():
    start = time.perf_counter()
    _ = [x**0.5 for x in range(10000)]  # dummy workload
    return round((time.perf_counter() - start) * 1000, 3)  # ms

def collect_once():
    return [
        datetime.now().isoformat(),
        get_temp(),
        get_freq(),
        get_volts(),
        get_mem_free(),
        get_sd_write_speed(),
        get_exec_time()
    ]

def main_loop(outfile="metrics.csv", interval=5, rounds=100):
    with open(outfile, "w", newline="") as f:
        writer = csv.writer(f)
        writer.writerow(["timestamp", "cpu_temp", "cpu_freq", "cpu_volts", "mem_free_MB", "sd_speed_MBps", "exec_time_ms"])
        for _ in range(rounds):
            row = collect_once()
            writer.writerow(row)
            print("Collected:", row)
            time.sleep(interval)

if __name__ == "__main__":
    main_loop()

2025/07/16

今天一天没好好工作,而是对家庭财务状况做了一些复盘和规划。

一是规划了父母养老保险的事宜;二是规划了2026年度家庭年度预算。

用房用车相当于家里多了一口人

用房指除房贷以外的用房费用,如物业费、车位管理费、水费、电费、燃气费、宽带费。按年计,物业费每年约4000元;车位管理费1200元;水电燃气宽带加起来算2300元。共计7500元;

用车费用包括油费、保险费、停车费、保养费、违章费、过路费等,依旧按年计,油费按0.6元/公里,每年一万公里计为6000元;保险按每年4000元计算;停车费按照5000元计算;保养按照1000元计算;违章按500元计算;过路费主要为高速费,按照1000元计算。共计17500元

用房+用车 = 25000元/年,平均每月2000元左右。我读大学的时候生活费就是一个月2000,可不就相当于家里多了一口人嘛!

还有辆摩托车没算呢,油费大约0.2元/公里,保险每年300左右,保养每次50元左右。合计也得2500元/年左右。

家庭储蓄小技巧

连续三年,每年存一笔三年期的定期存款,到期后存三年。举个例子,2025年、2026年、2027年分别存一笔三年期的定期存款,这样从2028年开始,每年都有一笔存款到期,到时如果有用就拿去用,暂无用途的话就连本带息再存三年(也可以再加上一些,提高存款额度)。

Licensed under CC BY-NC-SA 4.0