grizzly-mini-transformer / load_model.py
cjnielson44's picture
Upload folder using huggingface_hub
8fc775b verified
Raw History Blame Contribute Delete
1.22 kB
import json
import mlx.core as mx
import mlx.nn as nn
from src.tokenizer import BPETokenizer
from src.transformer import MLXGPT as GPT
def build_model(config_path: str = "config.json") -> GPT:
with open(config_path) as f:
config = json.load(f)
return GPT(
vocab_size=config["vocab_size"],
embedding_dim=config["embedding_dim"],
num_layers=config["num_layers"],
num_heads=config["num_heads"],
num_query_groups=config["num_query_groups"],
hidden_dim=config["hidden_dim"],
max_seq_len=config["max_seq_len"],
dropout=0.0,
)
def main():
device = mx.default_device()
print(f"Running on {device}")
model = build_model()
model.load_weights("model.safetensors")
model.eval()
mx.eval(model.parameters())
tokenizer = BPETokenizer.load("tokenizer")
prompt = "The future of machine learning"
prompt_ids = mx.array([tokenizer.encode(prompt)], dtype=mx.int32)
generated = model.generate(
prompt_ids,
max_new_tokens=40,
temperature=0.8,
top_k=50,
)
mx.eval(generated)
print(tokenizer.decode(generated[0].tolist()))
if __name__ == "__main__":
main()