Transformers documentation

Cuantización

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

Cuantización

Las técnicas de cuantización reducen los costos de memoria y de cómputo al representar los pesos y las activaciones con tipos de datos de menor precisión, como enteros de 8 bits (int8). Esto permite cargar modelos más grandes que normalmente no cabrían en la memoria y acelerar la inferencia. Transformers admite los algoritmos de cuantización AWQ y GPTQ, y soporta la cuantización de 8 bits y 4 bits con bitsandbytes.

Las técnicas de cuantización que no están soportadas en Transformers pueden agregarse con la clase HfQuantizer.

Aprende a cuantizar modelos en la guía de Cuantización.

QuantoConfig

clase transformers.QuantoConfig

< >

( weights = 'int8'activations = Nonemodules_to_not_convert: list | None = None**kwargs )

Parámetros

  • weights (str, opcional, valor predeterminado "int8") — El dtype objetivo para los pesos después de la cuantización. Los valores admitidos son (“float8”,“int8”,“int4”,“int2”)
  • activations (str, opcional) — El dtype objetivo para las activaciones después de la cuantización. Los valores admitidos son (None,“int8”,“float8”)
  • modules_to_not_convert (list, opcional, valor predeterminado None) — La lista de módulos que no se deben cuantizar, útil para cuantizar modelos que requieren explícitamente que algunos módulos se mantengan en su precisión original (p. ej., el codificador de Whisper, el codificador de Llava, las capas de puerta de Mixtral).

Esta es una clase envoltorio sobre todos los atributos y características posibles con los que puedes trabajar un modelo que ha sido cargado usando quanto.

post_init

< >

( )

Verificador de seguridad que los argumentos son correctos

AqlmConfig

clase transformers.AqlmConfig

< >

( in_group_size: int = 8out_group_size: int = 1num_codebooks: int = 1nbits_per_codebook: int = 16linear_weights_not_to_quantize: list[str] | None = None**kwargs )

Parámetros

  • in_group_size (int, opcional, valor predeterminado 8) — El tamaño del grupo a lo largo de la dimensión de entrada.
  • out_group_size (int, opcional, valor predeterminado 1) — El tamaño del grupo a lo largo de la dimensión de salida. Se recomienda usar siempre 1.
  • num_codebooks (int, opcional, valor predeterminado 1) — Número de libros de códigos para el procedimiento de Cuantización Aditiva.
  • nbits_per_codebook (int, opcional, valor predeterminado 16) — Número de bits que codifican un vector de codebook. El tamaño de los codebooks es 2**nbits_per_codebook.
  • linear_weights_not_to_quantize (Optional[list[str]], opcional) — Lista de rutas completas de los parámetros de peso de nn.Linear que no deben cuantizarse.
  • kwargs (dict[str, Any], opcional) — Parámetros adicionales a partir de los cuales inicializar el objeto de configuración.

Esta es una clase envoltorio sobre los parámetros de aqlm.

post_init

< >

( )

Comprobador de seguridad que verifica que los argumentos sean correctos; también reemplaza algunos argumentos de tipo NoneType con sus valores predeterminados.

VptqConfig

clase transformers.VptqConfig

< >

( enable_proxy_error: bool = Falseconfig_for_layers: dict = {}shared_layer_config: dict = {}modules_to_not_convert: list | None = None**kwargs )

Parámetros

  • enable_proxy_error (bool, opcional, valor predeterminado False) — calcula el error de proxy para cada capa
  • config_for_layers (Dict, opcional, valor predeterminado {}) — parámetros de cuantización para cada capa
  • shared_layer_config (Dict, opcional, valor predeterminado {}) — parámetros de cuantización compartidos entre capas
  • modules_to_not_convert (list, opcional, valor predeterminado None) — La lista de módulos que no se deben cuantizar, útil para cuantizar modelos que requieren explícitamente que algunos módulos se mantengan en su precisión original (p. ej., el codificador de Whisper, el codificador de Llava, las capas de puerta de Mixtral).
  • kwargs (dict[str, Any], opcional) — Parámetros adicionales a partir de los cuales inicializar el objeto de configuración.

Esta es una clase envoltorio sobre los parámetros de vptq.

post_init

< >

( )

Verificador de seguridad que los argumentos son correctos

AwqConfig

clase transformers.AwqConfig

< >

( bits: int = 4group_size: int = 128zero_point: bool = Truebackend: AwqBackend = <AwqBackend.AUTO: 'auto'>modules_to_not_convert: list | None = None**kwargs )

Parámetros

  • bits (int, opcional, valor predeterminado 4) — El número de bits a los que cuantizar.
  • group_size (int, opcional, valor predeterminado 128) — El tamaño de grupo a utilizar para la cuantización. El valor recomendado es 128 y -1 utiliza la cuantización por columna.
  • zero_point (bool, opcional, valor predeterminado True) — Si se debe usar la cuantización con punto cero.
  • backend (AwqBackend, opcional, valor predeterminado AwqBackend.AUTO) — El backend de cuantización.
  • modules_to_not_convert (list, opcional, valor predeterminado None) — La lista de módulos que no se deben cuantizar, útil para cuantizar modelos que requieren explícitamente que algunos módulos se mantengan en su precisión original (p. ej., el codificador de Whisper, el codificador de Llava, las capas de puerta de Mixtral). Tenga en cuenta que no puede cuantizar directamente con transformers; consulte la documentación de AutoAWQ para cuantizar modelos de HF.

Esta es una clase envoltorio sobre todos los atributos y funciones posibles con los que puedes trabajar un modelo que se ha cargado usando la cuantización awq de la biblioteca auto-awq que se basa en el backend auto_awq.

EetqConfig

clase transformers.EetqConfig

< >

( weights: str = 'int8'modules_to_not_convert: list | None = None**kwargs )

Parámetros

  • weights (str, opcional, valor predeterminado "int8") — El dtype objetivo para los pesos. El único valor admitido es “int8”
  • modules_to_not_convert (list, opcional, valor predeterminado None) — La lista de módulos que no se deben cuantizar, útil para cuantizar modelos que requieren explícitamente que algunos módulos se mantengan en su precisión original.

Esta es una clase envoltorio sobre todos los atributos y características posibles con los que puedes trabajar un modelo que ha sido cargado usando eetq.

post_init

< >

( )

Verificador de seguridad que los argumentos son correctos

GPTQConfig

clase transformers.GPTQConfig

< >

