Safetensors
English
Russian
llama

T-pro-it-2.0-eagle

🚨 Users are advised to exercise caution and are responsible for any additional training and oversight required to ensure the model's responses meet acceptable ethical and safety standards. The responsibility for incorporating this model into industrial or commercial solutions lies entirely with those who choose to deploy it.

Description

T-pro-it-2.0-eagle is an Eagle 1 draft model with 1 transformer layer and Eagle 2 decoding during inference.

📚 Dataset

0.5B tokens of instruction data with one fifth focused on reasoning tasks.

📊 Benchmarks

🚨 The speedup can vary significantly depending on the distribution of the input data.

🚨 Bamboo tree. In low load scenarios with low dynamic batch sizes full tree may have better speedups

🚨 Full tree. In high load scenarios may cause significant performance degradation, use only in low load scenarios

We report our results on in-house dataset, representing LLM queries inside our company.

bamboo tree & temperature = 0

  • Using 2x H100 80GB HBM in tensor parallel regime.
  • temperature equals 0.
  • speculative num steps parameter equals 3.
  • speculative Eagle topk parameter equals 1.
  • speculative num draft tokens parameter equals 4.
bs tps w/o Eagle tps w Eagle Eagle acc len Speedup
1 69 110 2.01 1.59
2 134 219 2.04 1.63
4 257 409 2.04 1.59
8 483 763 2.06 1.58
16 822 1261 2.07 1.53
24 1138 1638 2.07 1.44
32 1291 1923 2.06 1.49
64 1899 2557 2.05 1.35

bamboo tree & temperature = 1

  • Using 2x H100 80GB HBM in tensor parallel regime.
  • temperature equals 1.
  • speculative num steps parameter equals 3.
  • speculative Eagle topk parameter equals 1.
  • speculative num draft tokens parameter equals 4.
bs tps w/o Eagle tps w Eagle Eagle acc len Speedup
1 69 93 1.82 1.35
2 134 180 1.81 1.34
4 257 343 1.81 1.33
8 483 628 1.81 1.30
16 822 1048 1.81 1.27
24 1138 1387 1.82 1.22
32 1291 1645 1.82 1.28
64 1899 2184 1.81 1.15

Before benchmarking make sure to:

  • Set maximum tokens high enough. We used ~ 2048 maximum tokens.
  • Use enough data to gather representable statistics. We used ~ 1000 samples.
  • Send warmup requests. We used ~ 16 samples.
  • Check that your GPUs are not occupied by other processes.

For more speed up you are welcome to tune parameters below. They are crucial and can boost or degradage perfomance of your speculative draft model drastically.

  • speculative num steps.
  • speculative Eagle topk.
  • speculative num draft tokens.

👨‍💻 Examples of usage

SGLang Usage

With dynamic tree Eagle (acc len 3.4, generation TPS ~ 144):

import sglang
import transformers


if __name__ == "__main__":
    tokenizer = transformers.AutoTokenizer.from_pretrained("t-tech/T-pro-it-2.0")
    
    llm = sglang.Engine(
        model_path="t-tech/T-pro-it-2.0",
        max_running_requests=1,
        tp_size=2,
        mem_fraction_static=0.8,
        speculative_algorithm="EAGLE",
        speculative_draft_model_path="t-tech/T-pro-it-2.0-eagle",
        speculative_num_steps=5,
        speculative_eagle_topk=8,
        speculative_num_draft_tokens=64
    )

    sampling_params = {"temperature": 0.0, "max_new_tokens": 2048}

    # warmup
    llm.generate([tokenizer.apply_chat_template([{"role": "user", "content": "Что такое программирование?"}], tokenize=False)], sampling_params)
    llm.generate([tokenizer.apply_chat_template([{"role": "user", "content": "Расскажи шутку"}], tokenize=False)], sampling_params)
    llm.generate([tokenizer.apply_chat_template([{"role": "user", "content": "Чем питаются орлы?"}], tokenize=False)], sampling_params)
    llm.generate([tokenizer.apply_chat_template([{"role": "user", "content": "Ты орел?"}], tokenize=False)], sampling_params)

    # actual run
    outputs = llm.generate([tokenizer.apply_chat_template([{"role": "user", "content": "Что такое большая языковая модель?"}], tokenize=False)], sampling_params)
    output = outputs[0]
    llm.shutdown()
    total_latency = output["meta_info"]["e2e_latency"]
    total_output_tokens = output["meta_info"]["completion_tokens"]
    total_verify_ct = output["meta_info"]["spec_verify_ct"]
    total_output_throughput = total_output_tokens / total_latency
    accept_length = total_output_tokens / total_verify_ct
    print(outputs[0])
    print({"accept_length": accept_length, "total_output_throughput": total_output_throughput})

