File size: 4,227 Bytes
97548e6 215ef1e 474a908 215ef1e 474a908 215ef1e 474a908 215ef1e 474a908 215ef1e |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 |
---
license: apache-2.0
language:
- ru
- en
base_model:
- Qwen/Qwen3-8B
pipeline_tag: text-generation
---
Avibe-eagle — это реализация спекулятивного декодинга на основе алгоритма EAGLE-3 для модели [Avibe](https://huggingface.co/AvitoTech/avibe).
Модель создана командой Авито Тех для ускорения генерации базовой 8B модели без потери качества.
Для обучения драфт-модели мы использовали около 100 млн токенов из SFT-датасета, который использовался для обучения исходной модели avibe. Примеры были выбраны преимущественно на русском языке, с сохранением доменной и стилевой близости к основной модели.
Результаты внутренних замеров показали, что использование eagle-3 через sglang в различных сетапах (разное количество предсказываемых токенов, разные top-k и т.д) на разовых запросах дают ускорение до 2.7х, которое постепенно снижается и становится нулевым при batch_size = 64.
Модель можно запускать с использованием популярных движков vllm и sglang
### Пример запуска vllm-сервера
```sh
vllm serve AvitoTech/avibe \
--host 0.0.0.0 \
--port 8000 \
--seed 42 \
--served-model-name Avibe-8B-eagle3 \
--dtype float16 \
--speculative-config '{"model": "AvitoTech/avibe-eagle", "num_speculative_tokens": 5, "method":"eagle3"}'
```
Пример запроса
```py
import openai
client = openai.Client(
base_url="http://0.0.0.0:8000/v1",
api_key=None
)
messages = [
{"role": "system", "content": "Ты полезный ассистент"},
{"role": "user", "content": "Напиши рецепт борща"}
]
response = client.chat.completions.create(
model="Avibe-8B-eagle3",
messages=messages,
max_tokens=256,
temperature=0.7
)
print(response.choices[0].message.content)
import time
start = time.perf_counter()
response = client.chat.completions.create(
model="Avibe-8B",
messages=messages,
max_tokens=256,
temperature=0.7
)
elapsed = time.perf_counter() - start
tokens = response.usage.completion_tokens
print(f"\nСтатистика:")
print(f"- Токенов сгенерировано: {tokens}")
print(f"- Время: {elapsed:.2f}s")
print(f"- Скорость: {tokens/elapsed:.1f} токенов/сек")
```
### Пример запуска sglang-сервера
```sh
python3 -m sglang.launch_server --model AvitoTech/avibe \
--served_model_name Avibe-8B-eagle3 \
--speculative-algorithm EAGLE3 \
--speculative-draft-model-path AvitoTech/avibe-eagle \
--speculative-num-steps 5 \
--speculative-eagle-topk 1 \
--dtype float16 \
--host 0.0.0.0 \
--port 8000
```
Пример запроса с использованем OpenAI-API точно такой же как и для vllm
```py
import openai
client = openai.Client(
base_url="http://0.0.0.0:8000/v1",
api_key=None
)
messages = [
{"role": "system", "content": "Ты полезный ассистент"},
{"role": "user", "content": "Напиши рецепт борща"}
]
response = client.chat.completions.create(
model="Avibe-8B-eagle3",
messages=messages,
max_tokens=256,
temperature=0.7
)
print(response.choices[0].message.content)
import time
start = time.perf_counter()
response = client.chat.completions.create(
model="Avibe-8B",
messages=messages,
max_tokens=256,
temperature=0.7
)
elapsed = time.perf_counter() - start
tokens = response.usage.completion_tokens
print(f"\nСтатистика:")
print(f"- Токенов сгенерировано: {tokens}")
print(f"- Время: {elapsed:.2f}s")
print(f"- Скорость: {tokens/elapsed:.1f} токенов/сек")
```
|