| --- |
| base_model: |
| - openbmb/MiniCPM-V-2_6 |
| --- |
| |
| ## Creation |
|
|
| ```python |
| from transformers import AutoProcessor, AutoModelForCausalLM |
| |
| from llmcompressor.modifiers.quantization import QuantizationModifier |
| from llmcompressor.transformers import oneshot, wrap_hf_model_class |
| |
| MODEL_ID = "openbmb/MiniCPM-V-2_6" |
| |
| # Load model. |
| model_class = wrap_hf_model_class(AutoModelForCausalLM) |
| model = model_class.from_pretrained(MODEL_ID, torch_dtype="auto", trust_remote_code=True).to("cuda") |
| processor = AutoProcessor.from_pretrained(MODEL_ID, trust_remote_code=True) |
| |
| # Configure the quantization algorithm and scheme. |
| # In this case, we: |
| # * quantize the weights to fp8 with per channel via ptq |
| # * quantize the activations to fp8 with dynamic per token |
| recipe = QuantizationModifier( |
| targets="Linear", |
| scheme="FP8_DYNAMIC", |
| ignore=["re:.*lm_head", "re:resampler.*", "re:vpm.*"], |
| ) |
| |
| # Apply quantization and save to disk in compressed-tensors format. |
| SAVE_DIR = MODEL_ID.split("/")[1] + "-FP8-dynamic" |
| oneshot(model=model, recipe=recipe, output_dir=SAVE_DIR, trust_remote_code_model=True) |
| processor.save_pretrained(SAVE_DIR) |
| ``` |