Output:

{'text': 'assistant\n<think>\nХорошо, пользователь спрашивает, что такое большая языковая модель. Нужно объяснить понятно, без сложных терминов. Сначала определю, что это за модель, возможно, упомянуть нейросети и машинное обучение. Важно подчеркнуть, что она работает с текстом, генерирует, понимает, переводит и т.д.\n\nНадо объяснить, как она обучается — на больших объемах данных, например, книгах, статьях, сайтах. Важно отметить, что она предсказывает следующее слово в последовательности, поэтому контекст важен. Может, привести пример, как она отвечает на вопрос, анализируя предыдущие слова.\n\nСтоит упомянуть архитектуру, например, трансформеры, но не углубляться в детали. Важно сказать о применении: чат-боты, перевод, написание текстов. Также отметить ограничения — нет реального понимания, может ошибаться, зависит от данных.\n\nПроверю, нет ли ошибок в понимании. Убедиться, что объяснение простое, но точное. Возможно, добавить примеры известных моделей, вроде GPT, BERT. Важно сохранить структуру: определение, как работает, обучение, применение, ограничения. Избегать жаргона, но если он есть, пояснять. Убедиться, что ответ логичный и охватывает ключевые моменты.\n</think>\n\n**Большая языковая модель (LLM, Large Language Model)** — это искусственный интеллект, основанный на нейросетях, который умеет понимать, генерировать и анализировать текст на естественном языке (например, русском, английском и др.). Она обучается на огромных массивах данных (книги, статьи, сайты, код и т. д.) и может выполнять задачи, связанные с языком: отвечать на вопросы, писать тексты, переводить, программировать, анализировать эмоции и даже играть в текстовые игры.\n\n### **Как это работает?**\n1. **Архитектура**  \n   Современные LLM (например, GPT, Gemini, LLaMA) используют **трансформеры** — нейросетевые архитектуры, которые анализируют контекст текста, учитывая связи между словами на больших расстояниях.  \n   - Вместо того чтобы просто запоминать фразы, модель учится **предсказывать следующее слово** в последовательности, опираясь на статистику из обучающих данных.\n\n2. **Обучение**  \n   - **Предобучение**: Модель учится на терабайтах текста (например, весь интернет или специализированные корпуса).  \n   - **Дообучение (fine-tuning)**: После базового обучения её можно адаптировать под конкретные задачи (например, медицинские консультации или программирование).  \n   - **Подкрепление (RLHF)**: Некоторые модели (как ChatGPT) дообучают с помощью обратной связи от людей, чтобы ответы были полезнее и безопаснее.\n\n3. **Пример работы**  \n   Если вы спросите:  \n   *"Объясни теорию относительности простыми словами"*,  \n   модель:  \n   - Анализирует запрос, понимает ключевые слова ("теория относительности", "простыми словами").  \n   - Находит в своих знаниях (из обучающих данных) информацию об Эйнштейне, пространстве-времени, скорости света.  \n   - Генерирует ответ, структурируя его так, чтобы он был понятен без сложных формул.\n\n### **Где применяется?**\n- **Чат-боты** (ChatGPT, Gemini, Claude).  \n- **Автоматическое написание текстов** (статьи, сценарии, код).  \n- **Перевод и адаптация** (DeepL, Google Translate).  \n- **Анализ данных** (выделение ключевых идей из документов).  \n- **Образование** (объяснение сложных тем, проверка эссе).  \n\n### **Ограничения**\n- **Нет "понимания"** — модель лишь статистически предсказывает слова, не осознавая смысл.  \n- **Зависит от данных** — если в обучении были ошибки или предвзятость, она может их повторить.  \n- **Может "выдумывать"** (галлюцинации) — если не знает точного ответа, сгенерирует правдоподобный, но ложный.  \n- **Требует ресурсов** — обучение и запуск LLM требуют мощных компьютеров (GPU/TPU).  \n\n### **Примеры известных моделей**\n- **GPT-4 (OpenAI)** — один из самых продвинутых чат-ботов.  \n- **Gemini (Google)** — конкурирует с GPT, умеет работать с мультимодальными данными (текст + изображения).  \n- **Llama 3 (Meta)** — открытая модель, которую можно дорабатывать самостоятельно.  \n\n**Коротко:** LLM — это "умный текстовый генератор", который имитирует человеческое общение, но без сознания. Его сила — в масштабе данных и алгоритмов, а не в реальном мышлении.', 'meta_info': {'id': '58ea5e6808c4441ca16b0ffd69d0305d', 'finish_reason': {'type': 'stop', 'matched': 151644}, 'prompt_tokens': 12, 'completion_tokens': 1002, 'cached_tokens': 5, 'spec_verify_ct': 297, 'e2e_latency': 6.9574713706970215}}
{'accept_length': 3.3737373737373737, 'total_output_throughput': 144.0178401912154}

