louisbrulenaudet/Pearl-34B-ties
<center><img src='https://i.imgur.com/0xFTuAX.png' width='450px'></center>
Pearl-34B-ties, an xtraordinary 34B model
03-22-2024 - To date, louisbrulenaudet/Pearl-34B-ties is the "Best 🤝 base merges and moerges model of around 30B" on the Open LLM Leaderboard.
Pearl-34B-ties is a merge of the following models:
Evaluation
The evaluation was performed using the HuggingFace Open LLM Leaderboard.
Ties merging
TIES-Merging is a method designed to facilitate the efficient merging of multiple task-specific models into a consolidated multitask model. It addresses two primary challenges encountered in the process of model merging with a focus on maintaining objectivity.
One key challenge tackled by TIES-Merging involves addressing redundancy in model parameters. This is achieved by identifying and eliminating redundant parameters within task-specific models, emphasizing the changes made during fine-tuning and selectively retaining the top-k% most significant changes while discarding the rest.
Another challenge pertains to conflicts arising from disagreements between parameter signs across different models. TIES-Merging resolves these conflicts by creating a unified sign vector representing the most dominant direction of change across all models.
The TIES-Merging process consists of three steps:
- Trim: Reduces redundancy in task-specific models by retaining a fraction of the most significant parameters (density parameter) and resetting the remaining parameters to zero.
- Elect Sign: Resolves sign conflicts across different models by creating a unified sign vector based on the most dominant direction (positive or negative) in terms of cumulative magnitude.
- Disjoint Merge: Averages parameter values aligned with the unified sign vector, excluding zero values.
Configuration
models:
- model: abacusai/Smaug-34B-v0.1
- model: jondurbin/bagel-dpo-34b-v0.2
parameters:
density: 0.45
weight: 0.5
- model: abacusai/MetaMath-Bagel-DPO-34B
parameters:
density: 0.48
weight: 0.5
merge_method: ties
base_model: abacusai/Smaug-34B-v0.1
parameters:
normalize: true
int8_mask: true
dtype: bfloat16Usage
!pip install -qU transformers accelerate
from transformers import AutoTokenizer
import transformers
import torch
model = "louisbrulenaudet/Pearl-34B-ties"
messages = [{"role": "user", "content": "What is a large language model?"}]
tokenizer = AutoTokenizer.from_pretrained(model)
prompt = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
pipeline = transformers.pipeline(
"text-generation",
model=model,
torch_dtype=torch.float16,
device_map="auto",
)
outputs = pipeline(prompt, max_new_tokens=256, do_sample=True, temperature=0.7, top_k=50, top_p=0.95)
print(outputs[0]["generated_text"])Citing & Authors
If you use this code in your research, please use the following BibTeX entry.
@misc{louisbrulenaudet2023,
author = {Louis Brulé Naudet},
title = {Pearl-34B-ties, an xtraordinary 34B model},
year = {2023}
howpublished = {\url{https://huggingface.co/louisbrulenaudet/Pearl-34B-ties}},
}Feedback
If you have any feedback, please reach out at louisbrulenaudet@icloud.com.
