- LLaVa vision LLM from https://github.com/haotian-liu/LLaVA
- See jetson-ai-lab.com/tutorial_llava.html to use quantized with text-generation-webui
These are with llava-llama-2
models, however llava-1.5
is now the latest and can be use instead.
This is a LoRA applied to the original llama-2-7b-chat model, hence you need to request access and provide your HuggingFace token (or use SaffalPoosh/llava-llama-2-7B-merged
instead)
./run.sh --env HUGGING_FACE_HUB_TOKEN=<YOUR-ACCESS-TOKEN> $(./autotag llava) \
python3 -m llava.serve.cli \
--model-path liuhaotian/llava-llama-2-7b-chat-lightning-lora-preview \
--model-base meta-llama/Llama-2-7b-chat-hf \
--image-file /data/images/hoover.jpg
USER: what does the road sign say?
ASSISTANT: The road sign says "Hoover Dam."
USER: how far away is the exit?
ASSISTANT: The exit is 1 mile away.
USER: what is the environment like?
ASSISTANT: The environment is desert-like, with a rocky landscape and a dirt road leading to the exit.
./run.sh $(./autotag llava) \
python3 -m llava.serve.cli \
--model-path liuhaotian/llava-llama-2-13b-chat-lightning-preview \
--image-file /data/images/hoover.jpg
USER: what does the text in the road sign say?
ASSISTANT: The text in the road sign says "Hoover Dam Exit 2 Mile."
USER: How far away is the exit?
ASSISTANT: The exit is two miles away from the current location.
USER: What kind of environment is it?
ASSISTANT: The environment is a desert setting, with a mountain in the background.
CONTAINERS
llava |
|
---|---|
Builds | |
Requires | L4T >=34.1.0 |
Dependencies | build-essential cuda cudnn python tensorrt numpy cmake onnx pytorch torchvision huggingface_hub rust transformers |
Dockerfile | Dockerfile |
Images | dustynv/llava:r35.2.1 (2023-12-15, 6.3GB) dustynv/llava:r35.3.1 (2023-12-12, 6.3GB) dustynv/llava:r35.4.1 (2023-12-14, 6.3GB) dustynv/llava:r36.2.0 (2023-12-18, 8.0GB) |
CONTAINER IMAGES
Repository/Tag | Date | Arch | Size |
---|---|---|---|
dustynv/llava:r35.2.1 |
2023-12-15 |
arm64 |
6.3GB |
dustynv/llava:r35.3.1 |
2023-12-12 |
arm64 |
6.3GB |
dustynv/llava:r35.4.1 |
2023-12-14 |
arm64 |
6.3GB |
dustynv/llava:r36.2.0 |
2023-12-18 |
arm64 |
8.0GB |
Container images are compatible with other minor versions of JetPack/L4T:
• L4T R32.7 containers can run on other versions of L4T R32.7 (JetPack 4.6+)
• L4T R35.x containers can run on other versions of L4T R35.x (JetPack 5.1+)
RUN CONTAINER
To start the container, you can use the run.sh
/autotag
helpers or manually put together a docker run
command:
# automatically pull or build a compatible container image
./run.sh $(./autotag llava)
# or explicitly specify one of the container images above
./run.sh dustynv/llava:r36.2.0
# or if using 'docker run' (specify image and mounts/ect)
sudo docker run --runtime nvidia -it --rm --network=host dustynv/llava:r36.2.0
run.sh
forwards arguments todocker run
with some defaults added (like--runtime nvidia
, mounts a/data
cache, and detects devices)
autotag
finds a container image that's compatible with your version of JetPack/L4T - either locally, pulled from a registry, or by building it.
To mount your own directories into the container, use the -v
or --volume
flags:
./run.sh -v /path/on/host:/path/in/container $(./autotag llava)
To launch the container running a command, as opposed to an interactive shell:
./run.sh $(./autotag llava) my_app --abc xyz
You can pass any options to run.sh
that you would to docker run
, and it'll print out the full command that it constructs before executing it.
BUILD CONTAINER
If you use autotag
as shown above, it'll ask to build the container for you if needed. To manually build it, first do the system setup, then run:
./build.sh llava
The dependencies from above will be built into the container, and it'll be tested during. See ./build.sh --help
for build options.