| | --- |
| | 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) |
| | ``` |