Dies ist ein Versuch, eine Open-Source-Implementierung von LFMs zu erstellen. Dies ist offensichtlich nicht das offizielle Repository, da es sich um eine geschlossene Quelle handelt. Ich verlinke unten Artikel, die ich als Referenz verwende. Erfahren Sie mehr über das Modell im Originalartikel
$ 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." )
Eine neuartige neuronale Architektur, die Liquid Neural Networks, Transformer-Aufmerksamkeitsmechanismen und Mixture of Experts (MoE) für verbesserte adaptive Verarbeitung und dynamische Zustandsaktualisierungen kombiniert. Sehr experimentell und früh! Wir arbeiten hier an einem Trainingsskript. Es braucht immer noch einen echten Tokenizer wie den Tokenizer von Lama, aber es ist auf dem Weg dahin. Wenn Sie dabei helfen können, lassen Sie es mich wissen.
Flussdiagramm TB
Unterabschnitt „Flüssigkeitstransformator“
Input["Input Sequence"] --> TL["Transformer Layer"]
Unterabschnitt „Transformerschicht“
Richtung TB
MHA["Multi-Head Attention"] --> LC["Liquid Cell"]
LC --> MOE["Expertenmischung"]
MOE --> LN["Layer Norm + Residuum"]
Ende
Unterabschnitt „Details zur Flüssigkeitszelle“
Richtung LR
HS["Hidden State"] --> WH["W_h Linear"]
Input2["Input"] --> WI["W_in Linear"]
WH -> Add((+))
WI -> Hinzufügen
Hinzufügen -> Act["Aktivierung"]
Act -> LN2["LayerNorm"]
LN2 --> DO["Dropout"]
Ende
Unterabschnitt „MoE-Details“
Richtung TB
Input3["Input"] --> Gate["Gating Network"]
Input3 --> E1["Experte 1"]
Eingabe3 --> E2["Experte 2"]
Eingabe3 --> E3["Experte N"]
Tor -> Kamm["Gewichtete Kombination"]
E1 -> Kamm
E2 -> Kamm
E3 -> Kamm
Ende
TL --> Ausgabe["Ausgabesequenz"]
Ende
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 } " )
Dieses Projekt ist unter der MIT-Lizenz lizenziert. Einzelheiten finden Sie in der LICENSE-Datei.