( bits: inttokenizer: Any = Nonedataset: list[str] | str | None = Nonegroup_size: int = 128damp_percent: float = 0.1desc_act: bool = Falseact_group_aware: bool = Truesym: bool = Truetrue_sequential: bool = Trueformat: str = 'gptq'meta: dict[str, typing.Any] | None = Nonebackend: str | None = Nonemodel_seqlen: int | None = Noneblock_name_to_quantize: str | None = Nonemodule_name_preceding_first_block: list[str] | None = Nonebatch_size: int = 1pad_token_id: int | None = Nonemax_input_length: int | None = Nonecache_block_outputs: bool = Truemodules_in_block_to_quantize: list[list[str]] | None = None**kwargs )

Parámetros

  • bits (int) — El número de bits a los que cuantizar; los valores admitidos son (2, 3, 4, 8).
  • tokenizer (str o PreTrainedTokenizerBase, opcional) — El tokenizer utilizado para procesar el conjunto de datos. Puede pasar lo siguiente:
    • Un objeto de tokenizador personalizado.
    • Una cadena de texto, el model id de un tokenizador predefinido alojado en un repositorio de modelos en huggingface.co.
    • Una ruta a un directorio que contenga los archivos de vocabulario requeridos por el tokenizador, por ejemplo, guardados usando el método save_pretrained(), p. ej., ./my_model_directory/.
  • dataset (Union[list[str]], opcional) — El conjunto de datos utilizado para la cuantización. Puede proporcionar su propio conjunto de datos en una lista de cadenas o simplemente utilizar los conjuntos de datos originales empleados en el artículo de GPTQ [‘wikitext2’,‘c4’,‘c4-new’]
  • group_size (int, opcional, valor predeterminado 128) — El tamaño de grupo a utilizar para la cuantización. El valor recomendado es 128 y -1 utiliza la cuantización por columna.
  • damp_percent (float, opcional, valor predeterminado 0.1) — El porcentaje de la diagonal media de la matriz hessiana que se utilizará para el amortiguamiento. El valor recomendado es 0.1.
  • desc_act (bool, opcional, valor predeterminado False) — Si se cuantizan las columnas en orden de tamaño de activación decreciente. Establecerlo en False puede acelerar significativamente la inferencia, pero la perplejidad puede empeorar ligeramente. También conocido como act-order.
  • act_group_aware (bool, opcional, valor predeterminado True) — Usa GAR (group aware activation order) durante la cuantización. Tiene un impacto positivo medible en la calidad de la cuantización. Solo es aplicable cuando desc_act = False. Se forzará a False cuando desc_act = True.
  • sym (bool, opcional, valor predeterminado True) — Si se debe usar cuantización simétrica.
  • true_sequential (bool, opcional, valor predeterminado True) — Si se debe realizar la cuantización secuencial incluso dentro de un solo bloque Transformer. En lugar de cuantizar el bloque completo de una sola vez, se realiza la cuantización capa por capa. Como resultado, cada capa se somete a cuantización utilizando entradas que han pasado por las capas cuantizadas previamente.
  • format (str, opcional, valor predeterminado "gptq") — Formato de pesos de GPTQ. gptq (v1) es compatible con gptqmodel. gptq_v2 es exclusivo de gptqmodel.
  • meta (dict[str, any], opcional) — Las propiedades, como tooling:version, que no contribuyen directamente a la cuantización o a la inferencia cuantizada se almacenan en meta. Por ejemplo, meta.quantizer: [“optimum:version”, “gptqmodel:version”]
  • backend (str, opcional) — Controla qué kernel se debe usar. Los valores válidos para gptqmodel son auto, auto_trainable y más. Ref backends de gptqmodel: https://github.com/ModelCloud/GPTQModel/blob/main/gptqmodel/utils/backend.py
  • model_seqlen (int, opcional) — La longitud máxima de secuencia que puede aceptar el modelo.
  • block_name_to_quantize (str, opcional) — El nombre del bloque de transformers que se debe cuantizar. Si es None, inferiremos el nombre del bloque usando patrones comunes (p. ej. model.layers)
  • module_name_preceding_first_block (list[str], opcional) — Las capas que preceden al primer bloque de Transformer.
  • batch_size (int, opcional, valor predeterminado 1) — El tamaño de lote utilizado al procesar el conjunto de datos
  • pad_token_id (int, opcional) — El identificador del token de relleno. Necesario para preparar el conjunto de datos cuando batch_size > 1.
  • max_input_length (int, opcional) — La longitud máxima de entrada. Esto es necesario para inicializar un búfer que depende de la longitud máxima de entrada esperada. Es específico del backend exllama con act-order.
  • cache_block_outputs (bool, opcional, valor predeterminado True) — Si se deben cachear las salidas de los bloques para reutilizarlas como entradas del bloque siguiente.
  • modules_in_block_to_quantize (list[list[str]], opcional) — Lista de listas de nombres de módulos a cuantizar en el bloque especificado. Este argumento es útil para excluir ciertos módulos lineales de la cuantización. El bloque a cuantizar se puede especificar configurando block_name_to_quantize. Cuantizaremos cada lista de forma secuencial. Si no se configura, cuantizaremos todas las capas lineales. Ejemplo: modules_in_block_to_quantize =[["self_attn.k_proj", "self_attn.v_proj", "self_attn.q_proj"], ["self_attn.o_proj"]]. En este ejemplo, primero cuantizaremos las capas q, k y v simultáneamente, ya que son independientes. Luego, cuantizaremos la capa self_attn.o_proj con las capas q, k y v ya cuantizadas. De esta manera, obtendremos mejores resultados, ya que refleja la entrada real que recibirá self_attn.o_proj cuando el modelo esté cuantizado.

Esta es una clase envoltorio sobre todos los atributos y funciones posibles con los que puedes trabajar un modelo que ha sido cargado usando la API de optimum para la cuantización GPTQ, que se basa en el backend gptqmodel.

from_dict_optimum

< >

( config_dict )

Obtener la clase compatible con el diccionario de configuración gptq de optimum

post_init

< >

( )

Verificador de seguridad que los argumentos son correctos

to_dict_optimum

< >

( )

Obtener un diccionario compatible para la configuración de gptq de optimum

BitsAndBytesConfig

clase transformers.BitsAndBytesConfig

< >

