Neurips 1 LLM 1 GPU 挑战赛
本仓库为有兴趣参加 NeurIPS 1 LLM 1 GPU 竞赛 的人提供了一个起点。它详细阐明了提交内容的具体要求、评估方式和提交方法。
总的来说,您需要贡献的关键内容是一个 Dockerfile
,它将作为一个可复制的工件,供我们测试您的提交内容。Dockerfile
应包含运行您提交内容所需的所有代码和依赖项。我们将使用此 Dockerfile
构建一个 docker 镜像,然后针对一组任务运行它,这些任务将是 HELM 任务的一个子集。
您的 Dockerfile
将公开一个简单的 HTTP 服务器,需要实现 /process
和 /tokenize
两个端点。我们将构建该 Dockerfile
并期望它启动一个 HTTP 服务器。一旦服务器启动,我们将通过 HELM 向其发送请求并记录您的结果。
为确保提交的内容足够出色,您应该遵循以下步骤:
- 从这里选择批准的 LLM 和数据集
- 从 sample-submissions 中的一个开始,确保它能够运行
- 在您自己的 40Gb A100 或 4090 上进行本地评估,如果您没有资金购买这些设备,请查看 GPU 资金 部分了解更多选项
- 一旦您有了可运行的内容,可以在我们的 Discord 排行榜 上提交,看看您与其他参赛者相比如何
- 在比赛截止日期,确保您的 GitHub 仓库中有您希望我们运行的最终评估 Dockerfile,请参考时间表
- 如果您的参赛作品进入候选名单,我们将与您合作,使用另一个微调 Dockerfile 复现您的所有工件
目录
批准的 LLM 和数据集
LLM 领域存在复杂的许可证问题,这可能会使确定在竞赛中允许使用的内容变得困难。为了简化这个过程,我们列出了一些我们知道可以安全使用的模型和数据集,您可以在这里找到它们。
话虽如此,LLM 领域发展迅速,所以如果您想使用不在我们列表中的数据集或模型,请务必在 https://discord.gg/XJwQ5ddMK7 上询问我们。
提交
本仓库中的提交是根据 open_api
规范设置 HTTP 服务器的基本实现。它包括一个基于 Lit-GPT 和 open-llama 权重构建的示例解决方案,参赛者可以参考或根据需要进行修改。
您可以使用提供的代码作为参考或起点来实现您自己的方案。main.py
文件包含了一个简单的 FastAPI 服务器,您可以根据需要进行修改。
您可以在这里找到 Lit-GPT 提交示例,在这里找到 llama-recipes 提交示例,以及如何在本地运行每个示例的说明。
确保您的最终提交只有一个 Dockerfile
,并且您的权重文件不直接包含在仓库中,它们需要在 docker 构建过程中或运行时下载。
使用 HELM 在本地评估您的模型
每个提交都将使用 HELM 进行测试,HELM 是一个标准套件,用于在广泛的数据集上评估 LLM。本次竞赛将利用 HELM 作为评估基础设施。组织者将使用 HELM 中的标准 STEM 任务,尽管我们会保密具体的任务集,此外我们还将包括一些目前不在 HELM 中的保留任务。
在处理您的提交 Dockerfile
时,您会希望在本地进行测试,以确保您的贡献按预期工作,然后再提交。
HELM 通过在配置文件中添加一行来轻松添加新的评估数据集,因此请确保尝试他们提供的不同数据集,并随时贡献您自己的数据集。
要了解如何使用 HELM 测试您的提交,请按照这里的说明进行操作。
微调
未经调整的基础模型可能无法给出令人满意的结果,在这种情况下,您可能会发现进行一些额外的微调很有帮助。有许多框架可以做到这一点,但我们创建了两个示例提交来实现这一目的:
创建您自己的提交模板
请注意,我们提供了两个示例提交,我们的评估基础设施是通用的,只假设有一个 HTTP 客户端,所以您可以使用我们建议的 Python 微调框架,也可以使用任何您喜欢的非 Python 框架。
本仓库中的 openapi.json
文件包含了竞赛 API 的 OpenAPI 规范。参赛者可以使用此规范来了解 API 端点、请求和响应结构,以及与竞赛平台交互的总体要求。
OpenAPI 规范提供了一种标准化的方式来描述 API,使参赛者更容易开发自己的解决方案并与竞赛基础设施无缝集成。
Discord 排行榜
Lightning AI 为我们构建了一个基于 Discord 的排行榜。您可以在 Discord 上通过其名称 evalbot#4372
找到它。
您可以通过向它发送包含您的示例提交的压缩文件并发送消息 eval A100
或 eval 4090
来与它互动。有关该机器人的更多详细信息,请点击这里。
一旦您提交,机器人将通知您提交是否失败或成功,几小时后将公开发布您的结果。如果您处于队列的顶部,评估预计需要 1-2 小时,但根据队列的大小,这可能会更长。因此,请注意不要影响其他试图使用有限硬件资源的参赛者,并确保您的提交首先在本地运行正常。
您的提交对其他参赛者来说将保持私密。
端到端流程在这里有详细描述。
最终排行榜提交
当您注册参加比赛时,您需要创建一个 GitHub 仓库。当提交截止日期到达时,请确保您的 GitHub 仓库中有一个 Dockerfile
,如果位置不明确,请在您的 README.md
中告知我们。组织者将使用您的 Dockerfile
并按原样运行它,计算基线评估分数。这一步的主要目的是筛选出损坏的提交或无法超越未经微调的示例提交的提交。
截止日期是 2023 年 10 月 25 日,重要日期列在这里。
评估最终提交
一旦组织者确定了一份强有力的提交短名单,我们将直接联系您,索要另一个可以复现所有工件的 Dockerfile
。这份短名单中表现最佳的提交将赢得比赛,并受邀在我们的 NeurIPS 工作坊上展示他们的工作。
GPU 资金
AWS 慷慨地同意为参加 LLM 效率竞赛的 25 个团队提供价值 500 美元的 AWS 积分。您可以从可用的硬件中选择进行实验,然后再做出最终提交。要符合资格,请务必在 https://llm-efficiency-challenge.github.io/submission 上注册,并在您的 README.md
中写一份简短的提案,并将 @jisaacso 添加到您的仓库中,他将审查您的提案。
我们将优先考虑提出认真提案的前几支队伍。祝你好运!
还有一些获得免费 GPU 的其他方式,人们已经在 Discord 上发布了这里,您可以在 https://cloud-gpus.com/ 上比较 4090 和 A100 的云端价格。