With bamboo tree Eagle (acc len 2.1, generation TPS ~ 119):

import sglang
import transformers


if __name__ == "__main__":
    tokenizer = transformers.AutoTokenizer.from_pretrained("t-tech/T-pro-it-2.0")
    
    llm = sglang.Engine(
        model_path="t-tech/T-pro-it-2.0",
        max_running_requests=1,
        tp_size=2,
        mem_fraction_static=0.8,
        speculative_algorithm="EAGLE",
        speculative_draft_model_path="t-tech/T-pro-it-2.0-eagle",
        speculative_num_steps=3,
        speculative_eagle_topk=1,
        speculative_num_draft_tokens=4
    )

    sampling_params = {"temperature": 0.0, "max_new_tokens": 2048}

    # warmup
    llm.generate([tokenizer.apply_chat_template([{"role": "user", "content": "Что такое программирование?"}], tokenize=False)], sampling_params)
    llm.generate([tokenizer.apply_chat_template([{"role": "user", "content": "Расскажи шутку"}], tokenize=False)], sampling_params)
    llm.generate([tokenizer.apply_chat_template([{"role": "user", "content": "Чем питаются орлы?"}], tokenize=False)], sampling_params)
    llm.generate([tokenizer.apply_chat_template([{"role": "user", "content": "Ты орел?"}], tokenize=False)], sampling_params)

    # actual run
    outputs = llm.generate([tokenizer.apply_chat_template([{"role": "user", "content": "Что такое большая языковая модель?"}], tokenize=False)], sampling_params)
    output = outputs[0]
    llm.shutdown()
    total_latency = output["meta_info"]["e2e_latency"]
    total_output_tokens = output["meta_info"]["completion_tokens"]
    total_verify_ct = output["meta_info"]["spec_verify_ct"]
    total_output_throughput = total_output_tokens / total_latency
    accept_length = total_output_tokens / total_verify_ct
    print(outputs[0])
    print({"accept_length": accept_length, "total_output_throughput": total_output_throughput})

Output:

