llama2.go

llama2.go

Go语言实现的LLaMA-2本地推理引擎

llama2.go项目实现了LLaMA-2模型的本地推理。该引擎使用纯Go语言编写,源于llama2.c项目。它通过命令行界面实现模型加载和文本生成,并采用并行计算、循环展开等技术优化性能。在Apple M1芯片上,llama2.go能够达到39.28 tok/s的推理速度。作为一种轻量高效的方案,该项目为开发者提供了便捷的LLaMA-2本地部署选择。

llama2.goGo语言大语言模型推理性能优化Github开源项目
<p align="center"> <img width="300" height="300" src="https://github.com/nikolaydubina/llama2.go/assets/2933061/6e04ff62-2def-44eb-ba83-25e0d3b92644"> </p>

llama2.go

Go 报告卡 codecov Go 参考 OpenSSF 记分卡

这是Meta推出的最先进开源大型语言模型LLaMA-2的原生Go推理实现,截至2023年8月19日。 它是从github.com/karpathy/llama2.c@bd18228移植而来,移植日期为2023年8月19日。 可能会添加额外功能。

如何运行?

  1. llama2.c获取tokenizer.bin
  2. 获取权重文件 wget https://huggingface.co/karpathy/tinyllamas/resolve/main/stories110M.bin
  3. go install github.com/nikolaydubina/llama2.go@latest
  4. llama2.go -checkpoint=stories110M.bin -prompt="good morning said sun to trees"
$ llama2.go -checkpoint=stories110M.bin -prompt="good morning said sun to trees" 2023/07/29 09:30:22 配置: llama2.Config{Dim:768, HiddenDim:2048, NumLayers:12, NumHeads:12, NumKVHeads:12, VocabSize:32000, SeqLen:1024} <s> good morning said sun to trees: "让我们组织一次行动!" 树木拍打着树枝问道:"我们要做什么?" 獾笑着回答:"我们要一起建造一个树屋!" 树木们拿来木块开始建造。獾将钉子钉入小木块,而树木们将木块拼接在一起,形成一个坚固的基础。 当他们完成树屋时,獾和树木们坐在里面。獾说:"看看我们把它建得多漂亮!" 树木们微笑着点头。它们说:"非常漂亮!谢谢你帮我们组织这次行动。" 然后他们在这个漂亮的树屋里幸福地生活在一起! <s> 从前,有个叫蒂米的男孩。蒂米很饿,想吃饭。他问妈妈:"我们晚餐吃什么?"他妈妈说:"我们吃鸡肉和米饭。"蒂米说:"太好了!我喜欢吃鸡肉和米饭。" 他们正在吃饭时,蒂米的爸爸进来说:"嘿,蒂米,你想吃完饭后看部电影吗 2023/07/29 09:30:58 达到的令牌/秒: 28.619646

性能

系统模型llama2.cllama.cppllama2.go1llama2.go2
Apple M1 Max 10CPU 64GBstories110M101.84 tok/s10.47 tok/s39.28 tok/s
Apple M1 Max 10CPU 64GBllama2_7b1.83 tok/s20.36 tok/s0.87 tok/s
Apple M1 Max 10CPU 64GBllama2_13b(段错误)11.71 tok/s0.38 tok/s

优化

  • Transformer步骤并行化
  • 循环展开
  • 矩阵内并行化
  • (待完成) SIMD
  • (待完成) 量化

所有优化都经过Fuzz测试,与基本算法进行对比,基本算法本身也经过测试。 要禁用优化,请更新llama2/transformer.go的导入包为无优化包并重新构建。

相关工作和参考

Footnotes

  1. 无线性代数优化

  2. 所有线性代数优化

编辑推荐精选

讯飞智文

讯飞智文

一键生成PPT和Word,让学习生活更轻松

讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。

AI办公办公工具AI工具讯飞智文AI在线生成PPTAI撰写助手多语种文档生成AI自动配图热门
讯飞星火

讯飞星火

深度推理能力全新升级,全面对标OpenAI o1

科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。

热门AI开发模型训练AI工具讯飞星火大模型智能问答内容创作多语种支持智慧生活
Spark-TTS

Spark-TTS

一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型

Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。

Trae

Trae

字节跳动发布的AI编程神器IDE

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
咔片PPT

咔片PPT

AI助力,做PPT更简单!

咔片是一款轻量化在线演示设计工具,借助 AI 技术,实现从内容生成到智能设计的一站式 PPT 制作服务。支持多种文档格式导入生成 PPT,提供海量模板、智能美化、素材替换等功能,适用于销售、教师、学生等各类人群,能高效制作出高品质 PPT,满足不同场景演示需求。

讯飞绘文

讯飞绘文

选题、配图、成文,一站式创作,让内容运营更高效

讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。

热门AI辅助写作AI工具讯飞绘文内容运营AI创作个性化文章多平台分发AI助手
材料星

材料星

专业的AI公文写作平台,公文写作神器

AI 材料星,专业的 AI 公文写作辅助平台,为体制内工作人员提供高效的公文写作解决方案。拥有海量公文文库、9 大核心 AI 功能,支持 30 + 文稿类型生成,助力快速完成领导讲话、工作总结、述职报告等材料,提升办公效率,是体制打工人的得力写作神器。

openai-agents-python

openai-agents-python

OpenAI Agents SDK,助力开发者便捷使用 OpenAI 相关功能。

openai-agents-python 是 OpenAI 推出的一款强大 Python SDK,它为开发者提供了与 OpenAI 模型交互的高效工具,支持工具调用、结果处理、追踪等功能,涵盖多种应用场景,如研究助手、财务研究等,能显著提升开发效率,让开发者更轻松地利用 OpenAI 的技术优势。

Hunyuan3D-2

Hunyuan3D-2

高分辨率纹理 3D 资产生成

Hunyuan3D-2 是腾讯开发的用于 3D 资产生成的强大工具,支持从文本描述、单张图片或多视角图片生成 3D 模型,具备快速形状生成能力,可生成带纹理的高质量 3D 模型,适用于多个领域,为 3D 创作提供了高效解决方案。

3FS

3FS

一个具备存储、管理和客户端操作等多种功能的分布式文件系统相关项目。

3FS 是一个功能强大的分布式文件系统项目,涵盖了存储引擎、元数据管理、客户端工具等多个模块。它支持多种文件操作,如创建文件和目录、设置布局等,同时具备高效的事件循环、节点选择和协程池管理等特性。适用于需要大规模数据存储和管理的场景,能够提高系统的性能和可靠性,是分布式存储领域的优质解决方案。

下拉加载更多