2023 春季学期记录

应该是本科的最后一个学期了,最近事情也比较多,头绪也没完全理清楚,不如效仿之前假期通过日记的方式强迫自己认真工作,也写些学期中的日记算了。

目前应该是毕设、先前和快手的项目以及软工助教三件长期的事情,另外有一份可能短期较忙后期平缓的实习。

2023.02.20

学期的第一天,滚去上了韩语课,没想到的是韩语课居然不让使用电脑,本来还打算以后还可以在课上少说干点活的,看起来也不行了。中午偷摸去五道口出勤,结果还是一堆人,下午只能来工位,把预定中的几件事做了:

  • 迁移好服务器上的数据,跑上实验
  • 确认小程序的商品列表页面写完,check 一下 yfgg 那边给的信息

本来以为迁移数据是小工作,结果发现还挺麻烦,在经历了实验室机子硬盘满了换挂载之后,我发现我测试集好像没了,现在只能想办法去把这个测试集找出来了。

最终还是把测试集找出来了,之前写 Pensieve PyTorch 的时候用了这个数据集然后忘了 ignore 传到了 Github 上,只能说感谢当时比较粗心了。

另外就是老师又把我拉到了一个项目的工作群里面,事情又要多起来。之后就是用新 Puffer 数据训练出来的模型依然是炸裂状态,洗数据的脚本不知道为什么很慢,而且估计还是有问题。自己个人网站的 CI 也不知道为啥停了三个星期没动。我现在真的是,完全不知道从哪里下手。


现在洗数据的脚本慢的问题居然莫名其妙解决了,并且顺带学了一个 Python 的小知识。

洗数据有个非常经典的操作,就是不断向一个列表之中 append 数据,正常都会这么写:

Python
1
2
3
4
5
6
batch = []

for data in tqdm(data_reader):
# Process

batch.append(data_item)

然而由于取字段运算符(就是 batch.append 中的 . 运算符)事实上在 Python 中占用的资源很大,所以事实上用下面的写法速度会快很多很多:

Python
1
2
3
4
5
6
7
batch = []
add_data = batch.append

for data in tqdm(data_reader):
# Process

add_data(data_item)

我的数据大约是 \(10^6\) 量级,然后每次都需要对四个列表 append,改用这个写法直接让洗数据时间从近三个小时变成了两分钟左右。

这种改进方法有个需要注意的地方就是不能改变 batch 所指向的内存,否则先前的 add_data 将无法正确修改 batch 中的内容。比如 batch = batch[: -1] 之类的重新指向的写法就不能在循环体内出现。


最后发现个人网站 CI 不动的原因是 Travis CI 收费了,而我自然是欠费的。那么,只能用免费的 Github Actions 了,虽然要把仓库内容给 Github 去训练 Copilot,但反正我这个个人网站他能学到个什么呢?

2023.02.21

今天早上又得早起,去软工课堂上讲小作业,不过因为学堂路堵车了稍微晚了点到,结果前排位置已经没了,只能坐到角落里。不过,由于高老板已经把小作业的 Slides 发出来了,所以我发现坐我前面的同学已经开始做了。要说实话的话,看到他能够非常顺利地把前端小作业运行起来我还是觉得挺欣慰的,毕竟没在这种地方出锅。

软工课还是一如既往的无聊,周围的同学要么打牌,要么写小作业,要么复习自动机,而我因为没法给电脑充电所以没办法去做实习里的开发,只能坐牢睡觉。

中午依然是偷偷出勤,现在疫情放开之后,五道口机厅就连工作日的下午往往也有近十个人在打。今天尝试推了推几个 13+ 的鸟,未果,随后因为又来了至少三四个人于是想了想就撤退回工位了。

回到工位没想到第一件事情是有同学报告了 THUInfo 的 bug,虽然没花多少时间就排查出来是课程信息缓存策略有问题,如果退课并选择另一位老师同样的课的话就会导致无法正确更新缓存中的数据。然而即使是小事,这件事情也花了我一些时间。之后就是正常拉新的 Puffer 数据然后跑实验,但是现在实验室机子的存储空间大概是不够了,不能像之前那样一跑几天,几千个几千个 epoch 那样玩了,现在差不多收敛之后跑到 1000 epoch 左右就得停了。

昨天挂上去的实验结果不是很好,最高的 reward 也只能达到 12 左右,甚至达不到启发式的 15,今天换了一个新的、更大的数据集看看,希望能够收获一点正常的结果。

以及实习那边又开始催了,感觉是该找个时间好好卷卷实习了,然而最近晚上都不太好 308 直接干,因为连着三天需要早上十点钟去上课,还挺麻烦的。

晚上和 xjj 他们去鹤一吃了顿烤肉,结果回来困到直接在椅子上睡着了,本来还想晚上做做事情的。

另外让我惊讶的是,晚上居然有位同学来问软工小作业相关的东西,一看他都做下去不少了,感觉现在一字班果然还是不可小觑,说不定再过两三天就有人做完了。

2023.02.22

今天早上依然是韩语课,今天讲松紧辅音,然而我并不太会。下课之后依然是偷偷去五道口出勤一会然后赶回来上下午的强化学习。

强化学习我记得课容量应该是四十几左右,结果不仅是微信群里就有一百四五十人,线下教室里也有快两百人,而我这个稍微晚到的就只能站在后面听了一节课。比较难绷的是,因为这堂课的内容我已经基本学过了,所以我就没怎么听,结果还被喊起来回答问题,还要用英语,这就很麻烦。不过说实话,这门课很符合我对大学课堂的想象,一个能有强交互性的、老师能和你保持交流的课堂,比单纯念 PPT 的单向授课不知道好了多少,可能也是因为这位老师也并没有大我们多少岁数,交流起来比较没有障碍吧。

现在计划把目前这个网站上和 RL 相关的东西按照这堂课的 outline 给整理好,因为我发现这堂课所使用的符号系统之类的比较贴合我所用的,正好也不要废多大的力气。

下午继续来工位,然后等一手 SOA 课程的消息,如果事情多、不好混分的话就赶快退了,本来大四也就想摆烂混个及格分赶快毕业得了。结果就是立刻从同学那边听闻课程大作业要求基于 ChatGPT 做开发,这已经完全超出我所需要了解的内容了,于是立刻退课跑路。


今天看了一下用新一天的 Puffer 的 fox channel 训练的情况,更是爆炸,甚至到最后都负 reward,根本没收敛,我现在真的是在怀疑我的数据处理真的存在问题,然而我也是真的不知道怎么往下处理了,但这毕竟总是要结项的,我这边也要给结果的。

今天估计要做的事情差不多是:

  • 收拾一下强化学习的笔记
  • 写实习那边的小程序
  • 毕设看看能不能推进点东西出来

2023.02.23

周四终于是没有要我十点钟就要起床的事情了,前三天连续早起让我精神状况相当不好,于是周三晚直接很早就睡了,结果一路睡了快十二个小时。

周四恢复了组会,一点半准时赶到会议室。组会本身是没有什么很大意思的,比较有意思的有两件事,一件是和我一起做毕设的同学好像已经进展很快,这让我比较焦虑,另外一件就是我和老师说了我寒假在实习的事情,他感叹了一句“年轻人忙点好,但是我每周该查你毕设还是查”。总之就是这波组会开下来就让我感觉毕设再不做出点东西好像就得挂了。

开完组会稍微收拾了点东西,把实习那边微信小程序开发者工具的一个 bug 修好之后就去上地出勤,不过因为状态不咋样就没怎么打。

晚上回来之后实习那边的学长也在说我最近事情实在是太多,计划再找一个来帮忙的人,虽然可能需要我让渡部分回报(工资、股份之类的)。我感觉我最近确实也不太想继续推进实习了,实在是太累了,于是就答应了下来。结果他们很快就找来了两位似乎比较有意愿的同学。

另外就是软工助教那边讨论大作业给分的事情,本来说很快的会,愣是开了一个多小时,就为了讨论应该怎么给同学们解释我们改革的动机和尽力阻止内卷。最后讨论下来,是和同学们明确给出过程评分要求(比如 Git 开发 comment 管理之类的评分),并且说明“完成拓展功能很容易导致在过程评分上失分,甚至可能得不偿失”,以此来尽力阻止过度追求满分的行为。

开完会洗完澡来到 308 本来计划好好写写实习那边的东西,结果却是一躺就睡着了,一直睡到了周五的十二点,看来这几天是真的困了。

2023.02.24

从 308 的沙发上醒来之后,就简单点了个外卖,然后和 return 讨论了一波日语中助词「は、が」的用法,这些东西稍后整理到自学手册里。外卖到后吃完了就继续推实习那边的事情了。

结果说是好好做实习的事情的,因为空间里刷到了一条以椭圆曲线加密算法为背景的高中题,就研究了大概几个小时的椭圆曲线。只能说完全不能集中做实习这边的事情。

好摸啊,今天一整天感觉一直到晚上六点都没做出来什么实际的东西,果然还是得 push 一下自己。结果就这样一直到了晚上八点,还是没有做出来什么实质性的东西,倒是实习那边的学长似乎有一些想找我的事情,先来了解一下吧。

和实习那边新找的技术团队简单见了一个面,看起来他们确实是很有经验的开发团队,至少对商业开发的流程把握比我这种随便写写玩玩的人实在是高到不知道哪里去了,如果可以的话还希望能把我这边接手过去我就可以稍微歇歇了。这里还是得感谢一下实习的 leader 还是帮我在投资人那里保住了一些利益,至少原先约定的现金工资还是能给出,这就还可以了,因为我确实没有作出那么多的贡献。

讨论下来最终我应该就只要在一周内完成:

  • “我的”页面以及订单详情页
  • 自定义导航栏
  • 询问学校和手机的 PageContainer

这三个应该就可以暂且休整了,感觉整体安排还是很好的。

晚上稍微花了点时间修正了一下主页相关的一些东西,目前来看问题不大。

另外,最近不少人软工小作业前后端都做得七七八八了,目前也没什么大的 bug report,还算是心里安稳了不少,希望 CI/CD 也不会出大锅。

2023.02.25

今天大概是实习那边简单开一个会,把团队所有的同学召集起来互相认识。不过说实话,我这个做开发的,确实不太了解运营那边,倒是 yfgg 需要和运营那边对接后端管理,反倒是需要经常接触。

中午出去吃牛肉面,结果那家店既不能在线下单,而且还需要自己取餐,还没有防丢包机制,属于是当下互联网应用普及背景下的漏网之鱼了。

下午于是就正常工作把“我的”页面赶快写完,说是今晚就打算验收,那总之认真干干吧。

然而微信小程序这种东西就是很折磨,写了一整天还是有些逻辑上的问题。另外,在写这玩意的时候还有一位上软工的同学一直在找我答疑,然而这位同学似乎对一些计算机的基础知识都不是特别熟练,确实也弄得我有点麻烦。

晚上就直接摸鱼了,打了一晚上德州,然后早早睡了。

2023.02.26

一点没睡好,因为突然出现了一点点的感冒症状,喉咙发痒然后咳痰,我在怀疑是冬春之交的流感,或者是我复阳了,顺带着精神状况也不是特别好,有点头晕且没啥精神,口干舌燥的很难受。

十一点左右就醒了,打了一把牌之后就去看 KOP maimai 决赛,yoshiki 还是很稳健地拿下优胜,确实也没啥特别可以说得上是悬念的东西。然而最主要的是在国际服比赛之前三位主持人透露了似乎 SBGA 终于要把国服 UI 更新到 festival 的信息:

  • マイマイは日本でも人気なんですけれども、海外でも…
  • 中国で、あのマイマイみたいな…
  • せっかくで、バージョンアップ、言ってもいい?
  • バージョンアップしなかったですけど、近々、システムはフェスティバルにと…

然而这完全不像是一次正式通告,虽然后面也提到了最近会发布正式公告,但这暧昧的态度和语气确实也很 SBGA。只能说如果真的给更新的话,maimai 暂且是一款我的问题。

下午实在是拿不出来任何做事的干劲,直接去上地出勤了,然而上地一直保持着至少八人的规模,所以说实话也没打到多少把。感冒的症状说实话出勤的时候在缓慢加重,毕竟只穿了短袖而且还在不断流汗,很有可能受凉。一直到了晚上,本来想吃一顿萨利亚就回去的,结果是萨利亚居然卖完了主食,啥都吃不了,只能去上地华联地下那些不咋样的饭店随便吃吃,就这样还吃了我六七十,啥都没吃着。

晚上回到宿舍拿到了美团上买的感冒药,结果上楼梯的时候就已经开始感受到极端的疲惫感,到了宿舍坐下来,立刻感觉好了不少,于是赶紧吃了颗药。

今天本来想做的事情那是一件都没有做,这一周刚开始的时候干劲满满,每天除了日常工作还能出勤,心情也一直很不错。但是到了今天,周日,因为这个感冒症状,真的弄得我非常难受,希望明天起来能够快快好起来,这样至少不会影响我下一周的时间安排。

2023.02.27

果然症状没有好多少,依然是喉咙有点疼然后头很昏,整天处于疲劳状态,可能还有一点点低热。早上强撑着还去上了韩语课,虽然迟到了。韩语课目前在讲发音,没有什么特别有意思的东西。

中午按照平常的饭量点了一套粥和配粥的小菜,结果发现自己完全吃不下,虽然吃了七八成,但还有些是完全没吃的,比如三个豆沙包。下午按照道理要准备开始干活了,然而这个状况是真的一点都没法工作,于是爬上床睡觉了,除了途中上了趟厕所之外,一直到七点左右我一直在床上睡觉。比较麻烦的是,我醒过来发现四肢有点冰凉然后还有点热,这说明症状严重了。

为了防止我是新冠复阳,我去 308 里面拿了一份之前囤着的抗原,自测了一下是阴性,这就说明我得甲型流感的概率很高,前几天宿舍楼群里面也有人问有没有体温计之类的。

就这样一直磨到了晚上八点,请舍友帮忙带了饭,结果发现还是没什么特别大的胃口。但这个时候我意识到很多事情再不做来不及了,比如第二天就要在课上讲的 React 前端小作业讲稿,还有大作业文档之类的也得稍微调整一下。就在我极不情愿地坐到桌前准备工作,这种疲劳感和不集中又袭来,而且实习那边还在 push 一些事情。

怎么会变成这样的呢?我思考可能是先前太疲劳,毕竟连续早起了很多天,虽然只是十点起,但我平均得到四五点睡,这就很不好。于是想着该找机会调整作息和运动了,然而目前事情还得赶快推。

2023.02.28

二月的最后一天了,昨天晚上吃完药之后明显感到全身发烫,然后开始冒汗,最终到了凌晨五点左右退烧了。然而,喉咙疼和咳嗽确实是一点没有见好转,甚至还有恶化的感觉。

强撑着去软工课堂上讲完了两节课,回来之后自然又是睡了整整一个下午,起来就已经是晚上了,点了个外卖,胃口依然没有恢复。

晚上首先是我爸妈得知了消息,他们简单关照了几句,问了问药物的情况。然后我发了个朋友圈说已经甲流第三天,结果各种关心就都过来了,先是 rls,然后是之前一直有联系的学弟,一起打牌的学长,湖中,甚至贾珈老师都来关心,一时间受宠若惊。

不过总的来说吃了颗药然后洗了个澡之后现在精神状况恢复不少,至少现在四肢都是温暖的,然后也几乎没有疲劳感,喉咙虽然沙哑但至少也只是微微发涩,估摸着明天,应该也就能正式好转了吧。

期间 rls 提到了还有一个月薪两千的前端单子问我要不要接,我只能回一句“狗命要紧”,赶快回绝了。

以及突然很想吃水果,尤其是苹果和梨,那种清甜的口感,不知道为啥现在特别想念。

