Instructions to use mlx-community/Meta-Llama-3-8B-Instruct-4bit with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- MLX
How to use mlx-community/Meta-Llama-3-8B-Instruct-4bit with MLX:
# Make sure mlx-lm is installed # pip install --upgrade mlx-lm # Generate text with mlx-lm from mlx_lm import load, generate model, tokenizer = load("mlx-community/Meta-Llama-3-8B-Instruct-4bit") prompt = "Write a story about Einstein" messages = [{"role": "user", "content": prompt}] prompt = tokenizer.apply_chat_template( messages, add_generation_prompt=True ) text = generate(model, tokenizer, prompt=prompt, verbose=True) - Notebooks
- Google Colab
- Kaggle
- Local Apps
- LM Studio
- MLX LM
How to use mlx-community/Meta-Llama-3-8B-Instruct-4bit with MLX LM:
Generate or start a chat session
# Install MLX LM uv tool install mlx-lm # Interactive chat REPL mlx_lm.chat --model "mlx-community/Meta-Llama-3-8B-Instruct-4bit"
Run an OpenAI-compatible server
# Install MLX LM uv tool install mlx-lm # Start the server mlx_lm.server --model "mlx-community/Meta-Llama-3-8B-Instruct-4bit" # Calling the OpenAI-compatible server with curl curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "mlx-community/Meta-Llama-3-8B-Instruct-4bit", "messages": [ {"role": "user", "content": "Hello"} ] }'
Model doesn't stop generating.
when setting the max_tokens to 1024 the model doesn't stop generating.
It looks like in the official Llama HF repo, they do pay attention to the stop tokens -
Taken from their HF official repo (https://huggingface.co/meta-llama/Meta-Llama-3-8B-Instruct)
"""
terminators = [
tokenizer.eos_token_id,
tokenizer.convert_tokens_to_ids("<|eot_id|>")
]
outputs = model.generate(
input_ids,
max_new_tokens=256,
eos_token_id=terminators,
do_sample=True,
temperature=0.6,
top_p=0.9,
)
"""
How can we overcome it with mlx?
I had the same issue and posted this. https://github.com/ml-explore/mlx-examples/issues/737
i wasn’t aware this was recently changed in the json, mlx-community/Meta-Llama-3-8B-Instruct-4bit (#1) - Fix eos_token in tokenizer_config.json
according to the chat template i mentioned, “eot_id” seemed to be the right terminating signal token. I guess instead of my hack, i can go back and change the config json (hadn’t played with transformers and forgotten all the config params)
