|
--- |
|
license: mit |
|
language: |
|
- ru |
|
- en |
|
--- |
|
|
|
# GigaChat-20B-A3B-base |
|
|
|
Большая языковая модель, основанна на MoE архитектуре, обучена специально под русский язык **с нуля**. |
|
Всего у модели 20 миллиардов параметров, но во время инференса задействовано только 3 миллиарда. Контекст модели =131k токенов. |
|
|
|
Больше подробностей в [хабр статье](https://habr.com/en/companies/sberdevices/articles/865996/). |
|
|
|
Upd. Перезалили веса в `.safetensors` |
|
|
|
## Архитектура модели |
|
|
|
GigaChat-20B-A3B состоит из следующих деталей: |
|
|
|
- Fine-grained Experts + Shared Experts |
|
- Grouped Query Attention |
|
- Rotary Position Embeddings |
|
- RMSNorm |
|
- SwiGLU в MLP |
|
|
|
Важно то, что в реализации MoE некоторые эксперты вызываются в зависимости от контекста, а другие используются всегда. |
|
|
|
## Бенчмарки |
|
|
|
Общие английские метрики. Для замера использовался популярный открытый репозиторий [LM Evaluation Harness](https://github.com/EleutherAI/lm-evaluation-harness). |
|
|
|
| Bench | T-lite-0.1<br>(llama 3.0 8B based)| Llama-3.1-8B | GigaChat-20B-A3B-base | Gemma-9B | |
|
| ----------------------------- | ---------- | ------------ | --------------------- | --------- | |
|
| MMLU (5-shot) | 62.56 | 65.21 | 63.02 | 70.6 | |
|
| MMLU-pro (5-shot) | 32.19 | 35.7 | 31.41 | 42.85 | |
|
| MMLU-ru (5-shot) | 55.51 | 54.1 | 58.38 | 62.57 | |
|
| BBH (3-shot) | 62.36 | 62.79 | 53.54 | 70.48 | |
|
| ARC-C (25-shot) | 58.19 | 54.69 | 61.69 | 68.34 | |
|
| TruthfulQA (0-shot) (rougeL) | 46.51 | 34.52 | 31.82 | 41.49 | |
|
| Winogrande (5-shot) | 78.45 | 77.43 | 75.85 | 79.4 | |
|
| Hellaswag (10-shot) | 82.21 | 81.85 | 81.91 | 82.5 | |
|
| GPQA (5-shot) | 0.25 | 23.44 | 25.22 | 30.36 | |
|
| MATH (4-shot) | 12.9 | 14.04 | 15.04 | 20.06 | |
|
| GSM8K (4-shot) (strict-match) | 67.93 | 51.4 | 59.06 | 68.99 | |
|
| HumanEval | 16.46 | 25.61 | 32.32 | 37.2 | |
|
| **AVG** | **47.96** | **48.4** | **49.11** | **56.24** | |
|
|
|
|
|
## Requirements |
|
|
|
* ```transformers>=4.47``` |
|
|
|
|
|
## Пример использования через transformers |
|
|
|
```python |
|
import torch |
|
from transformers import AutoTokenizer, AutoModelForCausalLM, GenerationConfig |
|
|
|
model_name = "ai-sage/GigaChat-20B-A3B-base" |
|
tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True) |
|
model = AutoModelForCausalLM.from_pretrained(model_name, trust_remote_code=True, torch_dtype=torch.bfloat16, device_map="auto") |
|
model.generation_config = GenerationConfig.from_pretrained(model_name) |
|
|
|
messages = ( |
|
"Ниже я написал подробное доказательство теоремы о неподвижной точке:" |
|
) |
|
input_tensor = tokenizer(messages, return_tensors="pt").input_ids |
|
outputs = model.generate(input_tensor.to(model.device)) |
|
|
|
result = tokenizer.decode(outputs[0][input_tensor.shape[1]:], skip_special_tokens=False) |
|
print(result) |
|
``` |
|
|
|
## Пример использования через vLLM |
|
|
|
```python |
|
from transformers import AutoTokenizer |
|
from vllm import LLM, SamplingParams |
|
|
|
model_name = "ai-sage/GigaChat-20B-A3B-base" |
|
llm = LLM(model=model_name, tokenizer=model_name, trust_remote_code=True) |
|
sampling_params = SamplingParams( |
|
temperature=0.3, |
|
max_tokens=8192, |
|
stop_token_ids=[tokenizer.eos_token_id] |
|
) |
|
|
|
messages = ( |
|
"Ниже я написал подробное доказательство теоремы о неподвижной точке:" |
|
) |
|
outputs = llm.generate(messages, sampling_params=sampling_params) |
|
generated_text = [output.outputs[0].text for output in outputs] |
|
print(generated_text) |
|
``` |
|
|
|
## Скорость генерации |
|
|
|
| Model | Total params (B) | Active params (B) | Req/s | Output Token/s | Total Token/s | |
|
|---------|-----------------|------------------|--------|----------------|----------------| |
|
| Qwen/Qwen1.5-MoE-A2.7B-Chat | 14 | 2,7 | 0,62 | 156,43 | 291,17 | |
|
| deepseek-ai/deepseek-moe-16b-chat | 16 | 2,8 | 0,59 | 149,53 | 285,39 | |
|
| **GigaChat-20B-A3B** | 20 | 3,3 | 0,55 | 137,43 | 259,27 | |
|
| Qwen/Qwen2.5-3B-Instruct | 3 | 3 | 0,54 | 135,10 | 251,44 | |
|
| meta-llama/Meta-Llama-3-8B-Instruct | 8 | 8 | 0,35 | 83,26 | 157,32 | |
|
| google/gemma-2-9b-it | 9 | 9 | 0,27 | 54,87 | 113,69 | |
|
|
|
|