Arendaja platvorm

NVIDIA API Catalog and NIM

NVIDIA AI ülevaade arendajatele, mis hõlmab API-juurdepääsu, hinnastust, SDK-tuge, lõppunkte, võimekusi ja platvormi reegleid.

API võti Nõutud
Peamine API NVIDIA NIM-i OpenAI-ga ühilduv järeldus-API
SDK tugi Ametlikud Pythoni kiirjuhendid ja ulatuslik tugi otse HTTP-päringutele. OpenAI-ga ühilduvad Pythoni ja JavaScripti kliendid saab seadistada kasutama NVIDIA baasaadressi. NVIDIA pakub esimese osapoole SDK-sid ja tööriistakomplekte ka laiemas CUDA, NeMo, NI
Päringupiirangud Päringupiirangud sõltuvad lõpp-punktist, kontost, mudelist ja teenusest. Majutatud eelvaate lõpp-punktide puhul kehtivad NVIDIA Developer Programi ja teenusepõhised piirangud. Ise hostitud lahenduste piirangud sõltuvad juurutusvõimsusest, käituskeskkonna
Platvorm

API ülevaade

Lõppunktid (endpoints)

API ligipääs

Juuraadress (Base URL) https://integrate.api.nvidia.com/v1
Peamine API NVIDIA NIM-i OpenAI-ga ühilduv järeldus-API
Hinnad

API Hinnad

Hinnakujundusmudel Hosted API Catalogi lõpp-punktid on NVIDIA Developer Programi prototüüpide jaoks kehtivate piirangute piires tasuta; tootmiskeskkonnas ise majutatav NIM nõuab üldjuhul NVIDIA AI Enterprise’i litsentsi, mille hind sõltub GPU-de arvust.

NVIDIA Developer Programmi kasutamine prototüüpimiseks on tasuta. NVIDIA AI Enterprise'i tootmislitsentsi hind algab 4500 USA dollarist GPU kohta aastas või pilvekeskkondades ligikaudu 1 USA dollarist GPU kohta tunnis. Majutatud lõpp-punktide hinnad ja piirangud võivad lõpp-punktiti erineda.

Arendaja töömugavus

SDK info

SDK Ametlikud Pythoni kiirjuhendid ja ulatuslik tugi otse HTTP-päringutele. OpenAI-ga ühilduvad Pythoni ja JavaScripti kliendid saab seadistada kasutama NVIDIA baasaadressi. NVIDIA pakub esimese osapoole SDK-sid ja tööriistakomplekte ka laiemas CUDA, NeMo, NI
Kasutusmugavus Prototüüpimiseks on see mugav tänu build.nvidia.com-ile, API-võtmete loomisele, brauseri eelvaadetele, genereeritud koodile ja OpenAI-ga ühilduvatele HTTP-mustritele. Isehostimine nõuab NVIDIA GPU-taristut, konteinereid, mudeli valikut ja juurutamisega se
Dokumentatsioon Põhjalik ja laiaulatuslik dokumentatsioon, mis hõlmab tsentraliseeritud API-dokumentatsiooni, mudelipõhiseid viiteid, NIM-i juurutusjuhendeid, toe maatrikseid, kiirjuhendeid, väljalaskemärkmeid ja NeMo ökosüsteemi dokumentatsiooni. Üksikasjad võivad NIM-i
Viivitus NVIDIA positsioneerib NIM-i väikese latentsuse ja suure läbilaskevõimega inferentsiks NVIDIA kiirendatud taristus. Tegelik latentsus sõltub mudelist, GPU-st, sisend- ja väljundtokenite arvust, samaaegsusest, pakktöötlusest, piirkonnast, järjekorda seadmis
Featuurid

API võimekused

✓ Voogedastus
✓ Funktsioonide kasutamine
✓ Assistants API
✓ Peenhäälestamine
✓ Pildi sisend
✓ Struktureeritud väljund
✓ Liivakast
Lühikirjeldus

