前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Llama2.c 学习笔记1: 概要&体验

Llama2.c 学习笔记1: 概要&体验

原创
作者头像
flavorfan
修改2023-08-04 12:45:45
2.2K0
修改2023-08-04 12:45:45
举报
文章被收录于专栏:范传康的专栏范传康的专栏

llama2.c 还登上了 Github 的热门趋势榜首,最近这周时间花了一点时间研究llama2.c,应景写一个学习笔记吧。

1. Why ?

这个repo大火原因有一下几点:

  • 源自meta llama2 模型的大火;经热心群众评测是最接近gpt3.5的开源LLM;它是目前唯一可以做到function Call的Open LLM。
  • 源自作者:Andrej Karpathy;他是open ai chatgpt核心成员,热心于深度学习AI布道,擅长于深入浅出通过手搓tiny model讲清楚大模型的原理;比如“Let's build GPT: from scratch, in code, spelled out.”有288万的播放量,通过构建一个tiny gpt阐述gpt的基本原理,寓教于行(可运行,完整的架构)。
  • 构建模型、训练、推理、微调一体的框架;相比llama.cpp 专注cpp实现模型的推理;llama2.c有利用基本transformer块构建model参考代码、有tinystory的数据集以及预处理token的代码以及训练的代码;有c实现的推理引擎代码;在学习层面更有价值,并且更具有实际应用的扩展性。
  • 可以转换llama模型为用;llama2.c提供一个脚本可以把meta llama-2模型转为自己能够运行的格式,一方面打开了格局,可以引入外部的模型;另外在模型存储格式转换、运行引擎本质打开了大公司专有的缺口
  • 代码量小;目前基本看就Andrej一个维护者,才几十个commit,代码量不大,可以深入理解,也是学习LLM机制的道路。

目标

Llama2.c涉及LLM微调、模型构建、推理端末部署(量化、硬件加速)等众多方面,是学习研究Open LLM的很好切入点,计划如下:

1)Setup&体验:拉下代码,根据README跑一遍流程,写一个“概要&体验”;

2)Code Understand:打算从模型构建、train过程、模型转换、推理引擎几个方面深入阅读理解;

3)使用其他场景+数据重复过程,加深理解。

希望下半年自由时间更多点。

2.Feel the magic

2.1 编译run.c为推理引擎

代码语言:javascript
复制
 gcc -O3 -o run run.c -lm

以上为ubuntu 22环境,如果是centos环境,

代码语言:javascript
复制
gcc -O3 -std=c11 -o run run.c -lm

并且run.c修改如下

代码语言:javascript
复制
// #include <time.h> for centos
#include <linux/time.h>

2.2 拉取模型推理

提供OG/15M,44M,110M的基础模型。

1) 15M Model run

2) 44M Model run

3) 110M Model run

总结

基本都在普通笔记本程跑了出来,token/second 从60到7;这是没有大的优化,以及单线程C跑的结果,未来可期。

3. 转换模型

转换meta提供的 llama-2-7B模型,可以通过脚本完成

运行(非常慢,大概一分钟一个token,后来换了台强大点机器10s左右一个token)

4.其他

训练比较麻烦,开始python 3.11不支持torch compile,转为python 3.9;然后没有gpu不支持cuda,又mem比较小;目前还没有完整跑出来一个。

资源

1)Let's build GPT: from scratch, in code, spelled out. - YouTube

2)karpathy/llama2.c: Inference Llama 2 in one file of pure C (github.com)

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. Why ?
    • 目标
    • 2.Feel the magic
      • 2.1 编译run.c为推理引擎
        • 2.2 拉取模型推理
          • 1) 15M Model run
          • 2) 44M Model run
          • 3) 110M Model run
          • 总结
      • 3. 转换模型
        • 4.其他
        • 资源
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档