Google Summer of Code 2025

Google Summer of Code 2025

Kubeflow 社区计划参与 Google Summer of Code 2025。本页面旨在帮助您通过 Kubeflow 参与 GSoC 2025。

什么是 GSoC?

Google Summer of Code (GSoC) 是一个全球性项目,为学生提供 津贴 以便他们在夏季参与开源项目。

欲了解更多信息,请参阅 GSoC 常见问题解答 并观看下方视频

如何参与?

感谢您有兴趣通过 Kubeflow 参与 GSoC!

请仔细阅读以下信息,了解如何通过 Kubeflow 参与 GSoC。

关键日期

以下是 GSoC 2025 的关键日期,完整时间表 可在 GSoC 网站上查阅

事件日期
申请开放3月24日 @ 18:00 UTC
申请截止日期4月8日 @ 18:00 UTC
接受提案公布5月8日
社区融合期5月8日 - 6月1日
开始编码6月2日
中期评估7月14日 - 18日
编码结束9月1日
最终评估9月1日 - 8日

资格要求

要通过 Kubeflow 参与 GSoC,您必须满足 GSoC 资格要求

  • 注册时年满 18 岁。
  • 是学生或 开源新手
  • 在项目期间有资格在其居住国工作。
  • 是未被美国目前禁运的国家的居民。

步骤

  1. GSoC 网站上注册为学生。
  2. 加入 Kubeflow Slack
    • 注意:不要私下联系导师,而是请在 #kubeflow-contributors 频道中发起一个讨论串,以便其他人也能看到回复。
  3. 了解 Kubeflow
  4. 查看 项目想法 以决定您对哪些感兴趣
    • 您可能希望参加您选择的项目所在的组的下一次社区会议
    • 注意:虽然我们建议您根据项目想法提交提案,但您也可以提交包含自己想法的提案。
  5. 3月24日4月8日 期间通过 GSoC 网站 提交提案
    • 请参阅这些指南,了解如何撰写优秀的提案。
    • Kubeflow 要求您使用 此模板 来编写您的提案。
    • 您需要在 2025年4月8日之前在 GSoC 网站上提交提案的 PDF 版本。
  6. 等待结果于 5月8日 公布。

项目想法

项目 1:Kubeflow 平台增强

组件:Kubeflow Manifests, Kubeflow Dashboard, Kubeflow Notebooks, Kubeflow Pipelines

可能导师:@juliusvonkohout, @thesuperzapper

难度:高

规模:350 小时

