Sea-Snell / JAX_llama

Inference code for LLaMA models in JAX

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

LLaMA Jax

UPDATE: now with LLaMA-3 support!

This repository is a Huggingface compatible port of LLaMA (arXiv) models to Jax. In order to download the checkpoints and tokenizer for LLaMA, fill this google form

Setup

In a conda env, run

pip install -r requirements.txt

Then in this repository

pip install -e .

Download

Once your request is approved, you will receive links to download the tokenizer and model files. Edit the download.sh script with the signed url provided in the email to download the model weights and tokenizer.

Inference

The provided jax_example.py will output completions for two pre-defined prompts. Using TARGET_FOLDER as defined in download.sh:

python jax_example.py --ckpt_dir $TARGET_FOLDER/model_size --tokenizer_path $TARGET_FOLDER/tokenizer.model

Model Card

See MODEL_CARD.md

License

See the LICENSE file.

Testing

The provided jax_test.py script runs a comparison between this jax model and the pytorch version provided by Meta (to test LLaMA 3, use the Meta LLaMA 3 repo instead). To run the tests, install Meta's code in the same environment and run the script with:

torchrun --nproc_per_node MP jax_test.py --ckpt_dir $TARGET_FOLDER/model_size --tokenizer_path $TARGET_FOLDER/tokenizer.model --is_llama3

(Note: some of the tests only run when MP=1)

if testing with LLaMA 1 or 2, drop the --is_llama3 flag (and make sure you install the correct repo for testing against).

Different models require different MP values:

Model MP
7B 1
8B 1
13B 2
33B 4
65B 8
70B 8

About

Inference code for LLaMA models in JAX

License:MIT License


Languages

Language:Python 97.9%Language:Shell 2.1%