JuliaGenAI 项目

JuliaGenAI Logo

JuliaGenAI 是一个专注于推动生成式 AI 研究并寻求其在 Julia 编程语言生态系统中的应用的组织。我们的社区由对利用 Julia 的高性能能力推动生成式 AI 发展充满热情的 AI 研究人员、开发人员和爱好者组成。我们致力于创建利用 Julia 在处理复杂 AI 挑战方面的独特优势的创新工具和解决方案。

与其他组织有高度重叠,您可能也对此感兴趣

大型语言模型项目

项目 1:为 llama2.jl 添加 GPU 支持

项目概述: Llama2.jl 是 Llama 架构的 Julia 原生端口,最初基于 llama2.c。本项目旨在通过使用 KernelAbstraction.jl 实现 GPU 支持来增强 Llama2.jl,从而显著提高其性能。

导师: Cameron Pfiffer

项目难度: 困难

预计持续时间: 350 小时

理想候选人概况

项目目标和交付成果

项目 2:Llama.jl - 低级 C 接口

项目概述: Llama.jlllama.cpp 的 Julia 接口,如今为许多开源工具提供支持。它目前仅利用高级二进制文件。本项目专注于为 llama.cpp 生成低级 C 接口,从而实现对内部模型状态的原生访问,这将为令人难以置信的研究机会和有吸引力的应用(例如,约束生成、新颖的采样算法等)打开大门。

导师: Cameron Pfiffer

项目难度: 困难

预计持续时间: 175 小时

理想候选人概况

项目目标和交付成果

项目 3:增强 AIHelpMe.jl 的知识库

项目概述

Julia 作为一种高性能语言,在 GenAI 训练数据集中必不可少,但代表性不足。AIHelpMe.jl 是我们雄心勃勃的倡议,通过提供这种知识,通过上下文学习(RAG,提示)来增强大型语言模型 (LLM) 对 Julia 的理解,从而弥合这一差距。本项目专注于使用最新的、内容丰富的 Julia 信息扩展嵌入式知识库,并优化问答管道,以提供准确、相关的答案。通过将目标 Julia 代码片段和文档注入查询中,AIHelpMe.jl 旨在显著提高生成式 AI 对全球 Julia 开发人员的准确性和实用性。

导师: Jan Siml / JuliaLang Slack 上的 @svilup / Julia Zulip 上的 Jan Siml

项目难度: 中等

预计持续时间: 175 小时

谁应该申请

项目目标和交付成果

  1. 知识库扩展: 扩展 AIHelpMe.jl 知识库,以包含来自关键 Julia 生态系统的全面、最新的资源,例如 Julia 文档网站、DataFrames、Makie、Plots/StatsPlots、Tidier-verse、SciML 等。有关更多详细信息,请参见 GitHub 问题。这种扩展对于丰富与 Julia 编程相关的 AI 生成的响应的上下文和准确性至关重要。

  2. 性能调整: 在黄金问答数据集上实现至少 10% 的准确性和相关性提升,优化 AIHelpMe.jl 问答管道,以提高性能。

项目 4:使用 ColBERT v2 增强 Julia 的 AI 生态系统,实现高效的文档检索

项目概述

通过将 ColBERT v2(一种尖端的文档检索和重新排序框架)引入 Julia 编程世界,深入了解生成式 AI 和信息检索的最前沿。该倡议不仅旨在将 ColBERT v2 转换为在 Julia 中原生运行,而且还旨在将其与 AIHelpMe.jl(以及其他下游库)无缝集成。这种集成有望通过提供本地托管的、更具成本效益且高效的文档搜索功能来彻底改变用户与 AI 的交互方式。通过使这种复杂的技术能够在本地运行,我们减少了对大型商业平台的依赖,确保了对数据的隐私和控制,同时保持最小的内存开销。

导师: Jan Siml JuliaLang Slack 上的 @svilup / Julia Zulip 上的 Jan Siml

项目难度: 困难

预计持续时间: 350 小时

理想候选人概况

项目目标和预期成果

  1. ColBERT v2 的原生 Julia 翻译: 成功将 ColBERT v2 移植到 Julia 生态系统中运行。重点仅关注 ColBERT v2 的索引和检索功能,例如,您在 示例用法部分 中看到的检索和索引片段。有关指导,请参考现有的索引和检索示例。

  2. 与 AIHelpMe.jl 集成: 无缝集成到 AIHelpMe.jl 的一个嵌入和检索后端中(在 PromptingTools.jl 中定义)。

  3. 包注册和文档: 在 Julia 生态系统中注册功能完备的包,并提供全面的文档和使用示例,以促进社区的采用和贡献。

