插曲一 · 卷积图像修复网络
SideStory「卷影重构」ML 与 NN 概览
维护提示
该实验是目前课程中最特殊的,其绝大多数内容和写作风格处于试验阶段;有任何更好的意见,或是对内容的吐槽,请联系该部分编辑反馈。
你可以通过邮件 i@uttr.in 或校内钉钉联系用户名 utakotoba 进行反馈。
开篇
这是今年操作系统实验的第一个「插曲」,或者说叫做「SideStory」(明日方舟特有无处不在),之所以这么说,你可能也能感受到,神经网络可能确实不是一个操作系统课常理上应该涉及的话题。
这个实验源于丁丹丹老师的构想,将神经网络相关的实验放在 OS 课实验中作为一个启发性的任务。相信大家已经在 Exp2 中接触到了 YOLO 模型,并使用 ONNX Runtime 加载了预训练的两个权重,并在图片和视频上进行了推理任务。
本次实验是对上一次实验精神上的延伸,从更通用的角度上用「一个实践的例子」,帮助大家建立对机器学习和神经网络初步的理解。无论你是否对这些概念感到困惑,甚至感到恐惧,本实验都会从理论和实践上对这两个当下最为火热的话题,进行初步的开篇。
前置条件
学习这部分内容其实并不需要什么条件,虽然它安排在 Exp3 的末尾,但它和先前的内容并没有太多的关系。即使你没有完成全部的 Exp3 的任务,你也可以放心阅读这一部分。即使你不进行具体的实验,相信你也可以从中学到许多。
关于数学,虽然机器学习、神经网络和数学具有非常深刻的联系,但这并不意味着你一定需要有天才般的数学水平作为入场券。阅读本文的相当部分同学的数学都远比笔者的好,笔者已在高数(下)取得 1.0;我不会将数学作为本篇的主要内容,跟数学强相关的部分内容会放在类似下方的 Accordin 中,可以选择性的展开阅读,跳过并不影响完整的流程。
数学考试的分数固然重要,但也请总是停下来,用数学思想思考事物之间的关系;良好的对问题的感知和直觉,对普通计算机学生而言比绝对的数学能力更重要。这也是本实验能够在不深入研究数学实质的前提下,依然可以做出完整介绍和描述的主要原因。
关于训练
值得说明的是,由于神经网络的复杂性,以及 CPU SIMD(单指令多数据流) 极限能力的限制,在不进行高度底层及模型优化的情况下,在一般(笔记本)电脑上完成该部分实验的难度很高。使用纯 CPU 进行训练可能需要超过 24 小时的时间才能完成一次训练。
本实验附带的范例代码中的模型在桌面版 RTX 4090 24G 上需要 1 小时才能完成训练,考虑到有独立显卡的大部分同学是笔记本,以下是一些粗略的估算。
- 「RTX 4070 Laptop」需要约 6.5 小时
- 「RTX 4080 Laptop」需要约 3.5 小时
- 「RTX 4090 Laptop」需要约 2.5 小时
估算条件
以上数据仅考虑 VRAM、显存带宽和最重要的浮点算力进行换算,不考虑工程优化,有能力的同学可以研究如何加速训练。
关于 Mac
实验范例代码包括 MPS 后端检测,且在 Mac 上进行过试训练,(笔者在笔记本上训了几轮就放弃了),但不建议在搭载低于「M3 Max + 36G UMA」的 Mac 上训练。
除获得实验分数之外,训练不是必要的,正如刚才提到的,即使不进行具体的实验,这部分在现在的 AI 时代也很有帮助。值得注意的是,杭师大人工智能课基本没有这些内容。
考虑租一张显卡
只要你愿意在网上花 1 分钟搜一下,你应该就可以找到几个可以租借带独立显卡服务器的平台,「RTX 4090 24G」平均价格不到 2 块每小时,只需一杯奶茶钱就足够训练多次。
The expert in anything was once a beginner.