Găzduire

Open weights sau un API: pe care ar trebui să-l folosesc?

Open weights înseamnă că fișierele sunt descărcabile; un endpoint înseamnă că cineva le rulează pentru tine. Multe implementări europene folosesc ambele: un API pentru sarcini variabile, un checkpoint auto-găzduit pentru sarcini sensibile.

Trei fapte care sunt confundate

„Open weights” înseamnă că fișierele modelului sunt publicate și descărcabile. O licență permisivă înseamnă că licența permite servirea comercială, ceea ce este un fapt diferit și este înregistrat separat pe fiecare card de aici. Un endpoint înseamnă un rând care spune că ceva servește acel model acum, dintr-o regiune numită, cu un timp de execuție și o rată înregistrată. Un model poate fi descărcabil public și totuși să nu poată fi servit comercial, și poate fi licențiat comercial și să nu fie găzduit nicăieri unde îl poți accesa.

Routerul face ca al treilea fapt să fie structural. Fiecare model din catalog are un rând de endpoint; un model pe care nimic nu-l servește are unul al cărui tip este catalogue_only, acel tip este respins înainte de orice altă regulă, iar solicitarea acestuia după nume returnează 404 hosted_unavailable. „Este în catalog” și „îl pot apela” sunt două întrebări, iar platforma le menține separate în mod intenționat.

Ce îți oferă „open weights”

Control asupra mașinii. Când ponderile se află pe hardware-ul pe care îl operezi, întrebarea jurisdicției este răspunsă de propriul tău rack, mai degrabă decât de pagina de politici a altcuiva, și acesta este motivul onest pentru care echipele europene se uită mai întâi la checkpoint-urile deschise. Este, de asemenea, singura opțiune atunci când sarcina de lucru nu poate fi trimisă deloc unei terțe părți, sau când modelul trebuie să continue să funcționeze la o latență pe care rețeaua ta o poate prezice.

Un al doilea câștig este capacitatea de a modifica artefactul: să-l cuantifici, să-l ajustezi fin, să fixezi o versiune exactă și să o păstrezi după ce un furnizor o depreciază. Acest lucru contează pentru munca reproductibilă, deoarece un model găzduit poate fi actualizat sub o integrare, în timp ce rezultatele evaluării tale încetează în liniște să se aplice lucrului pe care îl apelezi.

Prețul este operațional. Cineva trebuie să ruleze GPU-ul, să urmărească coada și să plătească pentru capacitatea inactivă. Un checkpoint de 7B sau 9B, cum ar fi Teuken 7B Instruct v0.6 sau EuroLLM 9B, se potrivește unui singur accelerator de gamă medie, motiv pentru care această clasă de dimensiuni este punctul de intrare realist. Mistral Small 4 este un „mixture of experts” de 119B cu 6,5B activați per token pe o fereastră de 256k tokeni; Mistral Large 3 are 675B în total cu 41B activi și necesită noduri multi-GPU chiar și cuantizat. Acestea sunt bugete diferite, moduri de eșec diferite și profiluri de angajare diferite.

Ce îți oferă un API

Fără hardware, fără planificare a capacității și un preț per token în loc de un preț per mașină-lună. API-ul este compatibil cu OpenAI, astfel încât clientul pe care îl ai deja continuă să funcționeze: același model de URL de bază, aceeași formă de cerere, aceleași cadre de streaming și un obiect de extensie cu spațiu de nume pe care SDK-urile oficiale îl ignoră. Documentația listează endpoint-urile care există și cele care nu există în mod deliberat, ceea ce este mai util decât o afirmație de compatibilitate.

Un API îți oferă, de asemenea, o alegere per cerere. Când un endpoint este degradat sau are un preț ridicat, următorul candidat răspunde, iar acea preluare în caz de eșec este limitată de setul filtrat, astfel încât o reîncercare nu te poate duce în afara rezidenței pe care ai solicitat-o. Răspunsul îți spune apoi ce s-a întâmplat: ce model a rulat, ce versiune, ce endpoint, ce regiune, ce clasă de suveranitate și de ce.