( load_in_8bit = Falseload_in_4bit = Falsellm_int8_threshold = 6.0llm_int8_skip_modules = Nonellm_int8_enable_fp32_cpu_offload = Falsellm_int8_has_fp16_weight = Falsebnb_4bit_compute_dtype = Nonebnb_4bit_quant_type = 'fp4'bnb_4bit_use_double_quant = Falsebnb_4bit_quant_storage = None**kwargs )

Parámetros

  • load_in_8bit (bool, opcional, valor predeterminado False) — Esta bandera se utiliza para habilitar la cuantización de 8 bits con LLM.int8().
  • load_in_4bit (bool, opcional, valor predeterminado False) — Esta bandera se utiliza para habilitar la cuantización de 4 bits reemplazando las capas Linear con capas FP4/NF4 de bitsandbytes.
  • llm_int8_threshold (float, opcional, valor predeterminado 6.0) — Corresponde al umbral de valores atípicos para la detección de outliers, tal como se describe en el artículo LLM.int8() : 8-bit Matrix Multiplication for Transformers at Scale: https://huggingface.co/papers/2208.07339 Cualquier valor de los estados ocultos que supere este umbral se considerará un outlier y la operación sobre esos valores se realizará en fp16. Los valores suelen estar distribuidos de forma normal, es decir, la mayoría se encuentran en el rango [-3.5, 3.5], pero existen algunos outliers sistemáticos excepcionales que están distribuidos de manera muy diferente en los modelos grandes. Estos outliers suelen estar en el intervalo [-60, -6] o [6, 60]. La cuantización Int8 funciona bien para valores de magnitud ~5, pero más allá de eso, hay un penalización significativa en el rendimiento. Un buen umbral predeterminado es 6, pero podría ser necesario un umbral más bajo para modelos más inestables (modelos pequeños, fine-tuning).
  • llm_int8_skip_modules (list[str], opcional) — Una lista explícita de los módulos que no queremos convertir a 8 bits. Esto es útil para modelos como Jukebox, que tiene varias cabezas en diferentes lugares y no necesariamente en la última posición. Por ejemplo, en los modelos CausalLM, el último lm_head se mantiene en su dtype original.
  • llm_int8_enable_fp32_cpu_offload (bool, opcional, valor predeterminado False) — Esta bandera se utiliza para casos de uso avanzados y para usuarios que conocen esta función. Si deseas dividir tu modelo en diferentes partes y ejecutar algunas en int8 en la GPU y otras en fp32 en la CPU, puedes usar esta bandera. Esto es útil para descargar modelos grandes, como google/flan-t5-xxl. Ten en cuenta que las operaciones int8 no se ejecutarán en la CPU.
  • llm_int8_has_fp16_weight (bool, opcional, valor predeterminado False) — Esta bandera ejecuta LLM.int8() con pesos principales de 16 bits. Esto es útil para el ajuste fino, ya que los pesos no tienen que convertirse de ida y vuelta para la propagación inversa.
  • bnb_4bit_compute_dtype (torch.dtype o str, opcional, valor predeterminado torch.float32) — Establece el tipo de cálculo, que puede ser diferente del tipo de entrada. Por ejemplo, las entradas pueden ser fp32, pero el cálculo puede configurarse en bf16 para obtener mejoras de velocidad.
  • bnb_4bit_quant_type (str, opcional, valor predeterminado "fp4") — Esto establece el tipo de datos de cuantización en las capas bnb.nn.Linear4Bit. Las opciones son los tipos de datos FP4 y NF4, que se especifican con fp4 o nf4.
  • bnb_4bit_use_double_quant (bool, opcional, valor predeterminado False) — Esta bandera se utiliza para la cuantización anidada, donde las constantes de cuantización de la primera cuantización se cuantizan nuevamente.
  • bnb_4bit_quant_storage (torch.dtype o str, opcional, valor predeterminado torch.uint8) — Esto establece el tipo de almacenamiento para empaquetar los parámetros cuantizados de 4 bits.
  • kwargs (dict[str, Any], opcional) — Parámetros adicionales a partir de los cuales inicializar el objeto de configuración.

Esta es una clase envoltorio sobre todos los atributos y funciones posibles con los que puedes trabajar un modelo que se ha cargado usando bitsandbytes.

Actualmente solo admite la cuantización LLM.int8(), FP4 y NF4. Si se añaden más métodos a bitsandbytes, se añadirán más argumentos a esta clase.

is_quantizable

< >

( )

Devuelve True si el modelo es cuantizable, False en caso contrario.

post_init

< >

( )

Comprobador de seguridad que verifica que los argumentos sean correctos; también reemplaza algunos argumentos de tipo NoneType con sus valores predeterminados.

quantization_method

< >

( )

Este método devuelve el método de cuantización utilizado para el modelo. Si el modelo no es cuantizable, devuelve None.

to_diff_dict

< >

( ) → dict[str, Any]

Devuelve

dict[str, Any]

Diccionario de todos los atributos que componen esta instancia de configuración,

Elimina todos los atributos de config que corresponden a los atributos de la configuración predeterminada para mejorar la legibilidad y los serializa en un diccionario de Python.

HfQuantizer

clase transformers.quantizers.HfQuantizer

< >

( quantization_config: QuantizationConfigMixin**kwargs )

Clase abstracta del cuantizador de HuggingFace. Por ahora, admite la cuantización de modelos de transformers de HF para inferencia y/o cuantización. Esta clase solo se utiliza en transformers.PreTrainedModel.from_pretrained y aún no se puede utilizar fácilmente fuera del ámbito de ese método.

Atributos quantization_config (transformers.utils.quantization_config.QuantizationConfigMixin): La configuración de cuantización que define los parámetros de cuantización de tu modelo que deseas cuantizar. requires_calibration (bool): Si el método de cuantización requiere calibrar el modelo antes de usarlo.

adjust_max_memory

< >

( max_memory: dict )

ajustar el argumento max_memory de infer_auto_device_map() si se necesita memoria adicional para la cuantización

dequantize

< >

( modeldtype = None )

Descomprimir el modelo para recuperar el modelo original, con cierta pérdida de precisión / rendimiento. Tenga en cuenta que no todos los esquemas de cuantización admiten esto.

get_load_operations

< >

( )

Clases de operaciones que cargan los tensores serializados, p. ej. {"deserialize": Mxfp4Deserialize, "dequantize": Mxfp4Dequantize}. La deserialización construye los parámetros de un módulo, por lo que solo se ejecuta en los conversores generales. La descuantización también se ejecuta antes de las operaciones de los conversores del modelo, p. ej. antes de una fusión por experto.

get_new_dtype

< >

