Mis on NVIDIA API Catalog ja NIM API?
NVIDIA API Catalog on arendajaportaal NVIDIA majutatud tehisintellekti lõpp-punktide avastamiseks ja testimiseks. Veebilehel build.nvidia.com saate valida toetatud mudeli või NIM-i mikroteenuse, proovida seda brauseris asuvas mänguväljas, luua API-võtme ja kopeerida päringunäiteid.
NVIDIA NIM on paljude nende teenuste aluseks olev juurutuskiht. NIM-i mikroteenus koondab järeldusmootori, mudeli teenindamise komponendid ja API, et ühilduv tehisintellekti töökoormus saaks töötada NVIDIA GPU-taristus. Majutatud lõpp-punkte saate kasutada prototüüpimiseks või juurutada NIM-i konteinerid ise, kui vajate suuremat kontrolli võrguühenduste, andmete asukoha, mahu või kohandamise üle.
Seega ei ole tegu üheainsa mudeli API-ga. See on mudeli- ja töökoormusepõhiste teenuste kogum, mis kasutab sageli OpenAI-ga ühilduvaid HTTP-mustreid. Saadaolevad teenused võivad hõlmata keelemudeleid, visuaal-keelemudeleid, vektoriseerimist, otsingut, piltide genereerimist, kõnet, kõne sünteesi, tervishoidu, robootikat ja muid spetsialiseeritud töökoormusi.
Kellele see sobib?
NVIDIA API on eelkõige mõeldud arendajatele, rakendustiimidele ja organisatsioonidele, kes loovad NVIDIA kiirendatud taristul tehisintellekti funktsioone. See sobib hästi siis, kui soovite hinnata mitut mudelit, lisada rakendusele järeldusvõimekuse, kasutada multimodaalseid mudeleid või liikuda majutatud prototüübilt privaatsele GPU-juurutusele.
See sobib halvemini juhul, kui otsite üht tarbijatele mõeldud vestlusrobotit, universaalset failianalüüsi teenust või täielikult hallatud assistenditoodet, millel on püsiv olek ja sisseehitatud veebiotsing. NIM pakub mudeli järeldusvõimekust; rakenduse olek, autentimine, mälu, tööriistade käivitamine ja agendi käitumine jäävad üldjuhul teie rakenduse või agendiraamistiku, näiteks NVIDIA NeMo Agent Toolkiti vastutuseks.
Juurdepääsu saamine ja API-võtme hankimine
- Avage NVIDIA API Catalog aadressil
build.nvidia.com. - Valige mudel või NIM-i mikroteenus ja tutvuge selle mudelipõhise dokumentatsiooniga.
- Testige võimaluse korral brauseri mänguväljal näidispäringut.
- Liituge NVIDIA Developer Programiga või logige sinna sisse, kui valitud majutatud lõpp-punkt seda nõuab.
- Looge NVIDIA API-võti või hankige olemasolev võti.
- Salvestage võti keskkonnamuutujasse, näiteks
NVIDIA_API_KEY; ärge lisage seda brauserikoodi, lähtekoodihoidlasse ega avalikesse logidesse.
Majutatud juurdepääs on mõeldud katsetamiseks ja hindamiseks ning sellele kehtivad lõpp-punkti-, konto-, mudeli- ja teenusepõhised piirangud. Täpne mudelitunnus, toetatud parameetrid ja kaubanduslikud tingimused tuleks üle vaadata valitud kataloogilehel.
API ja mudeli valimine
Alustage töökoormusest, mitte üldisest mudelinimest. Kasutage keelemudelit teksti genereerimiseks ja vestluseks, visuaal-keelemudelit juhul, kui päring sisaldab pilti, vektoriseerimisteenust semantiliseks otsinguks ning spetsiaalset pildi-, kõne-, otsingu-, tervishoiu- või robootikateenust, kui see vastab teie rakendusele.
Keele- ja visuaal-keelemudelite järelduse jaoks kuuluvad peamiste OpenAI-ga ühilduvate teede hulka /v1/chat/completions, /v1/completions ja toetuse olemasolu korral /v1/responses. Mõned NIM-i versioonid pakuvad ka Anthropicuga ühilduvat /v1/messages lõpp-punkti. Tugi ei ole kõigi mudelite puhul sama, seega kontrollige enne mõne funktsiooni kasutamisele tuginemist valitud mudeli API-viidet.
NVIDIA API Catalogi integratsioonide dokumenteeritud majutatud baas-URL on:
https://integrate.api.nvidia.com/v1Esimese päringu tegemine
Järgmises näites kasutatakse praegust OpenAI Pythoni klienti koos NVIDIA OpenAI-ga ühilduva lõpp-punktiga. Installige pakett käsuga pip install openai, määrake NVIDIA_API_KEY ja asendage mudeli ID, kui kataloogis on loetletud mõni muu kehtiv tunnus.
import os
from openai import OpenAI
api_key = os.environ.get("NVIDIA_API_KEY")
if not api_key:
raise RuntimeError("Set NVIDIA_API_KEY before running this example")
client = OpenAI(
api_key=api_key,
base_url="https://integrate.api.nvidia.com/v1",
)
response = client.chat.completions.create(
model="meta/llama-3.1-8b-instruct",
messages=[
{"role": "system", "content": "You are a concise technical assistant."},
{"role": "user", "content": "Explain GPU acceleration in one sentence."},
],
max_tokens=128,
temperature=0.2,
)
print(response.choices[0].message.content)Samaväärne töötlemata HTTP-päring on kasulik juhul, kui te ei kasuta SDK-d:
curl -sS https://integrate.api.nvidia.com/v1/chat/completions
-H "Authorization: Bearer ${NVIDIA_API_KEY}"
-H "Content-Type: application/json"
-d '{
"model": "meta/llama-3.1-8b-instruct",
"messages": [
{"role": "user", "content": "Explain GPU acceleration in one sentence."}
],
"max_tokens": 128,
"temperature": 0.2
}'Vastuse mõistmine
Vestluse lõpetamise vastus sisaldab tavaliselt massiivi choices. Genereeritud assistendi tekst asub enamasti väljal choices[0].message.content. Sõltuvalt mudelist ja päringust võib sõnum sisaldada hoopis tööriistakutseid või muid struktureeritud välju. Rakendused peaksid käsitlema veavastuseid, tühja sisu ja mudelipõhiseid vastuse üksikasju, mitte eeldama, et iga õnnestunud vastus sisaldab lihtsat teksti.
Mitme vooruga vestluste korral saatke varasemad asjakohased sõnumid massiivis messages. NIM ei paku automaatselt universaalset püsivat vestlusmälu; kui seda on vaja, peab teie rakendus vestluse olekut salvestama ja haldama.
Kuidas hinnastamine üldjoontes toimib?
NVIDIA Developer Programi liikmed võivad saada majutatud NIM-i API-lõpp-punktidele tasuta juurdepääsu prototüüpimiseks, lähtudes kohaldatavatest teenusepiirangutest ja tingimustest. Majutatud lõpp-punktide hinnad ja kvoodid võivad lõpp-punktiti erineda ega pruugi kogu kataloogis ühesugused olla.
Ise majutatud NIM-i puhul kehtib teistsugune kulumudel. Allalaaditava NIM-i kasutamine tootmises eeldab üldjuhul NVIDIA AI Enterprise'i litsentsi. NVIDIA hinnastusdokumentatsioonis kirjeldatud litsentsimine algab hinnast 4500 dollarit GPU kohta aastas ehk pilvekeskkondades ligikaudu 1 dollar GPU kohta tunnis. Käsitlege neid dokumenteeritud lähtehindadena, mitte iga juurutuse universaalse hinnana; kogukulu võivad mõjutada litsentsimine, taristu, pilve-GPU tasud, tugi ja mahu planeerimine.
Põhivõimalused
- Voogedastus: Toetatud majutatud ja ise majutatud mudelid võivad genereeritud väljundit voogedastada, tavaliselt määrates
stream: true. See võimaldab liidesel kuvada osalist väljundit enne kogu vastuse valmimist. - Mitme vooruga vestlus: Saatke eelmised sõnumid järgmise päringuga. Püsisalvestus ja vestluse haldamine on rakenduse vastutus.
- Tööriistade ja funktsioonide kutsumine: Ühilduvad mudelid võivad tagastada rakenduses määratletud funktsioonide struktureeritud kutseid, kasutades OpenAI stiilis
toolsjatool_choice. Teie rakendus peab funktsiooni käivitama ja tulemuse tagasi saatma; mudel ei soorita automaatselt suvalisi väliseid toiminguid. - Struktureeritud väljund: Ühilduvad NIM-i juurutused võivad toetada juhitud JSON-i, JSON Schema't, grammatikaid, regulaaravaldisi või piiratud valikuid. Kontrollige, millist meetodit valitud mudel ja NIM-i versioon täpselt toetavad.
- Pildisisend: Valitud visuaal-keelemudelid aktsepteerivad pildi sisu või pildi URL-e vastavalt oma päringuvormingule.
- Piltide genereerimine ja muu meedia: NVIDIA pakub toetatud pildi-, heli-, kõne-, video- ja muude töökoormuste jaoks spetsiaalseid NIM-i teenuseid. Need ei ole iga keelelõpp-punkti garanteeritud võimalused.
- Vektoriseerimine ja otsing: Kataloogiteenused võivad toetada vektoriseerimise ja otsingu töövooge, kuid päringuvorming ja juurutusnõuded sõltuvad valitud teenusest.
Voogedastus, tööriistad ja struktureeritud andmed
Voogedastuspäring kasutab sama üldist lõpp-punkti, kuid määrab stream väärtuseks true:
stream = client.chat.completions.create(
model="meta/llama-3.1-8b-instruct",
messages=[
{"role": "user", "content": "Explain CUDA in three short paragraphs."},
],
max_tokens=256,
stream=True,
)
for chunk in stream:
text = chunk.choices[0].delta.content
if text:
print(text, end="", flush=True)Tööriistade kutsumiseks määratlege päringus funktsiooni skeem. Ühilduv mudel võib tagastada tööriistakutse, mis sisaldab funktsiooni nime ja JSON-argumente. Teie server peaks need argumendid valideerima, rakendama autoriseerimis- ja ärireegleid, funktsiooni käivitama ning jätkama seejärel vestlust tööriista tulemusega.
Struktureeritud väljund on kasulik siis, kui järgmine süsteem vajab proosa asemel prognoositavat JSON-i. Tugi sõltub siiski mudelist ja käituskeskkonnast. Ärge eeldage, et ühes NIM-i juurutuses saadaval olev struktureeritud väljundi valik on saadaval kõigi kataloogis olevate mudelite puhul.
Failid ja failide käsitlemine
Failide üleslaadimine ei ole NVIDIA põhilise vestluse järeldus-API universaalne funktsioon. Tavalised vestluspäringud kasutavad üldjuhul teksti, pildi URL-e, tekstisiseseid sisulõike või kodeeritud meediat vastavalt valitud mudeli liidesele.
Mõned NVIDIA spetsialiseeritud teenused võivad vastu võtta üleslaaditud sisu või pakkuda oma meediasisendi mehhanismi. Kui teie rakendus vajab PDF-e, arvutustabeleid või muid dokumente, peate võib-olla sisu oma süsteemis eraldama ja osadeks jagama, kasutama otsingutöövoogu või valima spetsiaalse teenuse. Enne failide saatmist või eeldamist, et failitöötlus on sisseehitatud, kontrollige täpset dokumentatsiooni.
SDK-d, mänguväli ja arendajatööriistad
Lihtsaim lähtekoht on API Catalogi mänguväli aadressil build.nvidia.com. See pakub mudelite avastamist, interaktiivset testimist, juurdepääsu API-võtmele, genereeritud näiteid ja linke mudelipõhistele viidetele.
NVIDIA majutatud lõpp-punktid kasutavad OpenAI-ga ühilduvat HTTP-semantikat. Ametlikud kiirjuhendid dokumenteerivad eelkõige Pythonit ning ühilduvaid OpenAI klienditeeke saab seadistada NVIDIA baas-URL-i kasutama. JavaScript, TypeScript, PHP ja muud keeled saavad HTTPS API-le otse päringuid teha. SDK ühilduvus ei taga, et kõik mudelipõhised parameetrid või funktsioonid on toetatud, seega lähtuge valitud NIM-i viitedokumentatsioonist.
Millal kasutada ise majutatud NIM-i?
Ise majutatud NIM sobib siis, kui organisatsioon vajab privaatset võrku, kontrolli järeldusandmete üle, prognoositavat GPU-mahtu, kohandatud juurutustoiminguid või toetatud LoRA- ja PEFT-adapterite teenindamist. NIM-i teenused avaldavad tavaliselt API-teed kohalikul või privaatsel teenuse-URL-il, kasutades sageli porti 8000, ning pakuvad operatiivseid lõpp-punkte mudelite, seisundi, metaandmete, versiooniteabe, manifestide, litsentside ja mõõdikute jaoks.
Ise majutamine annab teie tiimile suurema operatiivse vastutuse. Peate pakkuma ühilduva NVIDIA GPU-taristu, juurutama ja jälgima konteinereid, haldama mahtu ja skaleerimist, lõpp-punkti turvama ning mõistma valitud teenuse litsentsi.
Piirangud ja tootmiskasutuse kaalutlused
Majutatud eelvaate lõpp-punktidel on teenusepõhised piirangud. Tegelik latentsus ja läbilaskevõime sõltuvad mudelist, GPU-st, sisendi ja väljundi suurusest, samaaegsusest, pakettide koostamisest, piirkonnast, järjekordadest ning sellest, kas teenus on majutatud või ise hallatud. Ärge lubage kindlat vastamisaega ega päringukvooti, kui te pole vastava lõpp-punkti dokumentatsiooni kontrollinud.
Enne tootmiskasutust testige täpse mudeli ja NIM-i versiooni puhul järgmist:
- konteksti ja väljundi maksimaalsed suurused;
- tööriistakutsete käitumine ja argumentide valideerimine;
- struktureeritud väljundi tugi;
- pildi- ja muude meediavormingute tugi;
- voogedastuse käitumine ja vigade käsitlemine;
- paralleelsed päringud, läbilaskevõime ja samaaegsus;
- LoRA või adapterite tugi;
- kaubanduslik litsentsimine, päringupiirangud, tugi ja saadavus.
Majutatud API prooviperioodi tingimused ja üksikute mudelite avalikustused võivad käsitleda seda, kuidas sisendeid ja väljundeid salvestatakse, kasutatakse või säilitatakse. Mõni kataloogikogemus võib sisu salvestada prooviteenuse pakkumiseks, toodete ja mudelite täiustamiseks või turvalisuse, pettuste ja kuritarvituste jälgimiseks. Vältige prooviversiooni lõpp-punktides konfidentsiaalseid, reguleeritud või isikuandmeid, välja arvatud juhul, kui kohaldatavad tingimused seda selgelt lubavad. Ise majutatud NIM-i puhul määravad säilitamise ja logimise peamiselt teie taristu, rakendus ja käitamisreeglid, kuid litsentsi- ja ettevõtetingimused kehtivad endiselt.
Eelised ja piirangud
NVIDIA peamine eelis on võimalus liikuda interaktiivselt majutatud prototüübilt juurutatava GPU-põhise järeldusteenuseni. API Catalog vähendab alustamiseks vajalikku seadistust, NIM aga pakub suuremat kontrolli juurutuse, andmete asukoha, mahu ja valitud kohandamisviiside üle. OpenAI-ga ühilduvad päringumustrid muudavad olemasoleva rakenduse koodi kohandamise samuti lihtsamaks.
Peamine piirang on varieeruvus. NIM-i võimalused erinevad mudeli, teenuse ja versiooni lõikes märkimisväärselt. See platvorm ei ole üks ühtne API, mis kõikjal identselt toimiks. Failide üleslaadimist, struktureeritud väljundeid, tööriistakutseid, pildisisendit, LoRA teenindamist ja muid funktsioone tuleb kontrollida igaühe puhul eraldi.
NVIDIA API Catalog ja NIM on hea valik tiimidele, kes loovad lahendusi NVIDIA taristul, hindavad mitut tehisintellekti töökoormust või kavandavad privaatset järeldusteenust. Need sobivad halvemini inimesele, kes otsib kasutusvalmis tarbijaassistenti, universaalset dokumentide üleslaadimist, sisseehitatud veebiotsingut või täielikult hallatud püsivat agendi olekut.
