File size: 4,240 Bytes
97548e6 278885f 97548e6 215ef1e a4e1913 215ef1e a4e1913 215ef1e a4e1913 215ef1e a4e1913 215ef1e 278885f |
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 130 |
---
license: apache-2.0
language:
- ru
- en
base_model:
- Qwen/Qwen3-8B
pipeline_tag: text-generation
tags:
- Eagle
---
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} токенов/сек")
``` |