{'text': 'assistant\n<think>\nХорошо, пользователь спрашивает, что такое большая языковая модель. Нужно объяснить понятно, без сложных терминов. Сначала определю, что это за модель, возможно, упомянуть нейросети и машинное обучение. Важно подчеркнуть, что она работает с текстом, генерирует, понимает, переводит и т.д.\n\nНадо объяснить, как она обучается — на больших объемах данных, например, книгах, статьях, сайтах. Важно отметить, что она предсказывает следующее слово, а не понимает контекст как человек. Может, привести пример, как она отвечает на вопросы.\n\nСтоит упомянуть известные модели, вроде GPT, BERT, чтобы было конкретнее. Также стоит сказать о применении: чат-боты, написание текстов, анализ данных. Но не забыть о ограничениях — нет реального понимания, возможны ошибки, зависимость от данных.\n\nПроверю, нет ли ошибок в понимании. Например, не путать с традиционными алгоритмами обработки текста. Убедиться, что объяснение логично и последовательно. Возможно, добавить аналогию, например, как модель учится на миллионах книг, чтобы предсказывать слова, как человек, но без сознания.\n\nНужно избегать жаргона, но если он есть, пояснять. Например, "трансформер" — можно сказать, что это архитектура нейросети, которая помогает обрабатывать длинные тексты. Важно сохранить баланс между простотой и точностью.\n\nПроверю, достаточно ли охвачены ключевые моменты: определение, как работает, обучение, применение, ограничения. Возможно, стоит структурировать ответ с подзаголовками для ясности, но в устной форме это не нужно. В итоге ответ должен быть информативным, но доступным для новичка.\n</think>\n\n**Большая языковая модель (LLM, Large Language Model)** — это искусственный интеллект, основанный на нейросетях, который умеет понимать, генерировать и анализировать текст на естественном языке (например, русском, английском и др.). Она обучается на огромных массивах данных (книги, статьи, сайты, код и т. д.) и может выполнять задачи, связанные с языком, такие как:\n\n### **Как это работает?**\n1. **Обучение на данных**  \n   - Модель "читает" миллиарды текстов, выявляя закономерности: как слова связаны между собой, какие фразы часто встречаются вместе, как строятся предложения.\n   - Например, если в данных часто встречается фраза *"Солнце светит, потому что..."*, модель запоминает, что после *"потому что"* чаще всего идут слова *"оно горит"* или *"оно излучает свет"*.\n\n2. **Предсказание следующего слова**  \n   - Основная задача LLM — предсказывать следующее слово в последовательности. Например, если ввести *"Кошка сидит на..."*, модель выберет наиболее вероятный вариант (*"коврике"*, *"окне"*, *"полке"* и т. д.).\n   - Чем больше данных и параметров (нейронов) у модели, тем точнее предсказания.\n\n3. **Архитектура (например, трансформер)**  \n   - Современные LLM (GPT, BERT, LLaMA) используют **трансформеры** — нейросетевые структуры, которые эффективно обрабатывают длинные тексты, учитывая контекст (например, значение слова может меняться в зависимости от предложения).\n\n---\n\n### **Что может делать LLM?**\n✅ **Генерация текста** (статьи, стихи, код, сценарии).  \n✅ **Ответы на вопросы** (как ChatGPT).  \n✅ **Перевод** (но не всегда идеально).  \n✅ **Анализ тональности** (например, определить, негативный или позитивный отзыв).  \n✅ **Суммаризация** (сокращение длинных текстов).  \n✅ **Диалог** (чат-боты, виртуальные ассистенты).  \n\n---\n\n### **Примеры известных LLM**\n- **GPT-4** (OpenAI) — одна из самых мощных, умеет писать код, объяснять сложные темы.  \n- **BERT** (Google) — специализируется на понимании контекста (например, поиск в Google).  \n- **LLaMA** (Meta) — открытая модель, которую можно дорабатывать.  \n- **YandexGPT** (Яндекс) — русскоязычная модель.  \n\n---\n\n### **Ограничения LLM**\n❌ **Нет реального понимания** — модель не "думает", а лишь статистически предсказывает слова.  \n❌ **Может ошибаться** (галлюцинации: выдумывает факты, если их нет в данных).  \n❌ **Зависит от данных** — если в обучении были предвзятые тексты, модель может копировать стереотипы.  \n❌ **Не знает "здесь и сейчас"** — не имеет доступа к интернету в реальном времени (если не подключена API).  \n\n---\n\n### **Аналогия для понимания**\nПредставьте, что LLM — это **очень умный, но слепой библиотекарь**, который:  \n- Прочитал **все книги в мире** (но не видит их, а лишь запоминает слова и связи).  \n- Может **сочинить новую книгу**, повторяя стиль и логику из прочитанного.  \n- Но если спросить *"Что происходит сейчас в мире?"*, он ответит, опираясь только на то, что знал **на момент обучения** (например, GPT-4 "знает" до 2023 года).  \n\n---\n\n**Вывод:** LLM — это мощный инструмент для работы с текстом, но он не заменяет человеческое мышление, а лишь имитирует его на основе данных. 🚀', 'meta_info': {'id': '7e5ecb9d66114506a8c25899c54beb61', 'finish_reason': {'type': 'stop', 'matched': 151644}, 'prompt_tokens': 12, 'completion_tokens': 1179, 'cached_tokens': 5, 'spec_verify_ct': 558, 'e2e_latency': 9.883560419082642}}
{'accept_length': 2.1129032258064515, 'total_output_throughput': 119.28899607105663}

