初始化项目,由ModelHub XC社区提供模型
Model: Edison2ST/talentarena-prometheus-7b-v2.0 Source: Original Platform
This commit is contained in:
39
model_to_int4.py
Normal file
39
model_to_int4.py
Normal file
@@ -0,0 +1,39 @@
|
||||
from transformers import AutoTokenizer
|
||||
from auto_gptq import AutoGPTQForCausalLM, BaseQuantizeConfig
|
||||
import torch
|
||||
|
||||
# 1. Configuración
|
||||
model_id = "prometheus-eval/prometheus-7b-v2.0"
|
||||
output_dir = "prometheus-7b-v2.0-GPTQ-4bit"
|
||||
|
||||
# Configuración de 4 bits
|
||||
quantize_config = BaseQuantizeConfig(
|
||||
bits=4, # Cuantización a 4 bits
|
||||
group_size=128, # Recomendado para equilibrio calidad/velocidad
|
||||
desc_act=False, # Mejora la velocidad de inferencia
|
||||
)
|
||||
|
||||
# 2. Cargar Tokenizer y preparar datos de calibración
|
||||
# GPTQ necesita unos pocos ejemplos para ajustar los pesos
|
||||
tokenizer = AutoTokenizer.from_pretrained(model_id, use_fast=True)
|
||||
examples = [
|
||||
tokenizer("Prometheus is a specialized language model for evaluating other AI models."),
|
||||
tokenizer("Quantization helps to run large models on consumer hardware.")
|
||||
]
|
||||
|
||||
# 3. Cargar el modelo original (FP16)
|
||||
model = AutoGPTQForCausalLM.from_pretrained(
|
||||
model_id,
|
||||
quantize_config,
|
||||
device_map="auto",
|
||||
torch_dtype=torch.float16
|
||||
)
|
||||
|
||||
# 4. Ejecutar la cuantización
|
||||
model.quantize(examples)
|
||||
|
||||
# 5. Guardar el modelo resultante en formato .safetensors
|
||||
model.save_quantized(output_dir, use_safetensors=True)
|
||||
tokenizer.save_pretrained(output_dir)
|
||||
|
||||
print(f"Modelo guardado exitosamente en: {output_dir}")
|
||||
Reference in New Issue
Block a user