项目 5:使用高级模式支持和功能增强 PromptingTools.jl

项目概述

PromptingTools.jl 是 Julia GenAI 生态系统中的一个关键工具。本项目是一项协同努力,通过整合更广泛的提示模板和模式来扩大 PromptingTools.jl 的实用性和适用性,从而满足各种 LLM 后端的需要。该倡议直接对应于 PromptingTools.jl 的 GitHub 上的 问题 #67问题 #68问题 #69。通过增强库的功能以支持 Ollama 后端的结构化提取,并引入更多标准化的提示模式,我们的目标是使 PromptingTools.jl 成为参与开源大型语言模型 (LLM) 的开发人员更强大、不可或缺的资源。

导师: Jan Siml / JuliaLang Slack 上的 @svilup / Julia Zulip 上的 Jan Siml

项目难度: 中等

预计持续时间: 175 小时

理想候选人概况

项目目标和交付成果

  1. 模式集成和功能增强: 实施和集成各种常见的提示模式(有关详细信息,请参见 问题 #67)。开发 renderaigenerate 函数的方法,这些方法能够轻松使用和渲染这些模板,并附带全面的文档、示例和测试。

  2. 结构化提取支持: 为 Ollama 后端添加 aiextract 支持,因为目前不支持此功能。这包括创建方法和模板,这些方法和模板能够促进结构化数据提取,从而扩展使用案例并提高通过 PromptingTools.jl 与 AI 模型交互的效率。有关详细信息,请参见 问题 #68。将功能扩展到其他后端是一个加分项。

  3. 支持常见后端: 扩展 PromptingTools.jl 的功能以支持常见的后端,例如 HuggingFace Transformers 和 vLLM,确保该库与各种 LLM 兼容。我们需要为每个后端创建一个示例来演示功能。有关详细信息,请参见 问题 #69

项目 6:扩展 Julia 大型语言模型排行榜

项目概述

作为 Julia 社区的关键资源,Julia LLM 排行榜 对开源模型进行基准测试,以进行 Julia 代码生成。这个增强项目旨在通过整合额外的测试用例,并将基准测试扩展到 Julia 特定的应用,超越代码生成,例如使用黄金问答数据集评估检索增强生成 (RAG) 应用,以及许多其他应用,来扩展排行榜。该倡议旨在解决几个 GitHub 问题,旨在提高排行榜的实用性和准确性,使其成为社区更加不可或缺的工具。参与者将有机会加深对生成式 AI 的了解,同时为一个项目做出贡献,该项目增强了 Julia 社区选择最有效的 AI 模型来满足其需求的方式。

导师: Jan Siml / JuliaLang Slack 上的 @svilup / Julia Zulip 上的 Jan Siml

项目难度: 容易/中等

预计持续时间: 175 小时

理想候选人概况

项目目标和交付成果

  1. 测试用例扩展: 开发和整合各种测试用例,以更全面地评估 LLM 在 Julia 代码生成方面的能力,提高排行榜的健壮性和可靠性。有关详细信息,请参见 此处

  2. 基准测试扩展: 扩展排行榜的基准测试功能,以包括对 RAG 应用(问答系统)的评估,重点关注它们对 Julia 编程语言的了解,以及其他 Julia 任务,例如“帮我加速这段代码”、“如何以更惯用的方式编写这段代码”等。与项目 3 有轻微重叠,但是,重点在这里是确定具有强大功能的、有前景的本地托管模型。有关详细信息,请参见 此处

  3. 文档和推广: 在一系列博客文章中记录调查结果和最佳实践,以分享见解、突出显示表现最佳的模型,并指导社区如何在 Julia 生态系统中有效地利用生成式 AI。

项目 7:LLM 的反事实(模型可解释性生成式 AI

项目概述: 本项目旨在扩展 CounterfactualExplanations.jl 的功能,使其适用于大型语言模型 (LLM)。作为基础,还需要实现对 LLM 的特征属性计算的支持。该项目将为 TaijaJuliaGenAI 做出贡献。

导师: Jan Siml (JuliaGenAI) 和 Patrick Altmeyer (Taija)

项目难度: 中等

预计持续时间: 175 小时

理想候选人概况

项目目标和交付成果

如何联系我们

我们很乐意听取您的想法,并与您讨论潜在的项目。

最简单的方法可能是加入我们的 JuliaLang Slack 并加入 #generative-ai 频道。您也可以通过 Julia Zulip 联系我们,或在我们的网站 JuliaGenAI 上发布 GitHub Issue。