( converterparamdtype: torch.dtype | None )

Esto ocurre en el momento de la materialización, cuando el tensor se envía desde el disco al dispositivo. dtype para convertir el tensor del punto de control pre-cuantizado param. Si ese parámetro no está cuantizado (tipo float), usamos el dtype de entrada que proviene del nn.Module inicializado.

Si el método de cuantización tiene un Deserializer o un Dequantizer (función de carga), devolvemos None para que lo gestionen ellos.

get_state_dict_and_metadata

< >

( model )

Obtener el state dict y los metadatos. Útil cuando necesitamos modificar un poco el state dict debido a la cuantización

get_weight_conversions

< >

( )

Devuelve la carga a realizar en cualquier parámetro que no coincida con los conversores del modelo

param_needs_quantization

< >

( model: PreTrainedModelparam_name: str**kwargs )

Comprueba si un parámetro dado necesita ser cuantizado.

postprocess_model

< >

( model: PreTrainedModel**kwargs )

Parámetros

  • model (~transformers.PreTrainedModel) — El modelo que se va a cuantizar
  • kwargs (dict, opcional) — Los argumentos de palabra clave que se pasan a _process_model_after_weight_loading.

Post-procesa el modelo después de cargar los pesos. Asegúrate de sobrescribir el método abstracto _process_model_after_weight_loading.

preprocess_model

< >

( model: PreTrainedModeldtype = None**kwargs )

Parámetros

  • model (~transformers.PreTrainedModel) — El modelo que se va a cuantizar
  • kwargs (dict, opcional) — Los argumentos de palabra clave que se pasan a _process_model_before_weight_loading.

Establecer atributos del modelo y/o convertir el modelo antes de cargar los pesos. En este punto, el modelo debe estar inicializado en el dispositivo meta, por lo que puedes manipular libremente el esqueleto del modelo para reemplazar módulos in situ. Asegúrate de sobrescribir el método abstracto _process_model_before_weight_loading.

remove_quantization_config

< >

( model )

Elimine la configuración de cuantización del modelo.

update_attn_implementation

< >

( config )

Ve el attn_implementation solicitado antes de que se construya el modelo, por lo que un cuantizador puede establecerlo de forma predeterminada.

update_device_map

< >

( device_map: dict[str, typing.Any] | None )

Parámetros

  • device_map (Union[dict, str], opcional) — El device_map que se pasa a través del método from_pretrained.