NVIDIA arendajaplatvorm sisaldab majutatud API Catalogi lõpp-punkte ja allalaaditavaid NIM-mikroteenuseid. Majutatud lõpp-punktidele pääseb ligi aadressi build.nvidia.com kaudu ning baas-URL-i integrate.api.nvidia.com/v1 kasutades. NIM-i praegused API-viited kirjeldavad vestluse lõpetamise, lõpetamise, Responses API, Anthropiciga ühilduvate Messages-sõnumite, mudelite loendi, seisundi, metaandmete, mõõdikute ja halduse lõpp-punkte. Rakendatavad lõpp-punktid toetavad voogedastust. Tööriistade kutsumine on toetatud ühilduvate mudelite puhul ning isehostitava NIM-i korral võib see vajada mudelipõhist käitusaegset seadistust. Ühilduvad NIM-i juurutused toetavad struktureeritud väljundeid juhitud JSON-i, JSON-skeemide, grammatikate, regulaaravaldiste või piiratud valikute abil. Kujutise sisendit toetavad valitud visuaal-keelemudelid. Failide üleslaadimine ei ole tuumvestlus-API universaalne võimalus; spetsialiseeritud teenused võivad pakkuda oma üleslaadimis- või meediasisendi mehhanisme. NVIDIA toetab isehostitavas NIM-is LoRA- ja PEFT-adapterite teenindamist, kuid majutatud API Catalogi juurdepääsu puhul ei tohiks eeldada universaalset peenhäälestuse võimalust. NVIDIA NeMo Agent Toolkit ja teised seotud NeMo platvormi komponendid pakuvad esimese osapoole tuge agentide töövoogudele, käituskeskkonnale, juurutamisele, hindamisele, mälule, jälgitavusele, REST-ile, MCP-le ja tööriistade integreerimisele, kuid NVIDIA ei paku neid peamiselt universaalse majutatud Assistantsi objektide API-na.

Näited

API Näited

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": "system", "content": "You are a concise technical assistant."},
      {"role": "user", "content": "Explain GPU acceleration in one sentence."}
    ],
    "max_tokens": 128,
    "temperature": 0.2
  }' | jq -r '.choices[0].message.content'

curl -N -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": "Stream a short explanation of CUDA."}],
    "max_tokens": 256,
    "stream": true
  }'
# Install: pip install openai
import json
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",
)

try:
    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": "What is GPU acceleration?"},
        ],
        max_tokens=128,
        temperature=0.2,
    )
    print(response.choices[0].message.content)

    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)
    print()

    tools = [
        {
            "type": "function",
            "function": {
                "name": "get_weather",
                "description": "Get the current weather for a city",
                "parameters": {
                    "type": "object",
                    "properties": {"city": {"type": "string"}},
                    "required": ["city"],
                },
            },
        }
    ]
    tool_response = client.chat.completions.create(
        model="meta/llama-3.1-8b-instruct",
        messages=[{"role": "user", "content": "What is the weather in Austin?"}],
        tools=tools,
        tool_choice="auto",
        max_tokens=256,
    )
    message = tool_response.choices[0].message
    if message.tool_calls:
        for call in message.tool_calls:
            print(json.dumps({"name": call.function.name, "arguments": call.function.arguments}))
    else:
        print(message.content)
except Exception as exc:
    print(f"NVIDIA API request failed: {exc}")
    raise
// Install: npm install openai
import OpenAI from "openai";

const apiKey = process.env.NVIDIA_API_KEY;
if (!apiKey) {
  throw new Error("Set NVIDIA_API_KEY before running this example");
}

const client = new OpenAI({
  apiKey,
  baseURL: "https://integrate.api.nvidia.com/v1",
});

