Transformers documentation
LongCatFlash
Эта модель была опубликована в HF papers 01.09.2025 и добавлена в Hugging Face Transformers 17.09.2025.
LongCatFlash
Обзор
Модель LongCatFlash была представлена в LongCat-Flash Technical Report командой Meituan LongCat Team. LongCat-Flash — это модель Mixture-of-Experts (MoE) с 560 млрд параметров, которая динамически активирует от 18,6 до 31,3 млрд параметров (в среднем ~27 млрд). Модель отличается архитектурой с обходными соединениями, обеспечивающей высокую скорость инференса (>100 токенов в секунду) и продвинутые возможности рассуждения.
Аннотация из статьи следующая:
Мы представляем LongCat-Flash — языковую модель Mixture-of-Experts (MoE) с 560 миллиардами параметров, оснащённую механизмом динамического вычисления, который активирует от 18,6 до 31,3 миллиардов параметров в зависимости от контекста (в среднем ~27 миллиардов). Модель использует архитектуру с обходными соединениями, обеспечивающую высокую скорость инференса (>100 токенов в секунду), и демонстрирует высокие результаты на множестве бенчмарков, включая точность 89,71% на MMLU и выдающиеся возможности агентного использования инструментов.
Советы:
- LongCat-Flash использует уникальную архитектуру MoE с обходными соединениями, что обеспечивает более быстрый вывод по сравнению с традиционными моделями MoE
- Модель поддерживает длину контекста до 128k для задач с длинным форматом
- Динамическая активация параметров обеспечивает высокую производительность при вычислительной эффективности
- Оптимально подходит для приложений, требующих мощных возможностей рассуждения, написания кода и вызова инструментов
- Архитектура MoE включает нулевых экспертов (модули nn.Identity), которые выполняют роль обходных соединений, позволяя токенам обходить вычисления экспертов, когда это уместно
Эта модель была предоставлена Molbap. Исходный код можно найти здесь.
Примеры использования
Модель большая: для выполнения инференса вам потребуется 2x8 H100.
# launch_longcat.py
from transformers import AutoTokenizer, LongcatFlashForCausalLM
model_id = "meituan-longcat/LongCat-Flash-Chat"
tokenizer = AutoTokenizer.from_pretrained(model_id)
chat = [
{"role": "user", "content": "Hello! What is the capital of France? What can you tell me about it?"},
]
model = LongcatFlashForCausalLM.from_pretrained(
model_id,
tp_plan="auto",
device_map="auto")
inputs = tokenizer.apply_chat_template(
chat, tokenize=True, add_generation_prompt=True, return_tensors="pt").to(model.device)
outputs = model.generate(inputs, max_new_tokens=30)
print(tokenizer.batch_decode(outputs))Для запуска с TP вам потребуется torchrun:
torchrun --nproc_per_node=8 --nnodes=2 --node_rank=0 | 1 --rdzv-id <an_id> --rdzv-backend c10d --rdzv-endpoint $NODE_ID:$NODE_PORT --log-dir ./logs_longcat launch_longcat.pyИ вы получите отличный результат генерации:
[Round 0] USER:Hello! What is the capital of France? What can you tell me about it? ASSISTANT:Hello! 😊 The capital of France is Paris, one of the most famous and beloved cities in the world. Here’s a quick overview of what makes Paris special:
1. Iconic Landmarks
Eiffel Tower – The global symbol of France, built in 1889 for the World's Fair.
Notre-Dame Cathedral – A masterpiece of Gothic architecture (currently under restoration after the 2019 fire).
Louvre Museum – The world’s largest art museum, home to the Mona Lisa and Venus de Milo.
Sacré-Cœur Basilica – A stunning white church atop Montmartre with panoramic views.
Arc de Triomphe – Honors French military victories, with the Tomb of the Unknown Soldier beneath it.
Champs-Élysées – A glamorous avenue leading to the Arc de Triomphe, lined with shops and cafés.
2. Culture & Arts
Paris is the "City of Light" (La Ville Lumière), a nickname from its early adoption of street lighting and its role as a center of enlightenment.
It’s a global hub for fashion (haute couture, Paris Fashion Week) and art (Impressionism, Picasso, Dali).
Famous literary figures like Hemingway, Fitzgerald, and Sartre lived and wrote here.
3. Food & Cuisine
Croissants, baguettes, macarons, and crème brûlée are just a few of its culinary delights.
Paris has over 100 Michelin-starred restaurants and countless cozy bistros.
The Marché d’Aligre and Rue Mouffetard are great for fresh produce and local flavors.
4. History & Politics
Founded in the 3rd century BC by the Parisii tribe, it became a major European city under the Romans.
The French Revolution (1789–1799) began here, leading to the fall of the monarchy.
Today, it’s the political and economic heart of France, housing the French President’s residence (Élysée Palace) and the National Assembly.
**LongcatFlashConfig
класс transformers.LongcatFlashConfig
< source >( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Nonevocab_size: int = 131072hidden_size: int = 6144num_layers: int = 28num_attention_heads: int = 64num_key_value_heads: int | None = Nonehidden_act: str = 'silu'max_position_embeddings: int = 131072initializer_range: float = 0.02rms_norm_eps: float = 1e-05use_cache: bool = Truepad_token_id: int | None = Nonebos_token_id: int | None = 1eos_token_id: int | list[int] | None = 2tie_word_embeddings: bool = Falserope_parameters: transformers.modeling_rope_utils.RopeParameters | dict | None = Noneattention_bias: bool = Falseattention_dropout: float | int = 0.0ffn_hidden_size: int = 12288q_lora_rank: int = 1536kv_lora_rank: int = 512qk_nope_head_dim: int = 128qk_rope_head_dim: int = 64head_dim: int = 64v_head_dim: int = 128qk_head_dim: int | None = Nonemoe_topk: int = 12n_routed_experts: int = 512output_router_logits: bool = Falsezero_expert_num: int = 256expert_ffn_hidden_size: int = 2048routed_scaling_factor: float = 6.0 )
Параметры
- vocab_size (
int, необязательный, по умолчанию131072) — Размер словаря модели. Определяет количество различных токенов, которые могут быть представлены вinput_ids. - hidden_size (
int, необязательный, по умолчанию6144) — Размерность скрытых представлений. - num_layers (
int, необязательный, по умолчанию 28) — Количество слоев декодера. Каждый содержит два подслоя внимания, поэтомуnum_hidden_layersвсегда вычисляется как2 * num_layers. - num_attention_heads (
int, необязательный, по умолчанию64) — Количество головок внимания в каждом слое внимания декодера Transformer. - num_key_value_heads (
int, необязательный) — Количество ключевых и value-голов, используемых для реализации Grouped Query Attention. Еслиnum_key_value_heads=num_attention_heads, модель использует Multi Head Attention (MHA); еслиnum_key_value_heads=1— Multi Query Attention (MQA); в остальных случаях применяется GQA. При конвертации мультиголовного чекпоинта в GQA-чекпоинт каждая групповая ключевая и value-голова должна построиться путём усреднения (meanpooling) всех исходных голов в этой группе. Дополнительные сведения см. в этой статье. Если параметр не задан, по умолчанию используетсяnum_attention_heads. - hidden_act (
str, необязательный, по умолчаниюsilu) — Нелинейная функция активации (функция или строка) в декодере. Например,"gelu","relu","silu"и т. д. - max_position_embeddings (
int, необязательный, по умолчанию131072) — Максимальная длина последовательности, с которой может использоваться эта модель. - initializer_range (
float, необязательный, по умолчанию0.02) — Стандартное отклонение truncated_normal_initializer, используемое для инициализации всех матриц весов. - rms_norm_eps (
float, необязательный, по умолчанию1e-05) — Значение epsilon, используемое слоями нормализации rms. - use_cache (
bool, необязательный, по умолчаниюTrue) — Указывает, должен ли модель возвращать последние ключи/значения внимания (не используется во всех моделях). Актуально только еслиconfig.is_decoder=Trueили если модель является генеративной моделью только с декодером. - pad_token_id (
int, необязательный) — Идентификатор токена, используемого для выравнивания в словаре. - bos_token_id (
int, необязательный, по умолчанию1) — Идентификатор токена, используемого для обозначения начала потока в словаре. - eos_token_id (
Union[int, list[int]], необязательный, по умолчанию2) — Идентификатор токена, используемого для обозначения конца потока в словаре. - tie_word_embeddings (
bool, необязательный, по умолчаниюFalse) — Определяет, следует ли связывать веса эмбеддингов согласно маппингуtied_weights_keysмодели. - rope_parameters (
Union[~modeling_rope_utils.RopeParameters, dict], необязательный) — Словарь, содержащий параметры конфигурации для эмбеддингов RoPE. Словарь должен содержать значение дляrope_thetaи, при необходимости, параметры, используемые для масштабирования, если вы хотите использовать RoPE с более длиннымиmax_position_embeddings. - attention_bias (
bool, необязательный, по умолчаниюFalse) — Использовать ли смещение (bias) в слоях проекции query, key, value и output при само-внимании. - attention_dropout (
Union[float, int], необязательный, по умолчанию0.0) — Коэффициент dropout для вероятностей внимания. - ffn_hidden_size (
int, необязательный, по умолчанию 12288) — Размерность представлений MLP. - q_lora_rank (
int, необязательный, по умолчанию1536) — Ранг матриц LoRA для проекций запросов. - kv_lora_rank (
int, необязательный, по умолчанию512) — Ранг матриц LoRA для проекций ключей и значений. - qk_nope_head_dim (
int, необязательный, по умолчанию128) — Размерность заголовков запроса/ключа, для которых не используются вращающиеся позиционные эмбеддинги. - qk_rope_head_dim (
int, необязательный, по умолчанию64) — Размерность заголовков запроса/ключа, для которых используются вращающиеся позиционные эмбеддинги. - head_dim (
int, необязательный, по умолчанию64) — Размерность головы внимания. Если значение равно None, по умолчанию используется hidden_size // num_attention_heads - v_head_dim (
int, необязательный, по умолчанию128) — Размерность value-голов. - qk_head_dim (
int, необязательный) — Общее измерение заголовков запроса/ключа. Если не указано, устанавливается вqk_nope_head_dim + qk_rope_head_dim. - moe_topk (
int, необязательный, по умолчанию 12) — Количество экспертов, к которым маршрутизируется каждый токен в слое MoE. - n_routed_experts (
int, необязательный, по умолчанию512) — Количество маршрутизируемых экспертов. - output_router_logits (
bool, необязательный, по умолчаниюFalse) — Определяет, следует ли модели возвращать логиты роутера. Включение этого параметра также позволит модели выводить вспомогательную потерю, включая потерю балансировки нагрузки и z-потерю роутера. - zero_expert_num (
int, необязательный, по умолчанию 256) — Количество нулевых экспертов (функция тождественного отображения), добавляемых в пул экспертов. - expert_ffn_hidden_size (
int, необязательный, по умолчанию 2048) — Размер скрытого слоя для отдельных экспертных FFN-слоёв. - routed_scaling_factor (
float, необязательный, по умолчанию6.0) — Коэффициент масштабирования для маршрутизируемых экспертов.
Это класс конфигурации для хранения настроек модели LongcatFlashModel. Он используется для создания модели Longcat Flash в соответствии с указанными аргументами, определяя архитектуру модели. Создание конфигурации с параметрами по умолчанию даст конфигурацию, аналогичную конфигурации meituan-longcat/LongCat-Flash-Chat
Объекты конфигурации наследуются от PreTrainedConfig и могут использоваться для управления выводами модели. Подробнее читайте в документации PreTrainedConfig.
>>> from transformers import LongcatFlashModel, LongcatFlashConfig
>>> # Initializing a LongCat Flash style configuration
>>> configuration = LongcatFlashConfig()
>>> # Initializing a model from the configuration
>>> model = LongcatFlashModel(configuration)
>>> # Accessing the model configuration
>>> configuration = model.configLongcatFlashPreTrainedModel
класс transformers.LongcatFlashPreTrainedModel
< source >( config: PreTrainedConfig*inputs**kwargs )
Параметры
- config (PreTrainedConfig) — Класс конфигурации модели, содержащий все параметры модели. Инициализация с помощью файла конфигурации не загружает веса, связанные с моделью, а только конфигурацию. Чтобы загрузить веса модели, используйте метод from_pretrained().
Эта модель наследуется от PreTrainedModel. См. документацию родительского класса для общих методов, которые библиотека реализует для всех своих моделей (например, загрузка или сохранение, изменение размера входных эмбеддингов, обрезка голов и т. д.)
Эта модель также является подклассом torch.nn.Module в PyTorch. Используйте её как обычный модуль PyTorch и обращайтесь к документации PyTorch по всем вопросам, связанным с общим использованием и поведением.
Мок-значение для пути с точками (например, torch.float32): цепочки доступа к атрибутам и вызовы работают как пропускные декораторы, repr возвращает путь с точками, а использование в качестве базового класса подставляет обычный базовый класс type (PEP 560 __mro_entries__), благодаря чему реальные дочерние классы сохраняют обычный метакласс, а inspect.signature читает их реальный __init__, а не мок-объект.
LongcatFlashModel
класс transformers.LongcatFlashModel
< source >( config: LongcatFlashConfig )
Параметры
- config (LongcatFlashConfig) — Класс конфигурации модели, содержащий все параметры модели. Инициализация по файлу конфигурации не загружает веса, связанные с моделью, а только конфигурацию. Для загрузки весов модели используйте метод from_pretrained().
Модель Longcat Flash без дополнительных компонентов, выводящая необработанные скрытые состояния (hidden-states) без какого-либо специализированного слоя (head) сверху.
Эта модель наследуется от PreTrainedModel. См. документацию родительского класса для общих методов, которые библиотека реализует для всех своих моделей (например, загрузка или сохранение, изменение размера входных эмбеддингов, обрезка голов и т. д.)
Эта модель также является подклассом torch.nn.Module в PyTorch. Используйте её как обычный модуль PyTorch и обращайтесь к документации PyTorch по всем вопросам, связанным с общим использованием и поведением.
forward
< source >( input_ids: typing.Optional[torch.LongTensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.LongTensor] = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneinputs_embeds: typing.Optional[torch.Tensor] = Noneuse_cache: bool | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → MoeModelOutputWithPast or tuple(torch.Tensor)
Параметры
- input_ids (
torch.LongTensorформы(batch_size, sequence_length), , необязательный) — Индексы токенов входной последовательности в словаре. По умолчанию токены отсечки (padding) игнорируются.Индексы можно получить с помощью AutoTokenizer. Подробности см. в PreTrainedTokenizer.encode() и PreTrainedTokenizer.call().
- attention_mask (
torch.Tensorформы(batch_size, sequence_length), , необязательный) — Маска для исключения токенов-заполнителей из внимания. Значения маски из диапазона[0, 1]:- 1 для токенов, которые не замаскированы,
- 0 для токенов, которые замаскированы.
- position_ids (
torch.LongTensorформы(batch_size, sequence_length), , необязательный) — Индексы позиций токенов каждого входного последовательности в позиционных эмбеддингах. Выбираются из диапазона[0, config.n_positions - 1]. - past_key_values (
~cache_utils.Cache, необязательный) — Предвычисленные скрытые состояния (ключи и значения в блоках само-внимания и кросс-внимания), которые можно использовать для ускорения последовательного декодирования. Обычно этоpast_key_values, возвращённые моделью на предыдущем этапе декодирования, когдаuse_cache=Trueилиconfig.use_cache=True.В качестве входного параметра допускается только экземпляр Cache, см. наше руководство по кэшу KV. Если
past_key_valuesне переданы, по умолчанию будет инициализирован DynamicCache.Модель будет выводить тот же формат кэша, который был передан на вход.
Если используются
past_key_values, ожидается, что пользователь передаст только необработанныеinput_ids(те, для которых в этой модели ещё не заданы состояния прошлых ключей и значений) формы(batch_size, unprocessed_length), а не всеinput_idsформы(batch_size, sequence_length). - inputs_embeds (
torch.Tensorформы(batch_size, sequence_length, hidden_size), необязательный) — При необходимости, вместо передачиinput_idsможно напрямую передать встроенное представление. Это полезно, если требуется больший контроль над тем, как индексыinput_idsпреобразуются в соответствующие векторы, чем это обеспечивает внутренняя матрица поиска встраиваний модели. - use_cache (
bool, необязательный) — Если установлено вTrue, возвращаются состояния ключей и значенийpast_key_values, которые можно использовать для ускорения декодирования (см.past_key_values).
Возвращает
MoeModelOutputWithPast или tuple(torch.Tensor)
MoeModelOutputWithPast или кортеж из
torch.Tensor (если передано return_dict=False или если config.return_dict=False), содержащий различные
элементы в зависимости от конфигурации (LongcatFlashConfig) и входных данных.
Метод forward модели LongcatFlashModel переопределяет специальный метод __call__.
Хотя рецепт для прямого прохода должен быть определён внутри этой функции, после этого следует вызывать экземпляр
Module, а не эту функцию, поскольку первый вариант обеспечивает выполнение шагов предварительной и последующей обработки, тогда как второй молча их игнорирует.
last_hidden_state (
torch.Tensorформы(batch_size, sequence_length, hidden_size)) — Последовательность скрытых состояний на выходе последнего слоя модели.past_key_values (
Cache, необязательный, возвращается при передачеuse_cache=Trueили когдаconfig.use_cache=True) — это экземпляр Cache. Подробнее см. в нашем руководстве по кэшу kv.Содержит предварительно вычисленные скрытые состояния (ключи и значения в блоках само-внимания и, при необходимости, если
config.is_encoder_decoder=True, в блоках кросс-внимания), которые можно использовать (см. входной параметрpast_key_values) для ускорения последовательного декодирования.hidden_states (
tuple(torch.Tensor), optional, возвращается, если переданоoutput_hidden_states=Trueили еслиconfig.output_hidden_states=True) — кортеж изtorch.Tensor(один для вывода слоя встраиваний, если модель имеет слой встраиваний, + один для вывода каждого слоя) формы(batch_size, sequence_length, hidden_size).Скрытые состояния модели на выходе каждого слоя, а также необязательные выходные значения начального слоя встраивания.
attentions (
tuple(torch.Tensor), необязательный, возвращается при передачеoutput_attentions=Trueили приconfig.output_attentions=True) — Кортежtorch.Tensor(по одному на каждый слой) формы(batch_size, num_heads, sequence_length, sequence_length).Веса внимания после softmax в механизме внимания, используемые для вычисления взвешенного среднего в головах само-внимания.
router_logits (
tuple(torch.Tensor), необязательный, возвращается, если переданыoutput_router_probs=Trueиconfig.add_router_probs=Trueили еслиconfig.output_router_probs=True) — Кортежtorch.Tensor(по одному для каждого слоя) формы(batch_size, sequence_length, num_experts).Сырые логиты роутера (после softmax), вычисляемые роутерами MoE; эти значения используются для вычисления вспомогательной функции потерь в моделях Mixture of Experts.
LongcatFlashForCausalLM
класс transformers.LongcatFlashForCausalLM
< source >( config: LongcatFlashConfig )
Параметры
- config (LongcatFlashConfig) — Класс конфигурации модели, содержащий все параметры модели. Инициализация по файлу конфигурации не загружает веса, связанные с моделью, а только конфигурацию. Для загрузки весов модели используйте метод from_pretrained().
Модель Longcat Flash для каузального языкового моделирования.
Эта модель наследуется от PreTrainedModel. См. документацию родительского класса для общих методов, которые библиотека реализует для всех своих моделей (например, загрузка или сохранение, изменение размера входных эмбеддингов, обрезка голов и т. д.)
Эта модель также является подклассом torch.nn.Module в PyTorch. Используйте её как обычный модуль PyTorch и обращайтесь к документации PyTorch по всем вопросам, связанным с общим использованием и поведением.
forward
< source >( input_ids: typing.Optional[torch.LongTensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.LongTensor] = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.LongTensor] = Noneuse_cache: bool | None = Nonelogits_to_keep: typing.Union[int, torch.Tensor] = 0**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → MoeCausalLMOutputWithPast or tuple(torch.Tensor)
Параметры
- input_ids (
torch.LongTensorформы(batch_size, sequence_length), , необязательный) — Индексы токенов входной последовательности в словаре. По умолчанию токены отсечки (padding) игнорируются.Индексы можно получить с помощью AutoTokenizer. Подробности см. в PreTrainedTokenizer.encode() и PreTrainedTokenizer.call().
- attention_mask (
torch.Tensorформы(batch_size, sequence_length), , необязательный) — Маска для исключения токенов-заполнителей из внимания. Значения маски из диапазона[0, 1]:- 1 для токенов, которые не замаскированы,
- 0 для токенов, которые замаскированы.
- position_ids (
torch.LongTensorформы(batch_size, sequence_length), , необязательный) — Индексы позиций токенов каждого входного последовательности в позиционных эмбеддингах. Выбираются из диапазона[0, config.n_positions - 1]. - past_key_values (
~cache_utils.Cache, необязательный) — Предвычисленные скрытые состояния (ключи и значения в блоках само-внимания и кросс-внимания), которые можно использовать для ускорения последовательного декодирования. Обычно этоpast_key_values, возвращённые моделью на предыдущем этапе декодирования, когдаuse_cache=Trueилиconfig.use_cache=True.В качестве входного параметра допускается только экземпляр Cache, см. наше руководство по кэшу KV. Если
past_key_valuesне переданы, по умолчанию будет инициализирован DynamicCache.Модель будет выводить тот же формат кэша, который был передан на вход.
Если используются
past_key_values, ожидается, что пользователь передаст только необработанныеinput_ids(те, для которых в этой модели ещё не заданы состояния прошлых ключей и значений) формы(batch_size, unprocessed_length), а не всеinput_idsформы(batch_size, sequence_length). - inputs_embeds (
torch.Tensorформы(batch_size, sequence_length, hidden_size), необязательный) — При необходимости, вместо передачиinput_idsможно напрямую передать встроенное представление. Это полезно, если требуется больший контроль над тем, как индексыinput_idsпреобразуются в соответствующие векторы, чем это обеспечивает внутренняя матрица поиска встраиваний модели. - labels (
torch.LongTensorформы(batch_size, sequence_length), необязательный) — Метки для вычисления потерь маскированного языкового моделирования. Индексы должны находиться в диапазоне[0, ..., config.vocab_size]или быть равны -100 (см. docstringinput_ids). Токены с индексами, установленными в-100, игнорируются (маскируются); потери вычисляются только для токенов с метками в диапазоне[0, ..., config.vocab_size]. - use_cache (
bool, необязательный) — Если установлено вTrue, возвращаются состояния ключей и значенийpast_key_values, которые можно использовать для ускорения декодирования (см.past_key_values). - logits_to_keep (
Union[int, torch.Tensor], необязательный, по умолчанию0) — Если передано значение типаint, вычисляет logits для последнихlogits_to_keepтокенов. Если указано0, logits вычисляются для всехinput_ids(особый случай). Для генерации нужны logits только последнего токена, и вычисление их только для этого токена позволяет сэкономить память, что становится весьма значимым для длинных последовательностей или большого размера словаря. Если передано значение типаtorch.Tensor, оно должно быть одномерным и соответствовать индексам, которые нужно сохранить в измерении длины последовательности. Это полезно при использовании упакованного формата тензоров (один размер для batch и длины последовательности).
Возвращает
MoeCausalLMOutputWithPast или tuple(torch.Tensor)
MoeCausalLMOutputWithPast или кортеж из
torch.Tensor (если передано return_dict=False или если config.return_dict=False), содержащий различные
элементы в зависимости от конфигурации (LongcatFlashConfig) и входных данных.
Метод forward класса LongcatFlashForCausalLM переопределяет специальный метод __call__.
Хотя рецепт для прямого прохода должен быть определён внутри этой функции, после этого следует вызывать экземпляр
Module, а не эту функцию, поскольку первый вариант обеспечивает выполнение шагов предварительной и последующей обработки, тогда как второй молча их игнорирует.
loss (
torch.Tensorформы(1,), необязательный, возвращается, если заданlabels) — Потери языковой модели (для предсказания следующего токена).logits (
torch.Tensorформы(batch_size, sequence_length, config.vocab_size)) — Оценки предсказаний языковой модели (оценки для каждого токена словаря до применения SoftMax).aux_loss (
torch.Tensor, необязательный, возвращается при передачеoutput_router_logits=Trueили приconfig.output_router_logits=True, если модель обучает свой роутер с потерей балансировки нагрузки) — вспомогательная потеря балансировки нагрузки для разреженных модулей. Модели, которые балансируют своих экспертов с помощью смещения роутера (DeepSeek-V3 и архитектуры, производные от него), возвращают здесьNone, но при этом всё равно возвращаютrouter_logits.router_logits (
tuple(torch.Tensor), необязательный, возвращается при передачеoutput_router_logits=Trueили когдаconfig.output_router_logits=True) — Кортежtorch.Tensor(по одному для каждого разреженного слоя) формы(batch_size * sequence_length, num_experts).Сырые логиты маршрутизатора, вычисленные маршрутизаторами MoE. Их можно использовать для вычисления потерь сбалансированности нагрузки или для анализа того, как токены распределяются между экспертами.
past_key_values (
Cache, необязательный, возвращается при передачеuse_cache=Trueили когдаconfig.use_cache=True) — это экземпляр Cache. Подробнее см. в нашем руководстве по кэшу kv.Содержит предварительно вычисленные скрытые состояния (ключи и значения в блоках само-внимания), которые можно использовать (см. вход
past_key_values) для ускорения последовательного декодирования.hidden_states (
tuple(torch.Tensor), optional, возвращается, если переданоoutput_hidden_states=Trueили еслиconfig.output_hidden_states=True) — кортеж изtorch.Tensor(один для вывода слоя встраиваний, если модель имеет слой встраиваний, + один для вывода каждого слоя) формы(batch_size, sequence_length, hidden_size).Скрытые состояния модели на выходе каждого слоя, а также необязательные выходные значения начального слоя встраивания.
attentions (
tuple(torch.Tensor), необязательный, возвращается при передачеoutput_attentions=Trueили приconfig.output_attentions=True) — Кортежtorch.Tensor(по одному на каждый слой) формы(batch_size, num_heads, sequence_length, sequence_length).Веса внимания после softmax в механизме внимания, используемые для вычисления взвешенного среднего в головах само-внимания.
Пример:
>>> from transformers import AutoTokenizer, LongcatFlashForCausalLM
>>> model = LongcatFlashForCausalLM.from_pretrained("meta-longcat_flash/LongcatFlash-2-7b-hf")
>>> tokenizer = AutoTokenizer.from_pretrained("meta-longcat_flash/LongcatFlash-2-7b-hf")
>>> prompt = "Hey, are you conscious? Can you talk to me?"
>>> inputs = tokenizer(prompt, return_tensors="pt")
>>> # Generate
>>> generate_ids = model.generate(inputs.input_ids, max_length=30)
>>> tokenizer.batch_decode(generate_ids, skip_special_tokens=True, clean_up_tokenization_spaces=False)[0]
"Hey, are you conscious? Can you talk to me?\nI'm not conscious, but I can talk to you."