过了一遍 DRL 的 recitation,PyTorch 的简单入门,讲得还可以,但之前就学过了,不好说对初学者而言友不友好。比较好玩的一点是,我听完 recitation 之后,突然感觉神清气爽,有种大病初愈的感觉,难道 DRL 还有这个好处?

不过看这样子,明天确实可以开始正常生活了,先是得把这几天没洗的衣服给洗了,然后给自己买点水果解个馋。工作上的话,软工助教一时半会是没啥大事了,实习估计这周也会结束,毕设已经请了一周假,这周组会应该也很好过去。

三月了,希望能全新开始吧。

2023.03.01

今天起床之后发现好了不少,除了喉咙还是有点不舒服之外,其他应该基本都好差不多了,然后也第一次韩语课没有迟到。韩语课没啥值得记忆的,只是 zz 居然被老师听出来他的韩语有日语口音。

中午点了麻辣烫,虽然这次没要酱料,毕竟现在还不太能吃辛辣,于是就吃了清水煮肉片,但是比较好的事情就是发现自己饭量已经差不多恢复了。此外去猫超买了黄瓜、菠萝蜜和哈密瓜,其他的还好,就是菠萝蜜难吃出了一种境界。

下午摆烂没去 DRL,但是老师发 slides 真的很慢,我还打算至少看看 slides 来学点东西的。

结果还是摆烂了一个下午,最终还是决定去洗个衣服,至少做点什么像样的事情吧。

2023.03.02

昨晚据我舍友说睡觉的时候连续咳嗽了一个多小时,说是真怕我睡着睡着人咳没了。

中午爬起来去开组会,为了防止传染所以戴了个口罩去了实验室,实验室的学长们见到我这阵仗都纷纷戴上了口罩。老师看到这个状况,于是劝我还是等身体完全好了再来实验室,组会少一两次问题不大。于是我就从命地回去了,回去的路上顺手去吃了个午饭。

吃完午饭才发现这几天的温度已经回升到了十几度了,天气最近也一直是晴天,这两天正好又是春季百团大战,于是就去逛了一下摊位。不过由于春季百团本来就不是重点战场,各个社团也没有拿出家底,所以摊位比较一般,没啥意思。但是,这次逛了摊位之后突然发现,只是走了百十米之后就开始喘气,我自己都没发现现在身子已经虚弱到了这个程度。

回到宿舍坐了一会喝了口水之后瞬间就恢复了不少,甚至感觉和康复了毫无区别。果然只有出门才会意识到现在自己身体依然十分虚弱,即使没有很明显的症状。算了,先好好把 DRL 笔记整理完吧。

2023.03.03

身体看起来已经是完全好了,下午先是出门去做软工小作业答疑,但是就在这过程中不断被催实习那边的事情。目前预定下来要做的事情应该还就是之前定下来的那几个页面,然后预计还要去做后台管理应用的一些后端开发。

因为现在身体好了不少于是直接去上地出勤,虽然状态依然没有完全回来,但是基本上已经是能活动开了。不过打了一晚上一分没上,还是很难受的。

本来是打算和舍友一起去海底捞的,但是考虑到我出了勤得去洗澡,然后当晚还有韩语作业,只能偷摸溜回来。然而回来发现的第一件事就是我自行车被偷了,我明明好好锁了车,却依然被偷了。本来是打算报警的,但以前也被偷过车的一位同学提醒我这事报警挺麻烦,毕竟你也没法拿出什么很重要的证据说明这车就一定是你的,而且很多行政流程可能还挺麻烦。

回到宿舍本来打算稍微做点事情的,结果是相当困,写完韩语作业之后就直接摸鱼了。

2023.03.04

今天起来先是收到了 SECoder 因为网段限制无法满足给所有同学开两个部署容器的麻烦消息,这代表我们对小作业框架要做大改。急急匆匆和高老板、mfy 商议了解决方案之后,我把作业文档和课程公告写好了,就等高老板那边把 code base 修改好,然后开好容器就可以准备谢罪了。

此外不少同学的软工答疑我还暂且没解决,在此之外实习的事情理应今天解决我还没做。

不过说实话,现在我对这份实习是越来越不想上心,因为自己毕设真的是没有进度,现在也已经是三月的开头过去三四天了,四月中期拿不出东西是真的要收拾东西走人的。

有个题外话就是我考研的舍友似乎想来我们组,看上去还真有可能。如果是这样的话,至少几年内有个一起在组里的也不错。

晚上稍微摸了鱼,打了一晚上德州扑克。这一把非常有意思的一局是,我起手 AK 方片,然后直接冲刺了,翻牌是三张方片,我直接中天顶同花,于是也不演了,打退几家。令我惊讶的是,即使是这样居然还有一家和我对着下注,我看后续牌没有对子,就说明没四条或者葫芦了,结果那一家还在和我对着下注一直到 All in,我这手牌自然是一击把他打飞了。后面我还拿到过天葫芦,天顶两对等好牌,只能说这一把太运势好了。

其实晚上最主要的还是把软工小作业的问题解决了,更新了文档,发布了课程公告,也终于给大家开好了容器,这件事情也算是平稳过去了。

2023.03.05

周日,本来想好好做点实习的事情的,结果直接在宿舍开始摸鱼。现在气温开始回升了,慢慢有春天的感觉了,最近心情大好。

不过下午却是摸鱼摸过去了,中途 c7w 给我转发了 ouuan 在自己 blog 上对软工小作业的批评,怎么说呢,别人说的没错那就只能立正挨打。硬伤就是计时器资源和网络请求并没有设置在组件卸载的时候取消,这一点怎么说呢,因为曾经的项目没有使用过定时器,也没有过于管 abort 网络请求的事情,所以就没这方面的经验,确乎是得学。然后就是 ESLint 配置的事情,怎么说呢,一是 holder 确实 prefer 一个并非大众喜爱的码风,然后 ESLint 没好好配也差不多是为了同学写的时候别真的红一片,我当时第一次开始写代码就经常被 lint 干到崩溃,明明会写的逻辑硬要跟着 lint 后面走。嘛,不过也确实是在想要不从众用 2 space 缩紧和单引号算了,但是说实话 holder 真的是单引号极端厌恶。

整体要说的话,实际上问题也就是一个,就是“简陋”,不符合当下的一些约束或者说惯例,而且为了零基础也能上手,省掉了一堆东西还几乎没多少填空。

算了,还是等 ouuan 来好好调教一番吧,我摆烂了,我只想毕业了。

但是说实话,还是赶快做点事情从周一开始恢复到第一周的工作状态吧,否则实在是有点太摸了。


总之今天整体还是太摸鱼了,实习那边的东西没有一发调出来也是真的没绷住,然后还时不时被 ouuan 拷打,包括各种可以优化的地方。看来 holder 还需要再稍微锻炼一下抗压能力,这点抗压能力完全不能应付啊,包括之前被 cyr 拷打毕设也是,完全做不到坦然面对面前的问题呢,遇到问题只想摆烂和找借口嘴硬,这实在是有点过分了。

2023.03.06

今天早上起来就发现已经十点了,已经过了韩语课的签到,于是也懒得去了,看到湖中在说想出勤,于是直接去了五道口。没有想到的是,即使是星期一的上午,五道口依然充满了人,完全打不了多少,只能随便糊糊作罢。

下午精神终于回来了一点,昨天摆烂加上被拷打真的是完全绷不住,但还是得赶快调整。到了工位,整理了一下自己的东西,结果发现耳机的耳塞又掉了,没有办法只能赶快下单新耳机,不能再将就着用这个破耳机了。下午依然是随便跑了一下 Puffer 的实验,可喜的是这一次实验居然似乎有了点看起来能行的样子,因为现在至少能打过启发式了,至少不是智障了。在等实验的过程中帮 abmfy 修了一下日语作文,然后准备还是赶快把实习那边的事情给做完,少一件事终究是好事。

今早在出勤的时候顺手把当前前端小作业存在的问题给罗列了一下,整体来讲虽然有点绷不住但还是感谢 ouuan 提供了这么多的改进意见。

2023.03.07

7 号真实地没有任何可以记录的事情,因为早上起来之后随手在群里发了一个“礼问上几”,得到上地机厅只有一人的答复之后,立刻收拾东西去出勤了。然后原本是打算随便打打就下午回来的,结果因为手感好到离谱,直接上了四十几底分,于是就这样一直打下去了。最后快要闭店的时候,随手开了一把高桥名人,结果 24 分纵连全打上了,鸟加 13.2 吃分。

但是事情总是得做的,因为和实习那边说了已经写完了订单页面,所以这个坑得填上,最终还是来到了 308 开夜班,一路做到早上六点,真实做到了三四个小时糊完整个页面。

2023.03.08

7 号晚上写完订单页面之后我意识到周三 8 号的韩语课多半是起不来了,于是和老师说明了情况,打算韩语课退课自学了。

8 号的话,起来之后先是去了 DRL,下课后结果兴致来了就去吃了顿麦当劳然后五道口出勤,出到了晚上回来和舍友吃了顿饭,308 睡了一觉之后就是软工的课咨委启动会,开完之后就十一点了,直到这个时候才准备开始做毕设。

这两天属实没有什么特别有意思的事情,也没有什么有意思的新闻,只是很平淡地摸鱼了两天,只能赶快把毕设启动了,不然太摸鱼了。然后韩语的收音和今天 DRL 的课程内容还得整理一下,不过还是毕设为重,这些可以明天开完会之后慢慢摸索。

2023.03.09

昨天为了赶快干活,晚上做毕设做到三四点,但是实在是顶不住了赶快去睡觉了。但是这一觉也没睡多好,中间醒了几回。早上起来就看见导师要去参加另外一场会于是组会交给我们自行组织,绝佳摸鱼机会。

于是下午的组会也只进行了半个小时就结束了,然后我们就在讨论导师参加的那一场会会开到什么时候,毕竟我们还得装作认真讨论的样子,至少不能让组会比导师的会提早结束。结果是没讨论出任何有价值的结果,就直接回实验室摸鱼聊天,没想到的是,导师已经回来坐到实验室了。

今天机厅据说人并不多,但是说实话事情还是不少的,还是稍微做做吧,大不了周五出勤出一整天。

2023.03.10

周五似乎并没有什么安排,因为周四理论上已经大体解决了问题,我也成功在周五凌晨六点前把实习的代码交掉了,虽然我知道里面还有不少的错误,但这些错误也不是我写的,我真的很难去帮别人补天。

然而下午毕竟是要验收的,验收这就发现这玩意几乎没有办法用,功能上欠缺了一堆东西,实习那边的学长能看得出来很着急,于是急忙安排我们前端开发的两拨人赶快开会对接。我迅速把一些比较严重的问题扔到了群里,但是他们的答复也比较暧昧不清,不太能对实际解决问题起到什么作用。

晚上稍微开了个会,我直接对着他们的代码指指点点了一通,总之就是他们那边出了不少问题(虽然感觉我也可能出问题),导致现在功能上完全用不了。在这之前事实上我已经和 yfgg 吐槽了很多他们代码上的错误之类的,总之就是血压超级高。

开会的时候我直接说我周末不奉陪了,你们的问题你们慢慢解决,然后我就开始心安理得地摆烂,打了一晚上德州扑克之后就早早睡了。

2023.03.11

周六是约好先去麦当劳吃饭然后 V+ 群群 K 的,我定好了十一点的闹钟,虽然被闹醒了但是小小眯了一会,没想到就直接迟到半小时。

因为这次参加的群友相当之多,最终我们是分为中 V 和日 V 两边举行,我一直在日 V 这边,确实也唱了相当多的 V 曲,嗓子已经炸裂了。

晚上本来是打算聚餐的,但是还是和湖中、秋枫老师临时起意去窝出了一小会勤,只是没想到窝现在十点钟就会关门,于是也没玩很长时间就只能回来了。

回来洗了个澡,准备稍微干点活。在今天玩的时候实习那边还在说打算周日把 bug 修好,但总之我有点不想再陪他们玩下去了,我把我的工作做好,这周,我必须把那里的事情放下来做毕设了,后面软工助教会还得开,不能再这样拖泥带水了。


今天还是主要配置了一下 DRL 的环境,因为手上的 Mac 说实话已经很不好用了,很怕后面要做深度神经网络的时候撑不住,于是直接把代码拉到服务器上去了。但是这有一个重要的问题,DRL 的作业是基于 Gymnasium 的,这是需要渲染图形界面的,那我就需要通过 X11 转发图形界面到我的 Mac 上。但是刚配置完 X11,就报错了:

ZSH
1
2
3
4
5
6
X Error of failed request:  BadValue (integer parameter out of range for operation)
Major opcode of failed request: 149 (GLX)
Minor opcode of failed request: 3 (X_GLXCreateContext)
Value in failed request: 0x0
Serial number of failed request: 143
Current serial number in output stream: 144

我查了半天终于在 StackOverflow 上找到了解决方案,只需要在 MacOS 的客户端这边运行下述命令启用 IGLX 即可:

ZSH
1
defaults write `quartz-wm --help | awk '/default:.*X11/ { gsub(/\)/, "", $2); print $2; }'` enable_iglx -bool true

然后普通地 ssh -Y 连接到 Linux 服务器端就可以了。如果是 VSCode 的话,需要在 SSH config 里面加上下面两行来保证 X11 启用:

SSH config
1
2
ForwardX11 yes
ForwardX11Trusted yes

2023.03.12

今天是周日,按照道理是和实习那边对前端的任务的,不过下午我都用来搬迁毕设代码框架里面的一个第三方框架了。我毕设真的是,毫无进展,真的得速速做点东西出来了,尤其是下一次组会真的得说点什么东西出来了,不然这也太慢了。

晚上临时起意去了胜博殿去吃炸猪排,不得不说,特别好吃,超出想象的好吃。猪排我点的千层锦,切面可以看到是一层层猪肉叠起来,最后炸出来居然不散开,居然还能保持猪排的形状,这也太惊艳了。小菜比如说包菜丝、茶水、金枪鱼拌饭、味增汤之类的就没有那么惊艳,但绝对也是平均向上的水平。

今晚吃饭的地方旁边就有 maimai,于是就去打了几把,差点鸟掉 Big Daddy,但是尾杀崩盘了就没办法了。这个机厅最大的问题就是游戏币原价太贵了,两块钱一币,maimai 1pc 要五币,原价的话十块钱 1pc,实在是离谱。

晚上回来发现自己 B 站六级了,于是做了一下硬核会员考试,擦边通过,关于鬼畜的一些东西真的已经是考的都是边边角角完全不知道了。做完这些迅速过了一下实习那边的代码,把订单列表页的按钮都写上了回调函数,我这边工作基本就相当于结束了。交了一些 Bug report,和学长说了自己可能得做毕设之后,就暂且告一段落吧。

2023.03.13

周一,因为已经退掉了韩语,所以没有早起,起来之后按照以往的规划去了五道口出一小会勤。本来是打算出一两个小时就回去去工位做毕设的,结果是一直打到了闭店。

不过这一次出勤实在是太值当了,不仅杀掉了心心念念的捕物帐、纵连派对、跳舞狗三个 13+,还 AP 了海底谭和弱虫。最经典的事情则是,因为我已经连续出勤了七个小时已经累得不行,但是最后快闭店的时候我同学拉着我说再来一把。我秉持着已经这么累了,再累点也没事的态度开了一把 DX 奶,没想到的是我把这玩意杀了。而正好,同学帮我录下来了最后十秒钟,当了一次战地记者。

回来之后就把这个视频上传到了 B 站,还是很有意思的。

2023.03.14

今天决定好好做毕设了,不过这次我打算换方向了,我不打算完整复现论文了,而是直接用 community code base,在这个基础上先跑起来 Pensieve 作为 baseline。感谢贾老师的建议。

不过这次在跑起来这个 code base 的过程中遇到了相当多的困难。我一开始打算在服务器上运行起来这套代码,首先遇到的问题是导入自己编写的模块会导致 Python 找不到模块,这也算是个经典问题了,不过这次我找到了这样一套 Python 引言代码,感觉可以后期长期使用这样一套引言来解决自己编写模块之间互引的问题:

