Hugging Face Spaces: gratisdemoen har fått en ny betalingsgrense

|Forfatter: QUASAs redaksjon|5 min lesetid
Hugging Face Spaces: gratisdemoen har fått en ny betalingsgrense

Du publiserer en KI-demo i Hugging Face Spaces ved å velge SDK, legge filene i et Space-kodearkiv og la tjenesten bygge appen. Hugging Faces oversikt over Spaces beskriver betalingsgrensen: Statiske apper er gratis for alle, mens Gradio og Docker på CPU Basic krever abonnement selv om maskinvaren ikke har timepris. Kodearkivet kan altså være enkelt å opprette, men SDK-valget avgjør hvilke vilkår som gjelder for å kjøre demoen.

Avklar derfor om modellen skal kjøre i nettleseren, på Spaces-maskinvare eller hos en ekstern tjeneste før du lager prosjektet. Oppskriften nedenfor publiserer en liten Gradio-app som klassifiserer engelsk tekst på CPU Basic. Den forutsetter et abonnement som gir tilgang til Gradio på denne maskinvaren; eventuelle API-nøkler skal lagres utenfor kodearkivet.

Velg SDK ut fra hvor arbeidet skal skje

Velg Static hvis demoen kan være en HTML- og JavaScript-side som kjører i nettleseren. Det er den direkte gratisveien for en enkel presentasjon eller en app som ikke trenger Python-kode på serveren. En statisk side er derimot ingen trygg plass for en privat API-nøkkel: verdier som er tilgjengelige for JavaScript i nettleseren, må behandles som synlige for besøkende.

Velg Gradio når Python-kode skal ta imot inndata, kjøre en modell og vise resultatet. Docker passer når appen trenger en egen container eller en annen serverstruktur. Begge bruker maskinvareressurser. For CPU Basic må en personlig konto ha PRO, eller en organisasjon ha Team eller Enterprise. Betalt maskinvare har et annet adgangsvilkår: Den kan brukes med betalingsoppsett og forhåndsbetalte kreditter, men medfører løpende maskinvarekostnader.

ZeroGPU er et begrenset unntak for Gradio på kvalifiserte gratis personlige kontoer. Det er delt GPU-kapasitet som appen må være tilpasset, ikke en automatisk måte å kjøre en vanlig CPU-app gratis på. Den enkle tekstklassifiseringen nedenfor bruker CPU Basic og bør derfor ikke opprettes med forventning om at et senere bytte til ZeroGPU alene løser tilgangskravet.

Lag og publiser en minimal Gradio-app

app.py og requirements.txt danner en enkel Gradio-demo som klassifiserer engelsk tekst med DistilBERT.

Opprett et nytt Space, gi det et navn og velg Gradio som SDK. Bestem også synlighet før du legger inn egne filer. I et offentlig Space kan andre se kildekoden, bruke appen og klone kodearkivet. Privat synlighet begrenser både tilgangen til koden og til den kjørende appen.

Eksemplet bruker DistilBERT-modellen for engelsk tekstklassifisering. Den gir en positiv eller negativ etikett for en engelsk tekst. Bruk derfor en engelsk prøvesetning, for eksempel «I liked the film». Modellen er ikke oppgitt som en norsk sentimentmodell, og etiketten er modellens vurdering, ikke en fasit.

  1. Lag app.py i roten av Space-kodearkivet. En kompakt, kjørbar versjon kan stå på én linje: import gradio as gr; from transformers import pipeline; modell = pipeline("text-classification", model="distilbert/distilbert-base-uncased-finetuned-sst-2-english"); gr.Interface(fn=lambda tekst: modell(tekst)[0]["label"], inputs="text", outputs="text").launch()
  2. Lag requirements.txt i samme mappe. Skriv transformers og torch på hver sin linje. De installeres når Space bygges; Gradio følger med det valgte SDK-et.
  3. Lagre filene i kodearkivet. En ny endring utløser bygging og omstart. Åpne appfanen når Space er klart, skriv inn en kort engelsk setning og se om tekstfeltet returnerer en etikett.

