Compress, Trace and Deploy Your Models with Iso!
Project description
Iso AI
Unlock the Value of GenAI with Iso!
isoai Package Documentation
Table of Contents
Overview
The isoai
package is designed to facilitate the integration, transformation, deployment, and tracing of AI models. It provides a suite of tools that make it easy to work with different types of neural network architectures and deploy them in a containerized environment.
Installation
To install the isoai
package, use the following command:
pip install isoai
Modules
isobits
GPT_bitnet
The GPT_bitnet
module contains implementations of transformers using the BitNet architecture.
- Transformer: Main transformer class.
- TransformerBlock: Individual transformer block class.
torch_bitnet
The torch_bitnet
module provides implementations for RMSNorm and TorchBitNet layers.
- RMSNorm: Root Mean Square Layer Normalization.
- TorchBitNet: Implementation of BitNet layers using PyTorch.
replace_linear_layers
The replace_linear_layers
module provides functionality to replace traditional linear layers in a model with TorchBitNet layers.
- replace_linears_with_torchbitnet: Function to replace linear layers with TorchBitNet layers.
LLama_bitnet
The LLama_bitnet
module includes the BitNetLLAMA model, which leverages the BitNet architecture.
- BitNetLLAMA: Implementation of the LLAMA model using BitNet.
MoE_bitnet
The MoE_bitnet
module implements the Mixture of Experts (MoE) architecture using BitNet.
- MoETransformer: Transformer model with MoE.
- MoETransformerBlock: Individual MoE transformer block.
isodeploy
containerize
The containerize
module helps in containerizing models into Docker containers.
- Containerize: Main class for containerizing models.
oscontainerization
The oscontainerization
module extends containerization functionality with automatic OS detection.
- OSContainerize: Class for containerizing models with OS detection.
isotrace
The isotrace
module provides tools for tracing and logging variables within the code.
- Autotrace: Class for automatic tracing and logging of variables.
Usage Examples
Replacing Linear Layers with TorchBitNet
import torch
from isoai.isobits.GPT_bitnet import Transformer
from isoai.isobits.replace_linear_layers import replace_linears_with_torchbitnet
class ModelArgs:
def __init__(self):
self.vocab_size = 30522
self.dim = 768
self.n_heads = 12
self.n_kv_heads = 12
self.max_seq_len = 512
self.norm_eps = 1e-5
self.multiple_of = 64
self.ffn_dim_multiplier = 4
self.n_layers = 12
self.max_batch_size = 32
args = ModelArgs()
tokens = torch.randint(0, args.vocab_size, (2, args.max_seq_len))
transformer = Transformer(args)
output = transformer(tokens, start_pos=0)
print("Original Transformer Description: ", transformer)
replace_linears_with_torchbitnet(transformer, norm_dim=10)
print("Bitnet Transformer Description: ", transformer)
Using BitNetLLAMA
import torch
from isoai.isobits.LLama_bitnet import BitNetLLAMA
class ModelArgs:
def __init__(self):
self.vocab_size = 30522
self.dim = 768
self.n_heads = 12
self.n_kv_heads = 12
self.max_seq_len = 512
self.norm_eps = 1e-5
self.multiple_of = 64
self.ffn_dim_multiplier = 4
self.max_batch_size = 32
self.n_layers = 12
args = ModelArgs()
tokens = torch.randint(0, args.vocab_size, (2, args.max_seq_len))
bitnet_llama = BitNetLLAMA(args)
output = bitnet_llama(tokens, start_pos=0)
print(output.shape)
Using MoE Transformer
import torch
from isoai.isobits.MoE_bitnet import MoETransformer
class ModelArgs:
def __init__(self):
self.vocab_size = 30522
self.dim = 768
self.n_heads = 12
self.n_kv_heads = 12
self.max_seq_len = 512
self.norm_eps = 1e-5
self.multiple_of = 64
self.ffn_dim_multiplier = 4
self.max_batch_size = 32
self.n_layers = 12
self.num_experts = 4 # Number of experts in MoE layers
args = ModelArgs()
tokens = torch.randint(0, args.vocab_size, (2, args.max_seq_len))
moe_transformer = MoETransformer(args)
output = moe_transformer(tokens, start_pos=0)
print(output.shape)
Containerizing Your Model
from isoai.isodeploy.containerize import Containerize
model_path = "isoai"
output_path = "Dockerfile"
containerize = Containerize(model_path)
containerize.run(output_path)
Containerizing with OS Detection
from isoai.isodeploy.oscontainerization import OSContainerize
model_path = "isoai"
output_path = "Dockerfile"
containerize = OSContainerize(model_path)
containerize.run(output_path)
Tracing Variables
from isoai.isotrace.autotrace import Autotrace
search_path = "isoai"
output_file = "output.json"
autotrace = Autotrace(search_path)
autotrace.run(output_file)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file isoai-0.0.3.tar.gz
.
File metadata
- Download URL: isoai-0.0.3.tar.gz
- Upload date:
- Size: 16.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.8.8
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b77b11ed4638f14ed4930e4146992b46e8a44c4c32ffb1b5438a44f6705000e7 |
|
MD5 | 54f2203d90600b2ede14b7119c25b0d2 |
|
BLAKE2b-256 | fd4f6a452c7cb7f5a5473f604fbe0ed6137ebfc9b95d2a6625a35f24884dff94 |
File details
Details for the file isoai-0.0.3-py3-none-any.whl
.
File metadata
- Download URL: isoai-0.0.3-py3-none-any.whl
- Upload date:
- Size: 8.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.8.8
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6468acd8399199fbd0e8a864f5b6d82a126b4da757f26bd7bcb50476cc7ab568 |
|
MD5 | 6d4592ffb770508f86bbe4f09a6fb611 |
|
BLAKE2b-256 | d3f561c9080af7dfc3f515449a90dfe562cdb9410286b137afd7d07253ea449e |