mirekphd's picture
Added gte-Qwen2-7B-instruct-F16 GGUF model files.
8600309
---
tags:
- mteb
- sentence-transformers
- transformers
- Qwen2
- sentence-similarity
- llama-cpp
license: apache-2.0
---
## This version
This model was converted from the 32-bit original safetensors format to a **16-bit GGUF format (`f16`)** from **[`Alibaba-NLP/gte-Qwen2-7B-instruct`](https://huggingface.co/Alibaba-NLP/gte-Qwen2-7B-instruct)** using `llama-quantize` built from [`llama.cpp`](https://github.com/ggerganov/llama.cpp).
Custom conversion script settings:
```json
"gte-Qwen2-7B-instruct": {
"model_name": "gte-Qwen2-7B-instruct",
"hq_quant_type": "f16",
"final_quant_type": "",
"produce_final_quant": false,
"parts_num": 4,
"max_shard_size_gb": 4,
"numexpr_max_thread": 8
}
```
Please refer to the [original model card](https://huggingface.co/Alibaba-NLP/gte-Qwen2-7B-instruct) for more details on the unquantized model, including its metrics, which may be different (typically slightly worse) for this quantized version.
## gte-Qwen2-7B-instruct
**gte-Qwen2-7B-instruct** is the latest model in the gte (General Text Embedding) model family that ranks **No.1** in both English and Chinese evaluations on the Massive Text Embedding Benchmark [MTEB benchmark](https://huggingface.co/spaces/mteb/leaderboard) (as of June 16, 2024).
Recently, the [**Qwen team**](https://huggingface.co/Qwen) released the Qwen2 series models, and we have trained the **gte-Qwen2-7B-instruct** model based on the [Qwen2-7B](https://huggingface.co/Qwen/Qwen2-7B) LLM model. Compared to the [gte-Qwen1.5-7B-instruct](https://huggingface.co/Alibaba-NLP/gte-Qwen1.5-7B-instruct) model, the **gte-Qwen2-7B-instruct** model uses the same training data and training strategies during the finetuning stage, with the only difference being the upgraded base model to Qwen2-7B. Considering the improvements in the Qwen2 series models compared to the Qwen1.5 series, we can also expect consistent performance enhancements in the embedding models.
The model incorporates several key advancements:
- Integration of bidirectional attention mechanisms, enriching its contextual understanding.
- Instruction tuning, applied solely on the query side for streamlined efficiency
- Comprehensive training across a vast, multilingual text corpus spanning diverse domains and scenarios. This training leverages both weakly supervised and supervised data, ensuring the model's applicability across numerous languages and a wide array of downstream tasks.
## Model Information
### Overview
- Model Type: GTE (General Text Embeddings)
- Model Size: 7B
- Embedding Dimension: 3584
- Context Window: 131072
### Supported languages
- North America: English
- Western Europe: German, French, Spanish, Portuguese, Italian, Dutch
- Eastern & Central Europe: Russian, Czech, Polish
- Middle East: Arabic, Persian, Hebrew, Turkish
- Eastern Asia: Chinese, Japanese, Korean
- South-Eastern Asia: Vietnamese, Thai, Indonesian, Malay, Lao, Burmese, Cebuano, Khmer, Tagalog
- Southern Asia: Hindi, Bengali, Urdu
- [[source](https://qwenlm.github.io/blog/qwen2/)]
### Details
```
llama_model_loader: - kv 0: general.architecture str = qwen2
llama_model_loader: - kv 1: general.type str = model
llama_model_loader: - kv 2: general.name str = gte-Qwen2-7B-instruct
llama_model_loader: - kv 3: general.finetune str = instruct
llama_model_loader: - kv 4: general.basename str = gte-Qwen2
llama_model_loader: - kv 5: general.size_label str = 7B
llama_model_loader: - kv 6: general.license str = apache-2.0
llama_model_loader: - kv 7: general.tags arr[str,5] = ["mteb", "sentence-transformers", "tr...
llama_model_loader: - kv 8: qwen2.block_count u32 = 28
llama_model_loader: - kv 9: qwen2.context_length u32 = 131072
llama_model_loader: - kv 10: qwen2.embedding_length u32 = 3584
llama_model_loader: - kv 11: qwen2.feed_forward_length u32 = 18944
llama_model_loader: - kv 12: qwen2.attention.head_count u32 = 28
llama_model_loader: - kv 13: qwen2.attention.head_count_kv u32 = 4
llama_model_loader: - kv 14: qwen2.rope.freq_base f32 = 1000000.000000
llama_model_loader: - kv 15: qwen2.attention.layer_norm_rms_epsilon f32 = 0.000001
llama_model_loader: - kv 16: general.file_type u32 = 1
llama_model_loader: - kv 17: tokenizer.ggml.model str = gpt2
llama_model_loader: - kv 18: tokenizer.ggml.pre str = qwen2
llama_model_loader: - kv 19: tokenizer.ggml.tokens arr[str,151646] = ["!", "\"", "#", "$", "%", "&", "'", ...
llama_model_loader: - kv 20: tokenizer.ggml.token_type arr[i32,151646] = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ...
llama_model_loader: - kv 21: tokenizer.ggml.merges arr[str,151387] = ["Ġ Ġ", "ĠĠ ĠĠ", "i n", "Ġ t",...
llama_model_loader: - kv 22: tokenizer.ggml.eos_token_id u32 = 151643
llama_model_loader: - kv 23: tokenizer.ggml.padding_token_id u32 = 151643
llama_model_loader: - kv 24: tokenizer.ggml.bos_token_id u32 = 151643
llama_model_loader: - kv 25: tokenizer.ggml.add_eos_token bool = true
llama_model_loader: - kv 26: tokenizer.chat_template str = {% for message in messages %}{{'<|im_...
llama_model_loader: - kv 27: general.quantization_version u32 = 2
llama_model_loader: - kv 28: split.no u16 = 0
llama_model_loader: - kv 29: split.count u16 = 4
llama_model_loader: - kv 30: split.tensors.count i32 = 339
llama_model_loader: - type f32: 141 tensors
llama_model_loader: - type f16: 198 tensors
llm_load_vocab: special tokens cache size = 3
llm_load_vocab: token to piece cache size = 0.9308 MB
llm_load_print_meta: format = GGUF V3 (latest)
llm_load_print_meta: arch = qwen2
llm_load_print_meta: vocab type = BPE
llm_load_print_meta: n_vocab = 151646
llm_load_print_meta: n_merges = 151387
llm_load_print_meta: vocab_only = 0
llm_load_print_meta: n_ctx_train = 131072
llm_load_print_meta: n_embd = 3584
llm_load_print_meta: n_layer = 28
llm_load_print_meta: n_head = 28
llm_load_print_meta: n_head_kv = 4
llm_load_print_meta: n_rot = 128
llm_load_print_meta: n_swa = 0
llm_load_print_meta: n_embd_head_k = 128
llm_load_print_meta: n_embd_head_v = 128
llm_load_print_meta: n_gqa = 7
llm_load_print_meta: n_embd_k_gqa = 512
llm_load_print_meta: n_embd_v_gqa = 512
llm_load_print_meta: f_norm_eps = 0.0e+00
llm_load_print_meta: f_norm_rms_eps = 1.0e-06
llm_load_print_meta: f_clamp_kqv = 0.0e+00
llm_load_print_meta: f_max_alibi_bias = 0.0e+00
llm_load_print_meta: f_logit_scale = 0.0e+00
llm_load_print_meta: n_ff = 18944
llm_load_print_meta: n_expert = 0
llm_load_print_meta: n_expert_used = 0
llm_load_print_meta: causal attn = 1
llm_load_print_meta: pooling type = 0
llm_load_print_meta: rope type = 2
llm_load_print_meta: rope scaling = linear
llm_load_print_meta: freq_base_train = 1000000.0
llm_load_print_meta: freq_scale_train = 1
llm_load_print_meta: n_ctx_orig_yarn = 131072
llm_load_print_meta: rope_finetuned = unknown
llm_load_print_meta: ssm_d_conv = 0
llm_load_print_meta: ssm_d_inner = 0
llm_load_print_meta: ssm_d_state = 0
llm_load_print_meta: ssm_dt_rank = 0
llm_load_print_meta: ssm_dt_b_c_rms = 0
llm_load_print_meta: model type = 7B
llm_load_print_meta: model ftype = F16
llm_load_print_meta: model params = 7.61 B
llm_load_print_meta: model size = 14.18 GiB (16.00 BPW)
llm_load_print_meta: general.name = gte-Qwen2-7B-instruct
llm_load_print_meta: BOS token = 151643 '<|endoftext|>'
llm_load_print_meta: EOS token = 151643 '<|endoftext|>'
llm_load_print_meta: EOT token = 151645 '<|im_end|>'
llm_load_print_meta: PAD token = 151643 '<|endoftext|>'
llm_load_print_meta: LF token = 148848 'ÄĬ'
llm_load_print_meta: EOG token = 151643 '<|endoftext|>'
llm_load_print_meta: EOG token = 151645 '<|im_end|>'
llm_load_print_meta: max token length = 256
llm_load_tensors: CPU_Mapped model buffer size = 3703.93 MiB
llm_load_tensors: CPU_Mapped model buffer size = 3685.86 MiB
llm_load_tensors: CPU_Mapped model buffer size = 3685.86 MiB
llm_load_tensors: CPU_Mapped model buffer size = 3444.91 MiB
........................................................................................
llama_new_context_with_model: n_seq_max = 1
llama_new_context_with_model: n_ctx = 131072
llama_new_context_with_model: n_ctx_per_seq = 131072
llama_new_context_with_model: n_batch = 2048
llama_new_context_with_model: n_ubatch = 512
llama_new_context_with_model: flash_attn = 0
llama_new_context_with_model: freq_base = 1000000.0
llama_new_context_with_model: freq_scale = 1
llama_kv_cache_init: CPU KV buffer size = 7168.00 MiB
llama_new_context_with_model: KV self size = 7168.00 MiB, K (f16): 3584.00 MiB, V (f16): 3584.00 MiB
llama_new_context_with_model: CPU output buffer size = 0.01 MiB
llama_new_context_with_model: CPU compute buffer size = 7452.01 MiB
llama_new_context_with_model: graph nodes = 986
llama_new_context_with_model: graph splits = 1
```
## Usage
### Sentence Transformers
### Transformers
## Inference
### Using `llama.cpp` to get embeddings in CPU and/or GPU
First [build](https://github.com/ggerganov/llama.cpp/blob/master/docs/build.md) or [install](https://github.com/ggerganov/llama.cpp/blob/master/docs/install.md) **`llama-server`** binary from [`llama.cpp`](https://github.com/ggerganov/llama.cpp), preferably with GPU support.
### CLI
### Server
```bash
# using remote HF repo address (with model file(s) to be downloaded and cached locally)
$ llama-server --hf-repo mirekphd/gte-Qwen2-7B-instruct-F16 --hf-file gte-Qwen2-7B-instruct-F16-00001-of-00004.gguf --n-gpu-layers 0 --ctx-size 131072 --embeddings
# using a previously downloaded local model file(s)
$ llama-server --model <path-to-hf-models>/mirekphd/gte-Qwen2-7B-instruct-F16/gte-Qwen2-7B-instruct-F16-00001-of-00004.gguf --n-gpu-layers 0 --ctx-size 131072 --embeddings
```
## Evaluation
### MTEB & C-MTEB
## Cloud API Services
## Citation
If you find our paper or models helpful, please consider cite:
```
@article{li2023towards,
title={Towards general text embeddings with multi-stage contrastive learning},
author={Li, Zehan and Zhang, Xin and Zhang, Yanzhao and Long, Dingkun and Xie, Pengjun and Zhang, Meishan},
journal={arXiv preprint arXiv:2308.03281},
year={2023}
}
```