专访|林子楠:参与开源是一件很有意思的事情

开源之夏专访持续开放中,欢迎已从开源之夏毕业或正在参与开源之夏活动的学生、导师一同加入专访行动,扫描文末二维码填写专访问卷,与大家分享你眼中的开源之夏!
本期采访人物是开源之夏2023活动KubeEdge社区中选学生——林子楠,所承担的项目是基于LLM对机器人复杂任务构建指令序列。
项目链接:https://summer-ospp.ac.cn/org/prodetail/2398a0157?lang=zh&list=pro

# 自我介绍
OSPP:请简单介绍一下自己。
林子楠:大家好,我是林子楠,目前学习计算机类相关专业,平常喜欢研究大语言模型相关领域的内容。我对参与开源项目比较感兴趣,先后参与了LangChain、forest等多个开源项目的开发,并且自己在平常也开发了一些有趣的工具和框架。
OSPP:据了解,此前你已经有丰富的开源项目参与经验了,能否简单介绍一下相关经历或者印象最深刻的项目经历?是什么让你决定参与开源?
林子楠:第一次比较正式的接触开源是在Google Summer of Code中,从那之后我就发现参与开源项目建设,让更多的开发者使用到你写的东西,是一件很有意思的事情。从那之后自己也着手开发了很多很有意思的项目,如promptulate:一个大语言模型自动化与应用开发框架、broadcast-service:一个强大的发布订阅者框架、cushy-storage:一个基于磁盘缓存的ORM框架等等。让我最深刻的可能是在参与LangChain开发的时候,创始人Harrison Chase及其他开发者和我交流关于代码上的问题以及想法,这种和大佬协作开发的感觉是很有趣的。开源给我带来的很多,开源让我见到了很多各种各样的优秀项目和代码,参与到十分成熟的项目开发中,让我学习到了很多代码架构、设计思维以及各种各样新兴的技术等等,通过参与开源,我学习到了特别多的东西,这是学业内教学、课程设计都无法学习到的知识。参与开源确实是扩展视野,提升竞争力的高性价比途径。
# 参与开源和开源之夏
OSPP:你是如何了解到并决定参与开源之夏活动的?
林子楠:我们有一些开源社区群,某一天交流的时候无意中了解到的开源之夏,经过一段时间的了解过后,发现里面有很多很有意思的课题,也很有挑战性,因此在开源之夏还没有开放报名的时候我有已经有参与的想法了。
OSPP:在开源之夏项目申请过程中,你是如何选择开源项目并准备项目申请书的?有考虑哪些因素?做了哪些准备?
林子楠:我一直在做大语言模型相关的工作,在看到这个项目的时候,感觉正好和我比较契合,通过了解项目信息,脑子里已经有一个大概的思路怎么去做这个事情,在调研了相关的研究工作,完成了项目申请书的编写。
OSPP:请介绍一下你眼中的KubeEdge社区。
林子楠:KubeEdge是一个成熟且活跃的开源社区,旨在将原生容器化应用编排能力扩展到边缘主机。在KubeEdge社区下设有云机器人兴趣小组,专注于研究如何利用云原生技术赋能边缘机器人。社区定期举行会议,提供了一个分享和讨论的平台。社区成员来自机器人生态链上下游的各种组织和开发者,他们在技术上非常专业和热情,共同努力推动KubeEdge项目的发展和创新。
KubeEdge sig robotics是第二次参加这次活动,我们已经在各个社交媒体平台(如bilibili、微信公众号、华为开发者社区等)进行了宣传。此外,社区还定期举行社区议会,邀请一些行业专家分享相关的研究成果。我的导师也非常热心地与我沟通当前项目的进展。
关于 KubeEdge 开源社区
KubeEdge 是业界首个云原生边缘计算框架、云原生计算基金会内部唯一孵化级边缘计算开源项目。自开源以来,KubeEdge 受到了产业界和学术界广泛的关注和支持,在 GitHub 获得 6.7k+Stars 和 1.9k+Fork,吸引了全球来自 30+ 国家的 70+ 贡献组织及 16 万+开发者。近年来,KubeEdge 社区持续开拓创新,完成业界最大规模云原生边云协同高速公路项目(统一管理 10 万边缘节点/50 万边缘应用)、业界首个云原生车云协同汽车、业界首个云原生油田项目,开源业界首个分布式协同 AI 框架 Sedna 及其业界首个边云协同终身学习范式 、开源业界首个分布式协同 AI 基准测试套件 Ianvs 。在 Google Scholar 中,KubeEdge 相关学术论文已超过 400 篇(包括开源特性及对项目的引用)。
官网:https://kubeedge.io/zh/
OSPP:请简单介绍一下你所承担的开源项目。
林子楠:我承担的开源项目是《基于LLM对机器人复杂任务构建指令序列》。这个项目的主要目标是利用大语言模型(LLM)的强大能力,为机器人的规划和执行复杂任务提供精确的指令序列。在当今技术的不断演进中,研究者们已经不再满足于将人工智能局限在虚拟环境中,他们希望AI能够感知现实世界并与之进行交互。因此,越来越多的研究在进一步挖掘语义理解和任务执行方面发挥潜在的力量,并结合LLM的能力,为机器人的任务执行提供更多可能性。许多知名的科技公司,如Google、Microsoft和DeepMind,都在这个领域进行了相关的研究和开发。通过结合LLM模型的语义理解和任务执行能力,机器人在现实世界中能够执行复杂任务的能力将有助于提升自动化、智能制造和物流领域的效率,甚至在医疗、农业和教育等领域创造更多创新和应用。
具体地,在我的计划书设计中,我将系统分为了RoboAgent,RoboController, RobotObserver,Client几个部分,为了更好地构建RoboAgent在任务规划、环境感知和推理方面的能力,并使RoboAgent能够处理复杂的机器人指令,我们需要构建RoboAgent和相关的工具套件,包括规划、行动、推理和观察。下图说明了基于此概念构建的系统体系结构。

