Transformers documentation

CodeGen

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v5.22.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Este modelo se publicó en HF papers el 25 de marzo de 2022 y se contribuyó a Hugging Face Transformers el 24 de junio de 2022.

CodeGen

Resumen

El modelo CodeGen fue propuesto en A Conversational Paradigm for Program Synthesis por Erik Nijkamp, Bo Pang, Hiroaki Hayashi, Lifu Tu, Huan Wang, Yingbo Zhou, Silvio Savarese y Caiming Xiong.

CodeGen es un modelo de lenguaje autoregresivo para la síntesis de programas, entrenado secuencialmente en The Pile, BigQuery y BigPython.

El resumen del artículo es el siguiente:

La síntesis de programas busca generar un programa de computadora como solución a una especificación de problema dada. Proponemos un enfoque de síntesis de programas conversacional mediante modelos de lenguaje de gran escala, que aborda los desafíos de la búsqueda en un vasto espacio de programas y la especificación de la intención del usuario presentes en enfoques anteriores. Nuestro nuevo enfoque plantea el proceso de escribir una especificación y un programa como una conversación de varios turnos entre un usuario y un sistema. Trata la síntesis de programas como un problema de predicción de secuencias, en el que la especificación se expresa en lenguaje natural y el programa deseado se muestrea condicionalmente. Entrenamos una familia de modelos de lenguaje de gran escala, llamada CodeGen, con datos de lenguaje natural y de lenguaje de programación. Con una supervisión débil en los datos y el aumento del tamaño de los datos y del modelo, las capacidades conversacionales emergen del simple modelado de lenguaje autoregresivo. Para estudiar el comportamiento del modelo en la síntesis de programas conversacional, desarrollamos un benchmark de programación de varios turnos (MTPB), donde la resolución de cada problema requiere una síntesis de varios pasos mediante una conversación de varios turnos entre el usuario y el modelo. Nuestros hallazgos muestran la emergencia de capacidades conversacionales y la efectividad del paradigma de síntesis de programas conversacional propuesto. Además, nuestro modelo CodeGen (con hasta 16B de parámetros entrenado en TPU-v4) supera a Codex de OpenAI en el benchmark HumanEval. Hacemos disponible como contribución de código abierto la biblioteca de entrenamiento JaxFormer, incluidos los checkpoints: this https URL.

Este modelo fue aportado por Hiroaki Hayashi. El código original se puede encontrar aquí.

Nomenclatura de puntos de control

  • Los checkpoints del modelo CodeGen están disponibles con diferentes datos de preentrenamiento y tamaños variables.
  • El formato es: Salesforce/codegen-{size}-{data}, donde
    • size: 350M, 2B, 6B, 16B
    • data:
      • nl: Preentrenado en el Pile
      • multi: Inicializado con nl y luego preentrenado adicionalmente con datos de múltiples lenguajes de programación
      • mono: Inicializado con multi y luego pre-entrenado adicionalmente con datos de Python
  • Por ejemplo, Salesforce/codegen-350M-mono ofrece un checkpoint de 350 millones de parámetros preentrenado secuencialmente en The Pile, múltiples lenguajes de programación y Python.

Ejemplo de uso

from transformers import AutoModelForCausalLM, AutoTokenizer


checkpoint = "Salesforce/codegen-350M-mono"
model = AutoModelForCausalLM.from_pretrained(checkpoint, device_map="auto")
tokenizer = AutoTokenizer.from_pretrained(checkpoint)

text = "def hello_world():"

completion = model.generate(**tokenizer(text, return_tensors="pt").to(model.device))

print(tokenizer.decode(completion[0]))
def hello_world():
    print("Hello World")

hello_world()

Recursos

CodeGenConfig

clase transformers.CodeGenConfig

< >

( 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 = 50400n_positions: int = 2048n_ctx: int = 2048n_embd: int = 4096n_layer: int = 28n_head: int = 16rotary_dim: int = 64n_inner: int | None = Noneactivation_function: str = 'gelu_new'resid_pdrop: float | int = 0.0embd_pdrop: float | int = 0.0attn_pdrop: float | int = 0.0layer_norm_epsilon: float = 1e-05initializer_range: float = 0.02use_cache: bool = Truebos_token_id: int | None = 50256eos_token_id: int | list[int] | None = 50256tie_word_embeddings: bool = False )