Without Eagle (generation TPS ~ 71):

import sglang
import transformers


if __name__ == "__main__":
    tokenizer = transformers.AutoTokenizer.from_pretrained("t-tech/T-pro-it-2.0")
    
    llm = sglang.Engine(
        model_path="t-tech/T-pro-it-2.0",
        max_running_requests=1,
        tp_size=2,
        mem_fraction_static=0.8
    )

    sampling_params = {"temperature": 0.0, "max_new_tokens": 2048}

    # warmup
    llm.generate([tokenizer.apply_chat_template([{"role": "user", "content": "Что такое программирование?"}], tokenize=False)], sampling_params)
    llm.generate([tokenizer.apply_chat_template([{"role": "user", "content": "Расскажи шутку"}], tokenize=False)], sampling_params)
    llm.generate([tokenizer.apply_chat_template([{"role": "user", "content": "Чем питаются орлы?"}], tokenize=False)], sampling_params)
    llm.generate([tokenizer.apply_chat_template([{"role": "user", "content": "Ты орел?"}], tokenize=False)], sampling_params)

    # actual run
    outputs = llm.generate([tokenizer.apply_chat_template([{"role": "user", "content": "Что такое большая языковая модель?"}], tokenize=False)], sampling_params)
    output = outputs[0]
    llm.shutdown()
    total_latency = output["meta_info"]["e2e_latency"]
    total_output_tokens = output["meta_info"]["completion_tokens"]
    total_output_throughput = total_output_tokens / total_latency
    print(outputs[0])
    print({"total_output_throughput": total_output_throughput})

Output:

