https://github.com/davidsajare/david-share.git
下的:Deep-Learning/Phi-3.5-MoE-and-Mini-Fine-tuning,本文中不再赘述代码实现。
欢迎给repo点亮Star,您的点赞是作者持续创作的动力。
https://huggingface.co/microsoft/Phi-3.5-MoE-instruct
Phi-3.5 MOE是微软新发布的41.9B参数量的模型。模型中有16个专家,同时运行的decoder专家是两个。
模型分析:Phi-3.5-MoE-instruct
基本信息
模型名称: Phi-3.5-MoE-instruct
架构: PhiMoEForCausalLM
模型类型: phimoe
Transformer 版本: 4.43.3
配置参数
attention_bias: true
attention_dropout: 0.0
hidden_act: silu (Swish activation function)
hidden_dropout: 0.0
hidden_size: 4096
initializer_range: 0.02
input_jitter_noise: 0.01
intermediate_size: 6400
lm_head_bias: true
max_position_embeddings: 131072
num_attention_heads: 32
num_experts_per_tok: 2
num_hidden_layers: 32
num_key_value_heads: 8
num_local_experts: 16
original_max_position_embeddings: 4096
output_router_logits: false
rms_norm_eps: 1e-05
rope_theta: 10000.0
router_aux_loss_coef: 0.0
router_jitter_noise: 0.01
sliding_window: 131072
tie_word_embeddings: false
torch_dtype: bfloat16
vocab_size: 32064
特殊配置
auto_map: 自动映射配置
AutoConfig: configuration_phimoe.PhiMoEConfig
AutoModelForCausalLM: modeling_phimoe.PhiMoEForCausalLM
Token 配置
bos_token_id: 1
eos_token_id: 32000
ROPE (Rotary Position Embedding) Scaling
long_factor 和 short_factor: 这些参数用于调整长短位置嵌入的比例。
long_mscale 和 short_mscale: 这些参数用于调整长短位置嵌入的缩放比例。
type: longrope
关键特性
多专家模型 (MoE): 该模型使用了多专家机制,每个token有2个专家,且总共有16个本地专家。
大规模位置嵌入: 最大位置嵌入为131072,支持长文本处理。
高维隐藏层: 隐藏层大小为4096,且有32层隐藏层。
多头注意力机制: 使用了32个注意力头和8个键值头。
低丢失率: attention_dropout和hidden_dropout均为0.0,表明模型在训练时没有使用dropout。
高效初始化: 使用了0.02的初始化范围,确保模型参数在训练初期的稳定性。
bfloat16数据类型: 使用bfloat16数据类型,兼顾了计算效率和精度。
应用场景
文本生成: 该模型适用于生成自然语言文本。
多语言支持: 由于其多语言标签,模型可以处理多种语言的文本。
对话系统: 适用于构建对话系统和聊天机器人。
代码生成: 由于其代码标签,模型也可以用于生成代码片段。
总结
Phi-3.5-MoE-instruct 是一个强大的多专家模型,具有高维隐藏层和多头注意力机制,适用于多种自然语言处理任务。其大规模位置嵌入和低丢失率使其在处理长文本和复杂任务时表现出色。
那么,微调Phi-3.5 MOE,需要什么GPU呢?通过QLoRA,在单卡H100上就可以完成了。