Parámetros

  • vocab_size (int, opcional, valor predeterminado 50400) — Tamaño del vocabulario del modelo. Define el número de tokens diferentes que pueden representarse mediante input_ids.
  • n_positions (int, opcional, valor predeterminado 2048) — La longitud máxima de secuencia con la que se podría utilizar este modelo.
  • n_ctx (int, opcional, valor predeterminado 2048) — Este atributo se utiliza en CodeGenModel.__init__ sin ningún efecto real. La probabilidad de dropout para todas las capas completamente conectadas en las incrustaciones, el codificador y el pooler.
  • n_embd (int, opcional, valor predeterminado 4096) — Dimensionalidad de las incrustaciones y los estados ocultos.
  • n_layer (int, opcional, valor predeterminado 28) — Número de capas ocultas en el decodificador del Transformer.
  • n_head (int, opcional, valor predeterminado 16) — Número de cabezas de atención para cada capa de atención en el decodificador Transformer.
  • rotary_dim (int, opcional, valor predeterminado 64) — Número de dimensiones del embedding al que se aplica el Rotary Position Embedding.
  • n_inner (int, opcional) — Dimensionalidad de las capas feed-forward internas. None lo establecerá en 4 veces n_embd
  • activation_function (str, opcional, valor predeterminado gelu_new) — La función de activación no lineal (función o cadena) en el decodificador. Por ejemplo, "gelu", "relu", "silu", etc.
  • resid_pdrop (Union[float, int], opcional, valor predeterminado 0.0) — La probabilidad de dropout para todas las capas completamente conectadas en las incrustaciones, el codificador y el pooler.
  • embd_pdrop (Union[float, int], opcional, valor predeterminado 0.0) — La proporción de dropout para las incrustaciones.
  • attn_pdrop (Union[float, int], opcional, valor predeterminado 0.0) — La proporción de dropout para las probabilidades de atención.
  • layer_norm_epsilon (float, opcional, valor predeterminado 1e-05) — El epsilon utilizado por las capas de normalización de capa.
  • initializer_range (float, opcional, valor predeterminado 0.02) — La desviación estándar del truncated_normal_initializer para inicializar todas las matrices de pesos.
  • use_cache (bool, opcional, valor predeterminado True) — Indica si el modelo debe devolver las últimas claves/valores de atención (no utilizado por todos los modelos). Solo es relevante si config.is_decoder=True o cuando el modelo es un modelo generativo solo de decodificador.
  • bos_token_id (int, opcional, valor predeterminado 50256) — Identificador de token utilizado para el inicio de la secuencia en el vocabulario.
  • eos_token_id (Union[int, list[int]], opcional, valor predeterminado 50256) — Identificador de token utilizado para el fin de secuencia en el vocabulario.
  • tie_word_embeddings (bool, opcional, valor predeterminado False) — Si se deben vincular las matrices de pesos de embeddings según el mapeo tied_weights_keys del modelo.

Esta es la clase de configuración para almacenar la configuración de un CodeGenModel. Se utiliza para instanciar un modelo Codegen según los argumentos especificados, definiendo la arquitectura del modelo. Instanciar una configuración con los valores predeterminados producirá una configuración similar a la de Salesforce/codegen-2B-mono

Los objetos de configuración heredan de PreTrainedConfig y se pueden usar para controlar las salidas del modelo. Lea la documentación de PreTrainedConfig para obtener más información.

Ejemplo:

>>> from transformers import CodeGenConfig, CodeGenModel

>>> # Initializing a CodeGen 6B configuration
>>> configuration = CodeGenConfig()

>>> # Initializing a model (with random weights) from the configuration
>>> model = CodeGenModel(configuration)

>>> # Accessing the model configuration
>>> configuration = model.config

CodeGenTokenizer

clase transformers.CodeGenTokenizer

< >

( vocab: str | dict[str, int] | None = Nonemerges: str | list[str] | None = Noneunk_token: str = '<|endoftext|>'bos_token: str = '<|endoftext|>'eos_token: str = '<|endoftext|>'pad_token = Noneadd_prefix_space: bool = Falsereturn_token_type_ids: bool = False**kwargs )