Modellen lastes inn når appen starter, så første oppstart må også hente modellfilene. Hvis byggingen feiler, undersøk byggeloggen for manglende pakker; hvis appen starter uten å svare, se i kjøreløggen etter feil ved modellinnlasting eller kjøring. At byggingen er fullført, viser ikke alene at tekstfeltet virker. Prøv funksjonen før lenken deles.

Skill mellom synlig konfigurasjon og hemmeligheter

Hugging Face Spaces skiller en synlig modellvariabel fra en hemmelig tilgangsnøkkel utenfor kildekoden.

Du kan oppdatere et Space gjennom nettgrensesnittet, Git eller biblioteket huggingface_hub. Hugging Faces administrasjonsguide viser HfApi.create_repo for å opprette et Space, upload_folder for å laste opp lokale filer og egne funksjoner for variabler og hemmeligheter. Det gir samme publiseringsløp en programmatisk vei dersom demoen senere skal oppdateres fra et annet prosjekt.

Demoen over trenger ingen API-nøkkel: Den henter en offentlig modell og kjører den i appen. Hvis du senere kobler til en tjeneste som krever tilgangstoken, skal verdien ikke skrives i app.py, requirements.txt eller README. Legg den inn som en Secret i Space-innstillingene, eller bruk add_space_secret. En Gradio-app kan lese hemmeligheten som en miljøvariabel når den kjører.

Bruk Variable til ufølsom konfigurasjon, for eksempel et modellnavn som skal kunne byttes uten å redigere koden. Variabler er synlige og følger med når et Space dupliseres. Verdien til en Secret kan ikke leses tilbake fra innstillingene og blir ikke kopiert til et duplisert Space. I biblioteket heter funksjonene add_space_variable og add_space_secret; navnene uttrykker et sikkerhetsskille, ikke bare to måter å organisere samme data på.

En statisk app får konfigurasjonsverdiene sine i JavaScript på klientsiden. Legg derfor aldri en nøkkel der i håp om at betegnelsen Secret skal skjule den for den som bruker siden. Når konfigurasjon eller maskinvare endres for en kjørende app, kan den starte på nytt. Prøv funksjonen igjen etter en slik endring, særlig hvis den avhenger av en ny miljøvariabel.

Kontroller kostnaden før maskinvaren oppgraderes

For den lille tekstmodellen er CPU Basic et rimelig første maskinvarevalg dersom kontoen har nødvendig abonnement. Sjekk dette før du bruker tid på filene: En gratis personlig konto kan møte en betalingsfeil ved opprettelse av et vanlig Gradio-Space på CPU Basic, selv om selve CPU-valget ikke har timepris. Hvis prosjektet må være gratis uten abonnement, må løsningen i stedet passe vilkårene for en statisk app eller det særskilte ZeroGPU-unntaket.

Trenger modellen senere mer kapasitet, les prisen for den konkrete maskinvaren i Space-innstillingene før du velger den. Oppgradert maskinvare kan fortsette å kjøre også når ingen prøver demoen. En hviletid kan begrense inaktiv kjøring der innstillingen er tilgjengelig; å pause Space-et stanser kjøringen til eieren starter det igjen. Det er særlig relevant for en demo som bare skal vises i et kort tidsrom.

Et maskinvarebytte skjer heller ikke nødvendigvis straks forespørselen sendes. Kontroller hvilken maskinvare som faktisk er aktiv før du vurderer hastigheten eller antar at en oppgradering er gjennomført. Når visningen er over, kan eieren pause Space-et eller gå tilbake til CPU Basic. Da er det maskinvaren som faktisk kjører, og vilkårene for den, som bestemmer kostnadsbildet.

Les også:

Del:

Abonner på nyhetsbrevet vårt

Få de siste nyhetene om Web3, KI og krypto rett i innboksen.

0