项目描述:
让 Baby LLaMA 2 运行在 Milk-V Duo 这样的小板子上是很有挑战的事情。本次竞赛旨在提升 Baby LLaMA 2 在 Milk-V Duo 平台上的性能,目标是实现更高的每秒 Token 处理速度。参赛者需要运用轻量级技术和编译器优化策略,结合麦克风语音输入或命令行输入提示词等多种方式,开发一个能够讲故事的机器人 Demo。该 Demo 应通过扬声器进行输出,并可借鉴小米米兔讲故事机器人的原型设计。
产出及评分要求:
- 评审标准将聚焦于正确性和性能两个方面,赛题给定相同输入,分别通过基准测试对参赛作品的正确性和性能打分。
- 正确性评分使用参赛作品的输出和基准输出的差分测试结果衡量,从而反映出参赛作品优化技术对模型推理精度的影响。性能评分使用每秒钟计算的 Token 数量衡量,这直接反映出参赛作品的性能优化效果。
- 文本转语音(TTS)部分单独计算时间。
- 最终,组委会将根据参赛作品的正确性和性能的综合表现进行评分,两者将按照赛题评审委员会设定的加权比例计算出最终得分,得分最高的参赛者将获得胜利。
提交说明
- 提交仓库链接为 https://github.com/plctlab/rvspoc-s2311-llama2
- 请以 Pull Request 的形式,将结果提交到上述仓库中。
- 提交时,请详细说明复现所需要的软件环境,可以参照「验收说明」内默认软件环境做修改。
- 在比赛期间,所有经过优化过的内容的提交方式可以有:
- 二进制的形式
- 加密源码的形式(加密信息需通过邮件发送至 rvspoc@cyberlimes.cn)
- 源码形式
- 最终结果公布后,需对提交内容进行完整开源。
- 组委会会在比赛结束后(即 2024 年
2 月 16 日2 月 29 日以后),关闭赛题仓库的 Pull Request 通道,并开始对结果进行验收。
验收说明
- 验收平台为 Milk-V Duo, 64M 版本,
- 同规格 TF 卡
- 不使用 Swap 文件/分区
- 不进行 CPU 超频
- 无额外散热
- 对 Duo 上的系统不限
- Baby Llama 2 对应的仓库为: https://github.com/karpathy/llama2.c
- 组委会会在条件 1 的基础上,使用如下软件环境,将经过多次跑分所产生的平均值作为基线,与选手优化过后的数据进行比较:
- Baby Llama 2 二进制使用上述仓库下原始未修改 C 文件以
-Ofast
所编译的。 - 编译器使用 Milk-V 官方提供的交叉编译工具链(版本待定)
- 系统使用默认的 Milk-V Duo 系统镜像(版本待定)
- 统一的输入及参数(具体待定)
- 以下大语言模型文件:
- 针对纯 FP32 推理(即使用 run.c 文件),使用 Baby LLama 2 仓库下提供的 15M 规模参数的模型(纯 FP32 模型)
- 其 sha256sum 为:cd590644d963867a2b6e5a1107f51fad663c41d79c149fbecbbb1f95fa81f49a
- Baby Llama 2 二进制使用上述仓库下原始未修改 C 文件以
- 正确性评定说明:因为针对固定输入参数(确定随机数的),输出内容为固定值,所以组委会将会与在条件 4 下生成的 run.c 二进制所输出内容进行比对,如果产生差异,会以人类常用语法进行判断,语法正确不扣分,语法错误扣分,扣分比例待定。
- 性能评定说明:每个提交结果,会运行 30 次,在去掉有明显差异的最高分和最低分后,取平均值记录。
- 如果完成了文本转语音(TTS)功能,则根据实现程度,额外加分,加分比例待定。
- 最后给出的结果,会有针对每一项的详细说明。
- 根据赛题的实际优化进展,针对未考虑到的方面,随着比赛进程的推进可能会有调整,请保持对赛事网站的关注,最终解释权归属于比赛的赛题评审委员会。
知识产权及开源协议说明:
所有参赛结果要求开源,并提交至主办方指定仓库。参赛者(作者)持有作品的所有权。主办方鼓励参赛者将结果回馈贡献至 upstream。
相关资源
- 赛题演示直播回放 & 文档: plctlab/rvspoc:archives/2023/Docs/S2311