I-deploy ang AI demo sa Hugging Face Spaces—secrets ang huwag i-commit

|May-akda: QUASA Editorial Team|6 minutong pagbasa
I-deploy ang AI demo sa Hugging Face Spaces—secrets ang huwag i-commit

Para mag-deploy ng AI o ML demo sa Hugging Face Spaces, gumawa ng Space, piliin ang Gradio para sa tuwirang Python interface o Docker para sa sariling runtime, at idagdag ang app at mga dependency sa repository. Ilagay ang API keys sa Secrets ng Settings, hindi sa mga file na iko-commit. Subukan ang app gamit ang tunay na input at ihinto ang bayad na GPU kapag tapos na.

Ayon sa gabay ng Hugging Face sa Spaces, walang orasang singil ang CPU Basic, ngunit kailangan ng PRO, Team o Enterprise plan upang gumawa ng karaniwang Gradio o Docker Space. May limitadong ZeroGPU exception para sa kuwalipikadong libreng personal account. Git repository ang bawat Space: awtomatiko itong nagre-rebuild at nagre-restart sa bawat bagong push. Kaya magkaibang desisyon ang plan na kailangan sa paggawa ng Space at ang hardware na gagamitin sa pagpapatakbo nito.

Gumawa ng Space at piliin ang visibility

Sa pahina ng Spaces, piliin ang Create new Space, magbigay ng pangalan, at itakda ang SDK at visibility. Kung pampublikong demo ang pakay at maaari ring makita ang code, piliin ang public: maa-access ng sinuman ang app at repository. Kung ang app at code ay para lamang sa may-ari at mga collaborator, piliin ang private. Mahalaga ang pagpiling ito kung sensitibo ang mga input na gagamitin sa demo.

May protected visibility sa mga angkop na bayad na plan. Nakakubli rito ang source code sa publiko, ngunit naaabot pa rin ang app sa embed URL o sa nakatakdang custom domain. Gamitin ito kung nais ipakita ang demo nang hindi ibinubukas ang repository; piliin ang private kung pati ang paggamit ng app ay dapat limitado. Maaari ring baguhin ang visibility sa Settings bago ibahagi ang link.

Gradio: ilagay ang model at interface sa app.py

Para sa Python function na tumatanggap ng input at nagbabalik ng prediction, Gradio ang tuwirang paraan upang magkaroon ng interactive na app. Sa halimbawang Gradio Space ng Hugging Face, nasa YAML sa unahan ng README.md ang sdk: gradio, nasa requirements.txt ang karagdagang Python packages, at nasa app.py ang model pipeline at interface. Ini-install ng Spaces runtime ang nakalistang dependencies habang binubuo ang app.

Gamitin ang istrukturang iyon para sa sarili mong model: ilista ang kailangang packages, gumawa ng function na tumatanggap ng input sa format na inaasahan ng model, at ikonekta ito sa angkop na Gradio input at output component. Ang opisyal na halimbawa ay image classifier na tumatanggap ng larawan at naglalabas ng label. Para sa ibang model, kailangang magkatugma ang input, preprocessing at resultang ipinapakita. Kung restricted ang model repository, ihanda ang access token nito bilang Secret.

Docker: gamitin kapag kailangan ang sariling runtime

Piliin ang Docker kung may partikular na system packages, server o runtime na kailangan ang app. Itakda ang sdk: docker sa YAML ng README.md at maglagay ng Dockerfile. Ayon sa gabay sa Docker Spaces, 7860 ang default na port ng app; kung iba ang port na pinakikinggan ng server, itugma ang app_port sa README.md. Tiyaking may server na sasagot sa nakatakdang port pagkatapos ng build.

Sa Docker build, maaaring ipasa ang karaniwang Variables bilang build arguments. Kung kailangan ang credential habang nagbu-build, gamitin ang secret mount para sa Docker Spaces sa halip na isulat ang value sa Dockerfile. Kung sa pagpapatakbo lamang kailangan ang key, kunin ito ng app mula sa environment variable. Sa gayon, hindi kailangang dumaan ang credential sa build upang gumana ang demo.

Secrets, Variables at nailantad na key

Sa Settings ng Space, ilagay sa Variables ang hindi sensitibong configuration gaya ng model repository ID. Ilagay sa Secrets ang API keys at access tokens. Nakikita ang public Variables at nadadala ang mga ito sa duplicate na Space; ang Secret value ay hindi muling mababasa mula sa Settings pagkatapos itong itakda at hindi kinokopya sa duplicate. Sa code, pangalan lamang ng environment variable, gaya ng HF_TOKEN, ang gamitin—huwag ang tunay na value nito.

Para sa automation, inilalarawan ng gabay sa pamamahala ng Space ang add_space_secret(), add_space_variable(), fetch_space_logs() at pagtingin sa runtime hardware. Nagre-restart ang app kapag binago ang Secret o hardware, kaya subukan muli ang demo pagkatapos ng pagbabago. Kung na-commit na ang tunay na key, bawiin o palitan ito sa nagbigay ng credential at alisin ito sa code: maaaring manatili ang lumang value sa Git history kahit wala na sa pinakahuling file.

Tingnan ang build, app at access bago ibahagi

Pagkatapos i-push ang mga file, hintaying matapos ang build at buksan ang App tab. Magbigay ng input na angkop sa model at tingnan kung lumalabas ang makabuluhang output; subukan din ang input na maaaring magbunga ng ibang sagot. Kung lumitaw ang pahina ngunit walang resulta, suriin kung naglo-load ang model, tumutugma ang input sa inaasahang format, at naipapakita ng interface ang output nang walang runtime error.

Kapag pumalya ang build, tingnan ang build logs para sa dependency o Docker instruction na nagdulot ng error. Kapag nabuo ang Space ngunit nabigo ang prediction, tingnan ang run logs, ang pangalan ng environment variable at ang pahintulot sa model. Huwag i-print ang buong key habang nagde-debug. Para sa private Space, tiyaking makakapasok ang account na pahihintulutan; para sa public o protected, buksan ang link na ibabahagi at kumpirmahin kung ano ang nakikita ng bisita.

Itigil ang GPU charge matapos ang workload

Subukan muna ang CPU Basic kung sapat ito sa model, saka humiling ng mas malakas na hardware kung kailangan. Sa patakaran sa GPU billing ng Hugging Face, sinisingil ang upgraded hardware bawat minutong nasa Starting o Running ang Space, kahit walang bisita; hindi sinisingil ang build time. Patuloy na tumatakbo bilang default ang upgraded Space. Upang ihinto ang hardware charge matapos ang pansamantalang trabaho, ibalik ito sa CPU Basic o i-pause sa Settings.

Magkaiba ang pause at sleep. Ang naka-pause na Space ay hindi magigising sa pagbisita ng iba; may-ari ang kailangang mag-restart nito, at walang singil habang naka-pause. Maaari ring magtakda ng sleep time sa bayad na hardware upang huminto ito kapag walang aktibidad, ngunit maaari itong magising at muling masingil kapag may bumisita. Kung automated ang trabaho, isama sa workflow ang pagbabalik sa CPU Basic at kumpirmahin ang aktuwal na hardware at runtime status bago iwan ang Space.

Basahin din:

I-share:

Mag-subscribe sa aming newsletter

Matanggap ang pinakabagong balita tungkol sa Web3, AI at crypto nang diretso sa iyong inbox.

0