# vicgalle/franken-SOLAR-18B-v1.0

This is a SOLAR-like model upscaled to 18B. 
It is a frankenmerge model created using mergekit, alternating layers of Nous-Hermes-2-SOLAR-10.7B and SOLAR-10.7B-Instruct.

![image/png](https://cdn-uploads.huggingface.co/production/uploads/5fad8602b8423e1d80b8a965/mMyHMuuftG71_o4at5suy.png)

Evaluations coming soon! 

This model has very good writing capabilities (compared to SOLAR-10.7B), specially for role-playing.

Quantized GGUF variants here https://huggingface.co/vicgalle/franken-SOLAR-18B-v1.0-GGUF

## Merge Details
### Merge Method

This model was merged using the passthrough merge method.

### Models Merged

The following models were included in the merge:
* [upstage/SOLAR-10.7B-Instruct-v1.0](https://huggingface.co/upstage/SOLAR-10.7B-Instruct-v1.0)
* [NousResearch/Nous-Hermes-2-SOLAR-10.7B](https://huggingface.co/NousResearch/Nous-Hermes-2-SOLAR-10.7B)

### Configuration

The following YAML configuration was used to produce this model:

```yaml
slices:
  - sources:
    - model: NousResearch/Nous-Hermes-2-SOLAR-10.7B
      layer_range: [0, 12]
  - sources:
    - model: upstage/SOLAR-10.7B-Instruct-v1.0
      layer_range: [6, 18]
  - sources:
    - model: NousResearch/Nous-Hermes-2-SOLAR-10.7B
      layer_range: [13, 25]
  - sources:
    - model: upstage/SOLAR-10.7B-Instruct-v1.0
      layer_range: [19, 31]
  - sources:
    - model: NousResearch/Nous-Hermes-2-SOLAR-10.7B
      layer_range: [26, 38]
  - sources:
    - model: upstage/SOLAR-10.7B-Instruct-v1.0
      layer_range: [32, 44]
  - sources:
    - model: NousResearch/Nous-Hermes-2-SOLAR-10.7B
      layer_range: [39, 48]
    
merge_method: passthrough
dtype: float16

```


### Usage

You can use the provided template:

```
tokenizer = AutoTokenizer.from_pretrained("vicgalle/franken-SOLAR-18B-v1.0")
model = AutoModelForCausalLM.from_pretrained("vicgalle/franken-SOLAR-18B-v1.0", torch_dtype=torch.float16, load_in_4bit=True)

conversation = [ {'role': 'system', 'content': SYSTEM_PROMPT}, {'role': 'user', 'content': USER_PROMPT} ] 
prompt = tokenizer.apply_chat_template(conversation, tokenize=False, add_generation_prompt=True)
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)

outputs = model.generate(**inputs, use_cache=True, max_new_tokens=1024, do_sample=True, temperature=0.8)
output_text = tokenizer.decode(outputs[0]) 
```

{"license": "apache-2.0", "tags": ["mergekit", "merge", "solar"], "base_model": ["upstage/SOLAR-10.7B-Instruct-v1.0", "NousResearch/Nous-Hermes-2-SOLAR-10.7B"]}
transformers safetensors llama text-generation mergekit merge solar conversational base_model:upstage/SOLAR-10.7B-Instruct-v1.0 base_model:NousResearch/Nous-Hermes-2-SOLAR-10.7B license:apache-2.0 autotrain_compatible endpoints_compatible text-generation-inference region:us