Python
1
2
3
4
5
import os
import sys

current_path = os.path.dirname(os.path.abspath(__file__))
sys.path.append(os.path.join(current_path, ".."))

之后遇到的问题是服务器上没有 OpenMPI,这个简单,直接 sudo apt-get 就可以了。然后还有一点就是没有装 Mujoco 131,这个也不难。

然而后面的就是大问题了,因为这个代码框架还是涉及到图形界面,所以还是会涉及到 SSH X11 转发图形界面,然而我本以为配置好了,结果这次运行的时候炸了 No specified protocol。我上网找了一下,基本都是说没有权限的问题,用 xhost + 命令就可以解决问题,然而我无论怎么尝试都不行。于是我放弃了,我决定先在我 Mac 本地跑起来这一套玩意。

然而在 Mac 本地上就有另外的问题,OpenGL 找不到。我尝试了很多方法安装 OpenGL,但都不行,最后还是找到了相当邪道的解决方式,即直接修改第三方 pyopengl 里面寻找 OpenGL 的代码。代码位于 platform/ctypesloader.py 中,里面函数 _loadLibraryWindows 中有一段如下的代码:

Python
1
2
3
4
5
6
7
8
9
10
11
fullName = None
try:
fullName = util.find_library(name)
if fullName is not None:
name = fullName
elif os.path.isfile(os.path.join(DLL_DIRECTORY, name + '.dll')):
name = os.path.join(DLL_DIRECTORY, name + '.dll')
except Exception as err:
_log.info('''Failed on util.find_library(%r): %s''', name, err)
# Should the call fail, we just try to load the base filename...
pass

这里直接把 fullName 变量硬设置为 "/System/Library/Frameworks/OpenGL.framework/OpenGL" 即可(在 MacOS 上),这样的话似乎就能通过检查了。

之后也是 Mac 上装一下 OpenMPI,直接 brew install openmpi 就行,然后就跑起来了。然而我 Mac 究竟是老了,所以跑的时候风扇直接起飞,还是得放到服务器上。不过我发现一件事就是这玩意完全没有生成什么图形界面,意思就是说理论上根本碰不到 X11 转发的问题,所以我就打算今天至少得把这玩意在服务器上跑起来才行。


在服务器上二分了一下确认了是 mpi4py 这个包在 import 的时候会爆炸,不过我也用不到这个东西所以直接注释掉就没有那么多事情了。

这个框架另外还附赠了一个用 Flask 编写的前端用来可视化训练数据,不过看起来这个前端目前也是炸得不轻,啥地方都是 500 Internal Server Error,还得一步步修理。

最终还是找到了前端的问题,是因为我以为代码里面的 viskit 是个需要安装的第三方,所以直接用 pip install viskit 装了一下,结果这个 viskit 事实上是自己写的一个 viskit.py 模块。而碰巧的是用 pip 装的时候装了个很老的依赖,现在更新到了 v3 而我装的是 v1,恰巧这个依赖还真的在 viskit.py 里面引用了,所以直接爆炸了。

我比较怀疑这个框架里的 viskit.py 是一个 self modified 的魔改版第三方,所以才不能从 pip 直接下载。

最后他还有一个用来展示训练结果的 Python 文件,里面读取了缓存的模型参数然后用了 Gymnasium 渲染一个图像出来,不过这里又是涉及到图像 X11 转发,于是又理所应当地炸掉了,但今晚我也懒得调试这个东西了,明天要帮黄老师找他博士毕业论文的错别字还得尽量把 Pensieve 写上去。

2023.03.15

今天真的没睡好,本来昨晚看完了《シノハユ》漫画之后已经五六点,结果还有点失眠了一下子没睡着,最后七点才昏昏沉沉睡过去。结果早上十点钟就有人来清洗空调,直接把我弄睡不着了,只睡了三个小时直接让我整个早上极端暴躁。

结果先去偷摸出勤了,勤到了三点多,决定回工位帮黄老师看论文。然而今天在工位说实话黄老师论文也没看进去多少,反倒是软工因为周四要开第一次大例会所以拉群、加好友、发注意事项弄得热火朝天,最忙碌的时候我同时在和五位同学保持联系。

晚上在实验室和学长们吹了一会 GPT-4 的水,没想到一路吹到晚上十一点,于是赶快收拾东西回宿舍。路上遇到了 lzj,于是和他两个人边聊天边走回宿舍。

回来之后决定先把目前复现的 GrBAL 挂到服务器上跑着,昨天虽然跑了一些,但是试验结果相当炸裂,reward 都是负的,我完全不敢相信这是目前最常用的 community code base。然后仔细想了想,终究还是得做点什么出来,于是决定用 MPC Controller 作为 policy 跑一下 Pensieve 看看结果,本想晚上就把代码迁移好的,结果还是电脑没电,终究只能作罢。

明天需要同时开组会和软工大例会,晚上还有学生节技术支持的会,还是挺忙的。不过目前来看周五是空闲的,估计找个时间把 Pensieve 赶快挂上去,跑点结果出来做分析最好。

2023.03.16

今天开组会的路倒是比较波折,我现在已经习惯点午饭的外卖到 FIT,然后在 FIT 吃完正好去开组会。然而今天的午饭早到了,于是起床后收拾自己又得加速,出门后扫了一辆共享单车,但是因为现在共享单车有一部分没有物理锁只能用手机控制电磁上锁,而且现在共享单车有的时候似乎还不能随处停车,这次我骑到 FIT 楼之后居然一直没法上锁。没办法,我只能投诉然后强行关锁,就这样浪费了二十分钟,午饭时间就很短了。

匆匆忙忙吃完午饭上楼开会,只能说勉强赶上。在组会上简单把 Pensieve 的环境搬到了新框架里面,不得不说这个框架设计得很好,可拓展性很强,我搬过来 Pensieve 也没有什么卡住的地方。下面就是尝试研究一下用 MPC Controller 解 Pensieve 可不可行了,如果这个结果打得比较好的话,至少就能当个事情说了。

另外似乎还得做一下 baseline,把数据集按照网络情况切分一下,把 Pensieve 也顺手跑一下,这个下一周做完吧。


组会之后去开软工的第一次大例会,本来以为是个小会议室的,没想到随堂助教给我租了个 FIT 楼的大会议室,还不让吃零食和喝有色饮料,我准备的小零食也完全用不上了。例会本身没啥好说的,就是强调一下例会规范、开发规范,然后提一下下一周大家准备做多少和大家对给分的心理预期。例会效果整体不算差,甚至可以说不错,总之和大家交流下来感觉都挺好的,应该后面也会顺利吧。

回来之后和贾老师讨论了一下毕设下面的计划,他建议先认真检查一下论文中方法到底可不可行。检验方法有几种,一种是发邮件问作者要 code base,一种是看看有没有引用这篇论文的工作是开源代码,还有就是我感觉应该可以再 debug 看看。

后续就是我提到了我想做的一些,首先是做 baseline,这里就需要问黄老师要一点各种环境下的 trace 去剪切生成环境切换的数据集。然后是继续在现在的 code base 上迁移 Pensieve,然后用 MPC 求解观察一下结果。

总之后面还得是毕设为重,今天听说毕设中期有可能提前到三月底瞬间就很紧张,希望不要这样,最好推迟到四月中旬。今晚还同时有学生节技术支持的会和实习那边的 bug report 会,算是很忙了。

2023.03.17

昨晚晚上回来之后迅速开完了几场会,学生节技术支持弄明白了,实习那边的 bug 基本修完了,小作业思考题评分细则也定下来了。晚上就借着劲改完了一大半思考题,期间有很多很模糊的答案,十分难给分,但是最终还是睁一只眼闭一只眼给过了。说实话我现在还算是有点担心会不会后面来给我要分的同学会很多。

因为太晚了所以周四晚就睡 308 了,起来之后和实习那边再对了一下目前的进展,他们打算再把一些弹窗精修一下,我还得等等设计稿。然后我把软工小作业思考题改完大半之后就基本上闲下来了,没有特别大的很急的事情。约了晚上游泳和打牌,摸鱼摸一个周末。

晚上基本上实习那边的东西已经写完了,舍友喊我去游泳,最终是五个人一并去了游泳馆,八点钟游泳到九点半,然后出水去吃了个夜宵。夜宵吃到了心心念念的杨枝甘露麦旋风,说实话味道确实不错。吃完后赶忙回来打牌,雀魂规则不太想打,于是玩起了无一发无杠宝无里宝的 A 规,但是没想到的是依然有人能在 A 规下和出立直、混全、三色、宝牌二的跳满。

打完牌已经是一点半了,赶忙赶到 308 和 yfgg 看了一眼直播机和弹幕机,准备开始摸鱼了。

2023.03.18

今天一起床就去学生节现场了,当时网线等物资已经都运到了。学生节的任务基本分为搭建 WiFi、搭建弹幕机、搭建直播机三个部分。WiFi 则是最重要也是最麻烦的,不仅需要调通网络拓扑结构,更主要的是需要一堆人去拉线。

这次拉 WiFi 最值得记录的就是有个 NUC 是 Windows 宿主机,Debian 虚拟机,但是所有公网 IP 全都被虚拟机持有,并且虚拟机上运行着软件路由器,而宿主机则是通过 AP 的无线网络上网。这个神奇的虚拟化设计还让我们研究了一通,当时为了设置 IP 地址我们直接扫了一遍网段,就是没扫到 Windows 宿主机,指导向编导要了一个显示器硬登录进去看了一遍才知道原来是这么回事。另外,祖传的八个 AP 也老了,交换机甚至还是百兆的,只能说这套设备还是得赶快换掉。

之后是弹幕机,弹幕机更麻烦,似乎因为硬件已经老旧,其完全撑不住 60Hz 的刷新率,直接会导致主投黑屏。在彩排过程中这个弹幕机没少出锅,但是在最后通过降频到 30Hz 勉强稳住了三十分钟,于是大家都觉得没啥事了就直接上线。结果没想到在教师视频部分,弹幕机直接挂了,导致正式现场黑屏,最后只能下线弹幕机。比较好玩的一点是,Harry 实际上是知道这个机子是有问题的,他的意思是生产环境反正没出过事,这话只能说我很难绷,明知开发环境出过事情却一直没跟我们说过这件事,只能说运气差被我们撞到了。

直播机没啥好说的,按照惯例设置了一通就行了。

学生节结束之后,工作人员都打算去吃海底捞庆功宴,我因为约好了周日的丰泽园就没去,加上还得回去看一眼软工小作业的批改状况。

2023.03.19

早上还是睡过了,没赶得上和大部队一起去丰泽园。但不得不说,丰泽园是真的好吃,九转大肠和葱烧海参绝对的招牌菜,干炸丸子也绝对是一流水平。

下午按照规划,四个人坐车去昌平泡温泉,不过那个温泉我感觉有点简陋,但整体还算舒服。娱乐设施也不算完备,只有简单的棋牌、台球、乒乓球,设备也有点老旧。最主要的是,下午黄老师催促我帮他审核论文,于是我整个下午实际上都在断断续续看论文,不过最终还算是把这事做掉了。

回来之后和人约了周一早上去上地堵门,于是就决定早早睡觉吧。明天开始还是得做毕设,毕竟看起来三月底中期很像是真事。

目前毕设的计划:

  • 验证原框架是否可用
    • 重新拉取原框架,完全不修改直接运行,确认其效果
    • 若原框架可用,则 debug,若不可用,换框架
    • 换框架可能流程
      • 通过邮件联系作者获取 code base
      • 找寻引用这篇论文的开源 code base
    • 需要研读 code base,形成完整的 paper report 和 code doc
  • Pensieve 迁移
    • 写完通过 MPC 求解 Pensieve 的代码并运行
    • 研究 Pensieve environment(在线直播环境)
  • 数据集生成
    • 获取黄老师的 network trace data repo
    • 准备数据剪切脚本
    • 训练 baseline Pensieve

2023.03.20

今天又是周一了,和群友约了上地堵门,于是真的就去了,而且一去就是一天。一整天鸟了 Selector 和吹爆,吃了一点点分,然后把不少 13+ 推到了 SS+,尤其是待宵夜虫和管弦乐,相当难受。

今天出勤的意外就是左手食指被售货机夹到了,结果掀开了一层皮,还好不深,简单消毒之后用了一下创口贴,晚上基本就可以自由活动了。

但是今天最烦的莫过于实习那边又发来了 bug report,本来以为都是小问题,结果一看甚至还要写一个新的页面,还要和后端对接。最终还是晚上稍微花了点时间把这事干掉了,干完已经是凌晨四点。

此外,我也是今天才知道今年从计算机系考研本系只有两人通过了,而恰好就是我两位考研的舍友。zd 预计会去朱军组,指导老师是苏航,ky 似乎和我导师联系过,但是具体也不知道。他们应该是明天周二早上面试,具体情况就在这之后再说了。

2023.03.21

今天起来先把实习那边的一些小 bug 修了,衣服洗了,然后匆匆忙忙来实验室做毕设相关的,而且 DRL HW1 就要截止了,还要花点时间写那边的东西。现在麻烦的一点就是实验室的机子硬盘可能已经不太够了,我可能还得做一些迁移工作。

由于现在用的机子硬盘基本快耗尽了,所以上服务器列表找了一个稍微空一点的机子,搬迁了一下实验环境。这次好就好在我终于用上了 Anaconda environment export 来做依赖管理,所以这次把代码跑起来基本上没有耗费多长时间。之后就是先做了比较简单的一件事,就是把 Learning to Adapt 的 code base 原封不动地跑了一下,结果发现 reward 也是真的烂,这我就相当难绷了。

不过还有发现一件事,就是似乎在我配置的环境下代码运行速度相当之慢,运行时间逼近原先 code base 的三倍,这让我十分困惑,因为我基本没做什么改动。

鉴于原框架也不算多好用,于是就打算邮件问问作者有没有 code base 了。

整个下午其实也没做到什么事情,把实验挂上去之后做完了 DRL 作业去吃两位舍友考研面试的饭,吃完之后简单把实习那里补了一点代码。

不过最难受的莫过于似乎这个代码框架把服务器的内存跑炸了,500G 内存我都没有一点头绪怎么能炸掉的。不过今晚已经很困了,不如先睡觉。

2023.03.22

今天是沙尘暴,没法出门了,只能在宿舍好好干活了。

基本上还是在折腾原先 code base,尝试了很多种方法,也调节过超参,但总之最后出来的结果并没有那么理想,尤其是 GrBAL 方法,Avaerage return 一直稳定在零附近震荡,反倒是之前没有尝试过的 ReBAL 方法,似乎能够上升到 1000 左右的 Average return,虽说没有论文中说的那么厉害,但似乎已经能够打败一众 baseline 了。

下面就是努力生成一篇 code doc 或者 report,迁移好 Pensieve 以及做好 baseline 了。目前中期确认在下周三,只能说希望人能活着过中期。

不过现在有一点疑惑的是,似乎现在并没有写好一个比较完整的线上环境切换来做实验,可能还得找个时间写完这一块东西。

今晚最麻烦的事情就是我才了解到微信又禁用了一些接口,导致实习那边的代码几乎要重写很大一部分。晚上电脑实在没电,只能又去了 308,迅速干完活,结果有已经是四五点了。真的,这份实习给我带来的开发体验是相当不好的,不仅是微信小程序这个东西本身就很麻烦和丑陋,而且给我找的帮手水平也是真的不行,代码各种乱写,码风一言难尽,不管 TypeScript 报错,还经常在代码里面写死数据,导致后面各种排查,React 框架也不熟悉,能写出各种惊为天人的异世界操作。另外,开发的时候产品那边给的需求也没有一下子说清楚,和产品那边的沟通还是有了点障碍,确实有点难绷了。

2023.03.23

