Hugging Face ZeroGPU бесплатно: лимитот е две Gradio апликации

|Автор: Уредувачки тим на QUASA|5 мин. читање
Hugging Face ZeroGPU бесплатно: лимитот е две Gradio апликации

Бесплатен личен профил со потврдена е-пошта, постар од 30 дена и во добра состојба може бесплатно да хостира најмногу две Gradio апликации на ZeroGPU, според правилата на Hugging Face за ZeroGPU. За да објавите демо, создадете Gradio Space, изберете ZeroGPU како хардвер и ставете @spaces.GPU над функцијата што ја извршува GPU пресметката.

ZeroGPU го доделува графичкиот процесор кога ќе се повика означената функција и го ослободува по нејзиното завршување. Затоа јавно достапен Space не значи постојано резервиран GPU или моментален одговор за секој посетител. Хостирањето апликација и користењето GPU се различни ограничувања: првото важи за сопственикот, а времето за повици се троши од квотата на корисникот што го испратил барањето.

Проверете го профилот и создадете Space

Проверете дали е-поштата на личниот профил е потврдена и дали профилот го исполнува условот за старост пред да ја подготвувате апликацијата. Ако веќе сте го достигнале дозволениот број ZeroGPU Spaces, нова датотека со код нема да го зголеми лимитот. Пријавата на профил што сè уште не ги исполнува условите не може да се замени со промена во README.md.

Во Spaces изберете Create new Space, внесете име и одберете Gradio како SDK. Прегледот на Hugging Face Spaces ги опишува создавањето репозиториум, изборот на видливост и ограничувањето според кое бесплатен личен профил може да создава Gradio Space со ZeroGPU, додека другите Gradio конфигурации бараат платен план. Изберете ZeroGPU како хардвер при создавањето ако формуларот го нуди тој избор; кај веќе создаден Space, проверете го хардверот во Settings. Поставката sdk: gradio во README.md го одредува типот на апликацијата, но сама по себе не доделува GPU.

Space го чува кодот како Git репозиториум и повторно ја гради апликацијата по нова промена. За јавно демо изберете јавна видливост, имајќи предвид дека тогаш и изворниот код е достапен. Ако подоцна додадете токен за модел или надворешна услуга, внесете го во Secrets во поставките на Space, наместо во app.py или во датотека што ја испраќате во репозиториумот.

Минимален пример: README.md, requirements.txt и app.py

Во коренот на репозиториумот создадете ги трите датотеки. Во README.md ставете YAML блок што го означува Gradio SDK, ја именува главната датотека и избира верзија на Python поддржана од ZeroGPU. Следниве редови се содржината на README.md:

---

title: GPU проба

sdk: gradio

app_file: app.py

python_version: '3.10.13'

---

Во requirements.txt запишете само torch==2.9.1 за овој пример. Таа верзија на PyTorch е наведена меѓу поддржаните за ZeroGPU, а Gradio веќе е дел од основната околина. Упатството за зависности во Gradio Spaces предвидува дополнителните Python пакети да се стават во requirements.txt во коренот на репозиториумот. Во примерот не треба да додавате посебен ред за Gradio.

Во app.py внесете ги следниве редови по истиот редослед. Функцијата прави мала пресметка на CUDA и враќа број во интерфејсот; тоа е проверка на GPU патеката, а не AI модел.

import spaces

import gradio as gr

import torch

@spaces.GPU

def calculate(n):

    x = torch.arange(int(n), device='cuda', dtype=torch.int64)

    return int((x * x).sum().item())

gr.Interface(fn=calculate, inputs=gr.Slider(1, 10000, value=1000, step=1), outputs=gr.Number()).launch()

Испратете вредност преку лизгачот откако Space ќе заврши со градењето. Добиен број покажува дека барањето стигнало до декорираната функција и дека пресметката завршила. Кога ќе ја замените пресметката со инференција, задржете го декораторот над функцијата што навистина го користи GPU; означување само на функцијата што го создава интерфејсот нема да ја опфати инференцијата.

Што значат редицата и дневната квота

ZeroGPU е заедничка инфраструктура, па барањето може да чека во редица пред функцијата да започне. За најавен корисник со бесплатен профил вклучената квота е пет минути GPU време, а за корисник без најава две минути. Вклучената дневна квота се обновува 24 часа по првото користење. Овие минути се однесуваат на користењето ZeroGPU Spaces, а не на бројот апликации што авторот може да ги објави.

Преостанатата квота влијае врз приоритетот во редицата. Декораторот стандардно дозволува GPU функцијата да трае до 60 секунди; за подолга задача може да се зададе duration, а пократко реално зададено времетраење може да го подобри приоритетот. Вредноста треба да ја покрива вистинската работа: премал лимит може да го прекине повикот, а претерано голем непотребно ја отежнува обработката на кратко барање.

Ако интерфејсот прикажува редица, прво почекајте барањето да стигне на ред. Порака за исцрпена квота е поинаков случај: проверете со кој профил е најавен посетителот и колку време бара декорираната функција. Постојано повторување на истото барање не ја обновува квотата. За почетно демо задржете ја задачата кратка, за чекањето и потрошувачката на GPU време да останат разбирливи за посетителите.

Кога примерот работи, а моделот откажува

Ако градењето запре пред да се отвори интерфејсот, проверете ги имињата на датотеките, YAML блокот на почетокот на README.md и зависностите во requirements.txt. Записот од градењето може да покаже дали недостига пакет или избраната верзија не се инсталира. Ако интерфејсот се отвора, но повикот паѓа по влегувањето во редицата, проверете го записот од извршувањето и дали GPU пресметката навистина е во функцијата со @spaces.GPU.

ZeroGPU работи со Gradio SDK и има потесна компатибилност од Space со посебен GPU. Документацијата наведува поддржани верзии на Gradio, Python и PyTorch; верзиите на постоечки проект споредете ги со тој список пред пренос. Особено, torch.compile не е поддржан. Ако едноставната пресметка успева, а моделот не, тоа е корисен знак да ги разгледате зависностите, вчитувањето на моделот и неговиот инференциски код.

Кај PyTorch модел, препорачаниот образец за ZeroGPU е моделот да се вчита и да се постави на cuda при стартувањето на модулот, а инференцијата да се извршува во декорираната функција. Платформата тогаш ја подготвува поставеноста пред корисничкиот повик и го користи вистинскиот GPU за време на повикот. Вчитување на моделот дури при првото барање ја префрла таа работа врз посетителот и може значително да го продолжи неговото чекање.

Прочитајте и:

Сподели:

Претплатете се на нашиот билтен

Добивајте ги најновите вести за Web3, AI и крипто директно во вашето сандаче.

0