跳转至

glcc 2022 项目

序号 课题名称 课题类型 项目名称 课题奖金 课题链接 课题简介
1 基于 eBPF 的 XDP 研究与应用 程序开发 Linux显微镜 10000 https://github.com/linuxkerneltravel/lmp/issues/255 XDP 提供了一个内核态下高性能的可编程包处理框架,可在最早可以处理包的位置(即网卡驱动收到包的时刻)运行 BPF 程序,其具有非常优秀的数据面处理性能,打通了 Linux 网络处理的高速公路。本题目要求基于eBPF 和 XDP 进行研究,完成的内容包括:(1)分析 eBPF XDP实现的基本原理。(2)对比 XDP 和其它 Kernel Bypass 方案的优缺点,找出其适合的应用场景。(3)针对该应用场景进行编程设计,并可达到性能提升或安全性提升的效果。(4)可能的情况下,尝试将该工具部署在华为的鸿蒙系统上并进行测试。(加分项)
2 基于eBPF的Linux系统性能监测工具-内存子系统 程序开发 Linux显微镜 10000 https://github.com/linuxkerneltravel/lmp/issues/254 题目描述:Linux系统性能监测对于监测系统运行状态、分析系统运行效率、定位运行故障以及优化系统设计等方面都具有重要的意义。本题目基于eBPF机制对Linux系统中内存子系统的性能进行监测。完成的内容包括:(1)分析Linux中内存子系统的基本原理,提出性能监测参数,例如可以包括内存分配信息、缺页处理延迟等关键参数。(2)利用eBPF工具提取性能监测参数并进行分析展示。(3)在对系统监测工具开销评价的基础上,提出相应的工具优化策略。(4)可能的情况下,尝试将该监测工具部署在华为的鸿蒙系统上并进行测试。项目产出● 完整的项目代码一份● 详细的中文文档,包括系统设计、安装部署及系统测试等。如果能部署在鸿蒙系统上,属于加分项。项目技术要求● 了解eBPF技术● 了解Linux内核中内存子系统的基本原理● 有一定的C编程能力
3 基于eBPF的Linux系统性能监测工具-文件系统 程序开发 Linux显微镜 10000 https://github.com/linuxkerneltravel/lmp/issues/252 题目描述:Linux系统性能监测对于监测系统运行状态、分析系统运行效率、定位运行故障以及优化系统设计等方面都具有重要的意义。本题目基于eBPF机制对Linux系统中文件系统的性能进行监测。完成的内容包括:(1)分析Linux中文件系统的基本原理,提出性能监测参数,例如包括VFS方法触发频率、dcache缓存命中率等关键参数。(2)利用eBPF工具提取性能监测参数并进行分析展示。(3)在对系统监测工具开销评价的基础上,提出相应的工具优化策略。(4)可能的情况下,尝试将该监测工具部署在华为的鸿蒙系统上并进行测试。项目产出● 完整的项目代码一份● 详细的中文文档,包括系统设计、安装部署及系统测试等。如果能部署在鸿蒙系统上,属于加分项。项目技术要求● 了解eBPF技术● 了解Linux内核中内存子系统的基本原理● 有一定的C编程能力
4 基于eBPF的Linux系统性能监测工具-CPU子系统 程序开发 Linux显微镜 10000 https://github.com/linuxkerneltravel/lmp/issues/253 题目描述:Linux系统性能监测对于监测系统运行状态、分析系统运行效率、定位运行故障以及优化系统设计等方面都具有重要的意义。本题目基于eBPF机制对Linux系统中CPU子系统的性能进行监测。完成的内容包括:(1)分析Linux中调度子系统的基本原理,提出性能监测参数,例如可以包括CPU任务调度中调度队列长度、CPU调度延迟以及CPU利用率等关键参数。(2)利用eBPF工具提取性能监测参数并进行分析展示。(3)在对系统监测工具开销评价的基础上,提出相应的工具优化策略。(4)可能的情况下,尝试将该监测工具部署在华为的鸿蒙系统上并进行测试。项目产出● 完整的项目代码一份● 详细的中文文档,包括系统设计、安装部署及系统测试等。如果能部署在鸿蒙系统上,属于加分项。项目技术要求● 了解eBPF技术● 了解Linux内核中CPU任务调度的基本原理● 有一定的C编程能力
5 添加新的神经形态数据集:ES-UCF101、HARDVS与N-Car 人工智能 SpikingJelly惊蛰脉冲神经网络框架 6000 https://www.gitlink.org.cn/ridger/spikingjelly/issues/60663 在SJ中,存在大量神经元数据集,用于原生支持SNN。神经形态数据集可以参考:https://spikingjelly.readthedocs.io/zh_CN/latest/spikingjelly.datasets.htmlES-UCF101数据集可以参考以下论文:https://arxiv.org/pdf/1212.0402.pdfHARDVS数据集可以参考如下repo与论文:https://github.com/Computational-Imaging-Lab-IITM/HAR-DVShttps://arxiv.org/pdf/1803.04667.pdf技能要求:Python预期完成效果:在SpikingJelly中可正常调用这一模块
6 Verilog netlist网表解析和扫描链生成 开发工具 openDACS开源电路与系统设计自动化 6000 https://www.gitlink.org.cn/opendacs/ictest/issues/60879 1、题目描述扫描设计是数字电路可测试性设计的基础和通用技术,将逻辑电路中的触发器(或锁存器)转换为扫描单元(Scan Cell),并将所有扫描单元串接成若干移位寄存器,称之为扫描链(Scan Chain),扫描链的输入端是扫描输入管脚,其输出端是扫描输出管脚,从而将同步时序电路转换成内部状态可控制和可观测的时序电路进行测试。该赛题要求在同步时序电路的网表上实现扫描链的自动插入。2、编码任务参考openDACS/ICTest开源的Fault Simulator的Verilog netlist网表解析器,优化网表解析速度、识别触发器单元、完成扫描触发器的替换、根据扫描链的配置输入在网表中自动插入扫描链,并生成扫描结构描述文件、以及可仿真扫描链功能的Testbench。3、技能要求和编程语言熟悉Verilog硬件描述语言,具备数字电路课程基础,C++编程能力强4、预期完成结果:预期完成的C++程序可在不同规模的网表电路上完成扫描链的自动插入,并自动生成扫描结构描述文件、插入扫描链后的网表电路、以及可仿真扫描链功能的Testbench。根据程序功能的完整性、文档和代码的规范性、程序的性能(网表解析和扫描链插入的速度)对项目进行评估。通过评估后在openDACS项目ICTest分支完成程序代码的merge,与openDACS/ICTest开源的Fault Simulator配合,可完成扫描链插入和扫描测试向量的故障仿真。
7 整合脉冲自适应神经元 人工智能 SpikingJelly惊蛰脉冲神经网络框架 6000 https://www.gitlink.org.cn/ridger/spikingjelly/issues/60624 将三种脉冲自适应神经元的单步、多步、cupy版本整合进入SpikingJelly/clock_driven/neuron.py。Origin Neuron Adaptive NeuronLIF Adaptive LIFQIF IzhikevichEIF AdEx目前,单步和多步已经整合完毕,仅需要整合cupy模块和写作文档。编程语言:Python/CUDA预期完成效果:CUDA版本的脉冲自适应神经元可在正常的神经网络中使用
8 添加以cupy为执行后端的多步BatchNorm 人工智能 SpikingJelly惊蛰脉冲神经网络框架 6000 https://www.gitlink.org.cn/ridger/spikingjelly/issues/60661 BatchNorm在使用多步传播和单步传播时将会导致不一样的结果,因此,我们需要添加一个多步BatchNorm模块。更多讨论可见 http://https://github.com/fangwei123456/spikingjelly/issues/157技能要求:CUDA/Python预期完成效果:cupy后端的BatchNorm可用。
9 DoKit 隐私合规检测工具(Android/iOS) 程序开发 DoKit 6000 https://github.com/didi/DoraemonKit 1. 题目描述:检测DoKit宿主应用的隐私合规方面的信息,如:隐私检测、个人信息检测、三方SDK检测等。2. 编码任务:完成对宿主应用的隐私合规方面信息的检测,如:隐私检测、个人信息检测、三方SDK检测等,并产出检测报告。3. 技能要求和编程语言:Java/OC4. 预期完成结果:完成对宿主应用的隐私合规方面信息的检测,如:隐私检测、个人信息检测、三方SDK检测等,并产出检测报告。
10 基于eBPF的DNS Cache实现 程序开发 Linux显微镜 6000 https://github.com/linuxkerneltravel/lmp/issues/250 在生产环境下,服务器会遇到DNS请求失败的情况,甚至会影响节点的性能,近年来随着eBPF技术的发展,可以尝试使用eBPF DNS Cache来尝试解决这个问题,题目要求:1. 通过 Tracing 的手段,缓存 DNS 解析记录及统计解析失败率;二是:在达到失败阈值时,例如有 20% 的 DNS Query 请求都失败了,可以尝试通过已缓存的解析记录,构造 DNS Reply 来解决解析失败的场景。
11 使用纯异步 Rust 实现高性能可扩展的通用网关系统 云原生 CloudWeGo 10000 https://github.com/bytedance/monoio/issues/71 1、题目描述目前生产环境中大量 Nginx 作为入口网关。而由于 Nginx 使用 C 语言编写,且高度耦合底层系统调用,所以在可扩展性上较为欠缺,二次开发成本较高,且组件不易复用。多年来尽管拥有能力极强的贡献者,还是产生了很多由于内存安全导致的漏洞,影响生产环境安全性。近年来 Caddy 补足了 Nginx 的上述问题,并集成 ACME 大大提高了易用性,但是使用 Golang 开发在降低二次开发难度的同时也带来了一系列的性能问题(有 Go 编译器本身的原因,也有 GC 和网络模型的原因,会导致在大规格机器上表现较差),不具备大规模生产可用性。Rust 语言兼具了性能和内存安全,对于 Gateway 是最理想的语言。基于我们开源的 Monoio,可以在不牺牲性能的前提下,做到对平台(Linux、Windows 等)、底层系统调用(如 io_uring 与 epoll)的屏蔽。使用 Rust 开发纯异步的通用网关系统,可以为生产环境提供可证明的安全性、最佳的性能和可扩展性。2、编码任务- 基于 Monoio 完善 HTTP 框架- 实现可插拔 Gateway 主框架,并实现 TCP / h1 / h2 组件- ACME 支持(类似 Caddy)- QUIC 支持3、技能要求和编程语言Rust 语言、网络编程4、预期完成结果- 提供可扩展的生产可用的 Gateway- 较完善的 TCP / h1 / h2 / QUIC / ACME 组件支持5、github链接https://github.com/bytedance/monoio
12 DeepRec ModelZoo完善 (FLEN, IFM, DIFM, AFM, NFM) 人工智能 DeepRec 8000 1. 题目描述:根据论文完成DeepRec中Modelzoo中实现下列模型代码:1)FLEN: Leveraging Field for Scalable CTR Prediction2) An Input-aware Factorization Machine for Sparse Prediction3) A Dual Input-aware Factorization Machine for CTR Prediction4) Attentional Factorization Machines: Learning the Weight of Feature Interactions via Attention Networks5) Neural Factorization Machines for Sparse Predictive Analytics2. 编码任务:实现任务中的4个模型,并完成相关性能测试,并完成DeepRec性能评估报告3. 技能要求和编程语言:python,熟悉稀疏模型结构4. 预期完成结果:提交模型代码,性能测试报告
13 DJL k8s 机器学习Operator 人工智能 Deep Java Library(DJL) 9000元 K8S是一个目前主流公司都在采用的机器资源调度以及管理的平台。这个项目将把DJL模型服务器与K8S平台深度集成。开发者可以从主流框架中选择一个与DJL模型服务器集成。我们在项目的最后会将产品在开源社区路演。利用DJL模型服务器的优势,帮助K8S平台用户提供高吞吐量的模型推理方案。Java/Python开发者优先。要求具备对于Kubernetes系统架构的了解。研究生和博士生在读优先难度:中等
14 扩展“DJL零”项目 人工智能 Deep Java Library(DJL) 12000 DJL零是社区为了降低Java开发者机器学习门槛所开发的新一套API。我们希望构建一套对于表格数据的智能处理系统帮助用户快速整合并构建相关的机器学习应用。同时开发者在后期可以参与到超参数调优等项目。 具备深度学习的经验和背景,有工作经历的优先。需要研究生或博士生在读 参考资料:https://auto.gluon.ai/stable/index.html
15 基于大规模测试的学生教育大数据的可视化呈现 Web应用开发 北师大OpenCT社区 6000 https://www.gitlink.org.cn/Open-CT/opendata/issues/60745 1、题目描述OpenCT每年都会采集数十万学生的在线测试数据,其中包含大量的过程性数据,OpenData项目针对社区采集的大规模教育数据进行机器学习数据训练和分析,形成数据分析案例库,在此基础上对数据结果进行可视化呈现和在线报告。2、编码任务为机器学习训练好的数据案例进行可视化分析和呈现。3、技能要求和编程语言 熟悉各种前端图表库。4、预期完成结果形成在线的可视化反馈报告。
16 DoKit 耗电检测(Android/iOS) 程序开发 DoKit 6000 https://github.com/didi/DoraemonKit 1. 题目描述:检测DoKit宿主应用的耗电情况,能详细显示应用使用过程中的耗电分布情况。2. 编码任务:完成耗电检测功能,详细显示应用使用过程中的耗电分布情况,并产出检测报告。3. 技能要求和编程语言:Java/OC4. 预期完成结果:完成耗电检测功能,详细显示应用使用过程中的耗电分布情况。
17 基于eBPF的Linux系统性能监测工具-网络子系统 程序开发 Linux显微镜 10000 https://github.com/linuxkerneltravel/lmp/issues/249 Linux系统性能监测对于监测系统运行状态、分析系统运行效率、定位运行故障以及优化系统设计等方面都具有重要的意义。本题目基于eBPF机制对Linux系统网络子系统的TCP层进行性能监测。完成的内容包括:(1)分析Linux中网络子系统TCP层的基本原理,提出性能监测参数,例如网络吞吐量、网络流量统计等关键参数。(2)性能指标实现进程粒度监测。(3)利用eBPF工具提取性能监测参数并进行分析展示。(4)尝试将该监测工具部署在华为的鸿蒙系统上并进行测试(嵌入式环境)。
18 基于XiUOS矽璓工业物联操作系统XiZi内核,移植开发工业以太网协议EtherNet/IP 操作系统 矽璓 工业物联操作系统XiUOS 10000 https://www.gitlink.org.cn/glcc 1、EtherNet/IP是由罗克韦尔自动化公司开发的工业以太网通讯协定,由ODVA(ODVA)管理,可应用在程序控制及其他自动化的应用中,是通用工业协定(CIP)中的一部分。2、一、EtherNet/IP移植到矽璓代码树,新建目录xiuos/APP_Framework/Framework/connection/industrial_ethernet/ethernet_ip;二、XiUOS提交PR分支为prepare_for_master分支3、C/C++/Python4、一、正确运行XiUOS: 选定合适开发板(XiZi内核board目录下的开发板即可),可参考XiUOS已支持BSP,正确编译、烧写、运行,提供运行成功terminal终端显示即可;二、移植EtherNet/IP: 获取EtherNet/IP源码,移植至目录xiuos/APP_Framework/Framework/connection/industrial_ethernet/ethernet_ip目录,修改对应的Kconfig、Makefile文件,确保编译成功,提供测试程序,验证EtherNet/IP测试通过;三、开源协议检查: XiUOS遵循MulanPSL-2.0开源协议,所有新增代码遵循MulanPSL-2.0,EtherNet/IP源码和参考代码需遵循其原有的开源协议,避免协议污染。
19 大图分割算法 人工智能 飞桨PaddlePaddle 8000 https://github.com/PaddlePaddle/Paddle/issues/42843#task4 1. 题目描述:大图分割算法2. 编码任务:图神经网络训练场景,针对大图,在单张GPU卡存不下的情况下,可以提供一种图分割算法,高效的切分到多卡下,且保证精度无损。3. 技能要求和编程器语言- 技能要求:(1)熟悉图分割算法(2)熟练掌握 C++, Python,以及CPU/GPU端性能优化技巧- 编码语言:Python,C++4. 预期完成结果(1)提供图分割代码(2)单卡能存放的小图下,采用不采用分割算法后的采样结果、训练精度度量、性能数据等(3)大图下,有代价函数评估分割的代价、最优性等 5. 项目成果仓库算法可在自己的仓库下,若效果好,可合入到 https://github.com/PaddlePaddle/Paddle
20 Nydus 镜像扫描/修复工具 云原生 下一代容器镜像基础设施 Nydus 开源项目 6000 https://www.gitlink.org.cn/dragonflyoss/image-service/issues/60462 题目描述:为 Nydus 镜像增加一个扫描和修复的命令行工具,包含以下功能:1. 提供一个 nydus 镜像 URL,和需要替换的文件列表2. 工具来拉取镜像 bootstrap3. 找到镜像中对应的文件并替换4. 打包成新的镜像并上传回 registry技能要求和编程语言:对云原生或容器生态有一定了解,掌握 Golang/Rust。预期完成结果:为 Nydus 镜像增加一个扫描和修复的命令行工具。
21 基于 rust 的 OCI 运行时 runk 云原生 Kata Containers 6000 https://www.gitlink.org.cn/kata-containers/kata-containers/issues/60442 kata-agent 具有容器运行时所需的大部分功能,并且由于使用 Rust 语言实现,因此具有高性能和低内存占用。使用 kata-agent 提供的机制开发一个基于 Rust 的标准容器运行时 runk,它生成并运行普通容器,而不是硬件虚拟化容器。runk 是比现有运行时更高性能的容器运行时,并使 kata-agent 更容易遵循最新的 OCI 运行时规范。运行时也可以像agent-ctl一样用作kata-agent的测试+调试工具。用户和开发人员可以像 runc 一样处理 kata-agent,从而更容易测试和调试。目前 runk 的命令行还有一些功能未实现,任务目标是支持实现尽可能全的 OCI 运行时功能。
22 开发arm64汇编到go plan9汇编转换工具 云原生 CloudWeGo 12000 https://github.com/bytedance/sonic/issues/231 1、题目描述sonic是字节自研的一款高性能JSON库,其底层文本处理算子采用C语言开发,并基于go-assembly机制结合汇编转换工具(asm2asm)嵌入到go语言接口中。但是当前的asm2asm工具仅支持x86-64到plan9的转换,限制了sonic在arm架构环境下的使用。随着arm架构芯片的流行,sonic计划支持arm架构,asm2asm工具支持arm64到plan9的转换也在规划之中。2、编码任务- 实现一个ARMv8-A汇编到go plan9汇编的转换工具- 支持命令行交互(linux or macOSX),最好可以直接对原始C文件调用clang(或gcc)生成汇编 (参考https://github.com/bytedance/sonic/blob/main/Makefile)- 自动生成对应的go函数接口及其单测(可选)3、技能要求和编程语言- ARMv8-A 汇编- Go plan9 汇编 (https://go.dev/doc/asm)- 编译原理,可以借助第三方lib做前端解析处理- 实现语言不限4、预期完成结果- 将纯c实现的文件(sonic/native/xx.c) 转换为go arm64汇编文件(sonic/internal/native/xx_arm64.s),并且在arm64环境下可跑通go代码单测(sonic/internal/native/native_amd64_test.go)5、 GitHub 链接:- sonic - https://github.com/bytedance/sonic- asm2asm - https://github.com/chenzhuoyu/asm2asm
23 DeepRec ModelZoo完善 (CAN, FNN, PNN, FwFM) 人工智能 DeepRec 6000 1. 题目描述:根据论文完成DeepRec中Modelzoo中实现下列模型代码:1)CAN: Revisiting Feature Co-Action for Click-Through Rate Prediction 2) Deep Learning over Multi-field Categorical Data: A Case Study on User Response Prediction3) Product-based neural networks for user response prediction4) Field-weighted Factorization Machines for Click-Through Rate Prediction in Display Advertising 2. 编码任务:实现任务中的4个模型,并完成相关性能测试,并完成DeepRec性能评估报告3. 技能要求和编程语言:python,熟悉稀疏模型结构4. 预期完成结果:提交模型代码,性能测试报告
24 整合GluonTS时序模型到DJL 人工智能 Deep Java Library(DJL) 12000元 GluonTS是一个流行的时序模型平台。在DJL上提供时序模型训练以及推理功能。并提供在大数据平台上的部署方案。Java和Python开发者优先。研究生和博士生在读优先难度:难
25 时序动态图神经网络模块 人工智能 Deep Graph Library (DGL) 12000元 https://arxiv.org/abs/2203.14883 通过讲TGL论文(SIGMOD'22)中的核心模块贡献进DGL来增强对于时许动态图神经网络的支持。具有深度学习相关研究经验。了解图神经网络者优先。研究生或博士生在读。
26 基于学生高阶思维能力的在线交互式测评题目开发 Web应用开发 北师大OpenCT社区 8000 https://www.gitlink.org.cn/Open-CT/openct-tasks/issues/60746 1、题目描述基于React、Go等语言,依据教育研究者提供的研究范本,开发指向学生核心素养的高阶思维能力在线交互式测评题目。2、编码任务依据教育研究者提供的脚本,开发指向学生核心素养的高阶思维能力在线交互式测评题目。3、技能要求和编程语言 熟悉Go、React等语言框架。4、预期完成结果至少为三个专题开发3-5个在线交互式题目。
27 元宇宙背景下的教育情绪词汇库系统的完善更新 Web应用开发 清华大学OpenBrain项目 7000 https://www.gitlink.org.cn/Open-CT/openbrain/issues/60740 1、题目描述 在元宇宙背景下,关注学生的课堂情绪发展,为学生课堂情绪建立在线实时的词汇库系统,目前系统缺少对词汇库的自动聚类效果。2、编码任务对词汇库平台进行完善和更新,添加自动聚类模型。3、技能要求和编程语言熟悉Python、Go语言;4、预期完成结果完成词汇库的1.0版线上版本。
28 指向学生核心素养的项目式学习一体化平台的更新和完善 Web应用开发 北师大OpenCT社区 6000 https://www.gitlink.org.cn/Open-CT/OpenPBL/issues/60742 1、题目描述OpenPBL是由OpenCT推出的开源项目式学习和测评系统,为一线教育研究者提供项目式学习开源技术平台,满足当前指向学生核心素养的项目式学习平台的建设需求,系统以任务为驱动线索,围绕任务为教师、学生和家长提供教、学、培养的学习社区,在问题解决中促进学生的高阶思维能力发展,从而促进其核心素养的发展。2、编码任务本题目期望通过活动招募学生,对PBL平台的功能进行更新和完善,推出正式上线版。3、技能要求和编程语言 熟悉Go、React等语言框架。4、预期完成结果对PBL平台的功能进行更新和完善,推出正式上线1.0版本。
29 实现FeatureProbe的Python语言server端SDK 开发工具 Feature Probe 6000 https://github.com/FeatureProbe/FeatureProbe/issues/1 1、题目描述: 实现FeatureProbe的Python语言server端SDK2、编码任务: 实现一个python语言的SDK,与FeatureProbe服务端交互配置信息,并以此信息控制程序的功能是否打开。其他语言SDK已有实现,可以参考功能。3、技能要求和编程语言:python,网络编程,多线程4、预期完成结果:完成Java语言SDK的相同功能,通过所有SDK的验收测试,保证稳定性和性能。
30 DoKit 路径模拟(iOS) 程序开发 DoKit 6000 https://github.com/didi/DoraemonKit 1. 题目描述:DoKit 路径模拟是通过对当前定位点序列的实时模拟,实现模拟完整路径的效果,用于替代室外真实路测的测试场景。2. 编码任务:完成对高德地图、百度地图的路径模拟功能,对齐 Android 端的功能。3. 技能要求和编程语言:OC4. 预期完成结果:完成对高德地图、百度地图的路径模拟功能,对齐 Android 端的功能。
31 基于eBPF的DDoS攻击检测和防御 程序开发 Linux显微镜 10000 https://github.com/linuxkerneltravel/lmp/issues/246 网络安全对国家、社会和个人都具有重大意义,而 DDoS攻击一直是网络安全领域中最大的威胁之一。由于其使用简单、攻击效果明显特性,能够快速消耗系统资源,造成目标主机无法为用户提供正常服务,甚至系统奔溃。因此,如果能够跟踪DDoS在系统中的攻击过程,提取DDoS在攻击过程中表现出的行为特征和指标数据,对系统检测和防御DDoS攻击具有重要意义。eBPF技术在系统跟踪观测、网络安全、性能优化等领域得到广泛的应用,为解决DDoS攻击问题提供新的途径、技术和方法。因此本题目要求使用eBPF技术提取系统中能够反映DDoS攻击状况的指标数据和展示,设计出相应的检测算法,算法能够进行DDoS攻击的溯源,寻找出异常攻击源IP地址。最后,可以利用XDP技术实现对攻击源的防御。所用功能需要对接到社区项目LMP中。DDoS攻击种类很多,需至少实现一种类型的攻击检测和防御研究。
32 SoftBot集成框架 Web应用开发 GitLink平台功能增强 10000 https://www.gitlink.org.cn/Gitlink/forgeplus/issues/59457 题目描述:提供综合的软件辅助机器人SoftBot集成框架,利用平台开放式接口,支持集成广大的第三方工具或服务,为用户进行高效的协同开发提供支持。编码任务:1. 支持利用平台接口,集成/创建工具或插件2. 构造工具市场模块,支持工具、插件等的发布和搜索3. 支持创建工具主页4. 支持安装bot到用户仓库与配置技能要求:1. 熟悉Web网站开发2. 语言不限预期完成结果:形成GitLink平台的工具市场模块,支持用户发布、搜索、使用相关的bot工具
33 基于XiUOS矽璓工业物联操作系统XiZi内核,移植开发 microPython软件包 操作系统 矽璓 工业物联操作系统XiUOS 8000 https://www.gitlink.org.cn/glcc 1、MicroPython 是 Python 3 语言的精简实现 ,包括Python标准库的一小部分,经过优化可在微控制器和受限环境中运行;2、一、MicroPython 移植到矽璓代码树,新建目录/xiuos/APP_Framework/lib/micropython;二、XiUOS提交PR分支为prepare_for_master分支3、C/C++/Python4、一、正确运行XiUOS: 选定合适开发板(XiZi内核board目录下的开发板即可),可参考XiUOS已支持BSP,正确编译、烧写、运行,提供运行成功terminal终端显示即可;二、移植MicroPython : 获取MicroPython 源码,移植至目录/xiuos/APP_Framework/lib/micropython目录,修改对应的Kconfig、Makefile文件,确保编译成功,提供测试程序,验证MicroPython 测试通过;三、开源协议检查: XiUOS遵循MulanPSL-2.0开源协议,所有新增代码遵循MulanPSL-2.0,MicroPython 源码和参考代码需遵循其原有的开源协议,避免协议污染。
34 AT模式支持Oceanbase oracle内核 云原生 Seata 10000 https://github.com/seata/seata/issues/4620 描述:目前Seata AT模式支持MySQL、PostgreSQL、Oracle、TiDB、MariaDB等,需要对Oceanbase数据库的oracle内核进行相关的支持。任务: 参照之前的AT模式中DB适配,整理出结构图,实现Oceanbase 数据库的oracle内核适配,主要包含通用的sqlparser和driver适配,并能通过sample对内核适配进行验证。技能要求:熟悉Java预期结果:完成Oceanbase 数据库的oracle内核适配和相关验证sample。
35 基于 MMGen,实现Text2Image 生成算法 人工智能 OpenMMLab-MMGeneration 8000 https://github.com/open-mmlab/mmgeneration/issues/305 1. 题目描述MMGeneration 是一个图像和视频生成算法库,支持多种生成模型如图像生成,条件生成,图像转换的训练和测试,同时也提供了丰富的应用。基于 MMGen,选择一个 text prompt 图像生成算法(如 DALLE,Disco Diffusion,GLIDE),复现该算法,能对齐推理精度,并自选数据进行训练。2. 编码任务MMGeneration 是一个图像和视频生成算法库,支持多种生成模型如图像生成,条件生成,图像转换的训练和测试,同时也提供了丰富的应用。基于 MMGen,选择一个 text prompt 图像生成算法(如 DALLE,Disco Diffusion,GLIDE),复现该算法,能对齐推理精度,并自选数据进行训练。3. 技能要求和编程语言Python 4. 预期成果:支持一个 Text2Image 算法,作为算法库新特性发版
36 基于 MMSelfSup 实现前沿的自监督学习算法以及 benchmark 评测 人工智能 OpenMMLab-MMSelfSup 8000 https://github.com/open-mmlab/mmselfsup/issues/314 1. 题目描述MMSelfSup 是一个基于 PyTorch 实现的开源自监督表征学习工具箱,包含对比学习,掩码学习等前沿的自监督学习算法。近年来自监督学习发展火热,通过在 MMSelfSup 复现前沿的自监督学习算法,可以学习到相关知识,熟练掌握 OpenMMLab 算法框架的整体流程,并积累深度学习相关的学术及工程经验。2. 编码任务支持前沿的自监督学习算法,包括但不限于:- 基于 MMSelfSup,支持前沿的自监督学习算法,复现论文精度- 基于丰富下游任务,进行 benchmark 评测3. 技能要求和编程语言- Python- 一定的论文阅读能力- 对自监督学习有过一定了解 4. 预期成果:完成算法复现工作,及论文的精度复现;提供至少 3 个下游任务 Benchmark 结果;作为算法库新特性发版。
37 基于 MMRotate,实现前沿的旋转框检测算法 人工智能 OpenMMLab-MMRotate 8000 https://github.com/open-mmlab/mmrotate/issues/319 1. 题目描述MMRotate 是 OpenMMLab 中基于 PyTorch 的旋转框目标检测工具箱。目前支持了旋转框检测领域主流的数据集和 SOTA 算法。通过在 MMRotate 中复现相关算法,你将了解到旋转框检测领域的前沿知识,熟练掌握 OpenMMLab 算法框架的整体流程,并积累深度学习相关的学术和工程经验。2. 编码任务支持前沿的旋转框检测算法以及相关功能,包括但不限于- 在 MMRotate 中支持 copy paste,mosaic 等旋转框数据增强- 复现旋转目标检测的前沿算法并支持模型导出3. 技能要求和编程语言- Python- 一定的论文阅读能力- 对旋转框检测任务有过一定了解 4. 预期成果:完成算法复现工作,及论文的精度复现;提供至少 3 个下游任务 Benchmark 结果;作为算法库新特性发版。
38 基于 MMDetection3D,支持轻量化3D感知模型的部署与应用 人工智能 OpenMMLab-MMDetection 3D 8000 https://github.com/open-mmlab/mmdetection3d/issues/1507 1. 题目描述MMDetection3D 是 OpenMMLab 中的通用 3D 感知算法平台,目前已经支持了室内外多个主流数据集的单模态/多模态 3D 检测和点云分割算法。同时 MMDetection3D 可以无缝使用 MMDetection 中的所有组件,为多模态感知提供了丰富的基础模块。近年来,随着自动驾驶行业和元宇宙的热潮,3D 感知算法逐渐火热并迈向实际应用。通过在 MMDetection3D 中支持轻量化 3D 感知算法的部署和应用,你将可以了解到 3D 感知算法的前沿应用,并掌握 OpenMMLab 算法框架下模型从训练到部署应用的完整研发流程,积累深度学习相关的工程开发经验。2. 编码任务支持前沿的 3D 检测算法的部署和应用,包括但不限于:- 基于 MMDeploy,支持 VoteNet 算法的部署和实际应用- 基于 MMDeploy,支持 FCOS3D 单目检测算法的部署和实际应用3. 技能要求和编程语言:- Python- C++;对 3D 检测和模型部署有过一些了解4.预期成果- 支持算法模型的部署- 支持导出的算法模型在移动端 APP 上运行并产生 demo
39 基于 MMDetection 实现密集行人检测算法 人工智能 OpenMMLab-MMDetection 8000 https://github.com/open-mmlab/mmdetection/issues/8029 1. 题目描述MMDetection 是 OpenMMLab 中的通用目标检测算法平台,目前已经支持了 70+ 算法和 500+ 个预训练模型,支持目标检测、实例分割和全景分割。是 OpenMMLab 算法库中的MMDetection3D 和 MMRotate 的核心依赖,为 MMOCR、MMPose 和 MMTracking 提供了检测组件。密集行人检测是典型的拥挤场景检测问题。与通用目标检测不同,拥挤场景下单个目标小,目标数量多,遮挡是一个常见的挑战。通过在 MMDetection 中实现具有代表性的密集行人检测算法,你将能够了解目标检测在特定领域的发展,积累深度学习知识和工程经验,并熟练掌握 OpenMMLab 算法框架。2. 编码任务支持密集行人检测的前沿算法以及相关功能,包括但不限于:- 在 MMDetection 中支持 CrowdHuman 数据集- 在 MMDetection 中复现 CrowdDet 算法并支持该模型的部署3. 技能要求和编程语言- Python- 一定的论文阅读能力- 对检测任务有过一定了解
40 基于 MMEditing构建底层视觉算法工具体系 人工智能 OpenMMLab-MMEditing 8000 https://github.com/open-mmlab/mmediting/issues/895 MMEditing是面向底层视觉工具箱,集成了超分辨率、视频插帧、补图、抠图等方向大量SOTA模型,且持续吸纳新的底层视觉模型。一个功能统一、集中、方便用户使用的算法库将极大方便这类算法的应用。目前有如下方向可供选择: 1. 图像上色工具构建 图像上色是一个很有趣的方向,可以对黑白老照片、视频进行修复。 2. 图像补全工具构建 图像补全的目的是补全图像中缺损的地方,可以用于去水印、图像无损编辑等场景。 3. 抠图工具构建 抠图指将前景从背景中分割出来,同时可以保持边界的完整不留编辑痕迹,在视频领域有着广泛的应用。 建议选择一个方向,复现一些主流的算法,并集成到 MMEditing 工具包,同时也需要对架构设计、用户API设计提出自己的看法,最终构建一个方便开发者使用的算法工具。如果有余力也可以涉及多个方向。 编码任务:复现各个方向的主流算法(目前我们实现了一部分代码,可以以此为基础开展) 基于 OpenMMLab 2.0 架构对主流算法进行重构 将算法集成进入 MMEditing
41 基于 MMPose 实现前沿姿态估计算法 人工智能 OpenMMLab-MMPose 8000 https://github.com/open-mmlab/mmpose/issues/1387 1. 题目描述MMPose 是 OpenMMLab 中的姿态估计算法库,目前已经支持了近 30 个算法和 300+ 预训练模型,涵盖了人体、人脸、人手、动物等多类目标的姿态估计。秉承 OpenMMLab 系列的结构化框架设计,MMPose 很适合作为算法复现和创新的平台。通过在 MMPose 中实现前沿姿态估计算法,你将可以了解姿态估计领域的最新进展,熟练掌握 MM 系列框架使用和开发,并积累深度学习相关的学术及工程经验。2. 编码任务复现姿态估计前沿算法,包括但不限于:- 2D 关键点检测- 3D 关键点检测- 多视角姿态估计- DensePose3. 技能要求和编程语言- Python- 一定的论文阅读能力4.预期成果完成算法复现工作,达到论文精度;完成算法可视化 demo
42 基于 MMDeploy,实现猫猫识别 人工智能 OpenMMLab-MMDeploy 8000 https://github.com/open-mmlab/mmdeploy/issues/512 1. 题目描述基于 mmdeploy 和其他 mm 系列 repo,完成猫猫的检测、跟踪、识别功能,最终部署成注册识别服务或 SDK2. 编码任务- 根据自己的开发机器,任选一推理backend- 学习检测、识别、跟踪基础知识- 转换相关模型- 基于mmdeploy集成完整的 Pipeline- 整体性能分析、调优3. 技能要求和编程语言- Python- C++- 论文阅读能力- CPU perf 工具- 扎实的体系结构、计网和软工基础
43 基于MMRazor,实现AdaRound量化算法 人工智能 OpenMMLab-MMRazor 8000 https://github.com/open-mmlab/mmrazor/issues/166 1. 题目描述MMRazor是深度学习模型压缩算法库,支持网络结构搜索、剪枝、蒸馏等主流技术方向,为 OpenMMLab 其他算法库提供即插即用、可自由组合的模型压缩算法,让用户更简单更快速的实现模型轻量化。基于MMRazor,复现AdaRound量化算法,并使其算法可应用于MMCls和MMDet两类任务2. 编码任务在MMRazor中复现量化算法,对齐论文精度,并将算法迁移应用到检测任务3. 技能要求和编程语言Python 4.预期成果在MMRazor中复现量化算法,对齐论文精度,并将算法迁移应用到检测任务
44 基于 MMOCR,实现前沿 OCR 算法 人工智能 OpenMMLab-MMOCR 8000 https://github.com/open-mmlab/mmocr/issues/1029 1. 题目描述MMOCR 作为 OpenMMLab 家族的一员,支持众多 OCR 相关的模型,涵盖了文本检测、文本识别以及关键信息提取等多个主要方向。通过在 MMOCR 中复现相关算法,你将可以了解到 OCR 领域的前沿知识,熟练掌握 MM 系列框架的整体流程,并积累深度学习相关的学术及工程经验。2. 编码任务复现 OCR 前沿算法,包括但不限于文字检测/识别/端到端模型。3. 技能要求和编程语言Python一定的论文阅读能力4.预期成果完成算法复现工作,达到论文精度;(可选)对算法进行调优,产出相关实验报告
45 基于 MMFlow ,实现 flow1d 算法 人工智能 OpenMMLab-MMFlow 8000 https://github.com/open-mmlab/mmflow/issues/134 1. 题目描述MMFlow是一款基于 PyTorch 和 MMCV 的光流估计开源工具箱,提供了多个 SOTA 光流估计算法,并支持光流领域主流学术数据集,以及光流可视化和评估方法。通过在 MMFlow 中实现 flow1d 算法模型,你将可以了解 光流领域的前沿知识,熟练掌握 MM 系列框架的整体流程,并积累深度学习相关的学术及工程经验。2. 编码任务在 MMFlow 中实现flow1d的算法模型,并复现其训练精度。3. 技能要求和编程语言- Python- 一定的论文阅读能力4. 预期成果复现flow1d论文精度;作为算法库新特性发版
46 基于 MMCLS,实现 Google-landmark 数据集上的图像检索功能 人工智能 OpenMMLab-MMClassification 8000 https://github.com/open-mmlab/mmclassification/issues/851 1. 题目描述MMClassification 是一款基于 PyTorch 的开源图像分类工具箱。在 MMCls 中支持 Google-landmark 数据集,复现图像检索相关算法。2. 编码任务在MMClassification中支持Google-landmark数据集;复现图像检索相关算法。3. 技能要求和编程语言 Python 一定的论文阅读能力 4. 支持 Google-landmark 数据集;支持图像检索功能,并作为算法库新特性发版;支持图像检索相关算法,复现论文精度
47 改善集成测试及其流程 Web应用开发 Apache ShenYu 6000 https://github.com/apache/incubator-shenyu 1.题目描述 ShenYu目前使用的dockerfile-maven-plugin插件已经停止维护,需要更换新的打包插件。目前ShenYu的集成测试流程还不够完善,需要完善集成测试流程。官网的文档也有需要改进的地方,贡献者需要优化现有的文档。2.编码任务 更换docker打包插件 新的集成测试流程 优化现有的文档3.项目技术要求:熟悉Java、Docker、Kubernetes4.预期完成结果: (1)新的打包插件能够正常配合发版流程 (2)实现了新的集成测试流程 (3)现有的文档得到了改进
48 基于近似数据结构的分布式缓存数据工作集大小在线预估 云计算和大数据 Alluxio 6666 https://app.ma.scrmtech.com/resources/ResourcePc/ResourcePcInfo?pf_uid=27086_2062&id=33166&pf_type=3 一. 题目描述使用缓存来降低分布式查询系统的查询时延越来越常见,为了提高缓存利用率,一个关键的因素是要调整缓存容量,使得缓存能够存下目前应用的工作集。所谓工作集就是应用访问的所有对象的集合。然而,一个合理的工作集大小估计算法不光要考虑时间上的动态性、统计结果的准确性,还需要综合考虑对CPU、内存等资源的使用量,以及同时支持多域工作集大小估计的扩展性。我们将需要解决的关键问题罗列如下:(1)实时性:能够快速响应用户的工作集大小查询请求。(2)动态性:给出的结果要随着最近一段时间内的工作集大小的变化而变化。(3)空间高效性:能以较小的空间开销跟踪海量的工作集。(4)准确性:给出的结果要能有精度的保证。(5)可扩展性:该算法结构能够被扩展到跟踪多域,并分别给出每个域的工作集大小。二. 编码任务为了解决这个问题,我们正在基于Alluxio推进一个名为ShadowCache的基本功能实现,该实现基于一个近似的数据结构来估计工作集大小,但由于Alluxio的版本重大更新,ShadowCache暂时被合并了。接下来我们的主要工作是需要在解决上面所提及的问题的同时优化以下三点:(1)空间开销:目前对于每个数据流对象的编码方式较为原始,可以考虑加入一些新型的编码方式来节省的空间开销。(2)时间开销:设计并实现基于优化位操作的ShadowCache数据流对象更新,从而降低操作的时间开销。(3)兼容性和其他优化:考虑Alluxio版本升级的兼容性和其他统计数据存储和访问的优化方案。 可以从以上几点中选择任意几点编写代码实现。三. 技能要求和编程语言(1)了解Alluxio;(2)熟悉缓存机制;(3)熟悉滑动窗口机制;(4)熟悉布隆过滤器、布谷鸟过滤器等数据结构;(5)编程语言:Java四. 预期完成结果能够以较小的空间开销,实时灵活的地告知用户或上层应用最近时间内的Alluxio数据访问的工作集大小。
49 整合自动特征工程 数据库 OpenMLDB 8000 https://go005qabor.feishu.cn/docs/doccn4qZzIRkDQRDkA4a32FJApg 1.整合自动特征工程;2.自动特征工程是自动化机器学习(AutoML)的重要任务之一。目前 OpenMLDB 作为一个特征平台,尚未整合低门槛的自动化特征工程技术。在这个项目中,开发者参考目前一些流行的开源 AutoML 技术,整合自动化特征工程能力到 OpenMLDB 中。3.编程语言要求Python 或者 Java;4.预期完成结果:(1)调研相关工具的自动特征工程算法,可以从比如 H2O,AutoX,以及相关学术 paper 入手;(2)实现相关自动特征工程算法并且整合在 OpenMLDB 框架。
50 支持生成加密电子表格文档 开发工具 Excelize 6000 https://www.gitlink.org.cn/xuri/excelize/issues/60572 1. 题目描述:在读取加密文档的基础上,为 Excelize 添加生成加密文档的支持,为工作簿设置打开密码2. 编码任务:实现 CFB (Compound File Binary File Format) 标准,在 crypt.go 源代码码中实现将加密数据保存至 CFB 格式文件容器中3. 技能要求和编程语言: 熟悉 Excel 软件使用、熟悉 Excelize 开源代码,具备良好的英文国际技术文档阅读能力和计算机基础,熟悉 Go 语言4. 预期完成结果: SaveAs 函数支持设置密码进行保存、Save 函数支持保存已有密码文档
51 基于 Libai 复现 Swin Transformer V2 图像分类网络 人工智能 OneFlow 深度学习框架 8000 https://github.com/Oneflow-Inc/community/issues/16 题目描述:Swin Transformer V2 是基于 Transfomer 的视觉网络。Libai 是基于 OneFlow 框架的大规模预训练模型库,在保证性能的前提下,方便用户配置、训练大模型。此任务要求用户基于 Libai 复现 https://arxiv.org/pdf/2111.09883v2.pdf 中的模型, 并且能够拓展模型,支持各种并行形式的训练。并在 ImageNet 上进行完整训练,达到论文中的基准线。编码任务:基于 Libai 复现模型并训练到基准要求技能要求和编程语言:熟悉深度学习理论,对调参、训练有一定经验对深度学习分布式训练有基本的概念对基于论文做模型复现有一定经验预期完成结果:完成的算法将以 project 的方式合并到 libai 主仓库 https://github.com/Oneflow-Inc/libai/tree/main/projects公开预训练模型
52 HAWQ支持Iceberg外表 数据库 HAWQ 6000 https://hawq.apache.org/ 题目描述:在HAWQ里实现一种iceberg协议的外表,支持原生读写Iceberg中的数据。编码任务:基于HAWQ可插拔存储框架,开发实现外表对iceberg协议的原生支持,包括语法层面支持,iceberg数据读写接口的实现。技能要求和编程语言:C/C++熟练,熟悉常用数据结构和算法,对分布式系统有一定了解,了解常用大数据组件。预期完成结果:HAWQ新增一种iceberg协议外表,在不导入数据的情况下,就能实现对iceberg中数据的急速分析。
53 开发 layotto 演示工程 云原生 Layotto 6000 https://www.gitlink.org.cn/mosn/layotto/issues/60884 1、题目描述开发 layotto 演示工程2、编码任务开发演示工程,演示 Layotto 帮助应用屏蔽基础设施、帮助应用跨云部署的功能。演示工程不用从零写,可以 fork istio 的Bookinfo 工程,给 Bookinfo 加一些功能,加入:- 展示图书封面(通过 Layotto 调用 File API 组件,获取图片)- 展示新闻 (通过 Layotto 调用 state API 组件,比如 redis,获取 News feed)3、技能要求和编程语言- 需要后端开发技能。用某种你擅长的后端编程语言(go/java/c++/python/nodejs) 开发一个简单的微服务、调layotto。- 课题涉及修改前端页面,但因为是在已有页面上做修改,所以对前端技能要求不高,不难4、预期完成结果一个 Layotto 演示工程
54 分布式任务调度引擎 DevOps&运维&网管 建木 6000 https://v8zrmetkbg.feishu.cn/docs/doccnJ5jrNpDExNFo2YLATV21ch 1. 题目- 建木自动化平台调度任务的方式是单机、单节点的方式,对于大规模任务执行存在性能瓶颈,所以需要扩展为多机多节点的任务调度方式,任务的调度由专门的调度引擎负责。- 请设计一个分布式的任务调度引擎,解决任务在多台机器的任务调度问题。- 架构:2. 调度引擎设计要求- 任务API,为生成提供API接口,通过API进行提交任务、暂停任务操作- 任务的负载均衡,根据节点的负载把任务分发到合适的节点上,负载算法自行选取。- 任务流控,如果提交任务过多或导致执行节点宕机或执行速度下降,调度引擎需要具备流控能力,保证执行节点不能因大规模任务宕机。- 任务可靠性,任务提交后,要保证任务在任何情况下(如work节点宕机)被调度执行,保证“exactly-once”语义- 任务优先级,任务提交时会带有优先级标签,要保证高优先级的任务被有限调用,同是也要处理低优先级的任务永远无法被执行被饿死的情况。- 任务定时分发,根据任务设置的定时时间,定时去分发。- 任务暂停,已经提交的任务单未执行的任务可以通过调度引擎暂停。- 任务可观测性,记录任务在调度中的调度过程,通过API接口可查询任务调度过程。3. 注意- 工作节点(work)部分不需要实现,提供模拟接口即可
55 为 Paddle 新增 EmbeddingBag 人工智能 飞桨PaddlePaddle 10000 https://github.com/PaddlePaddle/Paddle/issues/42843#task1 1. 题目描述:EmbeddingBag 是 Embedding 的拓展,在功能上相当于 Embedding + 求和/求均值/求最大值的操作,相比直接组合,EmbeddingBag 会有更高的计算效率和更小的内存消耗。2. 编码任务:此任务的目标是在 Paddle 框架中,新增 EmbeddingBag 和 embedding_bag API,调用路径为:paddle.nn.EmbeddingBag 和 paddle.nn.functional.embedding_bag。3. 技能要求和编程器语言- 技能要求:(1)熟悉 EmbeddingBag 算法原理和适用场景(2)熟悉 Paddle 动静态图下数学计算过程- 编码语言:Python,C++,CUDA4. 预期完成结果(1)API 的设计文档,并提 PR 至 PaddlePaddle/community 的 rfcs/APIs 目录(2)Python 实现代码 & 英文 API 文档,在 Paddle repo 的 python/paddle/nn/layer/common.py 文件 和 python/paddle/nn/functional/input.py 文件(3)C ++ /CUDA 实现代码,在 Paddle repo 的 paddle/phi/kernels 目录(4)单测代码,在 Paddle repo 的 python/paddle/fluid/tests/unittests 目录(5)中文API文档,在 docs repo 的 docs/api/paddle/nn 目录和 docs/api/paddle/nn/functional/5. 项目成果仓库https://github.com/PaddlePaddle/Paddlehttps://github.com/PaddlePaddle/docshttps://github.com/PaddlePaddle/community
56 支持rocketmq协议识别和解析,以提供kindling分析应用和rocketmq的交互性能分析 云原生 Kindling 6000 https://github.com/CloudDectective-Harmonycloud/kindling/issues/227 kindling对于eBPF的数据处理基于一套pipeline模型,其中协议解析的过程以插件化的方式允许开发者扩展其能力。基于kindling目前的插件机制,新增rocketmq解析插件,完善kindling在应用和rocketmq交互场景下网络流量以及性能分析。开发语言:go
57 KCL 语言语法解析错误恢复 程序设计 KCL 记录及函数语言 6000 https://www.gitlink.org.cn/KusionStack/KCLVM/issues/60902 技术领域:Language、Compiler、Parser编程语言:Rust项目描述:目前的 KCL 语言仅收集了语法解析阶段的错误,没有进行错误恢复。本项目目标是实现 KCL 语言语法解析阶段的错误恢复。项目产出要求:支持 KCL 语言语法解析阶段的错误恢复,清晰精确地报告语法解析阶段出现的错误,并且能很快地从各个错误中恢复,以继续检测后面的错误,此外尽可能少地增加处理正确程序时的开销。项目技术要求:了解编译器词法语法解析器解析原理及错误恢复原理项目成果仓库:https://www.gitlink.org.cn/KusionStack/KCLVM
58 Nydus 软件包增量构建与 GC 云原生 下一代容器镜像基础设施 Nydus 开源项目 6000 https://www.gitlink.org.cn/dragonflyoss/image-service/issues/60459 题目描述与编码任务:使用Nydus来实现ostree的功能,解决ostree按需加载,自有文件多,元数据开销大,无端到端运行时校验的问题。为了实现原子提交更新,需要新增blob,blob数量太多影响运行时效率,为了减少blob的数量,需要对已有的blob做增量构建和精细回收。技能要求和编程语言:学习 go/rust 编程,学习 nydus 构建实现,学习压缩算法。预期完成结果:实现nydus的增量构建和细粒度的blob GC。
59 OCI 命令行支持 云原生 Kata Containers 6000 https://www.gitlink.org.cn/kata-containers/kata-containers/issues/60439 Kata Containers 目前只支持 containerd shimv2 接口作为对接容器生态的入口。基于 containerd shimv2 接口,我们可以构建 OCI 命令行入口,从而让 Kata Containers 可以无缝地与 Docker 和 podman 集成。
60 为Nightingale增加类似Prometheus的recoding rule功能 云原生 Nightingale 6000 https://github.com/ccfos/nightingale/issues/943 1、夜莺已经具备的告警规则管理能力,缺少recoding rule的管理能力,recoding rule和告警规则很像,也是让用户配置promql(recoding rule的promql大概率没有阈值),不过很多告警相关的配置都不需要了,只需要配置执行频率和新的metric名称2、这个功能涉及前后端,都要开发3、前端使用react,后端使用go4、完成之后,可以在页面上管理recoding rule
61 为 kitex 适配 Windows 云原生 CloudWeGo 8000 https://github.com/cloudwego/kitex/issues/469 题目简介包含:1、题目描述kitex 是字节跳动开源的 Golang RPC 框架,支持 thrift 和 protobuf 的编解码协议,配套了同名的命令行代码生成工具 kitex,底层使用了 netpoll 做网络传输层。目前 kitex 和 netpoll 仅支持在 *nix 平台上的使用,尚未支持 Windows。2、编码任务- 实现 netpoll 和 kitex 对 Windows 的适配和支持- 不应对 netpoll 和 kitex 的 API、抽象层次做大范围的不兼容变更3、技能要求和编程语言- 熟悉 Windows 和 Linux 平台的网络编程- Golang(尽可能不要使用 CGO,如果确实不可或缺,需要用文档详细说明)(如果使用了其他开源项目的代码,必须明确标注并遵循原有许可证)4、预期完成结果可以在 Windows 上使用 kitex 生成代码、创建并启动服务,编写客户端进行调用,短连接、长连接和多路复用模式都能正确运行。5、github链接https://github.com/cloudwego/kitex
62 用Rust实现RDMA的Linux内核驱动 云原生 DatenLord 6000 https://github.com/datenlord/open-rdma/issues/31 【题目描述】:RDMA是常用于超算中心和高端存储领域的高性能网络协议,RDMA在内核的驱动主要包括两部分,一部分是对接用户态Verbs编程接口,另一部分是对接RDMA硬件设备。本项目要求用Rust实现RDMA内核驱动,需要包括上述两部分功能。【编码任务】:1、用Rust实现RDMA的内核驱动里跟上层用户态Verbs API接口对接的模块;2、用Rust实现RDMA的内核驱动里跟RDMA硬件适配的模块。【技术要求】:1、熟悉Rust编程语言;2、熟悉Rust在Linux内核编程Rust for Linux;3、熟悉RDMA协议栈;4、熟悉RDMA的Verbs编程接口。【预期结果】:1、可以在最新版Linux内核里运行的RDMA驱动;2、至少实现RDMA的RC模式下数据收发。【相关参考资料】:Mellanox Linux Drivershttps://network.nvidia.com/products/infiniband-drivers/linux/mlnx_ofed/OFED for Linuxhttps://www.openfabrics.org/ofed-for-linux/RDMA core userspace libraries and daemonshttps://github.com/linux-rdma/rdma-core
63 DeepRec ModelZoo完善 (xDeepFM, Fat-DeepFM, FEFM, MIND) 人工智能 DeepRec 6000 1. 题目描述:根据论文完成DeepRec中Modelzoo中实现下列模型代码:1)xDeepFM: [KDD 2018]xDeepFM: Combining Explicit and Implicit Feature Interactions for Recommender Systems2) Fat-DeepFM: FAT-DeepFFM: Field Attentive Deep Field-aware Factorization Machine3) Field-Embedded Factorization Machines for Click-through rate prediction4) MIND: Multi-Interest Network with Dynamic Routing for Recommendation at Tmall 2. 编码任务:实现任务中的4个模型,并完成相关性能测试,并完成DeepRec性能评估报告3. 技能要求和编程语言:python,熟悉稀疏模型结构4. 预期完成结果:提交模型代码,性能测试报告
64 DJL模型服务器管理平台 人工智能 Deep Java Library(DJL) 12000 利用前端架构创建一个DJL模型服务器的管理平台。它可以显示各类模型运行的状况,并提供方便的测试接口让用户测试模型的输入输出。这个管理平台在未来会集成在所有DJL模型服务器的发布中。管理平台在模型服务器启动时同步启动具备前端开发经验,熟练掌握主流前端框架。对机器学习有经验或兴趣。大二及以上学生难度:中等
65 DGL-Go模型库 人工智能 Deep Graph Library (DGL) 6000 https://github.com/dmlc/dgl/tree/master/dglgo 使用DGL命令行工作DGL-Go复现SOTA图神经网络模型并提交至DGL项目。了解PyTorch,对机器学习有经验或兴趣。大二及以上学生。
66 ncnn x86 sse2/avx/avx512 优化 groupnorm和instancenorm 人工智能 ncnn 7000 1、题目描述:使用sse2/avx/avx512 simd intrinsic优化加速groupnorm和instancenorm算子2、编码任务:src/layer/x86 新建 groupnorm_x86 源码,并覆盖forward实现x86平台特化优化的代码,支持sse2/avx/avx512,支持不同的elempack,instancenorm_x86同理3、技能要求和编程语言:C++,SIMD4、预期完成结果:groupnorm和instancenorm执行效率大幅加速,并与原实现结果一致5、题目详情URL:https://github.com/Tencent/ncnn/blob/master/src/layer/groupnorm.cpp
67 TencentOS Tiny 物联网操作系统上支持js框架 操作系统 腾讯物联网终端操作系统 TencentOS Tiny 8000 任务: 开发完成 JS framework、js runtime 等js基础运行环境; 基于JS应用框架提供相应的js编译工具或者操作脚本; 完成类似小程序的js app demo演示 完成基础测试和技术指导文档编写需要的基础:C语言、JS、RTOS、TencentOS Tiny物联网操作系统
68 使用 TypeScript + React 重构 SHU 排课助手 Web应用开发 SHU 排课助手 6000 题目描述:SHU 排课助手 (v3) 将使用 TypeScript + React 重构,目标在于追求更好的软件结构已提高可维护性,并支持任意的重课展示、响应式布局、深色模式等功能。编码任务:重构v3版项目,实现以下功能 星标 & 选课 撤销 & 重做 课表 上课时间解析器 时间冲突分析 重课置顶 快捷选课 导出 备份与还原技能要求和编程语言:了解 React 框架,熟悉HTML/CSS/TypeScript预期完成结果:使用 React 构建 v3 版选课助手,能够完全替代当前版本上线,并较好地支持重课和时间冲突逻辑题目详情URL:https://www.gitlink.org.cn/shuosc/shu-scheduling-helper/issues/60157
69 基于计图(Jittor)框架的MMRotate模型复现和速度优化 人工智能 计图 8000 https://www.gitlink.org.cn/jittor/jittor/issues/60733 背景:目标检测是计算机视觉领域非常重要和实用的一个方向。遥感图像目标检测在军事、城市规划和环境监测等领域有着重要作用。MMRotate是OpenMMLab中基于PyTorch编写的的遥感图像目标检测模型库,包含较多先进模型。JDet是基于计图编写的遥感图像目标检测模型库,同样包含很多先进模型且使用便利,易于拓展,但是模型库的完整度还有待进一步提高。本题目希望基于计图框架在JDet中复现 MMRotate 库中的重要模型、复现论文中的点数以及训练、推理速度超过PyTorch。参考论文: Ren S, He K, Girshick R, et al. Faster r-cnn: Towards real-time object detection with region proposal networks[J]. Advances in neural information processing systems, 2015, 28. Xia G S, Bai X, Ding J, et al. DOTA: A large-scale dataset for object detection in aerial images[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2018: 3974-3983. Ding J, Xue N, Long Y, et al. Learning roi transformer for oriented object detection in aerial images[C]//Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2019: 2849-2858. Yang X, Liu Q, Yan J, et al. R3det: Refined single-stage detector with feature refinement for rotating object[J]. arXiv preprint arXiv:1908.05612, 2019, 2(4): 2. MMRotate中模型相关论文相关代码: https://github.com/open-mmlab/mmrotate https://github.com/Jittor/JDet预备知识: 熟悉上述参考论文 熟悉上述参考代码 熟悉 Jittor、PyTorch 的使用 熟悉训练神经网络,在测试数据集上测试点数预期成果:基于计图框架在JDet中复现 MMRotate 库中的重要模型、复现论文中的点数以及训练、推理速度超过PyTorch。收获: 熟悉 遥感图像目标检测 领域常用模型 熟悉 Jittor、PyTorch 深度学习框架 熟悉深度学习模型的训练和测试
70 元宇宙背景下基于机器学习的多模态学生综合评价数据的训练与分析 Web应用开发 清华大学OpenBrain项目 7000 https://www.gitlink.org.cn/Open-CT/openbrain/issues/60741 1、题目描述 在元宇宙背景下,针对学生的脑电、皮肤电、脉搏波等多模态数据,进行机器学习训练,建立元宇宙背景下的学生综合评价模型。2、编码任务建立学生多模态数据分析的案例库。3、技能要求和编程语言熟悉Python、Go语言;4、预期完成结果完成学生综合评价的多模态数据的数据案例分析库。
71 在线实时评分阅卷系统的更新和完善 Web应用开发 北师大OpenCT社区 8000 https://www.gitlink.org.cn/Open-CT/opendata/issues/60743 1、题目描述OpenScore是在线的支持大规模阅卷评分的智能评分系统,是OpenCT社区于2021年推出的重点项目,目前已上线1.0版本。2、编码任务对支持大规模评分阅卷的OpenScore系统进行进一步的完善和功能更新,修复目前无法导入图片的问题。3、技能要求和编程语言 熟悉Go、React等语言框架。4、预期完成结果对OpenScore平台的功能进行更新和完善,推出正式上线2.0版本。
72 实现FeatureProbe的Node.js语言server端SDK 开发工具 Feature Probe 6000 https://github.com/FeatureProbe/server-sdk-node/issues/2 题目描述:实现一个Node.js语言的SDK,与FeatureProbe服务端交互配置信息,并以此信息控制程序的功能是否打开。其他语言SDK已有实现,可以参考功能。 技能要求和编程语言:typescript,网络编程,多线程 预期完成结果:完成Java语言SDK的相同功能,通过所有SDK的验收测试,保证稳定性和性能。
73 DoKit 弱网模拟(Android/iOS) 程序开发 DoKit 6000 https://github.com/didi/DoraemonKit 1. 题目描述:通过 VPN 方式来实现真实弱网场景的模拟,用于对弱网场景的异常情况测试,功能参考腾讯QNET。2. 编码任务:完成 VPN 方式的弱网模拟功能的编写,功能参考腾讯QNET。3. 技能要求和编程语言:Java/C++/OC4. 预期完成结果:完成 VPN 方式的弱网模拟功能的编写,功能参考腾讯QNET。
74 基于 eBPF 的应用行为限制器实现 程序开发 Linux显微镜 6000 https://github.com/linuxkerneltravel/lmp/issues/247 进程行为限制是安全场景下常用的手段之一,Linux下现有的进程限制机制较为复杂而且不灵活,近些年来随着eBPF技术的发展,拓展了进程行为限制的思路,Linux5.7内核中eBPF新增了LSM(Linux security module)程序支持,允许修改函数行为,因此本题目要求使用ebpf技术实现进程行为限制器,并实现进程行为审计和策略动态下发等功能。
75 个人主页建站 Web应用开发 GitLink平台功能增强 10000 https://www.gitlink.org.cn/Gitlink/forgeplus/issues/59458 题目描述:主要支持平台中的组织、项目或者开发者个体等能够基于GitLink平台快速建立网站,用于项目和个人的宣传等。编码任务:1. 支持组织、项目或开发者建立个人主页网站(静态网页)2. 个人主页支持仓库托管,支持修改后自动更新3. 提供个人主页模板,用户可选择技能要求:1. Web网站开发2. Git使用3. 语言不限预期完成结果:支持用户在GitLink平台中创建自己、项目或组织的个人主页网站
76 基于XiUOS矽璓工业物联操作系统XiZi内核,移植开发OpenSSL 操作系统 矽璓 工业物联操作系统XiUOS 8000 https://www.gitlink.org.cn/glcc 1、OpenSSL是一个开放源代码的软件库包,应用程序可以使用这个包来进行安全通信,避免窃听,同时确认另一端连接者的身份。这个包广泛被应用在互联网的网页服务器上。2、一、OpenSSL移植到矽璓代码树,新建目录/xiuos/APP_Framework/Framework/security/openssl;二、XiUOS提交PR分支为prepare_for_master分支3、C/C++/Python4、一、正确运行XiUOS: 选定合适开发板(XiZi内核board目录下的开发板即可),可参考XiUOS已支持BSP,正确编译、烧写、运行,提供运行成功terminal终端显示即可;二、移植OpenSSL: 获取OpenSSL源码,移植至目录/xiuos/APP_Framework/Framework/security/openssl目录,修改对应的Kconfig、Makefile文件,确保编译成功,提供测试程序,验证OpenSSL测试通过;三、开源协议检查: XiUOS遵循MulanPSL-2.0开源协议,所有新增代码遵循MulanPSL-2.0,OpenSSL源码和参考代码需遵循其原有的开源协议,避免协议污染。
77 Seata-Golang TCC 注解支持 云原生 Seata 8000 https://github.com/opentrx/seata-golang/issues/118 描述:当前 TCC 模式需要实现 TccService 接口,通过该接口约束开发者实现 try、cancel、comfirm 方法,通过注解,可以简化该过程。参考:https://github.com/MarcGrol/golangAnnotations。任务: 实现 TCC 注解支持编程语言:golang预期结果: 完成TCC 事务模式的注解支持。
78 基于MMDetection, 探究 Transformer 在 Object Detection 中的应用 人工智能 OpenMMLab-MMDetection 8000 https://github.com/open-mmlab/mmdetection/issues/8030 1. 题目描述DETR 创建了检测的新的端到端的范式,并于近两年通过与传统检测思想融合不断提升性能, 最近甚至刷新了 COCO 数据集的记录。通过在 MMDetection 中添加有代表性的基于Transformer 的检测算法, 了解到该领域的前沿知识,熟练掌握 OpenMMLab 算法框架的整体流程,并积累深度学习相关的学术和工程经验。2. 编码任务支持前沿的基于 Transformer 的检测算法以及部署等功能,包括但不限于:- 在 MMDetection 中复现 Conditional DETR 并支持该模型的部署- 在 MMDetection 中复现 DAB DETR 并支持该模型的部署3. 技能要求和编程语言- Python- 一定的论文阅读能力- 对检测任务有过一定了解 4. 完成算法复现工作,达到论文精度(可选)对算法进行调优,产出相关实验报告
79 基于 MMOCR,实现前沿 OCR 算法 人工智能 OpenMMLab-MMOCR 8000 https://github.com/open-mmlab/mmocr/issues/1029 1. 题目描述MMOCR 作为 OpenMMLab 家族的一员,支持众多 OCR 相关的模型,涵盖了文本检测、文本识别以及关键信息提取等多个主要方向。通过在 MMOCR 中复现相关算法,你将可以了解到 OCR 领域的前沿知识,熟练掌握 MM 系列框架的整体流程,并积累深度学习相关的学术及工程经验。2. 编码任务复现 OCR 前沿算法,包括但不限于文字检测/识别/端到端模型。3. 技能要求和编程语言Python一定的论文阅读能力
80 为ShenYu编写Helm Chart Web应用开发 Apache ShenYu 6000 https://github.com/apache/incubator-shenyu 1.题目描述Helm 可以帮助用户在Kubernetes中快速部署项目,此项目旨在为ShenYu编写helm chart文件。2.编码任务:完成Helm Chart的编写,实现Chart的CI与Release流程,更新官网的发版文档。3.项目技术要求:熟悉Docker、Kubernetes4.预期完成成果: (1)用户可以使用Helm Chart 安装ShenYu (2)正确实现Helm的CI与Release
81 AI训练场景下数据缓存优化 云计算和大数据 Alluxio 6000 https://app.ma.scrmtech.com/resources/ResourcePc/ResourcePcInfo?pf_uid=27086_2062&id=33168&pf_type=3 一. 题目描述随着GPU等计算加速器的快速发展,数据存储层逐渐成为潜在的性能瓶颈。很多时候我们喜欢把数据放在如S3, Azure Storage, 阿里云对象存储OSS等云存储服务中,但如果直接读取云存储上的数据来进行AI训练,性能很多时候并不理想。数据缓存是优化数据服务的重要手段,尤其是在存储与计算的平台环境中。在面向多用户的AI训练场景中,有一些问题需要解决:(1)什么样的缓存淘汰算法可以提高缓存利用率?因为缓存容量是有限的,当缓存空间被占满后再有新的数据需要被缓存,就要决定删除原来的哪些数据,常见的淘汰算法如FIFO、LRU、LFU是否仍然适合AI训练的场景。(2)如何管理分布式缓存副本?缓存副本不但可以提升缓存数据的可用性,并且可以缓解数据热点,那么多少个数据副本是最优的。(3)如何分配数据的缓存容量,从而提升计算性能和缓存利用率?在多任务场景中,给每一个任务分配多少缓存容量可以使得全局训练效率最高。(4)如何支持数据共享和重用?在AI训练场景中,很多场景的数据集会被很多任务反复地读取,数据的共享和重用可以减少数据被换入换出的代价。二. 编码任务上述问题中可以选择一个或者多个并基于Alluxio进行编码实现解决三. 技能要求和编程语言(1)了解缓存机制(2)了解AI训练中数据访问模式(3)编程语言不限四. 预期完成结果可以提升缓存利用率,优化AI训练性能
82 针对时序数据的内存管理和数据结构优化 数据库 OpenMLDB 10000 https://go005qabor.feishu.cn/docs/doccnMkH19EudaCisYico6Hgwjd 1.针对时序数据的内存管理和数据结构优化;2.目前 OpenMLDB 底层存储引擎基于随机访存模式的 skiplist 数据结构,以及使用 TCMalloc 来进行内存空间的申请和管理。这种设计导致了容易产生内存碎片,以及由于随机访存带来的性能下降。在这个项目中,要求开发者从数据结构或者内存申请算法优化方向入手,设计针对时序数据的自定义缓存友好的数据结构或者定制化的内存申请管理算法,来改善内存访问效率以及内存碎片的问题,并且整合到 OpenMLDB 项目中,提升系统的内存整体使用率以及访问效率。3.要求编程语言:C++;4.预期完成结果:(1)调研解决目前内存碎片以及随机访存问题的可能解决方案,可以从缓存敏感算法,或者自定义内存申请管理算法入手(2)实现相关算法,并且整合到 OpenMLDB 的线上存储引擎(3)产出系统化报告,详细调研新算法带来的内存效率和使用率的收益(4) 如果所实现的算法具有创新性,并且学生有意愿,团队将辅导学生投递合适的顶级会议 paper
83 基于 OneFlow 实现 YOLOv5 目标检测模型并部署 人工智能 OneFlow 深度学习框架 8000 https://github.com/Oneflow-Inc/community/issues/16 题目描述:https://docs.ultralytics.com/。编码任务:参考 PyTorch 实现的 YOLOv5 https://github.com/ultralytics/yolov5, 基于 OneFlow 实现 YOLOv5, 并基于 COCO 数据集完成训练,达到repo中的基准线。并基于 OneFlow-Serving 提供部署 demo。技能要求和编程语言:熟悉深度学习理论,对调参、训练有一定经验对 YOLO 模型有一定了解对模型部署有一定了解预期完成结果:完成的 YOLOv5 模型将合并至 flowvision 仓库 https://github.com/Oneflow-Inc/vision公开预训练模型
84 让 Layotto 的集成测试更加强大 云原生 Layotto 6000 https://www.gitlink.org.cn/mosn/layotto/issues/60883 1、题目描述为 Layotto 的集成测试增加更多的组件以及覆盖更多的 API 特性。Layotto 目前已经接入了数百应用,未来也会有更多的用户,因此后续各种代码的开发除了基本的单元测试以外,还需要引入集成测试来保证项目的整体稳定性。目前 Layotto 中已经实现了一个初版的集成测试模块,它使用 Redis 作为的实现组件,针对 State API, Lock API, Sequencer API的基本功能进行了验证。但这只是一个开始,我们还需要增加更多的实现组件,如etcd, zookeeper, 同时也需要针对各个 API 的高级特性, 边界条件进行校验。2、编码任务完善 docker 镜像,完善集成测试脚本和代码。3、技能要求和编程语言- 需要使用 Go 语言进行开发,以及熟悉常用基础设施组件的用法,如 etcd、zookeeper 等- 了解 docker 的基础知识,因为集成测试是跑在容器中4、预期完成结果- 为 Layotto 的集成测试引入更多的组件,如 etcd、zookeeper。- 为各个 API 的特性进行更大范围的覆盖。
85 在 Paddle 中实现 Common Subexpression Elimination(公共子表达式删除)的图优化 pass 人工智能 飞桨PaddlePaddle 10000 https://github.com/PaddlePaddle/Paddle/issues/42843#task2 1. 题目描述:在 Paddle 中实现 Common Subexpression Elimination(公共子表达式删除)的图优化 pass2. 编码任务:在深度学习相关的计算图中,会存在一些公共的子串,例如 h = a + b + c,f = b + a+ e,那么在整个计算图中,根据加法算子的交换律,a + b = b + a,那么我们可以将上面公式化简为 n = a + b, h = n + c ,f = n + e,这样可以减少一次 kernel 的运算,进而提升整体的执行效率。3. 技能要求和编程器语言- 技能要求:(1)熟悉 EmbeddingBag 算法原理和适用场景(2)熟悉 Paddle 动静态图下数学计算过程- 编码语言:Python,C++,CUDA4. 预期完成结果(1)API 的设计文档,并提 PR 至 PaddlePaddle/community 的 rfcs/APIs 目录(2)Python 实现代码 & 英文 API 文档,在 Paddle repo 的 python/paddle/nn/layer/common.py 文件 和 python/paddle/nn/functional/input.py 文件(3)C ++ /CUDA 实现代码,在 Paddle repo 的 paddle/phi/kernels 目录(4)单测代码,在 Paddle repo 的 python/paddle/fluid/tests/unittests 目录(5)中文API文档,在 docs repo 的 docs/api/paddle/nn 目录和 docs/api/paddle/nn/functional/5. 项目成果仓库https://github.com/PaddlePaddle/Paddlehttps://github.com/PaddlePaddle/docshttps://github.com/PaddlePaddle/community
86 实现url的聚合算法,减少数据发散维度 云原生 Kindling 8000 https://github.com/CloudDectective-Harmonycloud/kindling/issues/173 带有变量的url通常导致监控的指标维度发生发散,比如商品详情url设计通常是/product/productId,所以在获取到监控数据时会得到/product/1,/product/2...等url,此类数据会有影响查询和存储效率。此任务需要实现一种url聚合收敛的算法,并能够应用到目前kindling数据收集的组件。开发语言:go
87 KCL 语言包管理工具 程序设计 KCL 记录及函数语言 6000 https://www.gitlink.org.cn/KusionStack/KCLVM/issues/60904 技术领域:Language、Tools编程语言:Golang项目描述:目前的 KCL 语言只有单一的仓库管理包和模块,缺少灵活的包管理工具。本项目目标是设计包管理机制,实现配套的管理工具。项目产出要求: 1. 提供设计方案,Kclvm-go 扩展出包管理需要的功能函数(拉取、发布、校验、依赖分析等) 2. 兼容目前的大库集中管理模式,同时支持去中心化的模块管理(Github独立仓库)。 3. 为了提高响应速度,本地需要有相应的缓存机制。 4. 需要检查包和当前 KCL 语言的版本兼容性。 5. 可选:包文档和检索web服务项目技术要求:了解包模块的社区常规做法,了解目前的 KCL 模块目录结构。项目成果仓库:https://www.gitlink.org.cn/KusionStack/kclvm-go
88 Nydusd Virtiofs Macos 平台支持 云原生 下一代容器镜像基础设施 Nydus 开源项目 6000 https://www.gitlink.org.cn/dragonflyoss/image-service/issues/60460 题目描述与编码任务:为 Nydus 在 macOS 平台增加 virtiofs 功能支持,使得 nydusd 能够为 macOS 上的虚拟化容器提供原生的镜像加速能力。技能要求和编程语言:学习 rust 编程,学习 virtiofs 协议,学习 nydusd 实现。预期完成结果:macOS 上支持 virtiofs 协议的 nydusd。
89 Rust agent 支持 systemd cgroup 云原生 Kata Containers 6000 https://www.gitlink.org.cn/kata-containers/kata-containers/issues/60440 Kata 在虚拟机里有一个 agent 进程,目前这个 agent 只支持 Linux cgroups。本项目目标是为 kata-agent 添加 systemd cgroup 支持,从而使得 Kata Containers 可以在 systemd cgroup 场景下正常工作。
90 使用 io_uring 实现 netpoll I/O 轮询器 云原生 CloudWeGo 8000 https://github.com/cloudwego/netpoll/issues/151 题目简介包含:1、题目描述Netpoll 是字节自研的 Golang RPC 网络库,默认使用 epoll 作为 I/O 轮询器,同时支持扩展实现。io_uring 则是近年来提出的高效异步 I/O 内核接口,我们希望使用 io_uring 实现(不同于 epoll 的)netpoll I/O 轮询器,提供更优秀的性能。2、编码任务- 整理 io_uring Golang 版本 SDK- 设计并实现几种可能的轮询器- 性能测试和方案优化 3、技能要求和编程语言Golang4、预期完成结果实现高性能的 io_uring I/O 轮询器 5、github链接https://github.com/cloudwego/netpoll
91 DeepRec ModelZoo完善 (DCN, DCNV2, PLE, MaskNet) 人工智能 DeepRec 6000 1. 题目描述:根据论文完成DeepRec中Modelzoo中实现下列模型代码:1)Deep & Cross Network for Ad Click Predictions2) DCN V2: Improved Deep & Cross Network and Practical Lessons for Web-scale Learning to Rank Systems3) Progressive Layered Extraction (PLE): A Novel Multi-Task Learning (MTL) Model for Personalized Recommendations4) MaskNet: Introducing Feature-Wise Multiplication to CTR Ranking Models by Instance-Guided Mask2. 编码任务:实现任务中的4个模型,并完成相关性能测试,并完成DeepRec性能评估报告3. 技能要求和编程语言:python,熟悉稀疏模型结构4. 预期完成结果:提交模型代码,性能测试报告
92 DJL模型管理平台 2.0 人工智能 Deep Java Library(DJL) 6000 DJL Central是DJL进行模型管理的平台。开发者的主要任务是升级迭代目前的DJL Central模型管理平台到最新版,同时扩展模型上传功能到模型服务器上。开发者需要有一定的前端开发经验。具备前端开发经验,对ML感兴趣。难度:简单
93 图神经网络模块 人工智能 Deep Graph Library (DGL) 6000 https://github.com/dmlc/dgl/issues/3849 贡献DGL核心模块,包括GNN层组建,采样器,数据集和数据转换器等等。 了解PyTorch,对机器学习有经验或兴趣。大二及以上学生
94 ncnn arm neon/fp16s/fp16sa/bf16s 优化 groupnorm和instancenorm 人工智能 ncnn 7000 1、题目描述:使用arm neon/fp16s/fp16sa/bf16s simd intrinsic优化加速groupnorm和instancenorm算子2、编码任务:src/layer/arm 新建 groupnorm_arm 源码,并覆盖forward实现x86平台特化优化的代码,支持neon/fp16s/fp16sa/bf16s,支持不同的elempack,instancenorm_arm同理3、技能要求和编程语言:C++,SIMD4、预期完成结果:groupnorm和instancenorm执行效率大幅加速,并与原实现结果一致5、题目详情URL:https://github.com/Tencent/ncnn/blob/master/src/layer/groupnorm.cpp
95 TencentOS Tiny 物联网操作系统上支持Micro Python框架 操作系统 腾讯物联网终端操作系统 TencentOS Tiny 8000 任务: 开发完成Micro Python 基础运行环境; 基于Micro Python应用框架提供相应的Micro Python编译工具或者操作脚本; 完成Micro Python应用demo演示 完成基础测试和技术指导文档编写需要的基础:C语言、python、RTOS、TencentOS Tiny物联网操作系统
96 基于计图框架语义分割模型复现和相关研究 人工智能 计图 8000 https://www.gitlink.org.cn/jittor/jittor/issues/60734 背景:语义任务是计算机视觉领域的基础任务之一。自 2015 年 FCN[1] 被提出以来,其受到学术界和工业界的广泛关注。近些年来,基于 CNN 和 Transformer 的相关模型层出不穷。本项目首先要学习相关基础,并基于计图框架复现一个基于 CNN 的语义分割的工作和一个基于 transformer 的分割工作,然后,该项目会尝试对现有语义分割模型进行改进,尝试提出新的语义分割算法。参考论文:[1]. Long, Jonathan, Evan Shelhamer, and Trevor Darrell. “Fully convolutional networks for semantic segmentation.” Proceedings of the IEEE conference on computer vision and pattern recognition. 2015.[2] Hu, S. M., Liang, D., Yang, G. Y., Yang, G. W., & Zhou, W. Y. (2020). Jittor: a novel deep learning framework with meta-operators and unified graph execution. Science China Information Sciences, 63(12), 1-21.相关代码: https://github.com/Jittor/jittor https://github.com/open-mmlab/mmsegmentation https://github.com/Jittor/segmentation-jittor https://github.com/Jittor/PFSegNets-Jittor预备知识: 熟悉上述参考论文 熟悉 Jittor、PyTorch 的学习和使用 熟悉训练神经网络预期成果:在计图框架上复现1-3个分割模型,达到论文中的点数,争取针对语义分割提出新的算法。收获: 熟悉语义分割领域常用模型 熟悉 Jittor、PyTorch深度学习框架 了解科研的各个步骤
97 基于学生过程性评价数据的机器模型训练 Web应用开发 北师大OpenCT社区 6000 https://www.gitlink.org.cn/Open-CT/opendata/issues/60744 1、题目描述OpenCT每年都会采集数十万学生的在线测试数据,其中包含大量的过程性数据,OpenData项目针对社区采集的大规模教育数据进行机器学习数据训练和分析,形成数据分析案例库。2、编码任务为大规模交互式测试中的学生过程性评价数据提供机器学习的模型训练,对比各种模型的优缺点,筛选最优模型。3、技能要求和编程语言 熟悉Python及机器学习模型。4、预期完成结果形成基于机器学习的数据分析案例库。
98 DoKit 设计稿还原度检测工具(Android/iOS) 程序开发 DoKit 6000 https://github.com/didi/DoraemonKit 1. 题目描述:通过图像比对,实现对应用的真实界面和设计稿效果的还原度比对,用于检测应用真实界面是否符合设计稿要求。2. 编码任务:实现对设计稿还原度检测的功能,并产出检测报告。3. 技能要求和编程语言:Java/C++/OC4. 预期完成结果:实现对设计稿还原度检测的功能,需要产出检测报告。
99 TCP&UDP pingtrace的设计与实现 程序开发 Linux显微镜 6000 https://github.com/linuxkerneltravel/lmp/issues/248 针对ping毛刺问题,我们通过改造icmp协议格式、同时在协议包里加一个pingtrace头、让经过的endpoint在报文尾部添加时间戳的方法,使得一个ping经历的所有阶段都能进行时延的可视化,方便理解业务的性能等问题,但是ping本身出现的毛刺是否与业务的受损情况一致仍不可知,所以我们需要把这个协议应用到跟业务强相关的tcp和udp协议中去,让他能够真实反应业务是否受影响,以及影响的是哪个模块。toppingtrace的探测原理就是通过构造 tcp syn + payload 构造报文,探测整个链路的报文状况。整个过程可以分为三个阶段:四元组学习阶段;延时探测阶段;生成报告;udpingtrace 工作流程和tcpping接近,主要差异是client可以直接使用udp协议栈来构造探测报文,故在client端也不需要做iptables过滤配置。题目要求使用pyLCC进行eBPF开发,实现tcp和udp的pingtrace,并把代码push到surftrace项目里,构造的协议包遵循pingtrace协议头,不能对已有的tCp和udp连接产生影响(报文不要发送到已知连接的业务上去)。通过在用户态、内核收发包的出入口进行probe时,对系统的性能影响不能超过5%。同时通过对tcp和udppingtrace执行后,能方便的进行延时的可视化,了解各个阶段的延时,找到业务出现的性能瓶颈点。
100 社交化功能增强 Web应用开发 GitLink平台功能增强 6000 https://www.gitlink.org.cn/Gitlink/forgeplus/issues/60628 功能描述:评论、Issue、PR等中增加emoji表情,优化现有平台相关评论界面。编码任务:1.支持用户用emoji表情标记Issue、PR、评论;2.支持用户在评论中添加emoji表情;3.优化目前平台的评论版块交互界面(可参照GitHub相关界面进行优化)技能要求:1. Web网站开发2. Ruby、Markdown语言及其它预期完成结果:增强GitLink平台的社交化交互体验,支持emoji表情的标记和评论
101 基于XiUOS矽璓工业物联操作系统XiZi内核,支持M7架构qemu 操作系统 矽璓 工业物联操作系统XiUOS 8000 https://www.gitlink.org.cn/glcc 1、基于XiUOS矽璓工业物联操作系统XiZi内核,支持M7架构 qemu2、一、M7 qemu移植到矽璓代码树,新建目录/xiuos/Ubiquitous/XiZi/board/cortex-m7-emulator二、XiUOS提交PR分支为prepare_for_master分支3、C/C++/Python4、一、正确运行XiUOS m7 qemu,可参考XiUOS已支持qemu,正确编译、烧写、运行,提供运行成功terminal终端显示即可;二、开源协议检查: XiUOS遵循MulanPSL-2.0开源协议,所有新增代码遵循MulanPSL-2.0,避免协议污染。
102 Seata 控制台长连接管理 云原生 Seata 10000 https://github.com/seata/seata/issues/4621 描述:Seata 控制台在1.5.0 提供了控制台管理,需要对连接Seata-Server的客户端连接能在控制台页面进行白屏化管理。任务:能在控制台显示来自客户端的长连接信息,限制单个server节点长连接的数量,对已有的连接可进行下线操作。编程语言:Java + 少量前端 React(可社区支持)预期:在用户控制台实现对客户端的长连接的管理。
103 基于 MMDetection,实现前沿的实例/全景分割算法 人工智能 OpenMMLab-MMDetection 8000 https://github.com/open-mmlab/mmdetection/issues/8031 1. 题目描述近年来,随着实例分割框架的不断创新,全景分割任务上的新算法也在不断创造新高。通过在 MMDetection 中复现实例分割和全景分割算法,你将可以了解到分割相关领域的前沿知识,熟练掌握 OpenMMLab 算法框架的整体流程,并积累深度学习相关的学术和工程经验。2. 编码任务支持前沿的实例分割和全景分割算法以及部署等相关功能,包括但不限于:- 在 MMDetection 中复现 CondInst 并支持该模型的部署- 在 MMDetection 中复现 Panoptic FCN 并支持该模型的部署3. 技能要求和编程语言- Python- 一定的论文阅读能力- 对实例分割和全景分割任务有过一定了解 4. 预期成果 - 完成算法复现工作,达到论文精度;支持算法模型的部署;(可选)对算法进行调优,产出相关实验报告
104 优化ShenYu-admin的前端页面 Web应用开发 Apache ShenYu 6000 https://github.com/apache/incubator-shenyu 1.题目描述:该项目的目的是优化ShenYu-admin的前端,目前admin的前端还并不够好,项目要求为优化前端的页面效果以及为登录功能增加验证码。2.编码任务:(1)优化前端的页面效果(2)登录功能新增验证码3.技术要求:熟悉JavaScript及前端基本技术4.预期完成成果:(1)admin的页面得到优化,(2)登录功能支持验证码功能
105 分布式一致性协议调研和实现整合 数据库 OpenMLDB 8000 https://go005qabor.feishu.cn/docs/doccnpj63MYYsiRm9yleGYITtyd 1.分布式一致性协议调研和实现整合。2.目前 OpenMLDB 在分布式数据一致性上的设计较弱,是基于自定义的主从同步机制进行。在写数据过程中,如果碰到写操作失败,可能会导致脏数据。在这个项目里,贡献者针对 OpenMLDB 的数据存储和查询特点,调研合适的数据一致性协议(比如参考业界的 Raft, Zab 等),或者自己定制化设计一套针对性优化的分布式一致性协议,来解决写操作的脏数据问题,并且最终整合到 OpenMLDB 的整体系统中。3.要求编程语言:C++;4.预期完成结果:(1)分布式一致性协议算法调研,优化设计出最适合 OpenMLDB 的协议算法(2) 实现所设计的分布式一致性协议算法(3)基于实现的一致性协议,完成 OpenMLDB 本身的改造,解决数据写入可能产生的脏数据问题4. 如果实现算法具有创新性,并且开发者有意愿,团队将辅导开发者投递合适的顶级会议 paper
106 使用雪花算法实现 Layotto Sequencer API 云原生 Layotto 6000 https://www.gitlink.org.cn/mosn/layotto/issues/60882 1、题目描述Layotto Sequencer API 的雪花算法实现2.编码任务- 实现雪花算法的Sequencer组件,解决时钟漂移问题- 编写合适的测试用例测试算法的正确性- 编写组件文档(中英文)3.技能要求和编程语言- 熟悉go语言- 了解雪花算法的原理与实现- 了解layotto组件开发流程4.预期完成的结果- 逻辑正确的雪花算法自增id组件- 在时钟漂移发生时,保证算法的正确性
107 飞桨 max_pool3d & depthwise_conv2d_grad OP性能优化 人工智能 飞桨PaddlePaddle 10000 https://github.com/PaddlePaddle/Paddle/issues/42843#task3 1. 题目描述:飞桨 max_pool3d & depthwise_conv2d_grad OP性能优化2. 编码任务:飞桨支持CPU/GPU算子计算,但是部分算子的计算性能仍存在持续优化的空间。请在不影响计算正确性和精度的情况下对 max_pool3d & depthwise_conv2d_grad 算子进行性能优化,并结合 PaddlePaddle/Benchmark 验证算子性能优化效果。3. 技能要求和编程器语言- 技能要求:(1)熟悉Paddle框架的算子开发和测试(2)熟练掌握 C++, Python,以及CPU/GPU端性能优化技巧- 编码语言:Python,C++4. 预期完成结果(1)算子优化的设计文档,并提 PR 至 PaddlePaddle/community 的 rfcs/Ops 目录(2)算子优化代码,在Paddle repo的 paddle/phi/kernels 目录(3)性能验证代码,在Benchmark repo的 /api/dynamic_tests_v2 目录(4)算子优化之后,在PR描述中(可参考PR40941和PR30380)提交优化前后算子在Benchmark平台上的性能数据5. 项目成果仓库https://github.com/PaddlePaddle/Paddlehttps://github.com/PaddlePaddle/communityhttps://github.com/PaddlePaddle/benchmark
108 使用eBPF技术扩展kindling在文件系统方面性能分析的能力 云原生 Kindling 10000 https://github.com/CloudDectective-Harmonycloud/kindling/issues/228 kindling是一个基于eBPF技术开发的云原生可观测产品,采集器的核心数据目前主要使用tracepoint和kprobe去获取系统调用和网络类内核数据,此任务希望使用此技术实现在操作系统文件子系统的性能分析,进一步扩展kindling定位内核问题的能力,分析的指标包含但不限于vfs读写性能、读写容量以及block/IO 层读写性能。此任务不仅需要实现相关指标并展示在UI上,也包含前期对文件子系统源码的熟悉和识别内核的hook点位,同时包含相关场景化demo的实现和文档的输出。技能要求:熟悉eBPF编程开发语言:c/c++、go
109 基于代码索引实现 KCL 代码 Find References 功能 程序设计 KCL 记录及函数语言 6000 https://www.gitlink.org.cn/KusionStack/KCLVM/issues/60881 技术领域:Language、Tools编程语言:Rust项目描述:Find References 是语言 IDE 中常用的功能之一,该功能列举标识符被引用的上下文,常用于分析代码依赖关系、自动化重命名等;由于Find References 涉及工作空间的全部代码,需要基于代码索引设计以保证性能。目前 KCL 代码的 Find References 功能仅在词法级别识别,缺少语义级精确分析。本项目目标是基于代码索引,为 KCL 语言实现实现代码的 Find References 功能项目产出要求: 1. 完成 Find Reference 功能开发,针对特定标识符,识别其在当前工作空间下所有的引用;标识符类型包括且不限于:KCL schema 名称、KCL schema attribute 名称、KCL 变量等 2. 为了保证响应速度,需要对代码建立索引 3. 可选:为支持脱离 Language Server 的环境,需要基于 LSIF 对索引离线存储项目技术要求:了解LSP及 LSIF协议(https://microsoft.github.io/language-server-protocol/)项目成果仓库:https://www.gitlink.org.cn/KusionStack/KCLVM
110 Nydus 内建 P2P 集成 云原生 下一代容器镜像基础设施 Nydus 开源项目 6000 https://www.gitlink.org.cn/dragonflyoss/image-service/issues/60461 题目描述与编码任务:Nydus 支持使用蜻蜓做镜像数据点对点分发。但目前 Nydus 和蜻蜓是分开独立部署。本项目目标是把 Nydus 和蜻蜓做深度融合,把点对点数据下载能力集成到 Nydus 中。技能要求和编程语言:学习 rust 编程,学习蜻蜓设计,学习 nydusd 实现。预期完成结果:支持内嵌的 p2p 能力的 nydusd。
111 容器卷直通能力增强 云原生 Kata Containers 6000 https://www.gitlink.org.cn/kata-containers/kata-containers/issues/60441 Kata Containers 社区正在增强与 Kubernetes CSI 的集成能力,使得 Kata Containers 能够把基于块设备的文件卷直通到虚拟化容器中,从而提升应用访问文件卷的性能。本项目目标是增强 Kata Containers 深度集成的 CSI 能力,为 Kata 卷直通接口加入 NFS,CIFS, CephFS 等远端文件系统类型的支持。
112 SSA 后端 Auto-vectorization Pass 的实现 云原生 CloudWeGo 8000 https://github.com/cloudwego/frugal/issues/5 1、题目描述Frugal 是字节自研的一款高性能 Thrift 库,旨在使用 JIT 技术来加速 Thrift 的编解码过程。由于 Thrift 采用了大端序,而 x86_64 等常见的处理器架构均为小端序,因此对于 list 这一类的数据类型需要一个循环来实现小端到大端的转换。而这个过程如果能够利用 SIMD 指令的话,可以极大的提高性能。2、编码任务- 实现一个 SSA 后端的 Auto-vectorization Pass- 输入原始的 CFG,输出 vectorize 之后的 CFG- IR 表示形式使用 Frugal SSA IR (internal/atm/ssa 目录)- 该 Pass 的运行顺序在 Fusion 之后,在 Final TDCE 之前- CPU 架构为 x86_64,SIMD 指令使用 AVX / AVX-2 指令集3、技能要求和编程语言- 编译原理- x86_64 指令集知识- 实现语言为 Go4、预期完成结果- 能够识别并且将 CFG 中的 load-swap-store 循环替换为正确的 SIMD 指令5、github链接https://github.com/cloudwego/frugal
113 DeepRec ModelZoo完善 (DeepLight, BST, AutInt, SIM) 人工智能 DeepRec 6000 1. 题目描述:根据论文完成DeepRec中Modelzoo中实现下列模型代码:1)DeepLight: Deep Lightweight Feature Interactions for Accelerating CTR Predictions in Ad Serving2) Behavior sequence transformer for e-commerce recommendation in Alibaba3) AutoInt: Automatic Feature Interaction Learning via Self-Attentive Neural Networks4) Search-based User Interest Modeling with Lifelong Sequential Behavior Data for Click-Through Rate Prediction 2. 编码任务:实现任务中的4个模型,并完成相关性能测试,并完成DeepRec性能评估报告3. 技能要求和编程语言:python,熟悉稀疏模型结构4. 预期完成结果:提交模型代码,性能测试报告
114 DJL安卓平台升级 人工智能 Deep Java Library(DJL) 9000 选择在AI/ML中比较有意思的项目添加到DJL安卓平台。支持PyTorch/TensorFlow等平台在DJL上部署。从 DJL Engaging Projects 选择1-2个项目实现Java开发者,在安卓平台有经验优先。需要具备一定的机器学习背景。研究生博士在读优先难度:中等
115 DGL样例及教程 人工智能 Deep Graph Library (DGL) 6000 https://github.com/dmlc/dgl/issues/3354 对DGL官方样例和教程进行贡献,包括撰写新的模型教程,修改更新已有样例,等等。了解PyTorch,对机器学习有经验或兴趣。大二及以上学生
116 TencentOS Tiny 物联网操作系统内核支持ARM TrustZone- M 操作系统 腾讯物联网终端操作系统 TencentOS Tiny 10000 任务: 基于TencentOS Tiny内核完成ARM V8M TrustZone-M 架构芯片支持; TencentOS Tiny内核和上层应用可以运行在安全域和非安全域; 安全域和非安全域数据交互、函数调用符合ARM定义的安全规则,可以支持TencentOS Tiny上的安全应用正常使用 完成基础测试和技术指导文档编写需要的基础:C语言、ARM汇编、RTOS、TrustZone-M、TencentOS Tiny物联网操作系统

最后更新: September 3, 2022

评论