{'text': 'assistant\n<think>\nХорошо, пользователь спрашивает, что такое большая языковая модель. Нужно объяснить понятно, без сложных терминов. Сначала определю, что это за модель, возможно, упомянуть нейросети и машинное обучение. Важно подчеркнуть, что она работает с текстом, генерирует, понимает, переводит и т.д.\n\nНадо объяснить, как она обучается — на больших объемах данных, например, книгах, статьях, сайтах. Важно отметить, что она предсказывает следующее слово, а не понимает контекст как человек. Может, привести пример, как она отвечает на вопросы.\n\nСтоит упомянуть известные модели, вроде GPT, BERT, чтобы было конкретнее. Также стоит сказать о применении: чат-боты, написание текстов, анализ данных. Но не забыть о ограничениях — нет реального понимания, возможны ошибки, зависимость от данных.\n\nПроверю, нет ли ошибок в понимании. Например, не путать с традиционными алгоритмами обработки текста. Убедиться, что объяснение логично и последовательно. Возможно, добавить аналогию, например, как модель учится на миллионах книг, чтобы предсказывать слова, как человек, но без сознания.\n\nНужно избегать жаргона, но если он есть, пояснять. Например, "трансформер" — можно сказать, что это архитектура нейросети, которая помогает обрабатывать длинные тексты. Важно сохранить баланс между простотой и точностью.\n\nПроверю, достаточно ли охвачены ключевые моменты: определение, как работает, обучение, применение, ограничения. Возможно, стоит структурировать ответ с подзаголовками для ясности, но в устной форме это не нужно. В итоге ответ должен быть информативным, но доступным для новичка.\n</think>\n\n**Большая языковая модель (LLM, Large Language Model)** — это искусственный интеллект, основанный на нейросетях, который умеет понимать, генерировать и анализировать текст на естественном языке (например, русском, английском и др.). Она обучается на огромных массивах данных (книги, статьи, сайты, код и т. д.) и может выполнять задачи, связанные с языком, такие как:\n\n### **Как это работает?**\n1. **Обучение на данных**  \n   - Модель "читает" миллиарды текстов, выявляя закономерности: как слова связаны между собой, какие фразы часто встречаются вместе, как строятся предложения.\n   - Например, если в данных часто встречается фраза *"Солнце светит, потому что..."*, модель запоминает, что после *"потому что"* чаще всего идут слова *"оно горит"* или *"оно излучает свет"*.\n\n2. **Предсказание следующего слова**  \n   - Основная задача LLM — предсказывать следующее слово в последовательности. Например, если ввести *"Кошка сидит на..."*, модель выберет наиболее вероятный вариант (*"коврике"*, *"окне"*, *"полке"* и т. д.).\n   - Чем больше данных и параметров (нейронов) у модели, тем точнее предсказания.\n\n3. **Архитектура (например, трансформер)**  \n   - Современные LLM (GPT, BERT, LLaMA) используют **трансформеры** — нейросетевые структуры, которые эффективно обрабатывают длинные тексты, учитывая контекст (например, значение слова может меняться в зависимости от предложения).\n\n---\n\n### **Что может делать LLM?**\n✅ **Генерация текста** (статьи, стихи, код, сценарии).  \n✅ **Ответы на вопросы** (как ChatGPT).  \n✅ **Перевод** (но не всегда идеально).  \n✅ **Анализ тональности** (например, определить, негативный или позитивный отзыв).  \n✅ **Суммаризация** (сокращение длинных текстов).  \n✅ **Диалог** (чат-боты, виртуальные ассистенты).  \n\n---\n\n### **Примеры известных LLM**\n- **GPT-4** (OpenAI) — одна из самых мощных, умеет писать код, объяснять сложные темы.  \n- **BERT** (Google) — специализируется на понимании контекста (например, поиск в Google).  \n- **LLaMA** (Meta) — открытая модель, которую можно дорабатывать.  \n- **YandexGPT** (Яндекс) — русскоязычная модель.  \n\n---\n\n### **Ограничения LLM**\n❌ **Нет реального понимания** — модель не "думает", а лишь статистически предсказывает слова.  \n❌ **Может ошибаться** (галлюцинации: выдумывает факты, если их нет в данных).  \n❌ **Зависит от данных** — если в обучении были предвзятые тексты, модель может копировать стереотипы.  \n❌ **Не знает "здесь и сейчас"** — не имеет доступа к интернету в реальном времени (если не подключена API).  \n\n---\n\n### **Аналогия для понимания**\nПредставьте, что LLM — это **очень умный, но слепой библиотекарь**, который:  \n- Прочитал **все книги в мире** (но не видит их, а лишь запоминает слова и связи).  \n- Может **сочинить новую книгу**, повторяя стиль и логику из прочитанного.  \n- Но если спросить *"Что происходит сейчас в мире?"*, он ответит, опираясь только на то, что знал **на момент обучения** (например, GPT-4 "знает" до 2023 года).  \n\n---\n\n**Вывод:** LLM — это мощный инструмент для работы с текстом, но он не заменяет человеческое мышление, а лишь имитирует его на основе данных. 🚀', 'meta_info': {'id': 'cb1c4166a1e748529881a9004d2be057', 'finish_reason': {'type': 'stop', 'matched': 151644}, 'prompt_tokens': 12, 'completion_tokens': 1179, 'cached_tokens': 5, 'e2e_latency': 16.625061750411987}}
{'total_output_throughput': 70.91702982521451}
Downloads last month
237
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Collection including t-tech/T-pro-it-2.0-eagle