Parámetros

  • vocab (str o dict[str, int], opcional) — Diccionario de vocabulario personalizado. Si no se proporciona, el vocabulario se carga desde vocab_file.
  • merges (str o list[str], opcional) — Lista de fusiones personalizada. Si no se proporciona, las fusiones se cargan desde merges_file.
  • unk_token (str, opcional, valor predeterminado "<|endoftext|>") — El token desconocido. Un token que no está en el vocabulario no se puede convertir en un ID y se establece como este token en su lugar.
  • bos_token (str, opcional, valor predeterminado "<|endoftext|>") — El token de inicio de secuencia.
  • eos_token (str, opcional, por defecto "<|endoftext|>") — El token de fin de secuencia.
  • pad_token (str, opcional) — El token utilizado para el relleno, por ejemplo, al agrupar secuencias de diferentes longitudes.
  • add_prefix_space (bool, opcional, valor predeterminado False) — Indica si se debe añadir un espacio inicial a la entrada. Esto permite tratar la palabra inicial como cualquier otra palabra. (El tokenizador de CodeGen detecta el inicio de las palabras mediante el espacio que las precede).
  • return_token_type_ids (bool, opcional, valor predeterminado False) — Si se deben devolver los IDs de tipo de token.

Construye un tokenizador de CodeGen (respaldado por la biblioteca tokenizers de HuggingFace). Basado en Byte-Pair-Encoding a nivel de bytes.

Este tokenizador se ha entrenado para tratar los espacios como partes de los tokens (un poco como sentencepiece), por lo que una palabra

se codifica de manera diferente si se encuentra al principio de la oración (sin espacio) o no:

>>> from transformers import CodeGenTokenizer

>>> tokenizer = CodeGenTokenizer.from_pretrained("Salesforce/codegen-350M-mono")
>>> tokenizer("Hello world")["input_ids"]
[15496, 995]

>>> tokenizer(" Hello world")["input_ids"]
[18435, 995]

Puede evitar ese comportamiento pasando add_prefix_space=True al instanciar este tokenizador, pero dado que el modelo no se preentrenó de esa manera, es posible que se produzca una disminución en el rendimiento.

Cuando se usa con is_split_into_words=True, este tokenizador debe instanciarse con add_prefix_space=True.

Este tokenizador hereda de TokenizersBackend, que contiene la mayoría de los métodos principales. Los usuarios deben consultar esta superclase para obtener más información sobre dichos métodos.

save_vocabulary

< >

( save_directory: strfilename_prefix: str | None = None )

CodeGenModel

clase transformers.CodeGenModel

< >

( config: CodeGenConfig )

Parámetros

  • config (CodeGenConfig) — Clase de configuración del modelo con todos los parámetros del modelo. Inicializar con un archivo de configuración no carga los pesos asociados con el modelo, solo la configuración. Consulte el método from_pretrained() para cargar los pesos del modelo.

El modelo Codegen básico que emite estados ocultos sin ninguna cabeza específica en la parte superior.

Este modelo hereda de PreTrainedModel. Consulta la documentación de la clase superior para los métodos genéricos que la biblioteca implementa para todos sus modelos (como la descarga o el guardado, el redimensionamiento de las incrustaciones de entrada, la poda de cabezas, etc.).

Este modelo también es una subclase de torch.nn.Module de PyTorch. Úsalo como un módulo de PyTorch regular y consulta la documentación de PyTorch para todo lo relacionado con el uso y el comportamiento generales.

forward

< >

