library_name: transformers
tags:
- mergekit
- merge
- llama-cpp
- gguf-my-repo
license: llama3.1
base_model: Joseph717171/Llama-3.1-SuperNova-8B-Lite_TIES_with_Base
Triangle104/Llama-3.1-SuperNova-8B-Lite_TIES_with_Base-Q4_K_M-GGUF
This model was converted to GGUF format from Joseph717171/Llama-3.1-SuperNova-8B-Lite_TIES_with_Base
using llama.cpp via the ggml.ai's GGUF-my-repo space.
Refer to the original model card for more details on the model.
Model details:
This is a merge of pre-trained language models created using mergekit.
Merge Details/Method
This is a merge of arcee-ai/Llama-3.1-SuperNova-Lite with its base meta-llama/Llama-3.1-8B (the base model being: the model which the instruct model was fine-tuned on - even though in our case, arcee-ai/Llama-3.1-SuperNova-Lite, was fine-tuned, etc on top of meta-llama/Llama-3.1-8B-Instruct and not directly on top of meta-llama/Llama-3.1-8B)
This model was merged using the TIES merge method using meta-llama/Llama-3.1-8B as a base.
The merge was inspired by RomboDawg's (Replete-AI) TIES merge of Qwen/Qwen2.5-7B-Instruct with its base Qwen/Qwen2.5-7B, which topped the OpenLLM Learderboard for the highest Average score for a 7B parameter model.
After experimenting and discussing/researching the merge with Rombodawg, I looked into mergekit's TIES merge method some more, which led me to find a pertinent parameter that we weren't utilizing for our TIES merge: density. I decided to use density along with the weight parameter to see if we could restore some of the instruction following that our merges seemed to lack in comparison to the original Instruct model. The resulant merges turned out to be great! By using the density parameter along with the weight parameter, we were able to restore more of the Instruction following which was diminished and/or not present when solely using the weight parameter for our TIES merge.
The way this works is: the Instruct model is TIES merged with the base model, with the weight = 1 and density = 1. After the merge is complete, the merge's .json config files (excluding 'model.safetensors.index.json') are replaced with the original Instruct's .json config files. Models Merged
The following models were included in the merge:
/Users/jsarnecki/opt/Workspace/arcee-ai/Llama-3.1-SuperNova-Lite
Configuration
The following YAML configuration was used to produce this model:
models:
model: "/Users/jsarnecki/opt/Workspace/arcee-ai/Llama-3.1-SuperNova-Lite" parameters: weight: 1 density: 1
model: "/Users/jsarnecki/opt/Workspace/arcee-ai/Llama-3.1-SuperNova-Lite" parameters: weight: 1 density: 1
merge_method: ties base_model: "/Users/jsarnecki/opt/Workspace/meta-llama/Llama-3.1-8B" parameters: density: 1 normalize: true int8_mask: true dtype: bfloat16
Use with llama.cpp
Install llama.cpp through brew (works on Mac and Linux)
brew install llama.cpp
Invoke the llama.cpp server or the CLI.
CLI:
llama-cli --hf-repo Triangle104/Llama-3.1-SuperNova-8B-Lite_TIES_with_Base-Q4_K_M-GGUF --hf-file llama-3.1-supernova-8b-lite_ties_with_base-q4_k_m.gguf -p "The meaning to life and the universe is"
Server:
llama-server --hf-repo Triangle104/Llama-3.1-SuperNova-8B-Lite_TIES_with_Base-Q4_K_M-GGUF --hf-file llama-3.1-supernova-8b-lite_ties_with_base-q4_k_m.gguf -c 2048
Note: You can also use this checkpoint directly through the usage steps listed in the Llama.cpp repo as well.
Step 1: Clone llama.cpp from GitHub.
git clone https://github.com/ggerganov/llama.cpp
Step 2: Move into the llama.cpp folder and build it with LLAMA_CURL=1
flag along with other hardware-specific flags (for ex: LLAMA_CUDA=1 for Nvidia GPUs on Linux).
cd llama.cpp && LLAMA_CURL=1 make
Step 3: Run inference through the main binary.
./llama-cli --hf-repo Triangle104/Llama-3.1-SuperNova-8B-Lite_TIES_with_Base-Q4_K_M-GGUF --hf-file llama-3.1-supernova-8b-lite_ties_with_base-q4_k_m.gguf -p "The meaning to life and the universe is"
or
./llama-server --hf-repo Triangle104/Llama-3.1-SuperNova-8B-Lite_TIES_with_Base-Q4_K_M-GGUF --hf-file llama-3.1-supernova-8b-lite_ties_with_base-q4_k_m.gguf -c 2048