LFM
1.0.0
这是对 LFM 进行开源实现的尝试,这显然不是官方存储库,因为它是闭源的。我链接下面的论文作为参考。从原始文章中了解有关模型的更多信息
$ pip3 install -U lfm-torch
import torch
from lfm_torch . model import LFModel
from loguru import logger
# Instantiate and test the model
if __name__ == "__main__" :
batch_size , seq_length , embedding_dim = 32 , 128 , 512
token_dim , channel_dim , expert_dim , adapt_dim , num_experts = (
embedding_dim ,
embedding_dim ,
embedding_dim ,
128 ,
4 ,
)
model = LFModel (
token_dim , channel_dim , expert_dim , adapt_dim , num_experts
)
input_tensor = torch . randn (
batch_size , seq_length , embedding_dim
) # 3D text tensor
output = model ( input_tensor )
logger . info ( "Model forward pass complete." )
一种新颖的神经架构,结合了液体神经网络、Transformer 注意力机制和专家混合 (MoE),以增强自适应处理和动态状态更新。非常实验性且早期!我们正在这里编写培训脚本。它仍然需要一个像 llama 的 tokenizer 这样的实际 tokenizer,但它已经实现了。如果您能提供帮助,请告诉我。
流程图TB
子图“液体变压器”
输入[“输入序列”] --> TL[“变压器层”]
子图“变压器层”
方向TB
MHA[“多头注意力”] --> LC[“液体池”]
LC --> MOE[“专家组合”]
MOE --> LN["层范数 + 残差"]
结尾
子图“液体电池详细信息”
方向LR
HS["隐藏状态"] --> WH["W_h 线性"]
输入2["输入"] --> WI["W_in 线性"]
WH --> 添加((+))
WI --> 添加
添加 --> 行动["激活"]
动作 --> LN2["LayerNorm"]
LN2 --> DO["辍学"]
结尾
子图“教育部详细信息”
方向TB
输入3[“输入”] --> 门[“门控网络”]
输入3 --> E1["专家1"]
输入3 --> E2["专家2"]
输入3 --> E3["专家N"]
门 --> 梳["加权组合"]
E1 --> 梳子
E2 --> 梳子
E3 --> 梳子
结尾
TL --> 输出["输出序列"]
结尾
import torch
from loguru import logger
from lfm_torch . liquid_t_moe import LiquidTransformer
# Example usage
if __name__ == "__main__" :
seq_len , batch_size , embed_size = 10 , 2 , 64
num_heads , num_experts , expert_size , num_layers = 8 , 4 , 64 , 6
# Create the model
model = LiquidTransformer ( embed_size , num_heads , num_experts , expert_size , num_layers )
# Example input tensor
x = torch . randn ( seq_len , batch_size , embed_size )
# Forward pass
output = model ( x )
logger . info ( f"Model output shape: { output . shape } " )
该项目已获得 MIT 许可证的许可。有关详细信息,请参阅许可证文件。