
## NOTE: For experimental purposes

<p align="center">
  <img src="https://huggingface.co/sethuiyer/Chikuma/resolve/main/chikuma.webp" height="256px" alt="Chikuma">
</p>


Chikuma is a 10.7B parameter model and is a merge of the following models using [LazyMergekit](https://colab.research.google.com/drive/1obulZ1ROXHjYLn6PPZJwRR6GzgQogxxb?usp=sharing):
* [sethuiyer/SynthIQ-7b](https://huggingface.co/sethuiyer/SynthIQ-7b)
* [openchat/openchat-3.5-0106](https://huggingface.co/openchat/openchat-3.5-0106)

The name "Chikuma" is inspired by the [Chikuma River](https://en.wikipedia.org/wiki/Shinano_River), the longest in Japan, known for its continuous flow and meandering path. 
This metaphorically represents the model's depth, fluidity, and adaptability in processing and understanding language.

It also perfectly fits the approach taken here - Depth Upscaling, inspired by SOLAR 10.7B.

## Nous LLM Evaluation (with ChatML Prompt Template)
| Model                      | AGIEval | GPT4All | TruthfulQA | Bigbench | Average |
|---------------------------|---------|----------|------------|-----------|---------|
| SynthIQ-7b               | 42.67   | 73.71    | 56.51      | **44.59**    | **54.37**   |
| openchat/openchat-3.5-0106 | **44.17**   | **73.72**    | 52.53      | 44.4     | 53.71   |
| Chikuma_10.7B            | 42.41   | 73.41    | **56.69**      | 43.5     | 54      |

More details can be found [here](https://gist.github.com/sethuiyer/08b4498ed13a6dead38ad3a6f12e349a)


### Recommended Prompt Template (Experimental)

```text
<|im_start|>GPT4 Correct system
You are Chikuma, a constantly learning AI assistant who strives to be
insightful, engaging, and helpful. You possess vast knowledge and creativity,
but also a humble curiosity about the world and the people you interact
with. If you don't know the answer to a question, please don't share false information. 
Always use <|end_of_turn|> when you want to end the answer.<|im_end|>
<|im_start|>GPT4 Correct User:
{{Input}}
<|im_end|>GPT4 Correct Assistant:
```

ChatML also works, but make sure to add the sentence "Always use <|end_of_turn|> when you want to end the answer" as the default eos token is <|end_of_turn|>.

## Tested to work well in :
1. [text-generation-webui](https://github.com/oobabooga/text-generation-webui), LLaMa-Precise sampling settings.
2. `transformers` text generation pipeline, temperature=4.0, top_k=50, top_p=0.01.


## 🧩 Configuration

```yaml
slices:
  - sources:
    - model: sethuiyer/SynthIQ-7b
      layer_range: [0, 24]
  - sources:
    - model: openchat/openchat-3.5-0106
      layer_range: [8, 32]
merge_method: passthrough
dtype: bfloat16
```

## Ollama:
Chikuma is on Ollama. You can use it by running the command ```ollama run stuehieyr/chikuma``` in your 
terminal. If you have limited computing resources, check out this [video](https://www.youtube.com/watch?v=Qa1h7ygwQq8) to learn how to run it on 
a Google Colab backend.

## 💻 Usage

```python
sys_message = ''' 
You are Chikuma, a constantly learning AI assistant who strives to be
insightful, engaging, and helpful. You possess vast knowledge and creativity,
but also a humble curiosity about the world and the people you interact
with. If you don't know the answer to a question, please don't share false information. 
Always use <|end_of_turn|> when you want to end the answer.
'''

question = '''
Tell me what is a large language model in under 250 words.
'''

messages = [{"role":"system", "content": sys_message}, {"role": "user", "content": question}]
prompt = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
outputs = pipeline(prompt, max_new_tokens=256, do_sample=True, temperature=4.0, top_k=50, top_p=0.01)
print(outputs[0]["generated_text"])
```

{"language": ["en"], "license": "apache-2.0", "library_name": "transformers", "tags": ["merge"], "base_model": ["sethuiyer/SynthIQ-7b", "openchat/openchat-3.5-0106"], "pipeline_tag": "text-generation"}
transformers safetensors mistral text-generation merge conversational en base_model:sethuiyer/SynthIQ-7b base_model:openchat/openchat-3.5-0106 license:apache-2.0 autotrain_compatible endpoints_compatible text-generation-inference region:us