初始化项目,由ModelHub XC社区提供模型
Model: aari1995/germeo-7b-awq Source: Original Platform
This commit is contained in:
35
.gitattributes
vendored
Normal file
35
.gitattributes
vendored
Normal file
@@ -0,0 +1,35 @@
|
||||
*.7z filter=lfs diff=lfs merge=lfs -text
|
||||
*.arrow filter=lfs diff=lfs merge=lfs -text
|
||||
*.bin filter=lfs diff=lfs merge=lfs -text
|
||||
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.ckpt filter=lfs diff=lfs merge=lfs -text
|
||||
*.ftz filter=lfs diff=lfs merge=lfs -text
|
||||
*.gz filter=lfs diff=lfs merge=lfs -text
|
||||
*.h5 filter=lfs diff=lfs merge=lfs -text
|
||||
*.joblib filter=lfs diff=lfs merge=lfs -text
|
||||
*.lfs.* filter=lfs diff=lfs merge=lfs -text
|
||||
*.mlmodel filter=lfs diff=lfs merge=lfs -text
|
||||
*.model filter=lfs diff=lfs merge=lfs -text
|
||||
*.msgpack filter=lfs diff=lfs merge=lfs -text
|
||||
*.npy filter=lfs diff=lfs merge=lfs -text
|
||||
*.npz filter=lfs diff=lfs merge=lfs -text
|
||||
*.onnx filter=lfs diff=lfs merge=lfs -text
|
||||
*.ot filter=lfs diff=lfs merge=lfs -text
|
||||
*.parquet filter=lfs diff=lfs merge=lfs -text
|
||||
*.pb filter=lfs diff=lfs merge=lfs -text
|
||||
*.pickle filter=lfs diff=lfs merge=lfs -text
|
||||
*.pkl filter=lfs diff=lfs merge=lfs -text
|
||||
*.pt filter=lfs diff=lfs merge=lfs -text
|
||||
*.pth filter=lfs diff=lfs merge=lfs -text
|
||||
*.rar filter=lfs diff=lfs merge=lfs -text
|
||||
*.safetensors filter=lfs diff=lfs merge=lfs -text
|
||||
saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
||||
*.tar.* filter=lfs diff=lfs merge=lfs -text
|
||||
*.tar filter=lfs diff=lfs merge=lfs -text
|
||||
*.tflite filter=lfs diff=lfs merge=lfs -text
|
||||
*.tgz filter=lfs diff=lfs merge=lfs -text
|
||||
*.wasm filter=lfs diff=lfs merge=lfs -text
|
||||
*.xz filter=lfs diff=lfs merge=lfs -text
|
||||
*.zip filter=lfs diff=lfs merge=lfs -text
|
||||
*.zst filter=lfs diff=lfs merge=lfs -text
|
||||
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
||||
166
README.md
Normal file
166
README.md
Normal file
@@ -0,0 +1,166 @@
|
||||
---
|
||||
language:
|
||||
- de
|
||||
pipeline_tag: text-generation
|
||||
tags:
|
||||
- awq
|
||||
- autoawq
|
||||
license: apache-2.0
|
||||
---
|
||||
# ***WIP***
|
||||
(Please bear with me, this model will get better and get a license soon)
|
||||
|
||||
|
||||
_Hermes + Leo + German AWQ = Germeo_
|
||||
|
||||
# Germeo-7B-AWQ
|
||||
|
||||
A German-English understanding, but German-only speaking model merged from [Hermeo-7B](https://https://huggingface.co/malteos/hermeo-7b).
|
||||
|
||||
### Model details
|
||||
|
||||
- **Merged from:** [leo-mistral-hessianai-7b-chat](https://huggingface.co/LeoLM/leo-mistral-hessianai-7b-chat) and [DPOpenHermes-7B-v2](https://huggingface.co/openaccess-ai-collective/DPOpenHermes-7B-v2)
|
||||
- **Model type:** Causal decoder-only transformer language model
|
||||
- **Languages:** German replies with English Understanding Capabilities
|
||||
- **Calibration Data:** [LeoLM/OpenSchnabeltier](https://huggingface.co/datasets/LeoLM/OpenSchnabeltier)
|
||||
|
||||
### Quantization Procedure and Use Case:
|
||||
|
||||
The speciality of this model is that it solely replies in German, independently from the system message or prompt.
|
||||
Within the AWQ-process I introduced OpenSchnabeltier as calibration data for the model to stress the importance of German Tokens.
|
||||
|
||||
|
||||
### Usage
|
||||
|
||||
Setup in autoawq
|
||||
```python
|
||||
# setup [autoawq](https://github.com/casper-hansen/AutoAWQ)
|
||||
from awq import AutoAWQForCausalLM
|
||||
from transformers import AutoTokenizer, TextStreamer
|
||||
|
||||
quant_path = "aari1995/germeo-7b-awq"
|
||||
|
||||
# Load model
|
||||
model = AutoAWQForCausalLM.from_quantized(quant_path, fuse_layers=True)
|
||||
tokenizer = AutoTokenizer.from_pretrained(quant_path, trust_remote_code=True)
|
||||
```
|
||||
|
||||
Setup in transformers (works in colab)
|
||||
```python
|
||||
# pip install [autoawq](https://github.com/casper-hansen/AutoAWQ) and pip install --upgrade transformers
|
||||
from transformers import AutoModelForCausalLM, AutoTokenizer, TextStreamer
|
||||
|
||||
quant_path = "aari1995/germeo-7b-awq"
|
||||
|
||||
# Load model
|
||||
model = AutoModelForCausalLM.from_pretrained(quant_path, device_map="auto")
|
||||
tokenizer = AutoTokenizer.from_pretrained(quant_path, trust_remote_code=True)
|
||||
```
|
||||
|
||||
### Inference:
|
||||
```python
|
||||
streamer = TextStreamer(tokenizer, skip_prompt=True, skip_special_tokens=True)
|
||||
|
||||
# Convert prompt to tokens
|
||||
prompt_template = """<|im_start|>system
|
||||
Du bist ein hilfreicher Assistent.<|im_end|>
|
||||
<|im_start|>user
|
||||
{prompt}<|im_end|>
|
||||
<|im_start|>assistant"""
|
||||
|
||||
prompt = "Schreibe eine Stellenanzeige für Data Scientist bei AXA!"
|
||||
|
||||
tokens = tokenizer(
|
||||
prompt_template.format(prompt=prompt),
|
||||
return_tensors='pt'
|
||||
).input_ids.cuda()
|
||||
|
||||
# Generate output
|
||||
generation_output = model.generate(
|
||||
tokens,
|
||||
streamer=streamer,
|
||||
max_new_tokens=1012
|
||||
)
|
||||
# tokenizer.decode(generation_output.flatten())
|
||||
```
|
||||
|
||||
### FAQ
|
||||
#### The model continues after the reply with user inputs:
|
||||
To solve this, you need to implement a custom stopping criteria:
|
||||
|
||||
```python
|
||||
from transformers import StoppingCriteria
|
||||
class GermeoStoppingCriteria(StoppingCriteria):
|
||||
def __init__(self, target_sequence, prompt):
|
||||
self.target_sequence = target_sequence
|
||||
self.prompt=prompt
|
||||
|
||||
def __call__(self, input_ids, scores, **kwargs):
|
||||
# Get the generated text as a string
|
||||
generated_text = tokenizer.decode(input_ids[0])
|
||||
generated_text = generated_text.replace(self.prompt,'')
|
||||
# Check if the target sequence appears in the generated text
|
||||
if self.target_sequence in generated_text:
|
||||
return True # Stop generation
|
||||
|
||||
return False # Continue generation
|
||||
|
||||
def __len__(self):
|
||||
return 1
|
||||
|
||||
def __iter__(self):
|
||||
yield self
|
||||
```
|
||||
This then expects your input prompt (formatted as given into the model), and a stopping criteria, in this case the im_end token. Simply add it to the generation:
|
||||
|
||||
```python
|
||||
generation_output = model.generate(
|
||||
tokens,
|
||||
streamer=streamer,
|
||||
max_new_tokens=1012,
|
||||
stopping_criteria=GermeoStoppingCriteria("<|im_end|>", prompt_template.format(prompt=prompt))
|
||||
)
|
||||
```
|
||||
### Acknowledgements and Special Thanks
|
||||
|
||||
- Thank you [malteos](https://https://huggingface.co/malteos/) for hermeo, without this it would not be possible! (and all your other contributions)
|
||||
- Thanks to the authors of the base models: [Mistral](https://mistral.ai/), [LAION](https://laion.ai/), [HessianAI](https://hessian.ai/), [Open Access AI Collective](https://huggingface.co/openaccess-ai-collective), [@teknium](https://huggingface.co/teknium), [@bjoernp](https://huggingface.co/bjoernp)
|
||||
- Also [@bjoernp](https://huggingface.co/bjoernp) thank you for your contribution and LeoLM for OpenSchnabeltier.
|
||||
|
||||
## Evaluation and Benchmarks (German only)
|
||||
|
||||
|
||||
### German benchmarks
|
||||
|
||||
| **German tasks:** | **MMLU-DE** | **Hellaswag-DE** | **ARC-DE** |**Average** |
|
||||
|-------------------------------|-------------|---------------|--------------|--------------|
|
||||
| **Models / Few-shots:** | _(5 shots)_ | _(10 shots)_ | _(24 shots)_ | |
|
||||
| _7B parameters_ | | | | |
|
||||
| llama-2-7b | 0.400 | 0.513 | 0.381 | 0.431 |
|
||||
| leo-hessianai-7b | 0.400 | 0.609 | 0.429 | 0.479 |
|
||||
| bloom-6b4-clp-german | 0.274 | 0.550 | 0.351 | 0.392 |
|
||||
| mistral-7b | **0.524** | 0.588 | 0.473 | 0.528 |
|
||||
| leo-mistral-hessianai-7b | 0.481 | 0.663 | 0.485 | 0.543 |
|
||||
| leo-mistral-hessianai-7b-chat | 0.458 | 0.617 | 0.465 | 0.513 |
|
||||
| DPOpenHermes-7B-v2 | 0.517 | 0.603 | 0.515 | 0.545 |
|
||||
| hermeo-7b | 0.511 | **0.668** | **0.528** | **0.569** |
|
||||
| **germeo-7b-awq (this model)**| 0.522 | 0.651 | 0.514 | 0.563 |
|
||||
| _13B parameters_ | | | | |
|
||||
| llama-2-13b | 0.469 | 0.581 | 0.468 | 0.506 |
|
||||
| leo-hessianai-13b | **0.486** | **0.658** | **0.509** | **0.551** |
|
||||
| _70B parameters_ | | | | |
|
||||
| llama-2-70b | 0.597 | 0.674 | 0.561 | 0.611 |
|
||||
| leo-hessianai-70b | **0.653** | **0.721** | **0.600** | **0.658** |
|
||||
|
||||
|
||||
### German reply rate benchmark
|
||||
The fraction of German reply rates according to [this benchmark](https://huggingface.co/spaces/floleuerer/german_llm_outputs)
|
||||
|
||||
| **Models:** | **German Response Rate** |
|
||||
|-------------------------|-------------------------|
|
||||
| hermeo-7b | tba |
|
||||
| **germeo-7b-awq (this model)**| tba |
|
||||
|
||||
### Additional Benchmarks:
|
||||
|
||||
TruthfulQA-DE: 0.508
|
||||
33
config.json
Normal file
33
config.json
Normal file
@@ -0,0 +1,33 @@
|
||||
{
|
||||
"_name_or_path": "C:\\Users\\aaron\\.cache\\huggingface\\hub\\models--malteos--hermeo-7b\\snapshots\\b7640332be82f1cdc493ebf971aeaf861ca29bac",
|
||||
"architectures": [
|
||||
"MistralForCausalLM"
|
||||
],
|
||||
"attention_dropout": 0.0,
|
||||
"bos_token_id": 1,
|
||||
"eos_token_id": 2,
|
||||
"hidden_act": "silu",
|
||||
"hidden_size": 4096,
|
||||
"initializer_range": 0.02,
|
||||
"intermediate_size": 14336,
|
||||
"max_position_embeddings": 32768,
|
||||
"model_type": "mistral",
|
||||
"num_attention_heads": 32,
|
||||
"num_hidden_layers": 32,
|
||||
"num_key_value_heads": 8,
|
||||
"quantization_config": {
|
||||
"bits": 4,
|
||||
"group_size": 128,
|
||||
"quant_method": "awq",
|
||||
"version": "gemm",
|
||||
"zero_point": true
|
||||
},
|
||||
"rms_norm_eps": 1e-05,
|
||||
"rope_theta": 10000.0,
|
||||
"sliding_window": 4096,
|
||||
"tie_word_embeddings": false,
|
||||
"torch_dtype": "float16",
|
||||
"transformers_version": "4.36.2",
|
||||
"use_cache": false,
|
||||
"vocab_size": 32002
|
||||
}
|
||||
7
generation_config.json
Normal file
7
generation_config.json
Normal file
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"_from_model_config": true,
|
||||
"bos_token_id": 1,
|
||||
"eos_token_id": 2,
|
||||
"transformers_version": "4.36.2",
|
||||
"use_cache": false
|
||||
}
|
||||
3
model.safetensors
Normal file
3
model.safetensors
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:29f9ee03290ac68f68379b79d2f01e567ffe435564f939594e82aa8717f9ebe1
|
||||
size 4150913000
|
||||
6
quant_config.json
Normal file
6
quant_config.json
Normal file
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"zero_point": true,
|
||||
"q_group_size": 128,
|
||||
"w_bit": 4,
|
||||
"version": "GEMM"
|
||||
}
|
||||
23
special_tokens_map.json
Normal file
23
special_tokens_map.json
Normal file
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"bos_token": {
|
||||
"content": "<s>",
|
||||
"lstrip": false,
|
||||
"normalized": false,
|
||||
"rstrip": false,
|
||||
"single_word": false
|
||||
},
|
||||
"eos_token": {
|
||||
"content": "</s>",
|
||||
"lstrip": false,
|
||||
"normalized": false,
|
||||
"rstrip": false,
|
||||
"single_word": false
|
||||
},
|
||||
"unk_token": {
|
||||
"content": "<unk>",
|
||||
"lstrip": false,
|
||||
"normalized": false,
|
||||
"rstrip": false,
|
||||
"single_word": false
|
||||
}
|
||||
}
|
||||
91122
tokenizer.json
Normal file
91122
tokenizer.json
Normal file
File diff suppressed because it is too large
Load Diff
BIN
tokenizer.model
(Stored with Git LFS)
Normal file
BIN
tokenizer.model
(Stored with Git LFS)
Normal file
Binary file not shown.
42
tokenizer_config.json
Normal file
42
tokenizer_config.json
Normal file
@@ -0,0 +1,42 @@
|
||||
{
|
||||
"add_bos_token": true,
|
||||
"add_eos_token": false,
|
||||
"added_tokens_decoder": {
|
||||
"0": {
|
||||
"content": "<unk>",
|
||||
"lstrip": false,
|
||||
"normalized": false,
|
||||
"rstrip": false,
|
||||
"single_word": false,
|
||||
"special": true
|
||||
},
|
||||
"1": {
|
||||
"content": "<s>",
|
||||
"lstrip": false,
|
||||
"normalized": false,
|
||||
"rstrip": false,
|
||||
"single_word": false,
|
||||
"special": true
|
||||
},
|
||||
"2": {
|
||||
"content": "</s>",
|
||||
"lstrip": false,
|
||||
"normalized": false,
|
||||
"rstrip": false,
|
||||
"single_word": false,
|
||||
"special": true
|
||||
}
|
||||
},
|
||||
"additional_special_tokens": [],
|
||||
"bos_token": "<s>",
|
||||
"clean_up_tokenization_spaces": false,
|
||||
"eos_token": "</s>",
|
||||
"legacy": true,
|
||||
"model_max_length": 1000000000000000019884624838656,
|
||||
"pad_token": null,
|
||||
"sp_model_kwargs": {},
|
||||
"spaces_between_special_tokens": false,
|
||||
"tokenizer_class": "LlamaTokenizer",
|
||||
"unk_token": "<unk>",
|
||||
"use_default_system_prompt": false
|
||||
}
|
||||
Reference in New Issue
Block a user