论坛首页 综合技术论坛

Llama3大模型原理代码精讲与部署微调评估实战

浏览 118 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2024-10-21  
Llama3大模型原理代码精讲与部署微调评估实战
学习地址1:https://pan.baidu.com/s/1GAYYD5IS5xSZOoFO6gqRpg 提取码:dq13
学习地址2:https://share.weiyun.com/rYgYyvna 密码:4pux8u

Llama 3 大模型 使用的是 标准的 仅解码 Decoder-Only 式的 Transformer 架构 ; 与之相对的 ChatGPT 使用的是 GPT ( Generative Pre-trained Transformer ) 架构 , 包含了编码器 ( Encoder ) 和 解码器 ( Decoder ) 的特性 ;

Llama 3已经在多种行业基准测试上展现了最先进的性能,提供了包括改进的推理能力在内的新功能,是目前市场上最好的开源大模型。
在架构层面,Llama3选择了标准的仅解码(decoder-only)式Transformer架构,采用包含128K token词汇表的分词器。Llama 3在Meta自制的两个24K GPU集群上进行预训练,使用了超过15T的公开数据,其中5%为非英文数据,涵盖30多种语言,训练数据量是前代Llama 2的七倍,包含的代码数量是Llama 2的四倍。

llama2和llama3有什么区别?

llama3与llama2的模型架构完全相同,只是model的一些配置(主要是维度)有些不同,llama2推理的工程基本可以无缝支持llama3。在meta官方的代码库,模型计算部分的代码是一模一样的,也就是主干decoder only,用到了RoPE、SwiGLU、GQA等具体技术。

通过对比huggingface模型中的config.json,首先可以看出,模型都是 LlamaForCausalLM 这个类,模型结构不变。具体差别在于:
① vocab_size:32000 ->128256。词汇表的扩大,导致embedding参数的增大 (128256-32000)*4096*2 Byte=752MB,另外模型最后一层lm_head的输出维度就是vocab_size,所以lm_head的参数同样增大752MB,总计带来模型增大1504MB;
② max_position_embeddings:4096->8192。也即context window扩大了,训练时输入的序列长度增大,推理能支持的序列长度增大,没有实际计算的差别。
③num_key_value_heads:32 -> 8。即使用了GQA,因为num_attention_heads维持32,也就是计算时key、value要复制 4份。参数量会下降,K_proj、V_proj的参数矩阵会降为llama2-7B的1/4,共计减少 32*4096*4096*2*2/4*3 Byte(1536MB)
④ intermediate_size:11008->14336。只是FFN时的中间维度变了,计算范式不变。参数量增大:32*4096*(14336-11008)*3*2/1024/1024 Byte (2496MB)

LLaMA是开源模型的顶流,众多国内的大型模型均源于它的构建!它通过人类反馈的强化学习 (RLHF) 进行了微调。它是一种生成文本模型,可以用作聊天机器人,并且可以适应各种自然语言生成任务,包括编程任务。从其分享的基准测试可以看出,Llama 3 400B+ 的实力几乎媲美 Claude 超大杯以及新版 GPT-4 Turbo,虽然仍有一定的差距,但足以证明其在顶尖大模型中占有一席之地。
论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics