首页 > (中)学院本+双非硕+非科班中选蚂蚁OSPP2025开源之夏TuGraph社区项目的全记录
头像
快乐瀑布
编辑于 昨天 11:03 陕西
+ 关注

(中)学院本+双非硕+非科班中选蚂蚁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的使用特别欠缺外还有两点印象深刻:

  1. 没有面向对象编程思维:实现某个功能我就直接实现某个功能,但是这其实是不符合面向对象编程,在实现这个功能之前应该定义抽象类、接口等,再实现接口来实现这个功能,因为我们不能保证未来不会在这个接口上新增功能,所以要时刻问自己,这是面向对象编程吗?我写的这符合开闭原则吗?等等等等。比如说我们要连接TuGraph-DB进行Query的验证,我就直接写了连数据库的代码再执行Query,但是在后来老师的指导下我们把这部分抽象为了一个DB_Client的类,我们再来一个TuGraph_Client的类去实现这个接口,再在里面实现这个连接数据库的功能,因为我们保不齐哪天又回连接Neo4J,Oracle等,这样到时候我们就只需要分别实现不同的功能就好了,这才是面向对象编程。。。。
  2. “学院派”编程习惯:文件读取学校里交的要写把目录下的文件都列出来,再从控制台按序号选则文件读取,但这样其实很麻烦,最后老师说你为何不直接传一个文件的路径进去就好了,我一想对啊真是这样那我做这无用功干啥呢,才体会到学校教的东西只是教学,跟实际业务还是差距,不要太学院派编程。。。。。。
  3. ......

还有等等等等,很有种误闯天家的感觉,社区里有BIRD数据集的构建者,港中深的博导和他的学生们,顶尖大厂的Leader和Mentor们,每次开周会都感觉这是我能参与的项目吗?.......

2.5 总结

Awesome-Text2GQL!

下一篇帖子记录下结项的过程,撰写结项报告的过程特别头疼🤕,一天来来回回改了好多好多次😵......

#开源之夏#

#双非本科求职如何逆袭#

#双非有机会进大厂吗#

#双非应该如何逆袭?#

#我的成功项目解析#

全部评论

(2) 回帖
加载中...
话题 回帖

近期热帖

热门推荐