Costul acestei comodități este că nu deții mașina, versiunea se poate schimba, iar faptele privind licența și rezidența pe care te bazezi trebuie să fie adevărate în codul altcuiva. Aici sunt menționate pe rândurile și cardurile endpoint-urilor, platforma refuză să revendice o stare de găzduire pe care nu o poate demonstra, iar acolo unde este cazul, pagina spune că modelul este doar din catalog.

Hibridul cu care majoritatea echipelor ajung să lucreze

Un API pentru munca al cărei volum variază și ale cărei date nu sunt sensibile, plus un checkpoint auto-găzduit pentru sarcina de lucru care trebuie să rămână în interiorul unei limite. Care este care urmează de obicei clasificarea datelor, mai degrabă decât clasificarea modelului, și aceasta este ordinea corectă: filtrul de rezidență rulează înainte de scorare aici.

Verifică per pachet, mai degrabă decât per licență. Deoarece „open weights” și „servire comercială permisă” sunt două fapte, un plan de găzduire selectează doar cardurile care satisfac ambele, iar inițializarea platformei refuză un model al cărui text de licență interzice servirea comercială chiar și atunci când un operator îl numește. Fă aceeași verificare de partea ta: citește identificatorul licenței cardului, citește limitele înregistrate de card și verifică dacă ambele se potrivesc utilizării tale. Două exemple europene la capătul mic arată cât de diferită poate fi combinația. EuroLLM 9B este un model de 9,15B sub Apache-2.0 care acoperă toate cele 24 de limbi oficiale ale UE plus un set suplimentar. Teuken 7B Instruct v0.6 a fost antrenat pe toate cele 24 de limbi oficiale ale UE sub o licență necomercială. Aceeași descriere „european, multilingv, mic” acoperă un model pe care îl poți servi comercial și unul pe care nu-l poți servi.

O scurtă listă de decizii

Dacă datele nu pot părăsi sediul tău, începe cu „open weights” și verifică licența înainte de orice altceva. Dacă sarcina este neregulată și datele sunt obișnuite, un API este mai ieftin decât un server care stă inactiv. Dacă ambele sunt adevărate, rulează un model mic tu însuți și rutează restul.

Dacă sarcina de lucru este cercetare, un checkpoint necomercial este disponibil și legitim; dacă este servire comercială, un identificator de licență care conține un termen necomercial este un semn de oprire, iar limitele înregistrate de un card sunt locul unde acea restricție este de obicei declarată cel mai clar. Dacă un răspuns trebuie să fie reproductibil într-un an, fixează o versiune și preferă opțiunea în care controlezi artefactul.

Oricum ai proceda, notează limita și verifică-o de la un capăt la altul. Un apel API care pare european în timp ce o etapă a unui pipeline părăsește limita este eșecul pe care acest catalog există pentru a-l face vizibil, iar un model auto-găzduit a cărui licență interzice servirea este aceeași greșeală în direcția opusă.

Întrebări frecvente

Înseamnă „open weights” că pot folosi modelul comercial?

Nu, sunt două fapte separate. Ponderile pot fi descărcabile sub o licență care interzice servirea comercială: command-r-08-2024 este „open weights” sub CC-BY-NC-4.0, în timp ce mistral-small-4-119b-a6b este „open weights” sub Apache-2.0. Citește identificatorul licenței și limitele înregistrate de card.

Este un endpoint API mai ieftin decât rularea modelului?

Depinde de utilizare, iar acest catalog nu va pretinde altfel. Prețurile de aici sunt citite din rata înregistrată de un endpoint, iar un rând care nu înregistrează niciunul este afișat ca neverificat, mai degrabă decât estimat. Un server pe care îl deții costă bani în timp ce stă inactiv; un preț per token nu.

Pot trece de la una la alta fără să-mi schimb codul?

De obicei, da. API-ul este compatibil cu OpenAI, astfel încât un client îndreptat către o altă adresă URL de bază cu aceeași formă de cerere continuă să funcționeze, iar câmpurile de rutare suplimentare se află într-un obiect namespaced pe care SDK-urile oficiale îl ignoră. În sens invers, un checkpoint auto-găzduit necesită un stack de servire propriu.