91 lines
2.9 KiB
Markdown
91 lines
2.9 KiB
Markdown
---
|
|
license: apache-2.0
|
|
---
|
|
|
|
# Jupiter-k-7B-slerp ( My Favorite model! )
|
|
|
|
|
|

|
|
|
|
Jupiter-k-7B-slerp is a merge of the following models using [LazyMergekit](https://colab.research.google.com/drive/1obulZ1ROXHjYLn6PPZJwRR6GzgQogxxb?usp=sharing):
|
|
* [Kukedlc/NeuralContamination-7B-ties](https://huggingface.co/Kukedlc/NeuralContamination-7B-ties)
|
|
* [Kukedlc/NeuralTopBench-7B-ties](https://huggingface.co/Kukedlc/NeuralTopBench-7B-ties)
|
|
* [Gille/StrangeMerges_32-7B-slerp](https://huggingface.co/Gille/StrangeMerges_32-7B-slerp)
|
|
|
|
## 🧩 Configuration
|
|
|
|
```yaml
|
|
models:
|
|
- model: Kukedlc/NeuralContamination-7B-ties
|
|
parameters:
|
|
density: [1, 0.7, 0.1] # density gradient
|
|
weight: 1.0
|
|
- model: Kukedlc/NeuralTopBench-7B-ties
|
|
parameters:
|
|
density: 0.5
|
|
weight: [0, 0.3, 0.7, 1] # weight gradient
|
|
- model: Gille/StrangeMerges_32-7B-slerp
|
|
parameters:
|
|
density: 0.33
|
|
weight:
|
|
- filter: mlp
|
|
value: 0.5
|
|
- value: 0
|
|
merge_method: ties
|
|
base_model: Kukedlc/NeuralMaxime-7B-slerp
|
|
parameters:
|
|
normalize: true
|
|
int8_mask: true
|
|
dtype: bfloat16
|
|
```
|
|
|
|
## 💻 Usage - Stream
|
|
|
|
```python
|
|
# Requirements
|
|
!pip install -qU transformers accelerate bitsandbytes
|
|
|
|
# Imports & settings
|
|
from transformers import AutoModelForCausalLM, AutoTokenizer, TextStreamer
|
|
import warnings
|
|
import os
|
|
os.environ["TOKENIZERS_PARALLELISM"] = "false"
|
|
warnings.filterwarnings('ignore')
|
|
|
|
# Model & Tokenizer
|
|
MODEL_NAME = "Kukedlc/Jupiter-k-7B-slerp"
|
|
model = AutoModelForCausalLM.from_pretrained(MODEL_NAME, device_map='cuda:1', load_in_4bit=True)
|
|
tok = AutoTokenizer.from_pretrained(MODEL_NAME)
|
|
|
|
# Inference
|
|
prompt = "I want you to generate a theory that unites quantum mechanics with the theory of relativity and cosmic consciousness"
|
|
inputs = tok([prompt], return_tensors="pt").to('cuda')
|
|
streamer = TextStreamer(tok)
|
|
|
|
# Despite returning the usual output, the streamer will also print the generated text to stdout.
|
|
_ = model.generate(**inputs, streamer=streamer, max_new_tokens=512, do_sample=True, num_beams=1, top_p=0.9, temperature=0.7)
|
|
|
|
```
|
|
## 💻 Usage - Clasic
|
|
|
|
```python
|
|
!pip install -qU transformers bitsandbytes accelerate
|
|
|
|
from transformers import AutoTokenizer
|
|
import transformers
|
|
import torch
|
|
|
|
model = "Kukedlc/Jupiter-k-7B-slerp"
|
|
|
|
tokenizer = AutoTokenizer.from_pretrained(model)
|
|
pipeline = transformers.pipeline(
|
|
"text-generation",
|
|
model=model,
|
|
model_kwargs={"torch_dtype": torch.float16, "load_in_4bit": True},
|
|
)
|
|
|
|
messages = [{"role": "user", "content": "Explain what a Mixture of Experts is in less than 100 words."}]
|
|
prompt = pipeline.tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
|
|
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"])
|
|
``` |