(中)学院本+双非硕+非科班中选蚂蚁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!

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

#开源之夏#

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

#双非有机会进大厂吗#

#双非应该如何逆袭?#

#我的成功项目解析#

#我的成功项目解析##我的求职总结##双非应该如何逆袭?##开源之夏##投票#
全部评论
厉害啊
1 回复 分享
发布于 11-28 11:12 辽宁
明年也搞个纯算法的项目玩玩
点赞 回复 分享
发布于 11-28 14:14 上海

相关推荐

12-09 08:02
已编辑
门头沟学院 C++
写在前面:主包是研二下发现自己找工作不知道找什么样的,本身专业是地坑专业,因此急转嵌入式为第二年的秋招做准备。本身有点c/c++的基础,但是比较缺少嵌入式方面的基础,因此提前6个月为秋招做足准备。主包本身是选择RTOS和Linux双修,可以在秋招多几个方向选择,如果有自己擅长的小伙伴可以只选择一个猛攻。个人推荐本科生选择RTOS、硕士生选择Linux。(为什么不推荐本科生选择Linux呢,因为Linux会卡学历,RTOS是对本科生来说最优选)大致路线是:速通mcu、rtos基础教程(第1个月) —Linux驱动、应用开发基础教程 (第2个月 — 做个比较全面的基础型项目(第3个月) — 找2段相关的嵌入式实习(第2-6个月) — 决战秋招。中间一直保持着刷hot100的习惯,以解决手撕问题。1️⃣第一个月mcu+rtos:首先选择b站播放量高点以及短一些的课程、资料同时学习,以基础为主,更重要的是对嵌入式方向有个基础的认知。(关于b站教程方面,个人没有特别推荐某一个,我看过几个其实大差不差,每个点击量高的都讲的比较全面,选择一个自己喜欢的即可,推荐从HAL库学起)要点:记住做足笔记,实习/秋招面试注重基础,并非花里胡哨的项目(但是也需要一个拿得出手的项目),基础的知识主要从前期学习打好框架。如果自己的c/c++的基础不好的话,也可以先从语言方面进行打磨,路线也是从b站视频学起!2️⃣第二个月Linux:也是从b站播放量较高的几个视频开始学起,主要是驱动与应用方向,要点与RTOS相同,要做好笔记!!3️⃣项目学习:每个课程都有自己附带的小项目,可以在实习前对其中一个项目进行打磨(不要直接照抄!!这种项目都是烂大街的)。接下来对项目进行修改(比如多加个功能,优化源码和八股里的知识结合),这种都可以进行AI赋能,让AI帮你想个点子。写在最后:实习和秋招来说,大厂都注重基础,因此对很多基础型的八股要了如指掌,但是也不能忽视项目,有一个吸引眼球的项目才会让你的简历被面试官发现。下一期准备分享实习/秋招经验、刷题经验,解决评论区常见问题
点赞 评论 收藏
分享
评论
3
4
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务