Sobrescriba este método si desea pasar un mapa de dispositivos para reemplazar el existente. Por ejemplo, en el caso de bitsandbytes, dado que accelerate es un requisito obligatorio, si no se pasa device_map, el device_map se establece en `“auto”“

update_dtype

< >

( dtype: torch.dtype )

Parámetros

  • dtype (torch.dtype) — El dtype de entrada que se pasa en from_pretrained

Algunos métodos de cuantización requieren establecer explícitamente el dtype del modelo a un dtype objetivo. Debes sobrescribir este método si deseas asegurarte de que se preserve ese comportamiento

update_parallel_plan

< >

( modelplan: dict )

Actualiza model.tp_plan o model.ep_plan (los planes completos, fusionados desde la configuración y todas las subconfiguraciones) para tener en cuenta las claves personalizadas del cuantizador, como ‘inv_scale’

update_weight_conversions

< >

( weight_conversionsmodel )

Hace que los conversores del modelo (de la conversión de mapeo) carguen los nombres serializados. Los parámetros del modelo deciden, por ejemplo, para una fusión de experts.*.gate_proj.weight en experts.gate_up_proj:

  • experts.gate_up_proj_scale_inv es un parámetro: una copia fusiona experts.*.gate_proj.weight_scale_inv en él
  • en caso contrario, el convertidor también recopila experts.*.gate_proj.weight_scale_inv, la operación de descuantización se ejecuta primero

validate_environment

< >

( *args**kwargs )

Este método se utiliza para verificar posibles conflictos con los argumentos que se pasan en from_pretrained. Debe definirse para todos los cuantificadores futuros que se integren con transformers. Si no se necesita una comprobación explícita, simplemente no devuelva nada.

HiggsConfig

clase transformers.HiggsConfig

< >

( bits: int = 4p: int = 2modules_to_not_convert: list[str] | None = Nonehadamard_size: int = 512group_size: int = 256tune_metadata: dict[str, typing.Any] | None = None**kwargs )

Parámetros

  • bits (int, opcional, valor predeterminado 4) — Número de bits a utilizar para la cuantización. Puede ser 2, 3 o 4. El valor predeterminado es 4.
  • p (int, opcional, valor predeterminado 2) — Dimensión de la cuadrícula de cuantización. Se admiten 1 y 2. En la práctica, 2 siempre es mejor. El valor predeterminado es 2.
  • modules_to_not_convert (list, opcional, valor predeterminado [“lm_head”]) — Lista de capas lineales que no deben cuantizarse.
  • hadamard_size (int, opcional, valor predeterminado 512) — Tamaño de Hadamard para el método HIGGS. El valor predeterminado es 512. La dimensión de entrada de las matrices se rellena hasta este valor. Reducir este valor por debajo de 512 disminuirá la calidad de la cuantización.
  • group_size (int, opcional, valor predeterminado 256) — Tamaño de grupo para el método HIGGS. Puede ser 64, 128 o 256. Disminuirlo apenas afecta el rendimiento. El valor predeterminado es 256. Debe ser un divisor de hadamard_size.
  • tune_metadata (‘dict’, opcional, predeterminado {}) — Metadatos por módulo (formas de bloques gemm, metadatos de GPU, etc.) para guardar los resultados del ajuste de kernels. El valor predeterminado es un diccionario vacío. Se establece automáticamente durante el ajuste.

HiggsConfig es una clase de configuración para la cuantización mediante el método HIGGS.

post_init

< >

( )

Comprobador de seguridad que verifica que los argumentos sean correctos; también reemplaza algunos argumentos de tipo NoneType con sus valores predeterminados.

HqqConfig

clase transformers.HqqConfig

< >

( nbits: int = 4group_size: int = 64view_as_float: bool = Falseaxis: int | None = Nonedynamic_config: dict | None = Noneskip_modules: list = ['lm_head']**kwargs )

Parámetros

  • nbits (int, opcional, valor predeterminado 4) — Número de bits. Los valores admitidos son (8, 4, 3, 2, 1).
  • group_size (int, opcional, valor predeterminado 64) — Valor del tamaño del grupo. Los valores admitidos son cualquier valor divisible por weight.shape[axis]).
  • view_as_float (bool, opcional, valor predeterminado False) — Ver el peso cuantizado como float (se usa en entrenamiento distribuido) si se establece en True.
  • axis (Optional[int], opcional) — Eje a lo largo del cual se realiza el agrupamiento. Los valores admitidos son 0 o 1.
  • dynamic_config (dict, opcional) — Parámetros para la configuración dinámica. La clave es la etiqueta de nombre de la capa y el valor es una configuración de cuantización. Si se establece, cada capa especificada por su id utilizará su configuración de cuantización dedicada.
  • skip_modules (list[str], opcional, valor predeterminado ['lm_head']) — Lista de capas nn.Linear que se deben omitir.
  • kwargs (dict[str, Any], opcional) — Parámetros adicionales a partir de los cuales inicializar el objeto de configuración.

Este es un envoltorio alrededor de BaseQuantizeConfig de hqq.

from_dict

< >

( config: dict )

Sobrescribir from_dict, que se utiliza en AutoQuantizationConfig.from_dict en quantizers/auto.py

post_init

< >

( )

Comprobador de seguridad que verifica que los argumentos sean correctos; también reemplaza algunos argumentos de tipo NoneType con sus valores predeterminados.

to_diff_dict

< >

( ) → dict[str, Any]

Devuelve

dict[str, Any]

Diccionario de todos los atributos que componen esta instancia de configuración,

Elimina todos los atributos de config que corresponden a los atributos de la configuración predeterminada para mejorar la legibilidad y los serializa en un diccionario de Python.

MetalConfig

clase transformers.MetalConfig

< >

( bits: int = 4group_size: int = 64modules_to_not_convert: list | None = Nonedequantize: bool = False**kwargs )

Clase de configuración para la cuantización afín de Metal dirigida a dispositivos Apple Silicon (MPS).

Este método de cuantización utiliza los kernels Metal de mlx-quantization-metal-kernels del Hugging Face Hub para realizar cuantización afín (escalas + qbiases) con ancho de bits y tamaño de grupo configurables. Los pesos cuantizados se empaquetan en tensores uint32 y la pasada hacia adelante utiliza kernels Metal fusionados de decuantización + matmul.

Mxfp4Config

clase transformers.Mxfp4Config

< >

( modules_to_not_convert: list | None = Nonedequantize: bool = False**kwargs )

Parámetros

  • modules_to_not_convert (list, opcional, valor predeterminado None) — La lista de módulos que no se deben cuantizar, útil para cuantizar modelos que requieren explícitamente que algunos módulos se mantengan en su precisión original.
  • dequantize (bool, opcional, por defecto False) — Si descuantizamos el modelo a precisión bf16 o no

Esta es una clase envoltorio sobre todos los atributos y características posibles con los que puedes trabajar un modelo que ha sido cargado usando cuantización mxfp4.

NVFP4Config

clase transformers.NVFP4Config

< >

( modules_to_not_convert: list[str] | None = None**kwargs )

Parámetros

  • modules_to_not_convert (list[str], opcional) — Patrones de nombres de módulos que deben mantener su precisión original.
  • kwargs (dict[str, Any], opcional) — Los valores adicionales se ignoran y se informan a través del registro de Transformers.

Configuración para la cuantización de pesos NVFP4 sobre la marcha.

FbgemmFp8Config

clase transformers.FbgemmFp8Config

< >

( activation_scale_ub: float = 1200.0modules_to_not_convert: list | None = None**kwargs )

Parámetros

  • activation_scale_ub (float, opcional, valor predeterminado 1200.0) — El límite superior de la escala de activación. Se utiliza al cuantizar la activación de entrada.
  • modules_to_not_convert (list, opcional, valor predeterminado None) — La lista de módulos que no se deben cuantizar, útil para cuantizar modelos que requieren explícitamente que algunos módulos se mantengan en su precisión original.

Esta es una clase envoltorio sobre todos los atributos y funciones posibles con los que puedes trabajar un modelo que se ha cargado usando cuantización fp8 de fbgemm.

CompressedTensorsConfig

clase transformers.CompressedTensorsConfig

< >

( config_groups: dict[str, typing.Union[ForwardRef('QuantizationScheme'), list[str]]] | None = Noneformat: str = 'dense'quantization_status: QuantizationStatus = 'initialized'kv_cache_scheme: typing.Optional[ForwardRef('QuantizationArgs')] = Noneglobal_compression_ratio: float | None = Noneignore: list[str] | None = Nonequant_method: str = 'compressed-tensors'run_compressed: bool | None = Nonedequantize: bool = Falseuse_optimized_inference: bool = False**kwargs )

Parámetros

  • config_groups (typing.dict[str, typing.Union[ForwardRef('QuantizationScheme'), typing.list[str]]], opcional) — diccionario que mapea el nombre de un grupo a una definición de esquema de cuantización
  • format (str, opcional, valor predeterminado "dense") — formato en el que se almacenan los pesos, p. ej. dense, float-quantized o pack-quantized
  • quantization_status (QuantizationStatus, opcional, valor predeterminado "initialized") — estado del modelo en el ciclo de vida de la cuantización, es decir, ‘initialized’, ‘calibration’, ‘frozen’
  • kv_cache_scheme (typing.Union[QuantizationArgs, NoneType], opcional) — especifica la cuantización del kv cache. Si es None, el kv cache no se cuantiza.
  • global_compression_ratio (typing.Union[float, NoneType], opcional) — Porcentaje de compresión del modelo, un valor flotante entre 0 y 1
  • ignore (typing.Union[typing.list[str], NoneType], opcional) — nombres o tipos de capas que no se deben cuantizar, admite expresiones regulares con el prefijo ‘re:’
  • quant_method (str, opcional, por defecto "compressed-tensors") — no se debe sobrescribir, debe ser compressed-tensors
  • run_compressed (bool, opcional) — obsoleto, use dequantize en su lugar. Su único efecto es establecer dequantize a su opuesto, run_compressed=False significa dequantize=True.
  • dequantize (bool, opcional, valor predeterminado False) — cuando es True, los pesos cuantizados se descuantizan al dtype del modelo (p. ej., BF16) en el momento de la carga, lo cual es lo que necesita el ajuste fino o el guardado del modelo en su dtype original. Cuando es False, los pesos se dejan en su forma comprimida y compressed-tensors los descomprime en la primera pasada hacia adelante.
  • use_optimized_inference (bool, opcional, valor predeterminado False) — cuando es True, las capas para las que tenemos kernels conservan sus pesos cuantizados y se ejecutan a través de esos kernels (actualmente W8A8 FP8, en CUDA SM89+, XPU o MPS con torch >= 2.15). Solo para inferencia y de activación opcional: sin esta opción, el modelo se procesa a través de la ruta regular de compressed-tensors. Se ignora cuando dequantize=True.

Esta es una clase envoltorio que gestiona las opciones de configuración de cuantización de compressed-tensors. Es un envoltorio alrededor de compressed_tensors.QuantizationConfig

from_dict

< >

( config_dictreturn_unused_kwargs = False**kwargs ) → QuantizationConfigMixin

Parámetros

  • config_dict (dict[str, Any]) — Diccionario que se utilizará para instanciar el objeto de configuración.
  • return_unused_kwargs (bool,opcional, valor predeterminado False) — Indica si se debe devolver una lista de argumentos de palabra clave no utilizados. Se utiliza en el método from_pretrained de PreTrainedModel.
  • kwargs (dict[str, Any]) — Parámetros adicionales a partir de los cuales inicializar el objeto de configuración.

Devuelve

QuantizationConfigMixin

El objeto de configuración instanciado a partir de esos parámetros.

Instancia un CompressedTensorsConfig a partir de un diccionario de Python de parámetros. Opcionalmente, desenvuelve cualquier argumento de la quantization_config anidada

to_dict

< >

( )

Configuración de cuantización que se añadirá a config.json

Serializa esta instancia en un diccionario de Python. Devuelve: dict[str, Any]: Diccionario de todos los atributos que componen esta instancia de configuración.

to_diff_dict

< >

( ) → dict[str, Any]

Devuelve

dict[str, Any]

Diccionario de todos los atributos que componen esta instancia de configuración,

Elimina todos los atributos de config que corresponden a los atributos de la configuración predeterminada para mejorar la legibilidad y los serializa en un diccionario de Python.

TorchAoConfig

clase transformers.TorchAoConfig

< >

( quant_type: AOBaseConfigmodules_to_not_convert: list | None = Noneinclude_input_output_embeddings: bool = Falseuntie_embedding_weights: bool = False**kwargs )

Parámetros

  • quant_type (AOBaseConfig) — Una instancia de AOBaseConfig de torchao que especifica el tipo de cuantización, por ejemplo, Int4WeightOnlyConfig(group_size=32), Int8WeightOnlyConfig(), Int8DynamicActivationInt8WeightConfig(), Float8WeightOnlyConfig(), etc.
  • modules_to_not_convert (list, opcional, valor predeterminado None) — La lista de módulos que no se deben cuantizar, útil para cuantizar modelos que requieren explícitamente que algunos módulos se mantengan en su precisión original.
  • include_input_output_embeddings (bool, opcional, valor predeterminado False) — Si se incluye o no la capa de embeddings en la cuantización. Si se establece esta bandera, la entrada de embeddings también se eliminará de la lista module_not_to_convert.
  • untie_embedding_weights (bool, opcional, valor predeterminado False) — Si se deben desvincular los pesos cuando estamos cuantizando los pesos de la entrada de incrustación que están vinculados a otros pesos.

Clase de configuración para técnicas de cuantización/escasez de torchao.

Ejemplo:

from torchao.quantization import Int4WeightOnlyConfig

quantization_config = TorchAoConfig(Int4WeightOnlyConfig(group_size=32))
model = AutoModelForCausalLM.from_pretrained(
    model_id, device_map="cuda", torch_dtype=torch.bfloat16, quantization_config=quantization_config
)

from_dict

< >

( config_dictreturn_unused_kwargs = False**kwargs )

Crear una configuración a partir de un diccionario.

get_apply_tensor_subclass

< >

( )

Devuelve la configuración de cuantización a aplicar.

post_init

< >

( )

Validar la configuración y establecer los valores predeterminados.

to_dict

< >

( )

Convierte la configuración en un diccionario.

BitNetQuantConfig

clase transformers.BitNetQuantConfig

< >

( modules_to_not_convert: list | None = Nonelinear_class: str = 'bitlinear'quantization_mode: str = 'offline'use_rms_norm: bool = Falserms_norm_eps: float | None = 1e-06**kwargs )

Parámetros

  • modules_to_not_convert (Optional[List], opcional) — Opcionalmente, proporciona una lista de rutas completas de parámetros de peso de nn.Linear que no deben cuantizarse. El valor predeterminado es None.
  • linear_class (str, opcional, valor predeterminado "bitlinear") — El tipo de clase lineal a utilizar. Puede ser bitlinear o autobitlinear.
  • quantization_mode (str, opcional, valor predeterminado "offline") — El modo de cuantización a utilizar. Puede ser online o offline. En el modo online, los parámetros de cuantización de los pesos se calculan dinámicamente durante cada pasada hacia adelante (por ejemplo, en función de los valores actuales de los pesos). Esto permite adaptarse a los cambios de los pesos durante el entrenamiento (Quantization-Aware Training - QAT). En el modo offline, los parámetros de cuantización se calculan con antelación antes de la inferencia. Estos parámetros se fijan y se cargan en el modelo cuantizado. Esto generalmente resulta en una sobrecarga de tiempo de ejecución menor en comparación con la cuantización online.
  • use_rms_norm (bool, opcional, valor predeterminado False) — Si se aplica RMSNorm a las activaciones antes de la cuantización. Esto coincide con el enfoque del artículo original de BitNet de normalizar las activaciones antes de la cuantización/empaquetado.
  • rms_norm_eps (float, opcional, valor predeterminado 1e-06) — El valor de epsilon utilizado en la capa RMSNorm para la estabilidad numérica.
  • kwargs (dict[str, Any], opcional) — Argumentos de palabra clave adicionales que pueden ser utilizados por backends de cuantización específicos o versiones futuras.

Clase de configuración para aplicar la cuantización BitNet.

post_init

< >

( )

Verificador de seguridad que los argumentos son correctos

SpQRConfig

clase transformers.SpQRConfig

< >

( bits: int = 3beta1: int = 16beta2: int = 16shapes: dict[str, int] | None = Nonemodules_to_not_convert: list[str] | None = None**kwargs )

Parámetros

  • bits (int, opcional, valor predeterminado 3) — Especifica el número de bits para los pesos y los puntos cero y escalas de primer orden. Actualmente solo se admite bits = 3.
  • beta1 (int, opcional, valor predeterminado 16) — Ancho de la tesela de SpQR. Actualmente solo se admite beta1 = 16.
  • beta2 (int, opcional, valor predeterminado 16) — Altura de la tesela de SpQR. Actualmente solo se admite beta2 = 16.
  • shapes (Optional, opcional) — Un diccionario que contiene la forma de cada objeto. Necesitamos esto porque es imposible deducir el tamaño exacto de los parámetros solo a partir de bits, beta1, beta2.
  • modules_to_not_convert (Optional[list[str]], opcional) — Opcionalmente, proporciona una lista de rutas completas de parámetros de peso de nn.Linear que no deben cuantizarse. El valor predeterminado es None.
  • kwargs (dict[str, Any], opcional) — Parámetros adicionales a partir de los cuales inicializar el objeto de configuración.

Esta es una clase envoltorio sobre los parámetros de spqr. Consulte la publicación original para más detalles.

post_init

< >

( )

Comprobador de seguridad que verifica que los argumentos sean correctos; también reemplaza algunos argumentos de tipo NoneType con sus valores predeterminados.

FineGrainedFP8Config

clase transformers.FineGrainedFP8Config

< >

( activation_scheme: str = 'dynamic'weight_block_size: tuple = (128, 128)dequantize: bool = Falsemodules_to_not_convert: list | None = Nonemodules_to_convert: list | None = Nonescale_fmt: str = 'float'expert_dtype: str = 'fp8'**kwargs )

Parámetros

  • activation_scheme (str, opcional, por defecto "dynamic") — El esquema utilizado para la activación; el esquema predeterminado y el único compatible por ahora es “dynamic”.
  • weight_block_size (typing.tuple[int, int], opcional, valor predeterminado (128, 128)) — El tamaño de los bloques de pesos para la cuantización, el valor predeterminado es (128, 128).
  • dequantize (bool, opcional, valor predeterminado False) — Si se debe descuantizar el modelo durante la carga.
  • modules_to_not_convert (list, opcional) — Una lista de nombres de módulos que no deben convertirse durante la cuantización.
  • modules_to_convert (list, opcional) — Una lista de nombres de módulos adicionales, como tablas de incrustaciones, que deben convertirse durante la cuantización.
  • scale_fmt (str, opcional, valor predeterminado "float") — Tipo de datos de almacenamiento de las escalas de peso por bloque: "float" (fp32, estilo V3) o "ue8m0" (1 byte torch.float8_e8m0fnu, estilo V4).
  • expert_dtype (str, opcional, valor predeterminado "fp8") — Formato de los pesos de los expertos MoE: "fp8", o "fp4" para los expertos empaquetados en FP4 de DeepSeek-V4.

FineGrainedFP8Config es una clase de configuración para la cuantización FP8 de grano fino, utilizada principalmente para los modelos deepseek.

post_init

< >

( )

Verificador de seguridad que los argumentos son correctos

QuarkConfig

clase transformers.QuarkConfig

< >

( **kwargs )

FourOverSixConfig

clase transformers.FourOverSixConfig

< >

( activation_dtype: str | None = Noneactivation_scale_rule: str | None = Nonedtype: str = 'nvfp4'gradient_dtype: str | None = Nonegradient_scale_rule: str | None = Nonekeep_master_weights: bool = Falsematmul_backend: str | None = Noneoutput_dtype: str | None = 'bfloat16'quantize_backend: str | None = Nonescale_rule: str = 'mse'weight_dtype: str | None = Noneweight_scale_2d: bool = Falseweight_scale_rule: str | None = Nonemodule_config_overrides: dict[str, dict[str, typing.Any]] | None = Nonemodules_to_not_convert: list[str] | None = ['lm_head']**kwargs )

Parámetros

  • activation_dtype (str, opcional) — Tipo de datos a utilizar al cuantizar los tensores de activación. Si no se proporciona, se utiliza dtype.
  • activation_scale_rule (str, opcional) — Regla de escalado a utilizar al seleccionar una escala para los bloques en los tensores de activación. Si no se proporciona, se utiliza scale_rule.
  • dtype (str, predeterminado “nvfp4”, opcional, predeterminado a "nvfp4") — El tipo de datos a utilizar para los pesos, las activaciones y los tensores de la capa. Puede ser "nvfp4" o "mxfp4".
  • gradient_dtype (str, opcional) — Tipo de datos a utilizar al cuantizar los tensores de gradiente. Si no se proporciona, se utiliza dtype.
  • gradient_scale_rule (str, opcional) — Regla de escalado a utilizar al seleccionar una escala para los bloques en los tensores de gradiente. Si no se proporciona, se utiliza scale_rule.
  • keep_master_weights (bool, por defecto False, opcional, por defecto False) — Si se conservan los pesos maestros. Si es True, se mantienen los pesos de alta precisión en todo momento y los pesos se cuantizan en línea en cada pasada hacia adelante. Esto es útil para el entrenamiento cuantizado.
  • matmul_backend (str, opcional) — El backend a utilizar para las multiplicaciones de matrices. Puede ser "cutlass" o "pytorch". Si no se proporciona, se usará CUTLASS si está disponible y, en caso contrario, se usará PyTorch.
  • output_dtype (str, opcional, valor predeterminado "bfloat16") — El tipo de datos a utilizar para la salida de la capa. Puede ser "bfloat16" o "float16".
  • quantize_backend (str, opcional) — El backend a utilizar para la cuantización. Puede ser "cuda", "triton" o "pytorch". Si no se proporciona, se seleccionará el backend más rápido en función de su entorno y de las opciones admitidas por cada backend. Normalmente, "cuda" se utilizará para la inferencia, "triton" se utilizará para el entrenamiento y "pytorch" se utilizará en dispositivos no CUDA.
  • scale_rule (str, por defecto “mse”, opcional, por defecto "mse") — Regla a utilizar al seleccionar las escalas de bloque. Puede ser "mse", "mae" o "abs_max" para Four Over Six, "static_6" para la cuantización NVFP4 predeterminada, o "static_4" para escalar todos los bloques a un valor máximo de 4.
  • weight_dtype (str, opcional) — Tipo de datos a utilizar al cuantizar los tensores de pesos. Si no se proporciona, se utiliza dtype.
  • weight_scale_2d (bool, predeterminado False, opcional, predeterminado a False) — Si se deben calcular los factores de escala en los tensores de pesos en bloques 2D. Esto debe hacerse durante el entrenamiento.
  • weight_scale_rule (str, opcional) — Regla de escalado a utilizar al seleccionar una escala para los bloques en los tensores de pesos. Si no se proporciona, se utiliza scale_rule.
  • module_config_overrides (dict[str, dict[str, Any]], opcional) — Un diccionario de configuraciones de reemplazo específicas de cada módulo. Las claves deben ser nombres de módulos y los valores deben ser diccionarios que contengan la configuración de cuantización para ese módulo. Esto se puede usar para reemplazar la configuración predeterminada de módulos específicos.
  • modules_to_not_convert (list[str], opcional, por defecto ['lm_head']) — La lista de módulos que se excluirán de la cuantización. Por defecto, se excluye lm_head.

Esta es una clase envoltura que contiene todas las opciones para la cuantización con fouroversix. En resumen, Four Over Six es una modificación de la cuantización NVFP4 que escala de forma adaptativa el valor más grande en cada bloque de 16 valores FP4 a 4 o 6. Seleccionar una escala de 6 utiliza todo el rango de valores FP4, pero seleccionar una escala de 4 permite una distribución más uniforme del error de cuantización. Consulte la publicación original para más detalles: https://arxiv.org/abs/2512.02010.

FPQuantConfig

clase transformers.FPQuantConfig

< >

( forward_dtype: str = 'nvfp4'forward_method: str = 'abs_max'backward_dtype: str = 'bf16'store_master_weights: bool = Falsehadamard_group_size: int | None = Nonepseudoquantization: bool = Falsetransform_init: str = 'hadamard'modules_to_not_convert: list[str] | None = None**kwargs )

Parámetros

  • forward_dtype (str, opcional, por defecto "nvfp4") — El dtype a utilizar para la pasada hacia adelante.
  • forward_method (str, opcional, valor predeterminado "abs_max") — La escalada a utilizar para la pasada hacia adelante. Puede ser "abs_max" o "quest". "abs_max" es mejor para PTQ, "quest" es mejor para QAT.
  • backward_dtype (str, opcional, valor predeterminado "bf16") — El dtype que se utilizará para la pasada inversa.
  • store_master_weights (bool, opcional, valor predeterminado False) — Si se deben almacenar los pesos maestros. Necesario para QAT sobre los pesos de las capas.
  • hadamard_group_size (int, opcional) — El tamaño del grupo para la transformación de hadamard antes de la cuantización para "quest", coincide con el tamaño de grupo de MXFP4 (32). Si es None, se establecerá en 16 para "nvfp4" y en 32 para "mxfp4".
  • pseudoquantization (bool, opcional, valor predeterminado False) — Si se debe usar la pseudo-cuantización basada en Triton. Es obligatorio para GPUs que no sean Blackwell. No proporciona ninguna aceleración. Para fines de depuración.
  • transform_init (str, opcional, valor predeterminado "hadamard") — un método para inicializar la matriz de preprocesamiento. Puede ser "hadamard", "identity" o "gsr".
  • modules_to_not_convert (list, opcional) — La lista de módulos que no se deben cuantizar, útil para cuantizar modelos que requieren explícitamente que algunos módulos se mantengan en su precisión original.

FPQuantConfig es una clase de configuración para la cuantización mediante el método FPQuant.

post_init

< >

( )

Comprobador de seguridad que verifica que los argumentos sean correctos; también reemplaza algunos argumentos de tipo NoneType con sus valores predeterminados.

AutoRoundConfig

clase transformers.AutoRoundConfig

< >

( bits: int = 4group_size: int = 128sym: bool = Truebackend: str = 'auto'**kwargs )

Parámetros

  • bits (int, opcional, valor predeterminado 4) — El número de bits a los que cuantizar; los valores admitidos son (2, 3, 4, 5, 6, 7, 8).
  • group_size (int, opcional, valor predeterminado 128) — Valor de tamaño de grupo
  • sym (bool, opcional, valor predeterminado True) — Cuantización simétrica o no
  • backend (str, opcional, valor predeterminado "auto") — El backend de inferencia. De forma predeterminada, AutoRound selecciona un backend compatible en función del dispositivo, la configuración de cuantización y las bibliotecas instaladas. Consulte Especificar backend de inferencia para ver todas las opciones de backend.

Esta es una clase envoltorio sobre todos los atributos y funciones posibles con los que puedes trabajar un modelo que ha sido cargado con cuantización AutoRound.

post_init

< >

( )

Verificador de seguridad que los argumentos son correctos.

SinqConfig

clase transformers.SinqConfig

< >

( nbits: int = 4group_size: int = 64tiling_mode: str = '1D'method: str = 'sinq'modules_to_not_convert: list[str] | None = None**kwargs: Any )

Parámetros

  • nbits (int, valor predeterminado 4) — Bits de cuantización para los pesos.
  • group_size (int, por defecto 64) — Tamaño de grupo utilizado en la cuantización de pesos SINQ (debe ser múltiplo de 8).
  • tiling_mode (str, por defecto “1D”) — Modo de teselado para SINQ (normalmente “1D”; “2D” si tu backend lo admite).
  • method (str, default “sinq”) — “sinq” – SINQ solo de pesos sin calibración “asinq” – A-SINQ (con conciencia de activaciones), no compatible con Hugging Face. Consulte el repositorio oficial de SINQ.
  • modules_to_not_convert (list[str], opcional) — Lista de nombres/prefijos de módulos que se deben mantener en precisión completa.
  • **kwargs — Argumentos de usuario adicionales (se conservan en _extra_kwargs para el recorrido de ida y vuelta).

Configuración de cuantización para SINQ / A-SINQ.

Pásalo a:

AutoModel.from_pretrained(…, quantization_config=SinqConfig(…))

GgufConfig

clase transformers.GgufConfig

< >

( gguf_file: str | None = Nonedequantize: bool = False**kwargs )

Parámetros

  • gguf_file (str, opcional) — ruta al archivo .gguf que contiene los pesos. Puede omitirse si se especifica mediante from_pretrained(..., gguf_file=...), que lo completa.
  • dequantize (bool, opcional, valor predeterminado False) — En su lugar, descomprime todos los pesos en el momento de la carga en un modelo denso simple. Siempre es correcto, pero renuncia al ahorro de memoria; este también es el mecanismo de respaldo automático cuando no hay un kernel de matmul disponible para los tipos de cuantización del archivo.

Cargue un punto de control GGUF cuantizado con sus pesos en bloques GGUF.

Update on GitHub