Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/kyegomez/MultiModalMamba

A novel implementation of fusing ViT with Mamba into a fast, agile, and high performance Multi-Modal Model. Powered by Zeta, the simplest AI framework ever.
https://github.com/kyegomez/MultiModalMamba

ai artificial-intelligence attention-mechanism machine-learning mamba ml pytorch ssm torch transformer-architecture transformers zeta

Last synced: about 2 months ago
JSON representation

A novel implementation of fusing ViT with Mamba into a fast, agile, and high performance Multi-Modal Model. Powered by Zeta, the simplest AI framework ever.

Awesome Lists containing this project

README

        

[![Multi-Modality](agorabanner.png)](https://discord.gg/qUtxnK2NMf)

# Multi Modal Mamba - [MMM]
Multi Modal Mamba (MultiModalMamba) is an all-new AI model that integrates Vision Transformer (ViT) and Mamba, creating a high-performance multi-modal model. MultiModalMamba is built on Zeta, a minimalist yet powerful AI framework, designed to streamline and enhance machine learning model management.

The capacity to process and interpret multiple data types concurrently is essential, the world isn't 1dimensional. MultiModalMamba addresses this need by leveraging the capabilities of Vision Transformer and Mamba, enabling efficient handling of both text and image data. This makes MultiModalMamba a versatile solution for a broad spectrum of AI tasks.

## Install
`pip3 install mmm-zeta`

## Usage

### `MultiModalMambaBlock`

```python
# Import the necessary libraries
import torch
from torch import nn
from mm_mamba import MultiModalMambaBlock

# Create some random input tensors
x = torch.randn(1, 16, 64) # Tensor with shape (batch_size, sequence_length, feature_dim)
y = torch.randn(1, 3, 64, 64) # Tensor with shape (batch_size, num_channels, image_height, image_width)

# Create an instance of the MultiModalMambaBlock model
model = MultiModalMambaBlock(
dim = 64, # Dimension of the token embeddings
depth = 5, # Number of Mamba layers
dropout = 0.1, # Dropout probability
heads = 4, # Number of attention heads
d_state = 16, # Dimension of the state embeddings
image_size = 64, # Size of the input image
patch_size = 16, # Size of each image patch
encoder_dim = 64, # Dimension of the encoder token embeddings
encoder_depth = 5, # Number of encoder transformer layers
encoder_heads = 4, # Number of encoder attention heads
fusion_method="mlp",
)

# Pass the input tensors through the model
out = model(x, y)

# Print the shape of the output tensor
print(out.shape)

```

### `MultiModalMamba`, Ready to Train Model
- Flexibility in Data Types: The MultiModalMamba model can handle both text and image data simultaneously. This allows it to be trained on a wider variety of datasets and tasks, including those that require understanding of both text and image data.

- Customizable Architecture: The MultiModalMamba model has numerous parameters such as depth, dropout, heads, d_state, image_size, patch_size, encoder_dim, encoder_depth, encoder_heads, and fusion_method. These parameters can be tuned according to the specific requirements of the task at hand, allowing for a high degree of customization in the model architecture.

- Option to Return Embeddings: The MultiModalMamba model has a return_embeddings option. When set to True, the model will return the embeddings instead of the final output. This can be useful for tasks that require access to the intermediate representations learned by the model, such as transfer learning or feature extraction tasks.

```python
import torch # Import the torch library

# Import the MultiModalMamba model from the mm_mamba module
from mm_mamba import MultiModalMamba

# Generate a random tensor 'x' of size (1, 224) with random elements between 0 and 10000
x = torch.randint(0, 10000, (1, 196))

# Generate a random image tensor 'img' of size (1, 3, 224, 224)
img = torch.randn(1, 3, 224, 224)

# Audio tensor 'aud' of size 2d
aud = torch.randn(1, 224)

# Video tensor 'vid' of size 5d - (batch_size, channels, frames, height, width)
vid = torch.randn(1, 3, 16, 224, 224)

# Create a MultiModalMamba model object with the following parameters:
model = MultiModalMamba(
vocab_size=10000,
dim=512,
depth=6,
dropout=0.1,
heads=8,
d_state=512,
image_size=224,
patch_size=16,
encoder_dim=512,
encoder_depth=6,
encoder_heads=8,
fusion_method="mlp",
return_embeddings=False,
post_fuse_norm=True,
)

# Pass the tensor 'x' and 'img' through the model and store the output in 'out'
out = model(x, img, aud, vid)

# Print the shape of the output tensor 'out'
print(out.shape)

```

# Real-World Deployment

Are you an enterprise looking to leverage the power of AI? Do you want to integrate state-of-the-art models into your workflow? Look no further!

Multi Modal Mamba (MultiModalMamba) is a cutting-edge AI model that fuses Vision Transformer (ViT) with Mamba, providing a fast, agile, and high-performance solution for your multi-modal needs.

But that's not all! With Zeta, our simple yet powerful AI framework, you can easily customize and fine-tune MultiModalMamba to perfectly fit your unique quality standards.

Whether you're dealing with text, images, or both, MultiModalMamba has got you covered. With its deep configuration and multiple fusion layers, you can handle complex AI tasks with ease and efficiency.

### :star2: Why Choose Multi Modal Mamba?

- **Versatile**: Handle both text and image data with a single model.
- **Powerful**: Leverage the power of Vision Transformer and Mamba.
- **Customizable**: Fine-tune the model to your specific needs with Zeta.
- **Efficient**: Achieve high performance without compromising on speed.

Don't let the complexities of AI slow you down. Choose Multi Modal Mamba and stay ahead of the curve!

[Contact us here](https://calendly.com/swarm-corp/30min) today to learn how you can integrate Multi Modal Mamba into your workflow and supercharge your AI capabilities!

---

# License
MIT