今天组会,整体上汇报没什么问题,就是似乎进度还是不是很理想,老师们都建议考虑先至少把实验跑起来然后试着简化一下目标来混过中期。

对着之前写的毕设目标记录一下最近的工作吧:

  • 验证原框架是否可用
    • (Completed) 重新拉取原框架,完全不修改直接运行,确认其效果
    • 若原框架可用,则 debug,若不可用,换框架
    • 换框架可能流程
      • (Completed) 通过邮件联系作者获取 code base
      • (Aborted) 找寻引用这篇论文的开源 code base
    • (In progress) 需要研读 code base,形成完整的 paper report 和 code doc
  • Pensieve 迁移
    • (In progress) 写完通过 MPC 求解 Pensieve 的代码并运行
    • (Completed) 研究 Pensieve environment(在线直播环境)
  • 数据集生成
    • (Completed) 获取黄老师的 network trace data repo
    • (In progress) 准备数据剪切脚本
    • (Planned) 训练 baseline Pensieve

总之今天黄老师帮忙鉴定了一下我想参考的论文之后,得出了这个方法是基于 MAML 的结论,并且断言这个方法至少一定能用,所以这个 code base 应该依然是可以使用的,只是超参数设定等需要调整一下。而这个超参数设定的事情,我在 HalfCheetah 和 Ant 两个环境下使用了论文给出的超参数,但是都没有获取到相当理想的结果,但也不差,至少能优于传统的 MAML。不过为了保险还是给作者发了邮件问了一下超参数的设定,好玩的是,这个 code base 的 repo 里面还有有关超参数设置的 open issue,作者似乎在里面回复了一个很快就来,但是已经两年多过去了还是没点动静。这个框架的 code report 自然还在路上。

Pensieve 迁移遇到的问题是如何建立一个较为合理的 Pensieve environment 并合并到 code base 里面,而这个合并中最难的就是如何描述 Pensieve 的状态和决策空间,一般而言 Pensieve 的状态空间和决策空间都并不是传统意义上的高维空间,而更像是 hand craft 出来的一堆 tensor 构成的离散集合。而我参考的这个 code base 里面的环境基本都是描述成高维空间中的 Box 的,这不难理解,因为这篇文章主要在做动作连续控制,所以状态、决策空间基本上都是 Box 描述。而这里黄老师也给了我一份代码 repo,这份代码将 Pensieve 的状态、决策空间做了转换,即也用 Box 描述,恰好可以解决我目前遇到的问题。

然后就是 baseline 构建的问题,现在我似乎并不打算构建很多复杂的 trace,先从简单的规律性切换开始吧,数据集造完之后就可以准备上手测试了。

今晚约了麦当劳和游泳,明天打算去看电影,而且还有一个非常麻烦的毕设动员会,干活的时间确实不太多了。


今天开了软工小例会,也没有什么好说的,手下的四个组进度都比较符合预期,看看大家下周 Sprint1 能交上来什么东西吧。

2023.03.24

周五,本来就约好了去西单出勤,于是就去了西西友谊机厅出勤,那里有一台最新最热。整体而言出勤不太理想,没有上分也没打爽,因为人实在是太多了,大概一直维持在八九个人的高位。

由于和学弟约了七点半的电影,于是六点半赶忙从西单往海淀黄庄赶,然而我错误估计了周五晚的北京晚高峰,我真的完全堵在西二环上半个小时。最终电影自然是赶不上了,到达新中关的时候已经是电影开场半小时,想了想也没必要去看这个了,所以坐了地铁两站路去了万柳机厅出勤。万柳机厅最大的问题就是只有一台机子却整整有六七个人的规模,然后还没买水的自动售货机,所以又是不太舒服的出勤体验。

晚上回到宿舍就是打打德州扑克摸摸鱼,然后自然就这样结束了摸鱼的一整天。

2023.03.25

来工位赶中期,没想到贾老师也在。似乎今天还正好是全高赛开赛,zsj 开了直播间直播你清海选第一轮,于是就边看边做事了。比赛的走势整体没什么特别的,所以也没怎么重点观看,还是以做事为主。

今天主要是写完了 Data loader,写完了 network trace 切换的代码,然后生成了一份训练集和测试集用在训练 Pensieve baseline 上。另外由于目前的数据集并不太充足,当时突然想到可以用两条位于同一环境的 trace 之间做切换来做数据集扩充,这样的话勉强够使用了。目前 baseline 的设计是,三类训练集和四部分的测试集:

  • 训练集
    • #1. 由无切换的 4G 行走、4G 驾驶 trace 组成的训练集(使用数据扩充保证数据集规模一致)
    • #2. 所有无切换 4G trace 与 3 次等间隔环境切换 trace 3:2 混合
    • #3. 所有无切换 4G trace 与 3 次等间隔环境切换 trace 与随机环境切换 trace 3:1:1 混合
  • 测试集
    • #1. 4G 行走 trace
    • #2. 4G 驾驶 trace
    • #3. 3 次等间隔环境切换 trace

数据集弄好之后,从黄老师的 Pensieve 5G repo 那里弄来一份超参数设置,然后就开始训练了。比较好玩的一点,不知道为什么,似乎使用 #1 数据集训练的似乎在一开始(3k epoch 以内)反倒在有切换的环境下表现很好,甚至在 #3 测试集上达到了较为明显的正向 reward,而在 #1 和 #2 测试集上甚至还是负 reward。

现在这个实验跑一次七八个小时,三种训练集全都跑完估计得一两天,所以结果汇报还得再等等,我先放个占位表格在这里。这里均是训练 100k epoch 之后的结果汇报。另外还把黄老师那边的 PPO 的 Penseive 拉出来玩玩,自己手上的这个是基于 A3C 的,还写的不是很好:

无切换训练集 等间隔切换训练集 随机切换训练集 PPO 版本 Pensieve
4G 行走测试 12.99 14.35 19.28 19.81
4G 驾驶测试 16.88 17.66 16.25 14.82
等间隔切换测试 7.16 7.42 5.91 5.39

此外 26 号获得的一个训练曲线就报告在这里吧,这是等间隔切换训练集的训练曲线:

随机切换的训练曲线是:

目前总之是能明显观察到仅仅通过扩充数据集是不能完全解决这个问题的,扩充数据集确实可以提升结果,但是极其有限,在有切换的测试集上的表现依然和无切换的存在段差。另外,更换 RL 算法也不完全能够解决问题。

另外,根据 AABR 论文的结果,即使 4G 网络在驾驶和行走这两个环境间差距并没有如此之大:

而这里使用的训练集中:

4G 行走 4G 驾驶
均值 32.13 39.34
方差 860.32 839.72

可以发现事实上差距并没有想象中那么大,但其之间的切换依然会导致 Naive Pensieve 完全无法适应。

不过这里我有一个想法,既然差距并没有这么大,那么这两个网络的特征到底是什么的呢?到底是什么决定了这个 trace 更像是行走时测出来的还是驾驶时测出来的,这个我觉得应该要画几个 trace 出来研究一下。


这里应该还需要辅以部分 log 分析,log 分析的话就等第三个随机切换训练集弄完后基于那个 log 做一些分析。这些分析应该就构成了下述论点的证明:

Naive Pensieve 仅仅依靠于扩充训练集或者更换 RL 算法是无法解决线上环境切换的问题的。

这也就否定了简单的传统方法在这里的应用,从而构成了解决方案必要性的验证,下面毕设中期可能就缺一个比较好的方案可行性验证了。

2023.03.26

先前买的日语中高级语法教程到了,于是取了快递准备带去 FIT,但是偶然发现今天天气极其舒服,于是把骑着的共享单车扔在清芬,边看书边走去 FIT 了。到了 FIT 之后依然是一点点做事的心情也没有,Pensieve baseline 还在训练,按理说现在就应该准备写 code doc 然后做好迁移工作放上去训练,但是显然我摸鱼摸鱼到了现在。

现在比较难受的一件事情就是我似乎不太清楚迁移到 Pensieve 之后应该用什么数据集做训练,现在还有点难绷,我可能还真的得好好思考一下这个问题。这个问题的思路就是好好阅读一下代码框架,研究一下原先基于 Gymnasium 环境的训练算法策略,基于此将 Pensieve 中的概念与框架代码做一下一一对应,之后就应该能摸明白最后的逻辑了。

晚上是真的没心情继续做事了,于是偷摸去了五道口出勤,出到闭店之后回来继续干活。不过似乎实习那边的 bug 一直还要我修,基础技能培训我也得准备,现在总之就是事情还挺麻烦的。


目前仔细阅读了一下 GrBAL 代码框架,有一些笔记就写在这里了,这里都是备忘:

  • config 里面的 meta_batch_size 应该代表的是目前训练多少个 meta task,似乎就是论文里的 #Task/itr,或者说 \(N\)
  • config 里面的 adapt_batch_size 应该基本对应采样的时候使用多少的 trajectory 节点通过元学习策略 \(u_{\psi_*}\) 来更新 dynamic model 的参数 \(\theta\),也就是论文中的 \(M\)
  • 似乎代码框架内没有设置 \(n_S\) 参数的地方,其 MB trainer 之中每一个 iteration 都会通过 Algorithm 2 收集 rollouts
  • MetaMLPDynamics 中的 self.learning_rate 就是 Algorithm 1 中的参数 \(\beta\),另外其中定义的 self.train_op 就是以学习率 \(\beta\) 优化 self.post_loss,而这就是 \(1/N \sum_{i = 1}^N \mathcal{L}_j\)

这里我们就直接研究一下 Meta MLP Dynamics 的结构究竟如何。首先他为每一个 meta task 都建立了一个 pre MLP 和一个 post MLP,用来预测一个代码中名为 delta_pred 的变量。而这个变量参与了下述 loss 的计算:

Python
1
2
3
4
5
6
7
pre_delta_pred = pre_mlp.output_var
pre_loss = tf.reduce_mean(tf.square(pre_delta_per_task[idx] - pre_delta_pred))

# ...

post_delta_pred = post_mlp.output_var
post_loss = tf.reduce_mean(tf.square(post_delta_per_task[idx] - post_delta_pred))

这里就是简单的 MSE 均方误差,这里观察一下论文给出的 loss function,这是一个刻画当前 trajectory slice 和 dynamics 所希望的(或者说所预测的)trajectory slice 的吻合程度的 loss,最小化这个 loss 的效果就是让 dynamics 学习采样到的 trajectory,使得其模拟出来的 trajectory 贴合实际采样:

\[ \mathcal{L}(\tau_{\mathcal{E}}(t, t + K), \theta_{\mathcal{E}}') := -\frac{1}{K} \sum_{k = t}^{t + K} \ln \hat{p}_{\theta_{\mathcal{E}}'}(s_{k + 1} \mid s_k, a_k) \]