try {
  const response = await 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,
  });
  console.log(response.choices[0].message.content);

  const stream = await client.chat.completions.create({
    model: "meta/llama-3.1-8b-instruct",
    messages: [{ role: "user", content: "Explain CUDA briefly." }],
    max_tokens: 256,
    stream: true,
  });
  for await (const chunk of stream) {
    const text = chunk.choices[0]?.delta?.content;
    if (text) process.stdout.write(text);
  }
  process.stdout.write("\n");

  const toolResponse = await client.chat.completions.create({
    model: "meta/llama-3.1-8b-instruct",
    messages: [{ role: "user", content: "What is the weather in Austin?" }],
    tools: [
      {
        type: "function",
        function: {
          name: "get_weather",
          description: "Get the current weather for a city",
          parameters: {
            type: "object",
            properties: { city: { type: "string" } },
            required: ["city"],
          },
        },
      },
    ],
    tool_choice: "auto",
    max_tokens: 256,
  });
  console.log(JSON.stringify(toolResponse.choices[0].message));
} catch (error) {
  console.error("NVIDIA API request failed:", error);
  process.exitCode = 1;
}
<?php
$apiKey = getenv('NVIDIA_API_KEY');
if (!$apiKey) {
    throw new RuntimeException('Set NVIDIA_API_KEY before running this example');
}

$url = 'https://integrate.api.nvidia.com/v1/chat/completions';
$payload = [
    '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,
];

$ch = curl_init($url);
curl_setopt_array($ch, [
    CURLOPT_POST => true,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        'Authorization: Bearer ' . $apiKey,
        'Content-Type: application/json',
    ],
    CURLOPT_POSTFIELDS => json_encode($payload, JSON_THROW_ON_ERROR),
    CURLOPT_TIMEOUT => 60,
]);

$responseBody = curl_exec($ch);
if ($responseBody === false) {
    $error = curl_error($ch);
    curl_close($ch);
    throw new RuntimeException('cURL error: ' . $error);
}

$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);

$data = json_decode($responseBody, true, 512, JSON_THROW_ON_ERROR);
if ($status < 200 || $status >= 300) {
    $message = $data['error']['message'] ?? $responseBody;
    throw new RuntimeException('NVIDIA API error (' . $status . '): ' . $message);
}

echo $data['choices'][0]['message']['content'] . PHP_EOL;

$toolPayload = [
    'model' => 'meta/llama-3.1-8b-instruct',
    'messages' => [['role' => 'user', 'content' => 'What is the weather in Austin?']],
    'tools' => [[
        'type' => 'function',
        'function' => [
            'name' => 'get_weather',
            'description' => 'Get the current weather for a city',
            'parameters' => [
                'type' => 'object',
                'properties' => ['city' => ['type' => 'string']],
                'required' => ['city'],
            ],
        ],
    ]],
    'tool_choice' => 'auto',
    'max_tokens' => 256,
];

$ch = curl_init($url);
curl_setopt_array($ch, [
    CURLOPT_POST => true,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        'Authorization: Bearer ' . $apiKey,
        'Content-Type: application/json',
    ],
    CURLOPT_POSTFIELDS => json_encode($toolPayload, JSON_THROW_ON_ERROR),
    CURLOPT_TIMEOUT => 60,
]);

$toolBody = curl_exec($ch);
if ($toolBody === false) {
    $error = curl_error($ch);
    curl_close($ch);
    throw new RuntimeException('cURL error: ' . $error);
}

$toolStatus = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
$toolData = json_decode($toolBody, true, 512, JSON_THROW_ON_ERROR);

if ($toolStatus < 200 || $toolStatus >= 300) {
    $message = $toolData['error']['message'] ?? $toolBody;
    throw new RuntimeException('NVIDIA API error (' . $toolStatus . '): ' . $message);
}

echo json_encode($toolData['choices'][0]['message'], JSON_PRETTY_PRINT) . PHP_EOL;
?>
Põhimõtted

Andmete kasutus

Andmete kasutus

NVIDIA API prooviversiooni tingimustes on sätestatud, et kasutaja sisu ja genereeritud sisu kasutatakse üldjuhul seansi ajal API-teenuse pakkumiseks ning pärast seansi lõppu neid ei säilitata ega kasutata, välja arvatud juhul, kui konkreetse teenuse või kataloogi teabes on märgitud teisiti. Samas võivad API kataloogis olevate mudelite lehed täpsustada, et sisendeid ja väljundeid salvestatakse prooviversiooni kasutuskogemuse pakkumiseks, NVIDIA toodete ja tehisintellektimudelite täiustamiseks ning turvalisuse, pettuste või kuritarvitamise jälgimiseks. Arendajad peaksid tutvuma kohaldatava mudeliteabega ning vältima prooviversiooni lõpp-punktides konfidentsiaalsete või reguleeritud andmete kasutamist. Ei tohiks väita üldiselt, et kogu majutatud API-liiklus on toodete täiustamisest välja jäetud.

