--- 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} токенов/сек") ```