(中)学院本+双非硕+非科班中选蚂蚁OSPP2025开源之夏TuGraph社区项目的全记录
开本帖记录一下我在OSPP2025开源之夏活动中中选蚂蚁集团TuGraph社区Text2SQL项目的全流程(申请+中选+开发+结项)记录,先说下我的bg:
我本科是学院本的物联网工程,毕业时候抽风一直铁了心要考西部某TOP985的计算机专硕,前前后后参加了3次考研,最后一次考得最高考了357但是依然差复试线13分,此时由于大龄+绝望+阴差阳错等因素调剂到某双非的的土木下二级学科读研,也算是faker班的了。
上篇帖子说到项目中选了,指路:(上)学院本+双非硕+非科班中选蚂蚁OSPP2025开源之夏TuGraph社区项目的全记录
这篇帖子继续记录一下中选后的开发阶段:
2. 项目开发
2.1 心态&准备工作
其实进入开发阶段还是比较忐忑的,因为第一次参加这种活动心里并没有底,不知道能不能顺利结项,但是最后还是想着管它呢,硬着头皮上吧的心态进入开发阶段了。
因为是蚂蚁的项目,工作沟通都是在钉钉上进行的,我的设备是咸鱼800块淘的二手ThinkPad T470P,钉钉这种现代软件用的还是比较吃力的,每次进会议都得等个1分钟才能进去。好在我在转转平台淘到了一台XXX,转转是一个靠谱的二手。。。。。(假装切入广告)
开始之前要在系统里和中科院签劳务协议,然后就开干了。
要签劳务合同,还挺正规
开始的时候导师让我先提交了一个给README加贡献墙的PR,熟悉了下Git合并代码的流程,就进入正式开发阶段了。
2.2 正式开发
我们的项目叫“面向复杂Text2GQL任务的数据模拟和模型训练”,主要的目的是希望借助LLM来生成大量图查询语言(GQL, Graph Query Lang Language)作为语料,再用这些语料来微调模型,最终增强模型写GQL的能力。
正式开发之前我们先进行了文献调研,这是一个对齐的过程,读论文是快速掌握某一领域知识的很好的方法。
文献调研完我们就开始正式开发了,配置环境(安装TuGraph-DB的Docker镜像,配置API-Key,熟悉仓库的结构等),这一部分工作都是在暑假之前几周完成的,进入暑假就进入了正式的开发阶段,最终我们按照文献调研的总结确定了3个模块的开发:
- Schema Generator:用来生成建图的Schema文件,一般是JSON格式的,这个文件来定义点边关系,导入到图数据库中就可以建立一个空的图了
- Data Generator:用来生成模拟测试数据,这部分我们会把Scheme.json一起给LLM,让它生成用模拟数据填充这个Schema的Python脚本并执行,这一步成功了🏅我们就有了一个可以用来做查询的数据库实例了
- Corpus Generator:用来生成测试语料,我们采用了一种迭代生成的策略来生成复杂的语料,最终将能执行且有结果的查询作为我们的最终结果
最终我们项目的整体架构图:
2.3 节奏
整体上我们是按照这个顺序进行的:文献调研 -> 模块开发 -> Code Review -> Pull Request
正式开发:从6月30日 - 9月30日
正式开发开始后我们基本上是固定一周一次周会(钉钉视频会议),还有双周一次的社区会议,也就是说一周最少开一次会议,双周的时候要开两次会议,社区兴趣小组的会议是整个社区大家对齐一下,看看互相都做了哪些工作,再有其他问题可以再约导师的时间请教。在这个阶段我们开了大概30多次周会,最终提交结项报告的时候一天开了6/7次,导师花了很长时间指导我完善我的结项报告,打磨了一遍又一遍,感恩🥹
收尾完善:10月1日 - 10月30日
我们最终实现了3个模块,提交了5个PR,3个是新增功能的,1个修复Bug,1个更新Readme文档添加实验结果
会议记录
2.4 指导
导师有问必回,而且给的意见都非常有用和可行🎉,导师不会帮你写代码,但是导师会给你指一个方向,这个很重要,会让你少走很多弯路。老师直接告诉你你看哪些论文,你在哪个仓库里找可能会找到你需要的包等等,非常Nice!
2.5 收获
我还是很有收获的,第一次往开源仓库中提交代码和第一次真实的体验合作开发,除了Git的使用特别欠缺外还有两点印象深刻:
- 没有面向对象编程思维:实现某个功能我就直接实现某个功能,但是这其实是不符合面向对象编程,在实现这个功能之前应该定义抽象类、接口等,再实现接口来实现这个功能,因为我们不能保证未来不会在这个接口上新增功能,所以要时刻问自己,这是面向对象编程吗?我写的这符合开闭原则吗?等等等等。比如说我们要连接TuGraph-DB进行Query的验证,我就直接写了连数据库的代码再执行Query,但是在后来老师的指导下我们把这部分抽象为了一个DB_Client的类,我们再来一个TuGraph_Client的类去实现这个接口,再在里面实现这个连接数据库的功能,因为我们保不齐哪天又回连接Neo4J,Oracle等,这样到时候我们就只需要分别实现不同的功能就好了,这才是面向对象编程。。。。
- “学院派”编程习惯:文件读取学校里交的要写把目录下的文件都列出来,再从控制台按序号选则文件读取,但这样其实很麻烦,最后老师说你为何不直接传一个文件的路径进去就好了,我一想对啊真是这样那我做这无用功干啥呢
,才体会到学校教的东西只是教学,跟实际业务还是差距,不要太学院派编程。。。。。。
- ......
还有等等等等,很有种误闯天家的感觉,社区里有BIRD数据集的构建者,港中深的博导和他的学生们,顶尖大厂的Leader和Mentor们,每次开周会都感觉这是我能参与的项目吗?.......
2.5 总结
Awesome-Text2GQL!
下一篇帖子记录下结项的过程,撰写结项报告的过程特别头疼🤕,一天来来回回改了好多好多次😵......

#开源之夏#
#双非本科求职如何逆袭#
#双非有机会进大厂吗#
#双非应该如何逆袭?#
#我的成功项目解析#
#我的成功项目解析##我的求职总结##双非应该如何逆袭?##开源之夏##投票#