Added ability for adafactor to fully fine tune quantized model.

This commit is contained in:
Jaret Burkett
2024-10-30 16:38:07 -06:00
parent 58f9d01c2b
commit 025ee3dd3d
2 changed files with 97 additions and 1 deletions

View File

@@ -2,6 +2,7 @@ import math
from typing import List
import torch
from toolkit.optimizers.optimizer_utils import copy_stochastic, stochastic_grad_accummulation
from optimum.quanto import QBytesTensor
class Adafactor(torch.optim.Optimizer):
@@ -251,6 +252,9 @@ class Adafactor(torch.optim.Optimizer):
state["exp_avg_sq"] = state["exp_avg_sq"].to(grad)
p_data_fp32 = p
if isinstance(p_data_fp32, QBytesTensor):
p_data_fp32 = p_data_fp32.dequantize()
if p.dtype != torch.float32:
p_data_fp32 = p_data_fp32.clone().float()