Andmete säilitamine

API prooviversiooni üldtingimuste kohaselt ei säilitata kasutaja loodud ega genereeritud sisu pärast seansi lõppu, välja arvatud avalikustatud teenuste või eesmärkide korral. Teatud teenused, sealhulgas peenhäälestusega seotud teenused, võivad säilitada kasutaja sisu 30 päeva jooksul pärast esmast üleslaadimist ning peenhäälestuse käigus genereeritud sisu 90 päeva jooksul pärast selle kättesaadavaks tegemist, välja arvatud juhul, kui kohaldatakse teistsuguseid tellimustingimusi. Turvalisuse, pettuste ja väärkasutuse jälgimine võib hõlmata logimist või andmete salvestamist. Isehostitud NIM-i puhul sõltub säilitamine peamiselt kliendi taristust, logimisest ja käitamiseeskirjadest.

Päringupiirangud

Päringupiirangud sõltuvad lõpp-punktist, kontost, mudelist ja teenusest. Majutatud eelvaate lõpp-punktide puhul kehtivad NVIDIA Developer Programi ja teenusepõhised piirangud. Ise hostitud lahenduste piirangud sõltuvad juurutusvõimsusest, käituskeskkonna

Arendaja juhend

NVIDIA API-kataloog ja NIM: algaja juhend arendaja API kasutamiseks

NVIDIA arendajatele mõeldud API-platvorm ühendab NVIDIA API Catalogis hostitud järeldusliidesed allalaaditavate NVIDIA NIM-i mikroteenustega. Arendajad saavad mudeleid testida saidil build.nvidia.com, autentida end NVIDIA API-võtmega, kasutada OpenAI-ga ühilduvaid päringuvorminguid ning hiljem juurutada NIM-i toetatud NVIDIA GPU-taristus, et saada rohkem kontrolli andmete, mahu ja kohandamise üle.
NVIDIA API Catalog ja NVIDIA NIM võimaldavad kasutada tehisintellekti inferentsi, ilma et iga arendaja peaks mudelite teenindamiseks vajalikku süsteemi algusest peale ise üles ehitama. Majutatud kataloog sobib toetatud keele-, nägemis-keele-, embedding’u-, pildi-, kõne-, teabeotsingu ja muude teenuste katsetamiseks. NIM laiendab sama üldist lähenemisviisi isemajutatud juurutustele, võimaldades organisatsioonidel käitada ühilduvaid mikroteenuseid oma NVIDIA GPU-taristus. Selles juhendis selgitatakse, kuidas ligipääs toimib, kuidas teha esimene päring, millised funktsioonid on saadaval ja mida tuleks enne platvormi tootmiskasutusse võtmist kontrollida.
NVIDIA API Catalog pakub build.nvidia.com-i kaudu ja OpenAI-ga ühilduva API abil majutatud juurdepääsu valitud NIM-i inferentsiteenustele. Arendajad saavad kasutada API-võtmeid, voogedastust, tööriistade kutsumist, struktureeritud väljundeid, valitud multimodaalseid mudeleid ning SDK-dega ühilduvaid HTTP-päringumustreid. Ise hostitud NIM annab suurema kontrolli GPU-taristu, andmete asukoha, jõudluse mahu ja toetatud kohandamisvõimaluste üle, kuid nõuab rohkem haldustööd ning üldjuhul NVIDIA AI Enterprise'i litsentsi.

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

  1. Avage NVIDIA API Catalog aadressil build.nvidia.com.
  2. Valige mudel või NIM-i mikroteenus ja tutvuge selle mudelipõhise dokumentatsiooniga.
  3. Testige võimaluse korral brauseri mänguväljal näidispäringut.
  4. Liituge NVIDIA Developer Programiga või logige sinna sisse, kui valitud majutatud lõpp-punkt seda nõuab.
  5. Looge NVIDIA API-võti või hankige olemasolev võti.
  6. 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/v1

Esimese 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 tools ja tool_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.

Allikad 12