IkIzma commited on
Commit
215ef1e
·
verified ·
1 Parent(s): a2b75e7

Update README.md

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