这里的 \(\theta_{\mathcal{E}}'\) 表示已经在环境 \(\mathcal{E}\) 下 adapt 过的 dynamics 参数。

这里代码和论文矛盾的点有一,即论文中 loss function 是基于一个非确定的 dynamics,即 \(p := \hat{p}_{\theta_{\mathcal{E}}'}(s_{k + 1} \mid s_k, a_k)\)。然而代码中接受 self.obs_ph 以及 self.act_ph 并输出 self.delta_pred 的 MLP 却显然更像确定性 dynamics,即 \(s_{k + 1} := \hat{p}_{\theta_{\mathcal{E}}'}(s_k, a_k)\)

post loss 的用处就是用来更新 dynamics 的参数 \(\theta\),学习率为 \(\beta\)。pre loss 则似乎和元学习策略有关,但后续没在代码框架内寻找到这个变量的引用。


决定换个思路了,在内部兜兜转转不如直接一点点剥开代码框架,把每个张量维度算清楚。论文中的算法有个相当明显的接口点,就是 Algorithm 1 和 Algorithm 2 之间通过 sampler 沟通,所以首先先去把握 sampler 给出的样本的尺寸。

sampler 给出的 observation sample 尺寸为 (n_rollouts, n_timestep, obs_dim),action sample 尺寸为 (n_rollouts, n_timestep, act_dim)。总体是符合想象的,也就是给出了 n_rollout 个轨迹,轨迹长度(总时间步)为 n_timestep,然后第三个维度就是具体的每个时间步的观测状态和决策。

进入 dynamics 的 fit 函数,首先是把这个数据集划分成训练集和验证集,这个划分是在第一个维度上进行的,也就是把 n_rollout 个轨迹按照比例拆分。拆分完了就堆叠到训练集 self._dataset_train 和验证集 self._dataset_test 上。

下面就是看他的 batch 生成。对每一个 meta task,首先在 [0, n_rollout) 里随机一个 trajectory,之后选择一个中间点,向前截取 \(M\) 个时间步,向后截取 \(M\) 个时间步。这里就出现了问题,代码中明显假设了 \(M = K\),也就是说在 trajectory 上前向和后向截取了相同的长度,这一点显然和论文中是不一样的。

然后还有一点更为疑惑:

Python
1
2
3
4
5
6
7
8
9
10
11
num_paths, len_path = self._dataset_train["obs"].shape[:2]
idx_path = np.random.randint(0, num_paths, size=self.meta_batch_size)
idx_batch = np.random.randint(self.batch_size, len_path - self.batch_size, size=self.meta_batch_size)

obs_batch = np.concatenate(
[
self._dataset_train["obs"][ip, ib - self.batch_size : ib + self.batch_size, :]
for ip, ib in zip(idx_path, idx_batch)
],
axis=0,
)

这里关注他如何访问 self._dataset_train["obs"],第一个维度其直接写了一个标量 ip 上去,这样会导致第一个维度消失,虽说后面指定的是 axis=0,实际上是在第二个维度上做合并的。由于 idx_path 长度为 self.meta_batch_size,也就是 \(N\),而第二个维度每个 trajectory 取用了 \(2M\) 的长度,所以最后得到的 obs_batch 尺寸为 (2MN, obs_dim)

这里明显做了很多的混同处理,比如根本体现不出来任务的差别,也体现不出来截取的作用。然而有个好处在于虽然融合了,但是这个 batch 第一个维度上的有序性至少保证我们之后可以再次把这个 batch 按照不同 meta task 拆分,虽然这也太丑陋了。

另外补充一句,delta 的含义就是 obs_next - obs,就是后续状态减去前置状态,即决策后的状态变化量。

获取 batch 之后就是喂到网络里算 post loss、pre loss,然后用优化器反传 post loss 更新网络。这里的认识就和上面的对上了,没什么新的,就不再写一遍了。


把这些看明白之后我终于看明白了原先构建网络的时候的下面这段代码:

Python
1
2
3
4
5
6
7
8
9
nn_input_per_task = tf.split(self.nn_input, self.meta_batch_size, axis=0)
delta_per_task = tf.split(self.delta_ph, self.meta_batch_size, axis=0)

pre_input_per_task, post_input_per_task = zip(
*[tf.split(nn_input, 2, axis=0) for nn_input in nn_input_per_task]
)
pre_delta_per_task, post_delta_per_task = zip(
*[tf.split(delta, 2, axis=0) for delta in delta_per_task]
)

他真的是我想的那样,依靠着那若有若无的有序性,先在生成 batch 的时候消失掉一个维度,然后再在这里凭空 split 出来。

这里 self.delta_ph 尺寸是 (2MN, obs_dim),在第一个维度上按照 meta batch size,即 \(N\),等分,得到的张量尺寸为 (N, 2M, obs_dim),并且恰好恢复了各个 meta task 的区别。然后遍历,列表产生式之中的 delta 尺寸为 (2M, obs_dim),再将其沿第一个维度两等份,前半自然是 pre,后者自然是 post,尺寸变为 (2, M, obs_dim)。之后用 zip 函数重新组合一下,这里 zip 接受了 \(N\) 个尺寸为 (2, M, obs_dim) 的张量作为参数,最后传出 \(2\) 个尺寸为 (N, M, obs_dim) 的张量。

obs_dim=1 以及 \(N = 3, M = 2\) 演示一下这个过程。下述 self.delta_ph0, 1, 2, 3 属于 meta task #0,以此类推。并且 0, 1 是 pre observation,2, 3 是 post observation:

Text
1
2
3
4
5
6
7
8
9
10
11
self.delta_ph = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
->
delta_per_task = [[0, 1, 2, 3], [4, 5, 6, 7], [8, 9, 10, 11]]
->
delta (example) = [4, 5, 6, 7]
tf.split(delta, 2, axis=0) = [[4, 5], [6, 7]]
*[tf.split(delta, 2, axis=0) for delta in delta_per_task] =
[[0, 1], [2, 3]], [[4, 5], [6, 7]], [[8, 9], [10, 11]]
->
pre_delta_per_task = [[0, 1], [4, 5], [8, 9]]
post_delta_per_task = [[2, 3], [6, 7], [10, 11]]

这样确实同时完成了按 meta task 分割以及按 pre/post 分割两个任务,实在是高。


把这些都看明白之后,就可以明白这里 loss function 实际上和论文不一样。代码里写的事实上是一个 deterministic dynamics,建模是 \(\delta_t := \hat{p}_{\theta_{\mathcal{E}}'}(s_t, a_t)\),也就是用 MLP 预测状态的变化量,再与实际的状态变化量作 MSE(符号就随便用了,我看得懂就行):

\[ \mathcal{L}(\tau_{\mathcal{E}}(t, t + K), \theta_{\mathcal{E}}') := \frac{1}{K \cdot \dim\mathcal{S}} \sum_{k = t}^{t + K} \bigoplus_{\mathcal{S}} [\hat{p}_{\theta_{\mathcal{E}}'}(s_k, a_k) - (s_{t + 1} - s_t)]^{\otimes 2} \]

这里上标 \(\otimes 2\) 表示按元素平方,符号 \(\bigoplus_{\mathcal{S}}\) 表示求所有元素的和。

2023.03.27

昨天太累了,今天就起得很晚,到 FIT 的时候已经是四点多五点了,草草吃了晚饭就开始干活。

昨天看了大半 GrBAL 之后,现在又有个未解之谜就是 \(\psi\) 在哪里,这个元学习参数居然一下子没找到,而且我现在也暂且不太明白到底什么时候 \(\theta\) 通过元学习被优化到了 \(\theta_{\mathcal{E}}'\)

不过最终还是给我挖出来了,在构建网络的时候有这么一段代码:

Python
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
def __init__(self, ...):
# ...

pre_delta_pred = pre_mlp.output_var
pre_loss = tf.reduce_mean(tf.square(pre_delta_per_task[idx] - pre_delta_pred))
adapted_params = self._adapt_sym(pre_loss, pre_mlp.get_params())
self._adapted_params.append(adapted_params)

# ...

def _adapt_sym(self, loss, params_var):
update_param_keys = list(params_var.keys())

grads = tf.gradients(loss, [params_var[key] for key in update_param_keys])
gradients = dict(zip(update_param_keys, grads))

# Gradient descent
adapted_policy_params = [
params_var[key] - tf.multiply(self.inner_learning_rate, gradients[key])
for key in update_param_keys
]

adapted_policy_params_dict = OrderedDict(zip(update_param_keys, adapted_policy_params))

return adapted_policy_params_dict

这里就是非常简单的,把 pre MLP 参数和 pre loss 扔到 self._adapt_sym 里面去,而这个函数里面构建的就是:

\[ \theta_{\mathcal{E}}' \leftarrow u_\psi(\tau_{\mathcal{E}}(t - M, t - 1), \theta) \]

的 adapt 过程。这个 adapt 过程在论文中具体定义为:

\[ \theta_{\mathcal{E}}' = \theta_{\mathcal{E}} + \psi\nabla_{\theta}\frac{1}{M}\sum_{m = t - M}^{t - 1}\ln\hat{p}_{\theta_{\mathcal{E}}}(s_{m + 1} \mid s_m, a_m) \]

这里显然还是和昨天提到的问题一样,论文和代码没有对的上,dynamics 是确定性的,pre loss 也更像是 MSE。不过这里根据代码实现看,self.inner_learning_rate 就是元学习参数 \(\psi\)。下面一步就是找这个量究竟什么时候被实际计算,另外,何时其更新了元学习参数 \(\psi\)。可以注意到这些要被更新的参数全都压入了 self._adapted_params,找寻这个变量的引用就可确定出 adapt 实际执行的位置。

简单找一下就能找到这个类里面的 self.adapt 方法就是实际执行的地方,继续找这个成员函数调用的地方,就会发现其仅仅在 sim_policy.py 中调用,那么就可以确定这个函数是用于线上 adapt dynamics 的。

说实话目前这个框架里面还有很多地方我没有研究明白,比如说到现在我都不知道其构建这么多 MLP 的用处是什么,以及论文里的 \(\theta, \psi\) 是否就如我理解这样,包括 \(\psi\) 的训练究竟在哪里之类的问题。但是由于数据集加载策略我已经弄明白了,所以说实话可以先去载入数据集跑一跑看看结果了。


今晚偷摸去五道口出勤 2pc 之后回来,说起来昨天因为有人扒防盗门晚勤,导致商场领导直接下令禁止晚勤,所以现在晚上真的只能打到十点,反倒是帮我自律了。

回来之后去了 C 楼继续写毕设,Pensieve 的迁移工作总之还是有点麻烦的,reward function 要自己补写一点,然后由于 Pensieve 是离散决策空间,导致有些地方需要自己做一点适配。适配的过程中最大的修改就是把 PensieveEnvPark 里的 self._action_space 从离散的改成了连续的,也就是从 Discrete 修改为了 Box。这样做的原因是整个代码框架都是基于连续决策空间的,所以为了最小化修改,我直接把决策空间改为连续,而在实际处理 network trace 或者 video chunk 之前会把连续决策空间采样向下取整到离散空间内。

不过这些都还好,主要有一个 bug 是 logger 炸了,简单而言 logger 里面有这样的一段代码:

Python
1
2
3
4
5
6
7
8
9
10
class Logger:
CURRENT = None

def __init__(self, ...):
pass

def configure(...):
# ...

Logger.CURRENT = Logger(...)

这段代码的语义并不难理解,就是在 Logger 类里面的静态成员中存储了当前要使用的 logger 的引用,这个引用的初始化是在 configure 函数中进行的,这个函数会在所有训练脚本的最开始就调用。然而这个在我跑实验的过程中却出现了问题,我把新加的脚本、环境等代码都放在了根目录下另外一个目录 src 里面,以与位于根目录下 learning_to_adapt 目录中的原先的实验脚本作区分,logger 的代码也位于 learning_to_adapt 目录下。结果,我在 src 目录下的实验脚本调用 configure 初始化 logger,在 learning_to_adapt 目录下的代码文件中访问 logger.CURRENT 的时候却只能获得 None,即使我在 src 目录下访问 logger 一切正常。我猜测是不同目录 import 同样的东西的时候,事实上 Python 创建了不同的引用。不过我现在也没有精力去找这种小问题的解答了,我直接合并了两个目录然后把实验挂了上去就准备睡觉了。


最近很喜欢这句话:

  • 思ひつつ寝ればや人の見えつらむ、夢と知りせば覚めざらましを。

这是出自小野小町的一句古日语和歌,翻译成现代日语和汉语的话:

  • 恋しい人のことを思いながら寝てしまったらあの人の夢を見たわ、夢とわかっていたなら覚めなかったろうに。
  • (王向远译)思君方入梦,若知相逢在梦境,但愿长眠不复醒。

这句和歌也算是我学古日语的时候很早就遇到的一句例文,是在讲解过去助动词「き」的未然形「せ」可以与表示反事实假想的助动词「まし」构成表示假想的句式「〜せば〜まし」这一知识点的时候提到的。当然要说语法点的话,这里还有很多可以讲的,包括少见的单音节下二段动词「@ 寝 ぬ」,表示完了的助动词「つ」、表示现在推测的助动词「らむ」、表示否定的助动词「ざる」等等。

然而这句话确实也很有意境,如果知道我们只有可能在梦中相遇,那么即使不可能,我也愿意长眠不醒。现代日语中没有专门表达反事实假想的词语或句式,只能用通用的表达愿望的句式「〜だろう、〜たろう、〜でしょう、〜ましょう、〜ように」等等,这个与现实抗争的感觉就没出来。

不过我现在确实很累,确实希望长眠不醒了。

2023.03.28

又是一天八点睡下午四点起,今天实在是忍不下去了,把攒了一周的胡子刮干净,头发太长就随他去吧,就这样收拾了一下自己,到工位开始工作的时候已经是晚上六点。不过要我说,最近的精神状态非常怪异,明明身心都很劳累,但是似乎却有种奇妙的满足感和:

  • この生活こそおれのほしいものって、いまこそおれは確実に生きていると感じている、疲れていても。

这句话是前天大晚上熬夜的时候听到香椎老师的歌的时候突然想到然后写在草稿纸上的,草稿纸的另一半是潦草的神经网络设计图,倒也有种莫名的不调和感。

昨天跑下来 Pensieve,至少训练没崩盘,是一个正常的训练曲线,今天就是得调试一下 reward 函数让其与 baseline 做一个公平竞争,这样就能构成方案的可行性验证。

现在在尝试着把训练过程中的 reward 弄出来。总体来说,sampler 使用 Algorithm 2 采样数据的时候,事实上就已经在做测试了,就已经在和训练集同样的环境下(Pensieve 环境生成 trace 的逻辑一致)测试 MPC Controller 的性能了,因为其基本就是基本在循环下述过程:

  • 收集采样数据,对 dynamics 做 adaptation
  • adaptation 之后用 MPC Controller 做决策
  • 用这个决策 step environment,获取新的环境状态,作为新的采样

而在 Meta MLP Dynamics 里面做的训练集和验证机切分是用来算 loss 的,他有训练集 loss 和验证集 loss。

也就是说,实际上用来做验证集 reward 的,应该就是采样时返回的那些 reward 信号,现在我已经把这些信号接入到 logger 里面了。

然而做好这些之后挂了一下实验,发现验证集上 reward 能打到 50 上下,这显然太离谱了,因为即使 GrBAL 再怎么强,比 Pensieve 高出 400% 左右多少是不太对的。回到宿舍后思考了一下,觉得是验证集不可信,因为验证集毕竟和训练集来自同样的数据池,很有可能过拟合。所以迅速写了一个在另外的数据池上测试的脚本,挂了上去,顺便增加了一个把所有决策和环境信息输出出来的 logger。

最后看完 logger 的记录后,总算是明白了。MPC Controller 似乎是相当激进的,其特别喜欢拉高码率,即使在低带宽环境下。这就导致在带宽还可以的环境下就能拉满 QoE,然而由于数据集低带宽环境毕竟有限(得益于现在的网络基础设施优化),所以 rebuffer 并没有预想中那么多,rebuffer penalty 也就没有把 reward 拉到很低。然而如果从直观上来讲,虽然其 reward 达到了 50 左右,其经常会在低带宽下出现十几秒的卡顿,这显然是不可接受的行为,所以这也就是 average QoE 的评价缺陷了。

既然整体实验框架没啥问题我就打算一直跑着了,目前的话,reward 大概也是十几,至少达到了一般水平吧。这么说中期至少是有内容可以汇报的了,现在就差做一个 PPT 出来了,最后还是决定明天再做了,正好看一眼训练结果。然后一定要记住还要做一下 baseline log 的详细分析。

2023.03.29

中午稍微起早了点赶到工位开始做中期 PPT,在这之中还花了点时间查看了一下软工小组的工作进度,目前来看还都一切正常。

在做 PPT 的过程中和黄老师交流了一下目前的毕设,大家似乎都比较震惊于 Pensieve 真的打不过 model based 方法。不过基本上看了一眼 log 之后都反应过来 Pensieve 决策保守了,而 GrBAL 实在是太激进了。

中期整体上没有什么大问题,黄老师过了一下我的 PPT 后也觉得没有大问题,提了一下多加几张图的建议,然后给我推荐了 LUMOS 5G dataset 以及一位名为 Qian Feng 的 scholar,大概也是做环境切换相关的,可以后半段尝试去学习一下这些材料。


中期答辩基本上平稳地过去了,把实验结果汇报了之后,三位评审老师也没有什么很尖锐的问题,只有一位老师问了点简单的问题就放我走了。然而现在的问题就在于,我目前做出来的结果到底可不可信,因为确实感觉和大家长久以来的经验有不相符的地方,至少目前有几个值得验证的疑点:

  • baseline 过弱,训练错误等问题
  • 数据集设计有问题,应当多随机生成几次重复实验
  • GrBAL 实验成果不一定稳定,dynamics model 的预测效果也应当重复确认

至少在进行中期答辩 PPT 上所写的未来研究之前,我还是打算把这些问题给思考清楚。

然后就是其他的一些杂事了,现在安排如下:

  • 周四组会、软工 Sprint1 组会,晚上出勤
  • 周五 LVS 会议,预计早起前往
  • 周六 LVS 会议,预计晚归
  • 周日基础技能培训线下授课
  • 有 DDL 的任务
    • 提出不再负责微信小程序开发,转 Rust 后台开发
    • 周六晚前完成基础技能培训课件供审核

最近确实是没有什么很重要的任务了,确实可以计划摆烂了,毕竟最终答辩差不多得到六月,中间两个月可以自由摆烂。目前日语中高级教程还想自学,日语自学笔记也还有很多想写的,DRL 的任务也想好好做,也想出勤、打雀、旅游,总之就是什么都想做,毕竟没有什么硬性要求了。

2023.03.30

周四,安排中有相当多的会议,首先是下午的组会,然后是软工 Sprint1 的验收会,然后是实习那边要有个需求对接会。一起床我就在赶场子,三场会总算是赶完了。

然后最后一场会开完之后,收到了坐标想要出勤的申请,于是立刻放下活计跑去上地先吃萨莉亚后出勤。然而周四晚上的上地也是一堆人,完全没打到几把就只能悻悻离场。

晚上就简单摸鱼,然后就要早睡早起去 LVS 了。周四真的是一点值得记录的事情都没有呢。

2023.03.31

早起去 LVS,路上还遇到了前来访华的马来西亚总理的车队,警察暂时管制了一个路口的交通,让我小等了几分钟。

LVS 说实话感觉并没有想象中的有趣,上午的开场致辞很有意思,然而紧接着后面的,就是一个很像民科发言一般的 ChatGPT 威胁论演讲,其中不乏人工智能已经逼近人类智能云云。而第三场是一位浙大教授的演讲,其提出了可以在传输视频的时候用语义编码代替字节编码,也就是不再逐帧逐字节编码视频内容,而是直接描述视频内容以编码,这个观点倒是第一次听,还挺有意思的。

之后就没什么有趣的了,午饭期待值很高但是最终也只能说无功无过,和学长说了打算提前跑之后,就溜到了四道口的机厅去出勤了。四道口机厅有 WiFi、有插座、有自动贩卖机而且人还不多,简直是出勤圣地,然而离学校确实是太远了。

2023.04.01

按照计划是要去 LVS 的,但是显然是摆烂了,于是就打算在宿舍里好好把明天基础技能培训的课件给做了。

结果是摆得真的很烂,一整天啥都没做出来,倒是由于找到了 Dynamix 的 Malody 皮肤于是又拾起了 4k,打了一整天。晚上实习那边还有要修的东西,理论上是要一并修好的,结果晚上是一个都没做完。于是不得不通宵接着做,到六点钟终于把课件做完了。

2023.04.02

基础技能培训看起来是真的组织上出现了一些问题,一共就来了四位同学,于是就变成了我的小班课,随便讲讲就过了。然而在此之后比较麻烦,因为实习那边一直在催,但我依然顶着压力先去了五道口。

晚上简单开个会之后开始修东西,但没有想到工作时长超出了预料,工作效率也低到不敢想象,一直做到早上六点都没做完,于是只能睡觉了。

2023.04.03

周一,还是得赶快把实习那边的活清理掉,于是一下午把东西做完之后,立刻赶往上地出勤。

其实本来是想和舍友去吃巴依老爷的,但是没想到我一直做到晚饭点都没做完,所以没办法只能不去了。

今天出勤收获颇丰,不仅成功上了 7k4 底分,还杀掉了几个心心念念的 13 和 13+。然而现在比较好玩的是,我整整有六七个 100.1% 以下鸟的 13+,按照我的强迫症,事实上我很想把这些都再推进一下,但是实在是没有实力去往上打了。

2023.04.04

终于按照自己的想法摸鱼了一整天,首先是睡到自然醒,然后打理了一下自己,刮胡子、剪头,收拾了一下宿舍,然后去采购了一圈,吃了顿校内比较好的食堂就去了上地出勤。出勤完了回来游泳,之后再去吃了点小夜宵。整体就是讲究一个随心所欲。

然而实习那边还在 bug report,我是真的完全不想搭理了。目前计划就是一切 bug report 都留到周四完成,其余时间完全摆烂,或者愿意做的话就做做。

明天是 V+ 群组 K,还是正常摸一天鱼,过一天正常的清明节假期。

2023.04.05

组 K 比较混乱,原因大概是两个。一是这次没有中日分场,而群友确实很少有中日 V+ 双修的,导致两边都没有尽兴,二是由于清明节纯 K 一点房间都没有,四点半结束之后无法和往常一样续时,所以只能草草结束。草草结束后,群友对各自的去向显然是完全没有安排的,原先的安排是续时到六点半到七点左右,然后部分群友直接去某个在东城区举办的 livehouse,剩余的则回校。然而由于无法续时,所以中间出现了两三个小时的空窗期。

我当时在音游地图上找了一下,似乎国贸附近就有一家新机厅,于是我就直接前往了。剩余的群友则部分回校,部分在国贸附近另找游乐场所。

新机厅的好处就在于机子是全新的,手感非常好。并且机厅周边就有饭店,有自动售货机,有充电宝租借桩,旁边就直接能进角门东地铁站,基础设施相当完善,整体来看,简直是理想的机厅。另外,由于是新机厅,所以几乎没有什么人,从晚上八点开始,就只有我一个人在打了。

今天晚上解决了不少 13+,包括秘密信徒和 GRÄNDIR 之类的,然后手痒试了一下齿轮,没想到打到了 SS,瞬间兴趣就上来了。

2023.04.06

周四例行三场会,组会、软工助教会和实习会。这次软工助教会整体有点奇妙,因为投屏我不太会用导致大家的 PPT 都播放不出来。

草草开完会之后就去了五道口,今天就没有推很多的分,只不过狂练了一波齿轮上了 99.5,但是现在似乎还是有点欠缺体力所以还是暂且不打为好。

每周四都是实在没什么可以记录的,都是开会,开会的内容也实在不是很想写。

2023.04.07

周五,因为完全没有安排所以直接就早起出勤了。早上到达上地的时候全都是我认识的熟人,基本上想单刷和他们说一声都可以。下午出现了一段明显的空窗期,整个机厅就我一个人,刷了大概三个小时左右,期间鸟加了捕物帐,还恰好录上了手元。

然而靠近傍晚的七八点钟的时候人突然就多起来了,最后在八点达到了 13 人的规模,这完全打不了了,所以赶快回宿舍。

回来之后把数据库给写完,听闻舍友确实打算前往无锡,于是也就开始规划下一周南下的旅程。

2023.04.08

南下基本都确定好了,所以就基本上是在做准备,比如洗洗衣服之类的。另外,把票订了一下,酒店定好。目前计划是周日早起去无锡,在无锡呆一天半,周二早前往南京,在南京玩到周三晚回北京。在无锡干什么暂且没有想好,但是在南京已经约了一小波人打算把高中化学竞赛的时候走过的路再走走。

现在想到那段时光还是有点神伤,一个人在外,虽然现在看来完全不算什么远门,但在当时高中生的视角,确乎有着比较重要的意义。

然后这些事情忙完,也都是晚上了,赶快开始做实习那边的事情,尽快把麻烦事解决掉比较好。

晚上开始熬夜做 DRL 的作业,最后在凌晨五点差不多顺利做完,然而由于定的去无锡的火车是六点半发车,于是赶急赶忙收拾东西立刻出发。

2023.04.09

一整天都在赶路,先赶到北京南站抢在截止前两分钟成功上车,上车之后立刻开始爆睡,睡到无锡东站之后又开始漫长的地铁。中途发现实在是太饿了,于是在三阳广场下来吃了一顿松鹤楼垫肚子,继续赶路,下午一点半两点左右到了住处,一躺,又是一觉睡到下午五点多准备吃晚饭了。

一整天睡了吃吃了睡,还累的要死,果然赶路还是难受。

晚上去滨湖万达转了一圈,和舍友找了很长时间到底去吃什么,结果找来找去万达里面除了那种炸串、火锅这些量产式的店面之外也就没啥了,最后只能随便挑了个名义上说江浙菜的菜馆去吃了。然而实际上,这家店确实是不好吃,红烧肉很柴,大煮干丝汤底没味道,总之就是完全不值。

吃完晚饭,舍友去超算中心开会去了,我就在万达机厅稍微出勤了一会,不得不说滨湖万达的机子真的是烂,手感极差,屏幕很粘而且吃星星,硬打了一个 AP 病女之后就敢赶快回去睡觉了。

2023.04.10

早上舍友早早就出门去中心干活了,我一路睡到中午自然醒,去楼下找了个面馆吃了午饭之后就开始无锡闲逛。

先是趁人少去出勤了一小会,中途由于实习那边实在是有点事情,加上人越来越多,于是就找了个万达里面的咖啡馆坐下来把事情清理了一下。其实我倒是挺感叹的,无锡滨湖区就这么一台机子,机子还这么烂,滨湖区的这些玩家就得挤着用这台破机子上分,是真的有点感慨的意味了。

实习那边的事情清理掉之后,决定去太湖看看,于是骑上车去了鼋头渚的方向,不得不说由于空气很好、很透亮,太湖周边的景色是真的纯净。同时期,我的朋友圈里全都是在发北京沙尘暴来袭的事情,只能说,江南还就是这一点好得多。

晚上和舍友以及 20 去了米桃去吃无锡菜,这家本来是想前一天就去吃的,但是三阳广场那边的那一家在中午的时候排队太夸张了,只能作废。这家菜馆就是那种较为精致的淮扬菜和当地菜,松鼠桂鱼、响油鳝糊这种菜也能做出来,而且确实做得不错。吃完之后沿着蠡湖转了转,舍友和 20 由于赶着回去开组会,于是也没多久就得走了。

最后依然无所事事的我又去滨湖万达出勤了,不过这次没人,把之前买的套餐游戏币打光之后就回宾馆了。晚上和舍友打了一会牌,也就收拾东西准备第二天去南京了。

2023.04.11

早上赶路去南京,大概十二点左右到达宾馆,收拾好东西,就去遇游客他们一行人。中午吃了游客推荐的泰式大排档,确实可以,但是点的有点多,最后没吃完。

下午就去南师大和南大了,主要是打算去找找 2017、2018 年去过的那些地方。先是南师大,简单找了找就很快找到了 18 年考完化学复赛后和同学蹲在路边骂出题人的马路牙子,找到了 18 年考完国初后,杨锦辉教授把我领去的仙林宾馆。最后本来想去找找当时的考场的(学明楼 501),但没有想到到这个房间已经改造成多媒体室了,确实有点遗憾。

在此以外,游客带着我们转了一圈南师大,但确实没有留下很多特别印象深刻的东西。

然后就是南大了,虽然过了五年,南大的基本结构我基本还是清楚的。首先就找到了省选的实验考场、考完实验后吃的食堂、入住省选宿舍后去的小卖部。从这些建筑往北,就找到了化学楼,穿过化学楼上坡就到了 17 年培训时住的 23 栋宿舍。然而令人感慨的是,原先 23 栋宿舍楼向东望,能看到一座山,山脚到山顶有一条登山道。这条登山道应该是承载了很多回忆的,包括当时凌晨刷完题在阳台上眺望、18 年考物理实验的时候带着同学从上面溜车下来、省选结构化学因为动脉破裂失利后也来到这里散心。这条登山道现在已经拆除,就连那座山也被削平,建起了人工智能院。

在向后,我决定重走 18 年考物理实验的时候带着同学上山的那条路。首先是从宿舍楼后身绕上一条步道,走到顶就是气象台,然后溜车下来就可以找到去天文台的路。五年前,上天文台的路旁边都是工地和堆满的黄沙,现在也都建好铺上了绿化。上到山顶,天文台还是一如既往不让进,于是也就作罢,下山吃饭。

吃完饭继续去新街口出勤,这次出勤倒是收获颇丰,鸟加了很多东西。最后到了半夜十二点,机厅关门,打车回宾馆睡大觉。

2023.04.12

早起去了朗玩,这里街机音游的品类很全、数量很多,光 maimai 就有五台,据说先前有六台。刚到的时候只有三个人,于是我就随便打打,但是越到下午,人越来越多,最后目测到达了二十人左右的规模,加上也快到火车发车时间了,所以也就不打了,上车回北京。

车上稍微做了点实习那边的事情,回到宿舍后也没干什么,就直接睡觉了。

2023.04.13

周四依然是相当忙碌的,首先是组会然后是软工的大例会。

然而这次让我比较感到棘手的是,我这边的四个组 Sprint2 居然都没有调通 WebSocket,作为即时通讯系统项目,快要中期的时候没有调通最基本的通信协议,这确实有点恐怖了。然而我作为助教也只能去提醒和催促,也不太能真上手帮他们做什么。

晚上出门打算吃麦当劳的时候,路上偶遇夏老板一行人,于是就加入了他们的疯狂星期四团建,吃完后就去出勤了。

实在是太没有意思的周四,实在是没有什么可以记录的。

2023.04.14

准备开始上手清理一些事情了,而且也已经定下了一周内不出勤的约定。最近首先是把实习那边最简单的 bug 给弄掉,然后就是 DRL 期中和毕设后期验证的一些事情,看起来不算特别多,但总之还是得做。

结果今天依然是没做到什么事情,反倒是莫名其妙摸鱼摸了很长时间,和坐标去吃酱骨、水群、和实验室的学长们吃西瓜聊天。直到最后快要回宿舍的时候稍微清理了一下短信服务那边的事情,然后跑通了 WireGuard 连上了远程主机,除此以外也没做到什么。

晚上回去之后 Aster 说要教 Fuyuki 微积分,于是又去了 308,本来想学习的,最后是闲聊了一晚上,又是什么也没干。

2023.04.15

昨天送审的短信模板完全没有过审,原因是没有提供可以访问的公司主页。这非常迷惑,为什么我要做短信发送服务一定需要一个公司主页。不过既然他这么说了,也只能照做,下午紧急静态部署了一个并没有什么用并且还很丑的 HTML 网页,把小程序码挂在上面,假装这是公司主页送审了。

然而今天依然状态并不是那么好,结果是稍微做了点无关紧要的事情之后就去五道口出勤了。周六晚似乎机厅店长也悄然违反了十点钟断电的规章,我一路打到了十点半左右,当时还有游客在旁边开了新的一局游戏,旁边的跳舞机甚至还有人在玩。

晚上自然也没有什么精神了,随便干了点活就睡觉了,因为微博上传闻九点钟 CP29 开票,这个显然是得快速起床抢票的。

2023.04.16

今天先起来抢票,结果九点钟开票是假消息,根本没有开票。然而这次我突然有了点研究 CPP 这个抢票网站的兴致,首先是拿到 Cookie,然后在网络界面找到了获取当前票务信息的接口。然而有一点比较麻烦,就是从票务信息跳转到支付界面的时候似乎会生成一个和时间有关的 token,这个 token 的生成逻辑我一直没找到,显然这个网站的 JS 也是经过压缩和混淆的,完全没法阅读和复现。最后也因为当时只睡了不到四五个小时,赶快滚上床接着睡了。

最后大概在下午两点起床,稍微收拾了一下自己出发去北大,稍微做了点事情然后和 xjj 他们吃了一顿勺园烤鱼。不得不说勺园烤鱼确实很香,虽然我觉得他那里的铁板鸡腿肉比烤鱼好吃。

饭后考虑到事情还是得做,于是迅速赶回工位开始干活。

结果这一干活没收住,一路做到了十二点半,想着回去也只能冷水澡了,于是就接着在工位上干下去了。中途实在有点饿,在实验室里找到了泡面和苏打饼干,不得不说这两样东西实在是太顶饱了。最后大约是做到了七点钟左右,实在是撑不下去了撤退回寝睡觉。

2023.04.17

周一,依然是接着来工位做实习的事情,然而没有做出任何有实质的进展,确实有点难绷。

说实话我感觉这个实习最大的问题就是让我时间安排非常难受,我现在很难说能够抽出一整块时间做我自己的事情,往往时不时就有新的需求,然后还不得不周末加班或者在我本来就已经声明过无法工作的周一二三工作。其实我已经很多次很想骂人了,我向来是认为催人是最不合理的事情之一,点到为止就行,我不想被别人 push,我也不喜欢 push 别人。然而这个实习的学长,虽然我确实理解他的难处,确实订单量下滑对现金流是很大的威胁,但是一天到晚在群里催促,我受不住,我不是看不见,我只是很单纯的没时间做。我在进入这个团队的时候就说了我的主业依然是读博,而且我有助教的工作,这些是我的主要任务,然而现在呢,我不得不抽出甚至超过半数的时间来做他认为可能有用的功能,而且这种左一枪右一炮的,毫无规划或者远景的工作模式,我非常不好说。我至今不是特别明白他们想把管理后台做成什么样子,我甚至不能从一个整体上把握他们的需求,只能从他们不断加入的需求中自行猜测。然而这样只会导致我做出来的很有可能不符合他们想的,然后还要返工。

我实在是难以接受目前这种工作模式,而且学期过半了,原先说好的二月底就能轻松点,也没有兑现。虽然确实给了物质上的补偿,然而我过得并不舒服。

2023.04.18

周二,做了一天实习的事情,还在生产环境上搞出来了锅,实在是不想记录这一天的内容了,毫无意义,毫无收获。

2023.04.19

实习那边简单告一段落了,所以直接去出勤了,打上了 7k5 底分,考虑到下一个一百分目标离我可能还有一段距离,感觉可以近期以享受游戏为目标玩了,可以一段时间不用去当分奴天天只考虑上分了。

晚上和 ayf 聊了不少,大概订立了我一定要把实习和我的本职工作区分开的目标,目前计划把实习约束在周四周五之内解决,至少周一二三坚决不能再干涉这边的事情了,不然我根本形成不了整块的用来认真思考的时间。这种碎片化的工作最令人恼火的是会削弱一个人沉思的能力,很多想法或者比较体系化的工作坚决不是每天随便抽一个小时就能做出来的,都是一整段时间沉浸在其中慢慢思考出来的。所以如果再被经常性打扰,说实话我不是很能接受。

2023.04.20

导师又一次因为其他的事情咕咕咕了组会,组会又一次变成了学长主持,于是混过了组会。

开完会之后和实习那边声明了自己的需求,从今天开始,坚决作出区分,不能再这样两边混杂下去了。我现在特别想去思考我的毕设,想去做 DRL 的课程项目,想要接着写我的日语文档,这些事情坚决不能被碎片化的工作干扰。

组会之后就是软工 Sprint3 小例会,这次简单看了一下大部分组已经能跑通 WebSocket 相关了,但是似乎有一组发现了 SECoder 容器的一些奇怪表现。具体而言就是似乎一个空容器也能够建立起 WebSocket 链接,这一点显然是超越想象的。

这一切都折腾好了就是回来继续洗实习的小程序代码,不得不说外包写的代码实在是太令人震撼了,我甚至不能用简单的语句概括到底有些什么问题,最后基本等于帮他们重写了一遍。

晚上简单交代了这周的开发任务之后就结束了,任务量不太小,但也还算可以。

2023.04.21

周五本来就预定好了好好摸鱼,首先是下午去了雀庄,这个时候我已经发现我很久没打雀导致手相当生,现在就是很担心明天的常规赛。

之后六点钟雀庄结束之后,立刻打开 CPP 抢 CP29 的门票,还好的就是手速网速都在线,迅速抢到了两天的门票。在回去的路上,我想了一下决定不直接回校,乘上地铁去了奥林匹克公园,找了个机厅简单打了一下今天更新的新歌。

延误列车谱面只能说还可以,狗子写谱水平在线但是和我对这首歌的理解有所错位。之后就是人人都说简单的 13+ 春岚,然而我打了两遍都没打明白,鸟都没有。其他的新歌就是一首遥控器一首拂晓抵达,谱面都比较一般,除了遥控器的错位星星打起来很爽之外其他没有什么印象。

新奥的机厅本来只有六个人的,结果打了 3pc 之后突然来了七八个人,于是我只能赶快撤退,找了个烧肉拌饭吃完饭,但是没想到一顿一百块还没吃饱。

这期间我注意到我似乎严重超支了,即使我有 2600 的助教工资和实习那边发下来的 4000 现金,这个月我依然超支近 3000,这意味着我这个月支出近小一万。虽然这个支出包括了我去了一周无锡和南京,提前买了五一期间所有交通票和广州的酒店,但是这些加起来可能也就三四千,我依然在其他场合下消费掉了五六千。虽然这也和我在吃饭和打游戏上没省钱有关系。

还是决定稍微省省钱,这也太奢侈了,虽然确实四月过得实在是有点享受了,自从毕设中期结束之后就在摸鱼。

晚上决定稍微运转一下昌平线,于是从奥森直接北上到朱辛庄终点站,然后沿着昌平线南下到西二旗,再回来。等到我到达五道口的时候,大概是十点,于是我又无聊了,去了五道口机厅打了 2pc。

从机厅回来后去超市简单买了点生活用品后回来打德州扑克。结果就是整个一整天,啥事没干,倒是什么什么基本都玩了个遍。

2023.04.22

今天睡了个爽,一路睡到了三点半,然后点了个外卖到 FIT 楼开始工作。

基本上就是做了一整天的实习,实在是没有什么值得记录的事情了。中途去打了雀魂的常规赛,吃了一把三一把一,不得不说这场比赛打得酣畅,很久没有这么投入地打一场牌,而且运气还相当照顾,既在摸绝张 dora 的时候感受到了气运,也同时在迂回防守的时候感受到了自己的冷静。赛后简单做了点复盘,整体没有什么大问题,但还是有两局面对立直的攻守判断出现了偏差。

此外,今天洗完了实习那边外包的代码之后,和实习的学长提出了就此收手的请求,希望这次能够切换到我希望的那种,实验室为中心,爱好也能并行的理想中的生活模式。

2023.04.23

按照道理,应该今天要做数据库的 Lab3,然而实际上太想摸鱼了,于是接着去写日语自学手册去了。这次突然想改动的原因是我感觉意志形这个名词显得相当不合适,现代日语中所谓的意志形实际上是未然形和助词接续之后的音便。那么如果接受意志形的说法就会遇到问题,就是在自学手册里我把连用形接续特定助词发生的音便处理为了第一第二连用形,而未然形音便却被处理为了两种活用,这是有矛盾的。所以最终我接受了第一第二未然形的称谓。

修完文档之后去参加第九次 V+ Next,这次 Ne 老师贴心地把大家的小作文印成了明信片,确实很贴心。大家最后也并没有严格遵守猜歌的形式,最后也就变成了音乐茶话会的类型,听歌聊天然后在房间的白板上画一些梗图,我就画了个咖喱乌冬,意外成为了全场最佳。

回来之后就是摸鱼打牌,反正数据库决定迟交了那就不管了。

2023.04.24

下午来实验室参加项目讨论会,前面讨论阿里的合作项目的时候,讲了一下如何优化直播传输,包括目前大多都在做的使用 RL 做传输策略优化,包括还有少数人在做并且更困难的传输层协议优化和 CDN 调度。

之后还是转向到目前快手的合作项目开题,讨论了一下如何将大模型蹭上 ABR 问题,其中重要一点就是如何将时序预测生成大模型应用到 ABR 问题上。首先考虑到,因为目前的生成式模型如果用于做 ABR 码率决策,很有可能打不过经典控制论,毕竟这不是他的强项。所以如果要蹭,基本上只能将生成式大模型用到 ABR 问题的一个序列预测子问题上——网络带宽预测。

贾老师调研了 Transformer 应用在带宽预测问题的文章,得出结论是 Transformer 并不足够强,甚至打不过线性层。然而现在用 Transformer 做带宽预测基本上每一个带宽测速点对应一个 token,这并不合理,因为单独的一个网络带宽点并不构成一个语义单元。所以 AAAI 2023 的一篇工作将 64 个带宽点打包成 patch 作为一个 token 传入,获得了一定程度的提升。这可能确实说明了打包后的带宽点构成了语义单元。

之后大概开始讨论 prompt 了。大概就是在想如果能把网络建模成一个 prompt 相关的问题,就可以用现在的大模型成果。然而后面的讨论我感觉过分天马行空了,所以暂且记录不下来什么问题。可以看出来导师似乎对大模型有些想法,然而我们的研究领域实在是一下子想不出什么可以切合的地方。


晚上逛群的时候突然注意到有人低价出十周年的 Aime 卡,于是立刻全款拿下去五道口提货,顺手打了 1pc 之后赶快回工位做数据库。但是没想到数据库实在是有点麻烦,结果是做到十二点回宿舍都没做完,还错失了洗澡的机会。

回来之后先打牌,打了两个半小时之后修完了数据库,顺手把 Lab4 做掉之后就开始复习 DRL 了,希望能够复习完。

2023.04.25

今天差不多全是会,首先是中午的软工座谈会,大概就是老师们召集同学们一起讨论对课程和课程作业的看法。这次会大概是没有听到什么很有意思的见解的,主要还是解答同学们关于软工课程改革的一些疑问吧。

下午被 hgr 拉过去谈了一下有关 AI 协会的一些事情,大概这个协会接受了来自私募量化的支持,金主能够提供八张 A100 的算力支持。说实话,这个算力已经比一部分实验室都要充足了。但是另一方面,接受金主的支持就意味着有横向的硬性要求,可能打算协会实际运行的时候要可靠的成员去完成这些横向项目,保证整体的资金稳定。

晚上则被达哥拉去聊了一下有关课程改革的一些事情,他打算为研究生开设一门讲解如何当助教的课程,目前正在规划。然而由于当时我已经很累了,所以也就没有怎么和他做交流,只是保持了一个积极的态度。

晚上还是按照规划复习 DRL,然而这点时间已经完全复习不完了,所以随便看看就睡觉了。

2023.04.26

首先先去考了 DRL 的期中,期中题感觉一般,但是计算量很大,完全算不完,不过由于期中只占比 10%,而且大四只要不挂科就行,大概就这样随便考考算了。有道题,我完全不想做了,于是在卷子上写了这句话:

  • I will just give up on this as I am a senior student.

希望老师不会介意。

考完之后 fze 说想要体验一下 maimai,于是就去了五道口,教他打了 1pc 之后他就走了,我则接着出勤。这次出勤也是收获颇丰,鸟了 Freedom dive 和齿轮,这次明显感到自己的能力和体力都在上升。

晚上回来就该准备收拾东西明天南下了,希望明天能够顺利混过组会赶上火车。

不过说实话,最近已经在打算重启毕设了,这次在外,也会时不时地完成一些任务,这种在悠闲中做自己想做的事情的感觉,还是挺有意思的。

2023.04.27

今天就现在准备出发了,不过在此之前先过一下组会。

今天组会上我觉得很有意思的是贾老师说的一句话:“大模型终究只是给出一个很的答案,而不是一个很的答案”。这句话是用来回应为什么目前的 LLM 无法应用到带宽预测任务上的。虽然这句话表达的意思已经快要形成共识了,但是感觉莫名其妙今天很赞同这句话。感觉导师确实很想搭上大模型这班车,但是确实,我们的研究领域实在是有点难蹭上这个热点。

然后就是思考我毕业设计下一步的工作规划,现在简单列个表放在这里:

  • 数据集相关研究
    • 考虑连续低带宽、带宽平均变化值等各种统计特征区分环境
    • 讨论 LUMOS 5G 数据集等其他数据集
  • 当前结果验证
    • 重复生成数据集并验证结论(GrBAL 在切换数据集上优于 Pensieve,Pensieve 在切换数据集上不优于无切换数据集)
    • 使用其他数据集进一步验证 GrBAL 的性能
  • GrBAL 相关的深入
    • 讨论 dynamics model 给出的预测是否符合实际带宽等
    • 缩小模型规模观察收敛速度
  • Pensieve baseline 相关的深入
    • 讨论 Pensieve 表现较差的原因(直接和贾老师、黄老师讨论)
    • 尽量调优 Pensieve 观察其性能极限
  • 一些文献调研
    • 考虑阅读一些环境切换相关的论文,比如 Feng Qian 的论文
  • 一个可能的新方向
    • 李老师今天组会上提到的动态 Oboe 方法,将中心 model buffer 迁移到本地尝试

现在我比较困惑的一点是,似乎 GrBAL 的前期决策似乎很激进,导致前期 rebuffer 就很大。另外今天李老师讲了一篇比较有意思的文章,大概的意思就是有一个中心化的 model buffer,多个边缘计算节点保持和这个 buffer 交互,在检测到环境变化的时候向 buffer 请求新的模型。这基本上就是 Oboe 的思想,也就是有一个门控网络检测环境变化,然后调整主算法的参数。然而这篇文章的创新就是,Oboe 可选的参数是有限、静态的,而这个工作将这个 buffer 改成动态的,这样在一定程度上能形成提升,或者至少能够解决一些先前没有见过的环境切换。

参考论文 - RECL: Responsive Resource-Efficient Continuous Learning for Video Analytics。

2023.04.28

到达南京的第一天,首先是睡了个好觉,然后中午去仙林接我妹妹放五一假,在金鹰吃了顿烤肉之后下午就去新街口玩去了。新街口说实话从小玩到大,确实没有什么特别有意思的东西了,于是又是风云再起机厅出勤,没有想到的是在 2pc 之内鸟加了待宵夜虫,爽吃 7 分。

晚上的电影票一直是买好的,所以直接就去看了。电影大概是讲国产战斗机试飞员的一些故事,比如说故意飞行极端机况来收集边缘数据之类,不过说实话,确实拍的还算可以,虽然感觉有点怪怪的违和感,但整体还是比较能让人代入的。

但说实话今天整体在做的事情是在肝星穹铁道,世界观比较合我胃口,可以放置的回合制游戏也比较休闲,而且整体节奏也很好,确实算是我喜欢的米家游戏。这几天几乎空闲下来就在玩,确实有意思,虽然我战斗配队非常拉,打怪非常吃力,但还是好玩。

2023.04.29

按照道理讲现在应该稍微做一下实习那边的事情了,实际情况是打了一整天的星穹铁道。

晚上是薛之谦的演唱会,我不听华语歌,倒也听过三四成。演唱会气氛很好,周边设施(小卖部、公共交通、秩序维护人员等)都很完备,可以说是如果真的是粉丝的话就完美了。

回来之后继续推星穹铁道主线,然后给米哈游稍微送了一点钱抽出了板鸭,不得不说这个游戏确实做得好,能让我掏钱的游戏并不多。

2023.04.30

没想到这就是四月的最后一天了,今天最好能够把实习那边的事情全都清理掉,然后就要收拾行李准备去上海了,主要还是得把衣服洗好晾干,这一点比较麻烦。

结果是非常顺畅地啥都没做,全用来推星穹铁道了。晚上稍微辅导了一下我妹的 Python,果然现在什么专业都得学个什么编程,然而对他们非师范来说似乎也并没有什么用。

2023.05.01

早上自然是按照规划去南京站,捉到 byq 之后上车捉到了仁弟,三人就这样前往上海。车上简单推动了一下星穹铁道的仙舟第二章主线,然而由于手机电量实在有限所以也并没有什么大的进展。其余时间基本上都是三个人在闲聊到底到达上海之后怎么安排。

到站之后,收到了 Numen 发来的消息,他们似乎正在前往南京东路去逛二次元一条街,而我们到达上海站的时候差不多离得很近。原定计划是我们下午在酒店打牌,但是收到了这样的邀请自然就去和他们汇合了。五一第一天的上海到处都是人,火车站、地铁站完完全全堵满了。我们和 Numen 他们汇合之后前往外文书店。外文书店顾名思义是卖其他语言书籍的地方,然而我们显然是为了一些日文书籍而来。日文书籍全都位于四层,而显而易见的,四楼全都是人。

逛完外文书店之后去吃了饭,之后就是打卡了雾雨咖啡店,然后去了迪美商城。迪美商城就有一些夸张了,由于设置有大量的摊位,所以里面几乎是水泄不通,挪动一步都很困难。然而迪美的好处就在于其有一家风云再起,我手痒了于是想去打,然而实际上没带耳机没带手套,于是只能娱乐性质地随便摸了摸。

晚上去了已经预定好的纯 K,唱歌没什么值得记录的。之后就是回去收拾一下睡觉了,准备为第二天的 CP29 Day1 排队攒足精力。

2023.05.02

CP29 的第一天,我们大概是八点钟左右到达国家会展中心的北门,比较凑巧的是,我们下车的地方就是当时的队尾,所以相比较于 Numen 他们从南门下车还得先找队尾,我们已经领先一步了。

当天的队伍实在是太抽象了,我们刚到的时候队伍只是绕场一周,等到快中午的时候,队伍已经是绕场三周近十公里。

事实上,当天 CP29 的主办方根本没有想到会有这么多人,他们仅仅在一楼一个场馆设置了一个缓冲区,然而可想而知的是,这么点缓冲区完全装不下近四五十万人,于是队伍缓冲区溢出到场馆外马路上。虽然大家素质在线基本都是列队前进,然而由于缺乏引导,队伍实际上根本不知道往哪里排,当天的安保人手也完全没有空余能力来处理溢出的人流。结果就是好多处出现了积流,也就是出现了千人左右因不知道何处入场而淤积在死角的状况。

最终,过多的人流导致安保和检票设备瘫痪,这立即导致了抗议。不久后,政府方面命令不检票全员进场,这才稍微缓解了一些紧张情况。

我们是近十二点才进入场馆的,进场之后先是去我们同学的摊位放下行李,之后立刻就开始扫荡一号馆的各个同好摊位。我基本上就追着术力口摊位一顿找,买了不少小东西之后便回去吃饭。由于场馆里面的饭店和小卖部可想而知地服务不了这么夸张的人群,我们早就自备好了军粮当饭。然而军粮实在是实用主义,可谓不是一般的难吃,但是饱腹感很强。

晚上散场之后,晚饭又成了巨大的问题。经过实地探索,方圆两公里的所有超市和饭店大概都已经被占领。无奈,只能回宾馆等有饭吃了点外卖,而且还不能太晚,还得去 Day2。

2023.05.03

估计是被市政府摁着头打了一顿,CP29 主办方这次至少多派出了一倍的安保力量并且在二层多设置了一个缓冲区。这次我们没有花到半小时就成功进场。然而场馆内人数依然是十分夸张。

今天由于起得早而且进场快,我很快就把昨天没买到的东西收全了。在此之后基本上就没有什么欲望了,简单把所有的场馆都浏览一遍之后就去打游戏了。

晚上和 lcr 他们汇合,三个人在酒店里面打了一下午星穹铁道,中途我终于意识到我圣遗物和武器配置有些不太对,花了点时间洗了一遍之后,我也拥有了一个看起来很不错的队伍。

之后就是很早就睡了,这连着三天几乎没睡好觉然后第二天还要赶路去广州。

2023.05.04

早上醒来的时候 ttl 已经收拾好东西返程回西安,于是我慢悠悠起床收好东西走到麦当劳吃了午饭,打辆车前往虹桥。实习那边似乎也开始催了,有点麻烦,决定火车上把这些事情慢慢解决掉,不然的话还是很烦的。

今天就是整整坐了一天的车,到广州之后打车去宾馆,一到宾馆就睡大觉去了。

2023.05.05

早上十点就起来了,洛言志推荐了南园酒家,于是两个人中午就去了。南园酒家似乎也是广州传统的园林酒店之一了,不得不说茶点做得相当不错,一只虾饺五只虾仁实在是太震撼了。

吃完之后有点百无聊赖,于是去找出勤的地方。中途想到既然要路过老城,不如去老城区转转。说实话,广州给我的感觉就是,相当有特征,或者说很刻板印象。相较于我的家乡长三角地区和大学所在的华北地区,广州的城市风格是完全不同的,甚至一定程度上给我带来了一些奇妙的异域风情感。广州老城更是和影视剧中的印象完全一致,随处可见的各种热带树木,红漆写的楷体店招牌,小吃店的铁栅栏门、神龛、各式招财标语、白瓷砖墙。透过老城天际线的缺口,远方就是广州新城的各式高楼。

确实是听不少人说过,广州是一个城中村遍地的城市,不过实地观察了一下确实挺震撼。

城中村大概都是那些所谓的老广,他们感觉自成体系高度自治。城中村里随处可见旧城改造的宣传,大概都会有地产公司的署名。而最为逆天的标语莫过于:

疫情封控历历在目

旧城改造刻不容缓

这个标语确实比较猛,一般而言现在的政治风气是对 2022 年的后半讳莫如深,然而这里堂而皇之写在这里,批判的态度一目了然。这确实印证了老城区高度自治的说法,毕竟广东整体还是天高皇帝远,其本地自然扎根的治理体系早就成型。相比较于华北地区中央政府的强大影响力,加上为了提高经济活力而适当松绑的政策,广州老城确实在这一方面具有一种令外人觊觎的自由感。联想到广州也是疫情最早放开的城市,想到广州市中心,越秀、天河两区的街道划分细碎不堪,这一切也似乎在相互呼应。然而宗法的约束或许更为可怕呢,或许房产公司的经济压力更为恐怖呢,这些也就不得而知了。

之后更为震撼的是,一位外卖小哥从我身边飞过,大喊着“打倒土匪共产党”“共产党係土匪嘅”,虽然我粤语近乎不懂,和小店店主还得手语交流,但是“共产党”三个字听懂之后,粤语判定句式我还是能听明白的。

又想到了二十大之前的北京四通桥抗议,要是这位外卖小哥出现在北京,或许现在早就莫须有吃点公家饭了。不过也是按照我的经验,北京整体民众对中央政府的支持程度较高,或许由于没有什么受众,可能公然宣传这类口号的人就不会出现吧。不过也是,印证了广州相对自由的刻板印象。

下午就是出勤,先是在海珠富力,只有一台机子,但是下午确实没有什么人。之后等来了 philos,和他简单打了几把之后发现来了十几个人排队,于是赶快撤退到天河城。天河城的好处就在于四台机子,整体压力就少很多。

晚上回宾馆已经累趴下了,洗洗就睡了。

2023.05.06

广州的人给我带来了很好的印象,然而天气却不是,闷热潮湿的气候实在是难以忍受,每天早上起来都得穿上微微湿哒哒的衣服,然后步入门外充满雾气的城市。

今天稍微有些事情要清理掉,所以就找了一家自习室,先去干点活。

结果今天一过我突然出现了很多的事情,当时不仅有外卖送达、宾馆续住、公交坐过站、腾讯云因为开服务器欠费等等这种小事,手上还被导师和学长问毕设的事情,家里人也打电话过来,实习那边学长也在催着做事,DRL 作业做不出来。总之就是各种事情混杂到了一起。

决定这两天把实习的事情干完,然后后面要迅速开始写论文了,不然实在是有点来不及。

2023.05.07

起来之后发现广州开始下大暴雨,于是今天还是暂且先不出门为好,在酒店里准备先清理掉一些杂事。

最终还是决定丢掉 DRL HW3 的 10 分,希望不要挂科。毕竟现在在广州确实没什么工作环境,真的是完全做不下去了,调试一个算法三四个小时,整体做完怕不是已经没分数了。

下午去了广州塔,基本也是延续一个登高望远的想法,所以尽可能买了往高处去的票,中间什么游乐园自然是对我没什么吸引力的。然而比较可惜的是,由于大雾天气,最塔顶的 480 米室外观景台关闭了。实际上从地面往上看,那个观景台已经完全淹没在云雾中了,关闭也是理所当然的。所以最终也只能买到 450 米室外观景台。剩余的流程自然没什么悬念,高速电梯上塔,过安检过检票口就到了观景台。同样,由于大雾天气,能见度实在有限,不过反而是这种云雾缭绕的感觉颇有意境。岭南的雾气传统意义上的江南烟雨有所区别,相较于长江流域那种薄薄的轻纱一般的清新湿气,岭南的湿气就显得厚重和沉闷得多,人行走在其中并不能感受到自己的心灵被荡涤,只会感受到空气海洋底部的强大阻力。广州塔顶更是如此,上午的大暴雨后,云层几乎就已经贴到观景台了,甚至一阵风吹过,直接就被淹没在了一团云雾中。

下塔之后,大概就在广州市中心逛了一下,体验了一下地下胶轮车 APM 线,到达体育西路附近的时候已经差不多是晚饭点了,所以就找了一家看起来还不错的冰室吃晚饭。

吃完晚饭之后突然有点想要去体验一下海珠有轨电车,于是又一次回到了广州塔,买了一张前往万胜围的票。不得不说晚上来走有轨电车真的是有点过于暴殄天物,原本这条有轨电车线是沿着滨江绿道建的,天气好的时候江边的风景非常好,虽然不能说夜景不好看,但是显然我还是喜好那种绿色城市的景观。

坐到万胜围之后已经离宾馆十公里了,有轨电车也已经开出最后一班,于是只能打车回去了。

2023.05.08

今天就准备回北京了,收拾好行李退了房之后就开始乱晃,因为提着行李也实在去不了什么地方。于是先找了个地方吃饭,之后出勤,再吃过晚饭后就得来机场办手续了。

今天实在是没什么可以记录的,赶路的日子确实没什么特别值得记忆的,我只知道到机场的时候我已经困得不行了。

2023.05.09

一样的,还在赶路。昨晚十一点的飞机,七点多点就到机场,然后凌晨一点多到达西安,人已经快困死了。然而西安机场找了一圈确实没有睡眠舱之类的东西,只有少许座位,还不是躺椅。于是只能把衣服袋子当枕头躺在长椅上尝试过夜,结果还被保安喊起来说不能躺。我寻思着这机场这么大基本都没人,平常不让躺是因为占了别人的位置,但我现在躺似乎也没有影响到别人啊。然而他既然这么说了,就说明我接着躺铁定睡不好觉,要被他一直喊,所以只能坐起来接着睡。

一直熬到了五六点钟这样安检登机,到了飞机上我就开始睡,然而完全睡不踏实,坐着睡对我来说实在是太困难了。早上九点十点这样到达大兴机场,还得坐车两小时才能到学校,就这样,十二点多我终于爬到了学校。

到学校后先收拾东西,这个时候人已经近乎麻痹,完全不想和外界交流。本来为了作息不崩溃计划下午不睡,晚上早点睡的,结果还是绷不住,下午直接睡了六七个小时,到了晚上十点钟才起床。

晚上稍微打了一会星穹铁道,然后就得赶快睡,明天还要早起去淘宝的项目讨论会。

2023.05.10

淘宝这边的话,提到了现在互联网的一个趋势,就是各种视频内容平台开始做电商,比如直播带货,尝试将视频服务通过电商变现。另一边,淘宝作为传统电商平台,计划通过内容化的手段做防御,也就是在淘宝里面做一些视频服务。这些视频可能不完全和电商相关,有可能是泛娱乐化的内容。

淘宝这边视频的应用场景除了最常见的商品介绍视频之类,还是希望做一些比较周边的,如带货视频等,虽然目前的业务规模和用户影响力还不及小红书。淘宝目前短视频落后于直播服务,相比较于目前抖音是短视频远超直播服务。

淘宝目前音视频相关团队确实相对大,但是似乎在网络传输方面的人员都比较偏向于工程,在学术、算法上可能还确实需要和高校合作。由于团队 leader 本职是做视频编码的,所以整体的团队都主要在做 encoder/decoder 方面的事务,也确实需要传输方面的人力进入。

目前淘宝网络传输底层还在使用 RTP,可能目前正在尝试转入 QUIC,做这一部分工作的是另一个团队。毕竟在传输层协议上层运行什么应用实际上和传输协议解耦合。

中午和他们一并在学校东南门口吃了一顿午饭,中途和导师 one on one 交流了一下毕设相关,看起来他似乎确实是比较担心我的毕设问题。果然,我还是稍微老实点做点东西,开始写论文比较好。然而似乎导师也并没有那么急迫,其最终还是同意我前往苏州。

下午就是在工位上无所事事,我也不知道我干了什么,但是就这样时间就过去了。

2023.05.11

早起赶车前往苏州,到达苏州的时候已经是下午四点,已经赶不上下午的一些论坛了,于是只能去签到领个物资之后就回酒店收拾东西。

晚上有一个我导师的工程博士学长请我们吃饭,这位学长已经是科大讯飞的工程师了,在职读的博士生。饭桌上整体气氛还算不错,聊了很多有关最近人工智能发展和媒体相关的一些事情。然而最不能理解的就是,这是一顿人均五六百的饭,居然没什么大肉菜,最终我没吃饱。

吃完饭回来开完软工的小例会之后就开始清理毕设的一些事情,感觉还是得赶快动手,否则有点急。把之前订好的列表重新搬到这边吧,先标记几个打算做的:

  • 数据集相关研究
    • (Scheduled) 考虑连续低带宽、带宽平均变化值等各种统计特征区分环境
    • (Scheduled) 讨论 LUMOS 5G 数据集等其他数据集
  • 当前结果验证
    • (Scheduled) 重复生成数据集并验证结论(GrBAL 在切换数据集上优于 Pensieve,Pensieve 在切换数据集上不优于无切换数据集)
    • (Scheduled) 使用其他数据集进一步验证 GrBAL 的性能
  • GrBAL 相关的深入
    • 讨论 dynamics model 给出的预测是否符合实际带宽等
    • 缩小模型规模观察收敛速度
  • Pensieve baseline 相关的深入
    • 讨论 Pensieve 表现较差的原因(直接和贾老师、黄老师讨论)
    • 尽量调优 Pensieve 观察其性能极限
    • (Scheduled) 训练黄老师版本的 Pensieve 或者 SIGCOMM 版本的 Pensieve 作为 baseline
  • 一些文献调研
    • 考虑阅读一些环境切换相关的论文,比如 Feng Qian 的论文
  • 一个可能的新方向
    • 李老师今天组会上提到的动态 Oboe 方法,将中心 model buffer 迁移到本地尝试

2023.05.12

今天本来是要去会场的,结果由于昨晚饭局上约好了今天去科大讯飞转转,所以起床就去高新工业园区了。

到那里了才知道,这位师兄实际上已经是研究院院长这个级别的高管了,想到这条人脉可能带来的价值,确实还是有点意思的。苏州科大讯飞这里主要是在做一些分支项目,主要包括轿车音响系统、车载语音识别系统,然后有个有意思的就是,由于这位师兄的个人兴趣爱好,苏州科大讯飞还在做围棋机器人。不得不说,整体转下来很有意思,确实比那些浮于表面的所谓企业参观有意思多了,毕竟这相当于实验室内部交流,总体上还是学习到了很多现在工业界的状况,感叹科大讯飞产品落地是真的快。

然后就是去了苏州微软,这是给我冲击比较大的地方。整体上苏州微软还是符合我的刻板印象的,公司内部的建筑风格等等都很符合美式审美,开放式工位、随处可见的讨论区、优秀的 work life balance 日程安排。然后就是另一位现在在苏州微软做 team leader 的师兄介绍了他们 team 在完成的工作,主要还是视频特效相关。当时有一句我记忆深刻,就是“我们宁愿 delay 一个新的功能上线,也不能让他破坏兼容性和用户体验”,然而这种话也只有微软这种体量的垄断公司才敢说,小厂连生存都是问题,只能不断卷新功能。

不过说实话,还是挺认可微软的一些价值观的,当时也想着毕业后入职 MSRA 或者之类的公司,但是由于微软完全不在意人才会不会来,所以开出来的工资确实在市场上没有很大的竞争力,清华计算机本科也不过 package 30w。整体来说是个很适合养老的地方,或许我毕业后,如果想留在国内的话,就先在北上工作攒钱,然后回到苏州微软养老摆烂。当然如果想要出国的话又是另外一回事了。苏州真的是个好地方啊,这个时候还是会发出这种感叹。

下午我们就各自散开了,贾老师去旅游去了,一鸣师兄去会场听持续学习论坛,我则找了个机厅出勤了。晚上出勤回来,开始做毕设。


今天研究了一下 LUMOS 5G 数据集,这是一个自带环境切换的数据集,整体而言更为真实,如果在这上面能够做出成果也显得更有说服力一些。目前计划将 GrBAL 和黄老师的 Pensieve 在这个上面训练起来看看能不能验证之前的结果。

但我尝试过了一下 LUMOS 数据集,发现这带宽还挺猛的,基本上逼近 100Mbps,这就很尴尬了,比较大的带宽显然是很没意思的,直接照着大的选就可以了,完全没有什么意义,我现在最后 GrBAL 和 baseline 都收敛到疯狂选高码率,甚至 BBA 都能获得很好的效果。我在原本的 LUMOS 上试了一下 BBA,其 QoE 飙升到 123.39,这个数据几乎可以认为是不合理的了,说明原始 LUMOS 的带宽太充裕了。

所以我做了点手脚,我把带宽手动除以 8。之后将 LUMOS 数据集之中的前 24 个 trace 作为测试集,GrBAL 方法中另将剩余的 trace 中 20% 划分为验证集,Pensieve 则将剩余 trace 全部作为训练集。BBA 就直接在前 24 个 trace 上测试了。

有点很奇怪的是似乎 LUMOS 数据集内部的差距也很大,GrBAL 方法在这个数据集上面,测试集上能有上百 QoE,但是验证集上只有几十,这也让我感到不可思议。

2023.05.13

苏州的第二天,说实话没什么安排,中午一起吃过饭之后就决定各散了,我和一鸣师兄决定先找个地方做一下手上的事情,所以就先去了某一家星巴克。大概做了一些之后一鸣师兄去会场了,而我则开始苏州城区闲逛。

说实话这一整天也没什么说得上是收获的东西,只是无聊了。

2023.05.14

赶路,早上起来就前往火车站,晚上才到达北京,偷偷去丰台出勤之后回宿舍。宿舍还要十二点断电导致空调用不了,晚上热到睡不着。

稍微做了点毕设,但是验证工作还没做完。我现在计划再次运行一下 baseline,观察一下到底是谁的问题。

2023.05.15 - ?

在此之后就都是赶毕设了,实在是没有什么可以记录的了,到时候,等到毕业典礼,再去写长文吧。

这个学期整体还是挺有意思的,有趣而充实。