Как засунуть 62ГБ в 15ГБ и не сойти с ума: Партизанский MLOps на примере Gemma 4 31B. bitsandbytes.. bitsandbytes. DevOps.. bitsandbytes. DevOps. Gemma 4.. bitsandbytes. DevOps. Gemma 4. hugging face.. bitsandbytes. DevOps. Gemma 4. hugging face. kaggle.. bitsandbytes. DevOps. Gemma 4. hugging face. kaggle. llm.. bitsandbytes. DevOps. Gemma 4. hugging face. kaggle. llm. mlops.. bitsandbytes. DevOps. Gemma 4. hugging face. kaggle. llm. mlops. NF4.. bitsandbytes. DevOps. Gemma 4. hugging face. kaggle. llm. mlops. NF4. Open source.. bitsandbytes. DevOps. Gemma 4. hugging face. kaggle. llm. mlops. NF4. Open source. python.. bitsandbytes. DevOps. Gemma 4. hugging face. kaggle. llm. mlops. NF4. Open source. python. transformers.. bitsandbytes. DevOps. Gemma 4. hugging face. kaggle. llm. mlops. NF4. Open source. python. transformers. искусственный интеллект.. bitsandbytes. DevOps. Gemma 4. hugging face. kaggle. llm. mlops. NF4. Open source. python. transformers. искусственный интеллект. квантование.. bitsandbytes. DevOps. Gemma 4. hugging face. kaggle. llm. mlops. NF4. Open source. python. transformers. искусственный интеллект. квантование. Машинное обучение.

TL;DR: В этой статье мы возьмем новейшую Gemma 4 31B, которая в оригинале весит 62 ГБ, и заставим её работать и выгружаться на бесплатном Kaggle с лимитом диска в 57 ГБ. Спойлер: нам придется удалять исходники прямо во время работы Python-скрипта.

Введение: Кремниевый голод и санкции

Когда у тебя нет кластера A100, а есть только бесплатные T4 от Google, каждый байт становится полем боя. Мы живем в эпоху, когда модели растут быстрее, чем наши возможности их качать. Но математику не заблокируешь. По заветам нашего «Ghetto AI Manifesto», мы будем использовать «палки, желуди и сырой код», чтобы сделать топовый ИИ доступным каждому.

Проблема: Математика против нас

Gemma 4 31B в float16 весит ~62 ГБ.

Лимит диска на Kaggle — 57.6 ГБ.

Нам нужно:

  1. Скачать 62 ГБ.

  2. Квантовать их в 4 бита (получить еще 18 ГБ).

  3. Выгрузить результат.

Математически это 62 + 18 = 80 ГБ. Система должна была упасть, но мы применили тактику Scorched Earth (Выжженная земля).

Техно-хаки: Как мы это провернули

1. Квантование «на лету»

Мы использовали bitsandbytes и NF4. Главный фокус — device_map="auto". Модель разрезалась пополам и легла в две карты T4 по 15 ГБ.

Note: Мы не ждали конца загрузки, мы начали жать веса сразу, как только они попадали в VRAM.

2. Операция «Аннигиляция кэша»

Это самый грязный хак. Как только модель была полностью загружена в видеопамять, мы вызвали shutil.rmtree() для папки кэша Hugging Face.

Зачем? В Linux можно удалить файл, который открыт процессом. Место в du не освободится сразу, но для новых файлов (шардов выгрузки) оно станет доступным. Мы удалили 62 ГБ исходников, пока Питон держал их в «уме», освободив место для 18 ГБ квантованных весов.

3. YOLO-Push

Вместо стандартного сохранения на диск и последующей выгрузки, мы использовали прямой стриминг push_to_hub.

Python

# Квинтэссенция нашего метода
model.push_to_hub("repo_id", safe_serialization=True)

Результат: Криокамера для монстра

Теперь 31-миллиардная модель, которая «видит» и «понимает» сложный код, весит всего 18.3 ГБ. Она доступна для всех, у кого есть обычная домашняя видеокарта.

Пощупать артефакт можно здесь:

👉 https://huggingface.co/livadies/gemma-4-31B-Ghetto-NF4

Как засунуть 62ГБ в 15ГБ и не сойти с ума: Партизанский MLOps на примере Gemma 4 31B - 1

Заключение

Санкции и лимиты — это просто параметры в конфиге, которые нужно уметь обходить. Интеллект должен быть свободным, даже если для этого приходится удалять систему под самим собой.

Stay Ghetto. Stay AI.

Автор: Livadies

Источник

Rambler's Top100