( input_ids: typing.Optional[torch.LongTensor] = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneattention_mask: typing.Optional[torch.FloatTensor] = Nonetoken_type_ids: typing.Optional[torch.LongTensor] = Noneposition_ids: typing.Optional[torch.LongTensor] = Noneinputs_embeds: typing.Optional[torch.FloatTensor] = Noneuse_cache: bool | None = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → BaseModelOutputWithPast or tuple(torch.FloatTensor)

Parámetros

  • input_ids (torch.LongTensor de forma (batch_size, sequence_length), opcional) — Índices de los tokens de la secuencia de entrada en el vocabulario. El relleno se ignorará de forma predeterminada.

    Los índices se pueden obtener usando AutoTokenizer. Consulte PreTrainedTokenizer.encode() y PreTrainedTokenizer.call() para más detalles.

    ¿Qué son los IDs de entrada?

  • past_key_values (~cache_utils.Cache, opcional) — Estados ocultos precalculados (claves y valores en los bloques de autoatención y en los bloques de atención cruzada) que se pueden usar para acelerar la decodificación secuencial. Esto generalmente consiste en la past_key_values devuelta por el modelo en una etapa anterior de la decodificación, cuando use_cache=True o config.use_cache=True.

    Solo se permite una instancia de Cache como entrada, consulte nuestra guía de caché kv. Si no se pasan past_key_values, DynamicCache se inicializará de forma predeterminada.

    El modelo generará el mismo formato de caché que se proporciona como entrada.

    Si se utilizan past_key_values, se espera que el usuario introduzca únicamente los input_ids no procesados (aquellos que no tienen sus estados de clave y valor pasados proporcionados a este modelo) con forma (batch_size, unprocessed_length) en lugar de todos los input_ids con forma (batch_size, sequence_length).

  • attention_mask (torch.FloatTensor de forma (batch_size, sequence_length), opcional) — Máscara para evitar realizar atención en los índices de tokens de relleno. Valores de máscara seleccionados en [0, 1]:
    • 1 para los tokens que no están enmascarados,
    • 0 para los tokens que están enmascarados.

    ¿Qué son las máscaras de atención?

  • token_type_ids (torch.LongTensor de forma (batch_size, sequence_length), opcional) — Índices de tokens de segmento para indicar las primeras y segundas partes de las entradas. Los índices se seleccionan en [0, 1]:
    • 0 corresponde a un token de sentence A,
    • 1 corresponde a un token de sentence B.

    ¿Qué son los IDs de tipo de token?

  • position_ids (torch.LongTensor de forma (batch_size, sequence_length), opcional) — Índices de las posiciones de los tokens de cada secuencia de entrada en los embeddings de posición. Seleccionados en el rango [0, config.n_positions - 1].

    ¿Qué son los IDs de posición?

  • inputs_embeds (torch.FloatTensor de forma (batch_size, sequence_length, hidden_dim), opcional) — Opcionalmente, en lugar de pasar input_ids, puede elegir pasar directamente una representación incrustada. Esto es útil si desea tener más control sobre cómo convertir los índices de input_ids en los vectores asociados que en la matriz de búsqueda de incrustaciones interna del modelo.
  • use_cache (bool, opcional) — Si se establece en True, se devuelven los estados de clave-valor de past_key_values y pueden usarse para acelerar la decodificación (ver past_key_values).
  • output_attentions (bool, opcional) — Indica si se deben devolver los tensores de atención de todas las capas de atención. Consulte attentions en los tensores devueltos para obtener más detalles.
  • output_hidden_states (bool, opcional) — Indica si se deben devolver los estados ocultos de todas las capas. Consulte hidden_states en los tensores devueltos para obtener más detalles.
  • return_dict (bool, opcional) — Indica si se debe devolver un ModelOutput en lugar de una tupla simple.

Devuelve

BaseModelOutputWithPast o tuple(torch.FloatTensor)

Un BaseModelOutputWithPast o una tupla de torch.FloatTensor (si se pasa return_dict=False o cuando config.return_dict=False) que comprende varios elementos según la configuración (CodeGenConfig) y las entradas.

El método forward de CodeGenModel reemplaza el método especial __call__.

Aunque la receta para la pasada hacia adelante debe definirse dentro de esta función, se debe llamar a la instancia de Module después en lugar de a esta, ya que la primera se encarga de ejecutar los pasos de pre y postprocesamiento, mientras que la segunda los ignora silenciosamente.

  • last_hidden_state (torch.FloatTensor de forma (batch_size, sequence_length, hidden_size)) — Secuencia de estados ocultos en la salida de la última capa del modelo.

    Si se utiliza past_key_values, solo se genera el último hidden-state de las secuencias con forma (batch_size, 1, hidden_size).

  • past_key_values (Cache, opcional, se devuelve cuando se pasa use_cache=True o cuando config.use_cache=True) — Es una instancia de Cache. Para más detalles, consulta nuestra guía de caché kv.

    Contiene estados ocultos precalculados (claves y valores en los bloques de autoatención y, opcionalmente, si config.is_encoder_decoder=True, en los bloques de atención cruzada) que pueden utilizarse (véase la entrada past_key_values) para acelerar la decodificación secuencial.

  • hidden_states (tuple(torch.FloatTensor), opcional, se devuelve cuando se pasa output_hidden_states=True o cuando config.output_hidden_states=True) — Tupla de torch.FloatTensor (una para la salida de las incrustaciones, si el modelo tiene una capa de incrustaciones, + una para la salida de cada capa) de forma (batch_size, sequence_length, hidden_size).

    Estados ocultos del modelo en la salida de cada capa más las salidas opcionales de la incrustación inicial.

  • attentions (tuple(torch.FloatTensor), opcional, se devuelve cuando se pasa output_attentions=True o cuando config.output_attentions=True) — Tupla de torch.FloatTensor (una por cada capa) de forma (batch_size, num_heads, sequence_length, sequence_length).

    Pesos de atención tras el softmax de atención, utilizados para calcular la media ponderada en las cabezas de autoatención.

CodeGenForCausalLM

clase transformers.CodeGenForCausalLM

< >

( config: CodeGenConfig )

Parámetros

  • config (CodeGenConfig) — Clase de configuración del modelo con todos los parámetros del modelo. Inicializar con un archivo de configuración no carga los pesos asociados con el modelo, solo la configuración. Consulte el método from_pretrained() para cargar los pesos del modelo.

El transformer del modelo CodeGen con una cabeza de modelado de lenguaje en la parte superior.

Este modelo hereda de PreTrainedModel. Consulta la documentación de la clase superior para los métodos genéricos que la biblioteca implementa para todos sus modelos (como la descarga o el guardado, el redimensionamiento de las incrustaciones de entrada, la poda de cabezas, etc.).

Este modelo también es una subclase de torch.nn.Module de PyTorch. Úsalo como un módulo de PyTorch regular y consulta la documentación de PyTorch para todo lo relacionado con el uso y el comportamiento generales.

forward

< >

( input_ids: typing.Optional[torch.LongTensor] = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneattention_mask: typing.Optional[torch.FloatTensor] = Nonetoken_type_ids: typing.Optional[torch.LongTensor] = Noneposition_ids: typing.Optional[torch.LongTensor] = Noneinputs_embeds: typing.Optional[torch.FloatTensor] = Nonelabels: typing.Optional[torch.LongTensor] = Noneuse_cache: bool | None = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = Nonelogits_to_keep: typing.Union[int, torch.Tensor] = 0**kwargs ) → CausalLMOutputWithPast or tuple(torch.FloatTensor)

Parámetros

  • input_ids (torch.LongTensor de forma (batch_size, sequence_length), opcional) — Índices de los tokens de la secuencia de entrada en el vocabulario. El relleno se ignorará de forma predeterminada.

    Los índices se pueden obtener usando AutoTokenizer. Consulte PreTrainedTokenizer.encode() y PreTrainedTokenizer.call() para más detalles.

    ¿Qué son los IDs de entrada?

  • past_key_values (~cache_utils.Cache, opcional) — Estados ocultos precalculados (claves y valores en los bloques de autoatención y en los bloques de atención cruzada) que se pueden usar para acelerar la decodificación secuencial. Esto generalmente consiste en la past_key_values devuelta por el modelo en una etapa anterior de la decodificación, cuando use_cache=True o config.use_cache=True.

    Solo se permite una instancia de Cache como entrada, consulte nuestra guía de caché kv. Si no se pasan past_key_values, DynamicCache se inicializará de forma predeterminada.

    El modelo generará el mismo formato de caché que se proporciona como entrada.

    Si se utilizan past_key_values, se espera que el usuario introduzca únicamente los input_ids no procesados (aquellos que no tienen sus estados de clave y valor pasados proporcionados a este modelo) con forma (batch_size, unprocessed_length) en lugar de todos los input_ids con forma (batch_size, sequence_length).

  • attention_mask (torch.FloatTensor de forma (batch_size, sequence_length), opcional) — Máscara para evitar realizar atención en los índices de tokens de relleno. Valores de máscara seleccionados en [0, 1]:
    • 1 para los tokens que no están enmascarados,
    • 0 para los tokens que están enmascarados.

    ¿Qué son las máscaras de atención?

  • token_type_ids (torch.LongTensor de forma (batch_size, sequence_length), opcional) — Índices de tokens de segmento para indicar las primeras y segundas partes de las entradas. Los índices se seleccionan en [0, 1]:
    • 0 corresponde a un token de sentence A,
    • 1 corresponde a un token de sentence B.

    ¿Qué son los IDs de tipo de token?

  • position_ids (torch.LongTensor de forma (batch_size, sequence_length), opcional) — Índices de las posiciones de los tokens de cada secuencia de entrada en los embeddings de posición. Seleccionados en el rango [0, config.n_positions - 1].

    ¿Qué son los IDs de posición?

  • inputs_embeds (torch.FloatTensor de forma (batch_size, sequence_length, hidden_dim), opcional) — Opcionalmente, en lugar de pasar input_ids, puede elegir pasar directamente una representación incrustada. Esto es útil si desea tener más control sobre cómo convertir los índices de input_ids en los vectores asociados que en la matriz de búsqueda de incrustaciones interna del modelo.
  • labels (torch.LongTensor de forma (batch_size, sequence_length), opcional) — Etiquetas para el modelado de lenguaje. Tenga en cuenta que las etiquetas se desplazan dentro del modelo, es decir, puede establecer labels = input_ids Los índices se seleccionan en [-100, 0, ..., config.vocab_size] Todas las etiquetas establecidas en -100 se ignoran (se enmascaran), la pérdida solo se calcula para las etiquetas en [0, ..., config.vocab_size]
  • use_cache (bool, opcional) — Si se establece en True, se devuelven los estados de clave-valor de past_key_values y pueden usarse para acelerar la decodificación (ver past_key_values).
  • output_attentions (bool, opcional) — Indica si se deben devolver los tensores de atención de todas las capas de atención. Consulte attentions en los tensores devueltos para obtener más detalles.
  • output_hidden_states (bool, opcional) — Indica si se deben devolver los estados ocultos de todas las capas. Consulte hidden_states en los tensores devueltos para obtener más detalles.
  • return_dict (bool, opcional) — Indica si se debe devolver un ModelOutput en lugar de una tupla simple.
  • logits_to_keep (Union[int, torch.Tensor], opcional, valor predeterminado 0) — Si es un int, calcula los logits para los últimos logits_to_keep tokens. Si es 0, calcula los logits para todos los input_ids (caso especial). Solo se necesitan los logits del último token para la generación, y calcularlos solo para ese token puede ahorrar memoria, lo cual se vuelve bastante significativo para secuencias largas o un tamaño de vocabulario grande. Si es un torch.Tensor, debe ser de 1D y corresponder a los índices a conservar en la dimensión de longitud de secuencia. Esto es útil al usar el formato de tensor empaquetado (una sola dimensión para el lote y la longitud de secuencia).

Devuelve

CausalLMOutputWithPast o tuple(torch.FloatTensor)

Un CausalLMOutputWithPast o una tupla de torch.FloatTensor (si se pasa return_dict=False o cuando config.return_dict=False) que comprende varios elementos según la configuración (CodeGenConfig) y las entradas.

El método forward de CodeGenForCausalLM sobrescribe el método especial __call__.

Aunque la receta para la pasada hacia adelante debe definirse dentro de esta función, se debe llamar a la instancia de Module después en lugar de a esta, ya que la primera se encarga de ejecutar los pasos de pre y postprocesamiento, mientras que la segunda los ignora silenciosamente.

  • loss (torch.FloatTensor de forma (1,), opcional, devuelta cuando se proporciona labels) — Pérdida de modelado de lenguaje (para la predicción del siguiente token).

  • logits (torch.FloatTensor de forma (batch_size, sequence_length, config.vocab_size)) — Puntuaciones de predicción de la cabeza de modelado de lenguaje (puntuaciones para cada token del vocabulario antes de SoftMax).

  • past_key_values (Cache, opcional, se devuelve cuando se pasa use_cache=True o cuando config.use_cache=True) — Es una instancia de Cache. Para más detalles, consulta nuestra guía de caché kv.

    Contiene estados ocultos precalculados (claves y valores en los bloques de autoatención) que pueden utilizarse (véase la entrada past_key_values) para acelerar la decodificación secuencial.

  • hidden_states (tuple(torch.FloatTensor), opcional, se devuelve cuando se pasa output_hidden_states=True o cuando config.output_hidden_states=True) — Tupla de torch.FloatTensor (una para la salida de las incrustaciones, si el modelo tiene una capa de incrustaciones, + una para la salida de cada capa) de forma (batch_size, sequence_length, hidden_size).

    Estados ocultos del modelo en la salida de cada capa más las salidas opcionales de la incrustación inicial.

  • attentions (tuple(torch.FloatTensor), opcional, se devuelve cuando se pasa output_attentions=True o cuando config.output_attentions=True) — Tupla de torch.FloatTensor (una por cada capa) de forma (batch_size, num_heads, sequence_length, sequence_length).

    Pesos de atención tras el softmax de atención, utilizados para calcular la media ponderada en las cabezas de autoatención.

Ejemplo:

Update on GitHub