可能的项目

  • Pipelines:将 SeaweedFS PoC 产品化为安全的 minio 替代品
  • Pipelines:使用一个存储桶隔离每个命名空间/配置文件/用户的 artifacts (kubeflow/pipelines#4649)
  • Notebooks/Dashboard:将代码迁移到 kubeflow/dashboard 和 kubeflow/notebooks (kubeflow/kubeflow#7549)
  • Dashboard:进行 Central Dashboard 的 angular 重写 (kubeflow/dashboard#38)
  • Dashboard:支持使用组进行认证 (kubeflow/manifests#2910)
  • Manifests:改进 kubeflow/manifests 中的脚本和 CI/CD,包括 matrix 调用以同时测试多个 Kubernetes 版本

所需/优先技能

  • GitHub 和 GitHub Actions
  • 容器和 Kubernetes 知识
  • 具有 Python、Go 和 JavaScript 框架经验

项目 2:Kserve 模型 Web 应用

组件:KServe

可能导师:@juliusvonkohout, @varodrig, @Griffin-Sullivan

难度:中

规模:175 小时

目标

  • 恢复和更新 kserve/kserve-models-web 应用。
    • 清理并合并开放的 issues 和 PRs
    • 实现更好的 CI/CD 流水线。
    • 可能将应用迁移到 kubeflow/kserve-model-ui
    • 添加编辑、回归测试以及监控/指标支持等功能。
    • 与 kserve 0.14+ 的更改同步。

所需/优先技能

  • GitHub Actions
  • 容器和 Kubernetes 知识
  • JavaScript 框架


项目 3:Istio CNI 和 Ambient Mesh

组件:Kubeflow Manifests

可能导师:@juliusvonkohout, @kimwnasptd

难度:中

规模:175 小时

目标

所需/优先技能

  • GitHub 和 GitHub Actions
  • Kubernetes 和网络
  • Istio, Kustomize


项目 4:使用 Helm 部署 Kubeflow

组件:Kubeflow Manifests, Kubeflow Pipelines, Kubeflow Trainer, Kubeflow Katib, Kubeflow Spark Operator, Kubeflow Model Registry

可能导师:@chasecadet, @varodrig, @juliusvonkohout

难度:中

规模:350 小时

目标

  • 为了扩展我们的用户群并满足众多用户和公司提出的对 helm chart 的需求,目前正在为 Kubeflow v1.10.x 开发一个社区驱动的 Helm chart。
  • 与 Kubeflow 组件维护者和 kubeflow/manifests 合作,支持为完整的 Kubeflow 部署创建 Helm charts,使其具有与 Kubeflow 1.10.x 版本当前的 kustomize manifests 类似的功能。
  • 研究可能的系统,以便基于现有的 kustomize manifests 自动生成或维护 charts,从而拥有一个单一的真理来源。

所需/优先技能

  • 容器和 Kubernetes 知识
  • Helm(特别是模板和 chart 创建)
  • Kustomize(非硬性要求,但有帮助)


项目 5:适用于 Kubeflow 的 JupyterLab 插件

组件:Kubeflow Notebooks, Kubeflow Pipelines

可能导师:@ederign, @StefanoFioravanzo

难度:中

规模:350 小时

目标

  • 与新的 IDE 工作组(名称待定 - kubeflow/community#808)合作,为 Kubeflow 创建一个 JupyterLab 插件
  • ElyraKaleJupyter Scheduler 现代化和/或整合到 Kubeflow 的一个单一插件中
  • 最终,该插件可能会与以下组件集成:
    • Kubeflow Pipelines(优先级)
    • Kubeflow Notebooks
    • Kubeflow Model Registry
    • Kubeflow Training Operator
    • 等等

所需/优先技能

  • 用于后端开发和 API 集成的 Python
  • 用于前端开发的 JavaScript/TypeScript
  • 现代 UI 框架(例如 React, Jupyter widgets)经验有帮助
  • 熟悉 Jupyter Notebook, JupyterLab
  • Jupyter 扩展开发经验有帮助


项目 6:批处理网关集成

组件:Kubeflow Spark Operator

可能导师:@Shekharrajak, @lresende, @yuchaoran2011, @andreyvelich

难度:高

规模:350 小时

目标

  • 批处理网关 (BPG) 与 Kubeflow 集成,用于在多个集群中提交、监控和管理 Spark 应用 (kubeflow/spark-operator#2422)
  • 分析、设计、规划和执行 Spark 作业执行策略
    • 评估直接在 Kubeflow Notebook 中运行 Spark 内核与利用批处理网关提交作业之间的权衡。
    • 评估 Kubeflow SDK 和 Notebook 环境的云原生设计,以确定最大限度地提高效率、可伸缩性和可用性的 Spark 集成最佳方法。
    • 就是否在 notebooks 中支持 Spark 内核、使用 BPG 或实施混合方法以增强用户体验做出明智的决定。
  • 自动化作业路由和可伸缩执行
    • 使用 BPG 实现动态工作负载路由,以根据集群负载、资源可用性和工作负载优先级自动分发 Spark 作业。
    • 与 Spark Operator 集成,优化资源分配,最大限度地减少执行延迟,并确保万亿字节规模机器学习和数据处理工作负载的有效扩展。
  • 增强的用户 API 和 Notebook 集成
    • 为 Kubeflow notebooks 开发一个 Python SDK,使用户能够通过 BPG REST API 提交、管理和监控 Spark 作业,从而实现轻量级、可伸缩的解决方案。
    • 通过提供直观的 API 来抽象复杂的作业管理操作,确保无缝的用户体验,使数据科学家和 ML 工程师更容易在工作流中进行实验和迭代
  • 全面的调试和性能监控
    • 通过将 Spark UI、日志记录和监控工具集成到 Kubeflow 中,启用全面的调试功能,允许用户可视化 Spark DAGs、任务和执行阶段。
    • 实施集中式日志记录和基于 Prometheus 的监控,提供跨集群的 Spark 作业性能实时洞察。
    • 确保用户能够有效地分析作业执行,检测瓶颈,并在 Kubeflow 中优化数据处理和 ML 工作流。
    • 注意:大多数日志记录 API 必须开箱即用地利用 BPG 或 Spark 的能力 - 但我们需要文档记录并向用户展示示例。
  • 全面的文档和用户指南,以帮助用户有效利用新功能。

所需/优先技能

  • 精通 Python、Java 并熟悉 SDK 开发。
  • 具有 Kubernetes 经验和管理容器化应用。
  • 理解 Apache Spark 及其在 Kubernetes 集群上的部署。
  • 熟悉 RESTful API 开发和集成。
  • 具有监控工具和日志记录框架经验有帮助。


项目 7:LLM Blueprints 的 GPU 测试

组件:Kubeflow Trainer (Training Operator)

可能导师:@andreyvelich, @varodrig

难度:中

规模:350 小时

目标

所需/优先技能

  • GitHub Actions
  • Kubernetes
  • PyTorch
  • Python


项目 8:支持 JAX 和 TensorFlow 训练运行时

组件:Kubeflow Trainer (Training Operator)

可能导师:@Electronic-Waste, @XshubhamX, @andreyvelich

难度:高

规模:350 小时

目标

所需/优先技能

  • Go
  • Kubernetes
  • JAX
  • TensorFlow


项目 9:将 Kubeflow Trainer 模型导出到 Kubeflow Model Registry

组件:Kubeflow Trainer (Training Operator), Kubeflow Model Registry

可能导师:@tarilabs, @franciscojavierarceo

难度:高

规模:350 小时

目标

  • 将 Kubeflow Trainer 与 Kubeflow Model Registry 集成 (kubeflow/trainer#2438)
    • Trainer 已经实现了模型和数据集的初始化器,未来将支持模型导出器。
    • 通过支持将模型注册表作为导出器的目的地之一,Trainer 将更深入地与 Kubeflow 生态系统集成。

所需/优先技能

  • Kubernetes
  • Go
  • YAML
  • Python


项目 10:在 Kubeflow Trainer 中支持 Volcano 调度器

组件:Kubeflow Trainer (Training Operator)

可能导师:@Electronic-Waste, @rudeigerc

难度:高

规模:350 小时

目标

  • 将 Volcano 调度器与 Kubeflow Trainer 集成 (kubeflow/trainer#2437)
    • 目前,Trainer 不支持 Volcano 进行调度。
    • 由于 Volcano 是一个广泛应用于 AI 工作负载的调度器,如果我们将其集成到 Trainer 中,它可以为 Trainer 提供更多 AI 特定的调度能力

所需/优先技能

  • Kubernetes
  • Go
  • Volcano


项目 11:为 Kubeflow Pipelines 后端支持 Postgres

组件:Kubeflow Pipelines

可能导师:@rimolive, @shivaylamba

难度:中

规模:175 小时

目标

  • 在 Kubeflow Pipelines 中实现对 PostgreSQL 作为 MySQL/MariaDB 替代方案的支持 (kubeflow/pipelines#9813)
    • Kubeflow Pipelines 必须将管道、实验、运行和 artifacts 的信息存储在数据库中。目前,它只支持 MySQL/MariaDB 数据库。
    • 我们计划支持 PostgreSQL 作为 MySQL/MariaDB 的替代方案,以便用户能够重用现有的数据库,并且 PostgreSQL 将成为支持多个数据库的一个很好的用例。

所需/优先技能

  • Kubernetes
  • Python
  • Go
  • YAML

项目 12:利用 LLM 增强 Kubeflow 文档

组件:Kubeflow Website

可能导师:@franciscojavierarceo, @chasecadet, @shravan-achar, @Shekharrajak, @varodrig

难度:高

规模:350 小时

目标

  • 利用 LLM 改进 Kubeflow 文档:(kubeflow/website#4025)。
    • 探索其他 OSS 社区如何利用 LLM 与用户文档。
    • 探索使用 LLM 改进现有 Kubeflow 文档或使用 LLM 帮助解答用户问题的可能性。

所需/优先技能

  • JavaScript
  • Python
  • HTML
  • Netlify
  • Hugo

反馈

本页面有帮助吗?


最后修改时间:2025年3月31日:gsoc: add proposal guide to 2025 page (#4070) (44cb9ba)