用户通过Client客户端,通过websocket通信,向ROS机器人的Node发送命令。在ROS中,创建一个节点或模块来与Client通信。在收到Client的用户请求后,RoboAgent使用LLM进行任务规划,并生成一系列子任务。任务规划基于用户输入和机器人能力,确定完成所需任务的最佳方式。RoboAgent基于子任务序列构建要执行的动作,并通过相关控制器执行机器人命令。这涉及到调用ROS机器人控制器来执行特定的动作,如移动和对象操纵。执行单个命令后,RoboAgent执行环境感知,观察执行后环境的变化。例如,到前车的距离为5米(thing,distance,x,y,z)。在接收到环境感知数据后,机器人基于其当前行为和环境感知进行下一步的推理。基于观察到的数据,机器人参与下一个动作的推理,确定是执行下一个子任务还是修改/更新任务计划。如果需要修改任务计划,RoboAgent将返回任务计划步骤以重新生成子任务序列。重复上述控制、感知和反思的循环,直到RoboAgent确定所有子任务的完成,指示整个任务的完成并结束任务调度。
OSPP:目前项目开发进展如何?在开发过程中是否遇到了挑战?你是如何应对的?有什么收获么?
林子楠:当前项目还在比较前期的开发工作中,就proposal来说,实际开发起来还是有一些不一样的地方,需要不断去调试优化,比如在就RoboAgent的用户输入,在设计初期,我并没有考虑的这个问题,于是RoboAgent的用户输入直接停留在了代码侧,然而在实际的场景中,机器人一般都需要接收动态的用户输入指令,因此我们还需要就Robot构建一个对应的客户端。
OSPP:你与导师和社区其他成员的交流情况如何?在交流过程中,收获到了哪些宝贵的经验和建议?
林子楠:社区以及导师们都很热心,就我的proposal提出了很多十分有价值的建议和改进方案,从系统架构到具体的实现逻辑上,导师们都给我提了很多建议,也让我认识到了当时在系统设计上了一些不足之处,让我学习到了很多。
OSPP:之后是否打算继续参与开源社区或开源项目?为什么?
林子楠:之后也会一直参与开源社区,可以学到很多东西、认识到一群很厉害的人、一起做一些有趣的事情。
# 寄语
OSPP:你所在的高校目前是否有开设开源相关课程?你身边同学参与开源的情况是否有了解?
林子楠:我所在的高校目前没有针对开源相关课程的开设。这可能是因为开源开发在一些学校尚未得到足够重视,或者缺乏专门的教学资源和资深的开源开发人员来指导学生。
在我身边的同学中,只有个别人参与了开源项目的开发,且参与度也不是很高。这可能是因为他们对开源开发的了解有限,或者缺乏机会和平台去积极参与其中。开源项目的开发需要一定的技术能力和对开源社区的熟悉程度,这对于大多数同学来说可能是一个挑战。
然而,尽管在我所在的高校中开源参与度有限,我个人非常希望能够有更多的人了解和参与到开源建设中去。开源开发不仅可以促进技术的共享和进步,还提供了学习和合作的机会。通过参与开源项目,我们可以学到更多实际的开发经验,了解到不同领域的技术和工作方式,并与开源社区的其他成员交流和合作。
OSPP:你认为参与开源之夏和社区贡献对于在校生的学习和专业提升、就业选择方面有哪些帮助?
林子楠:开源之夏是以课题为单位进行项目开发,因此学生需要完成从项目调研、方案设计、代码编写、单元测试等一整套流程,可以很好的锻炼一个人的工程能力,另一方面,我认为参与一个优秀的开源项目的含金量不亚于一个大厂实习,不管是能力提升、还是就业的选择,都对在校生的是很有帮助的。所以对于想要参与开源的同学来讲,冲就完了!
END
专栏编辑:大梦
校对:校大山、林子楠
制图:GoodWhite

专栏投稿请联系开源小助手:kaiyuanzhixia 或专栏编辑:Hungryfish34(备注“专栏投稿”加速通过),或填写下方专访信息收集问卷。
