“我只要按照时间线慢慢写,就已经可以表现 NVIDIA 与我如影随形的一切了,无论是过去的游戏,当下的科研与开发,还是未来的工作规划,都有 NVIDIA 的一部分。”
作为有奖征文的第六弹,今天我们一起来听听开发者——知乎用户“梦负影”所分享的,那些他与 NVIDIA 交织的时间线和携手走过的路。
初识 NVIDIA
如果要从我的第一台 NVIDIA 设备说起,那可能是 2016 年买的微星笔记本搭载的 960M 显卡,它支撑了我大学四年的游戏生涯。那时候不懂机器学习、数据科学、人工智能,仅仅作为娱乐设施,我想这也是大部分男生一开始入手的原因吧。
把时间拨转来到 2021 年,此时我准备开始研究生生涯,在考研结束到入学前,我做了一个 Chat Bot,主要是放在 QQ、微信的群里给大家提供一些游戏工具,或增加其他一些增强聊天趣味性的小功能,想要触发这些功能需要用户事先输入关键词,虽然可以运用正则匹配、模糊匹配等优化反馈,但是依然不可避免导致了呆板。基于这样的背景,在我入学的时候最想的是做一个可以像人一样回复的机器人,于是开始了解人工智能、深度学习、自然语言处理,网上的资料多且杂,看的我依然是一头雾水,仅仅知道这些东西似乎需要经过训练。
学习 CUDA
时间到 2021 年末,入学半年临近寒假,通过研究生的课程以及资料不断增加,对 AI 的内容逐渐了解了起来,知道了 GPU 与 CPU 的不同,也才知道经常拿来打游戏的显卡居然有着与众不同的作用。恰好此时,同学向我发来了 NVIDIA CUDA 冬训营的通知,在那时候浅薄的认知中,学习 CUDA 或许可以帮我了解一下算法模型训练等内容,一番犹豫之后便报名了旁听班(而正式班在犹豫的时候已经满员了)。
经过一周的学习,我顺利地通过了冬训营的考验,同时认识了好玩的 HuanHuan 老师和何老师,以及认真负责的鬼鬼。了解到 CUDA 的内容后,发现 CUDA 比我想的要更底层,虽然不是预期的模型训练与使用,但是它却向我讲解了 GPU 上的矩阵运算过程和具体的代码,让我了解 GPU 所带来的力量。唯一不足的可能就是我的研究方向与代码、CUDA 相去甚远,冬训营之后便很少触及 CUDA 了。
了解 Jetson
在 CUDA 冬训营之后,我对 NVIDIA 所构建的生态产生了更多的好奇,除了支撑游戏运行之外,似乎 GPU 还有很多其他的作用,于是在第六届 Sky Hackthon 报名发布的第一时间,我便寻找队友报了名,除了抱着学习 AI 模型这一目的之外,也对只有巴掌大的 Jetson 设备产生了好奇:这样一个设备,却也可以跑 AI 模型甚至完成一些独特的功能。
Sky Hackthon 真正地让我训练了第一个模型,并且成功地在设备上部署、运行了起来。在完成 Sky Hackthon 的过程中,不仅看到了熟悉的何老师和李奕澎老师,也认识了参与多届比赛的恺,他无私地为我分享了之前的比赛经验,于是在队内队外的合作之下,机缘巧合拿下了第一名。
NGC、NeMo、TAO 与 TensorRT
在 Sky Hackthon 过程中,我访问了模型平台 NGC、使用了语言处理的 NVIDIA NeMo、视觉处理的 TAO 和模型优化的 TensorRT,可以说第一次了解了生态这个词:在硬件的基础上,围绕着 CUDA,构建了一套不同水平的人都可以使用的工具链。在 Sky Hackthon 中,我第一次听到 ASR、TTS、目标检测,尽管不了解其原理和细节,却可以利用 NVIDIA NeMo 构建 ASR 与 TTS 模型,利用 TAO 构建目标检测模型。唯一要做的仅仅是构建好数据的训练集。而随着了解深入,为了更进一步的提高模型质量与速度,我尝试使用开源的 TensorRT 代码来构建更优化的 YOLO 模型。
以上仅仅是 NVIDIA 生态的一角,除了这些工具之外,还有更多的软件在开发和迭代,比如在第八届 Sky Hackthon 中出现了 NVIDIA Omniverse,用 GPU 进行实时的图像生成,可以用于 AI 的数据增强或者数据生成。而更重要的是,这些软件大部分都是可以开源取用的,不需要在一开始就顾虑使用成本,仅仅需要考虑学习成本。
生成式 AI
最后,2023 年迎来生成式 AI 的大爆发, 尽管入学后没能如愿研究 Chat Bot,但是 2021 年梦想的 Chat Bot 由 OpenAI 帮我实现了,怎么能不算圆了读研究生的梦想呢?因此我们不去谈论 NVIDIA 显卡训练我的 AI 模型、完成我的论文课题,来聊聊在生成式 AI 时刻 NVIDIA 帮我做的事情吧。
我最开始关注 LLM 远超过 SD 等生图模型,但是就算是 Llama 7B 也并不是容易跑起来的,到现在 2024 年,已经有了不少模型小型化的工作,所以我也能在 3090 上跑一些通义千问等开源模型的小参数模型了,目前正在收集数据集,准备进行自己的模型微调。
由于本地 LLM 运行困难,我的目光逐渐转向了 Stable Diffusion 等生图模型。一开始只会使用 Stable Diffusion WebUI,然后逐渐解构了代码,将它跑到了我自己的 P100 上,并在各种优化版本出现的第一时间尝试进行接入:Lora、ControlNet、SDXL、LCM、LCM-lora、SDXL-turbo,这些新技术出现的第一时间,我就尝试在本地的设备上运行起来。尽管我是一个没有什么艺术细胞与美感的人,但是感谢 NVIDIA 带来的计算能力,一些简短的描述就可以得到一些效果很不错的图片。特别是当 LCM-lora 和 SDXL-turbo 出现,构思提示词的时间已经开始大于生图的时间了。
伴随着工作需要,我依然在不断地了解更多生成式 AI 的内容,让模型本地化、小型、快速响应,然后让模型在 NVIDIA 的加持下来帮助更多的人发挥更多的生产力。
结语
在这里感谢一下张小白,其实我最早看到征文的时候,并不知道如何落笔,虽然每天都不曾离开使用,但是依然不知道如何去描写这碎片化的经历,是他的描述方式提示了我:我只要按照时间线慢慢写,就已经可以表现 NVIDIA 与我如影随形的一切了,无论是过去的游戏、当下的科研与开发,还是未来的工作规划,都有 NVIDIA 的一部分。
——知乎用户“梦负影”
感谢这位开发者带来的精彩分享!就如这位开发者所说,NVIDIA 在过去、现在和未来都与无数开发者们如影随形,紧密相连,而正是这种密切的合作,让创新之火在游戏、科研和开发领域不断燃烧,为行业注入了活力。