OpenAI je nedavno predstavio snažnu značajku pod nazivom Predicted Outputs , koja je tiho ušla na scenu bez puno pozornosti tehničkih medija—previd koji zaslužuje ispravak. Primijetio sam da su to spomenuli na X u svom računu razvojnog programera , ali nije dobilo puno publiciteta. Odlučio sam skrenuti pozornost na njega jer je stvarno cool i korisna značajka.
Predviđeni izlazi značajno smanjuju kašnjenje za odgovore modela, posebno kada je većina rezultata poznata unaprijed. Ova je značajka posebno korisna za aplikacije koje uključuju regeneriranje tekstualnih dokumenata ili kodnih datoteka s manjim izmjenama.
Predviđeni rezultati omogućuju programerima da ubrzaju odgovore API-ja iz dovršetaka razgovora kada je očekivani rezultat u velikoj mjeri predvidljiv. Pružanjem predviđanja očekivanog odgovora pomoću parametra prediction
u Završecima razgovora, model može učinkovitije generirati traženi izlaz. Ova je funkcionalnost trenutno dostupna s najnovijim modelima gpt-4o i gpt-4o-mini .
Kada imate odgovor u kojem je većina sadržaja već poznata, možete unijeti očekivani sadržaj kao predviđanje za model. Model zatim koristi to predviđanje da ubrza generiranje odgovora, smanjujući kašnjenje i poboljšavajući performanse.
Zamislite da imate JSON konfiguracijsku datoteku koju je potrebno malo ažurirati. Evo primjera takve datoteke:
{ "appName": "MyApp", "version": "1.0.0", "settings": { "enableFeatureX": false, "maxUsers": 100 } }
Pretpostavimo da želite ažurirati "enableFeatureX"
na true
. Umjesto generiranja cijele datoteke ispočetka, možete dati izvornu datoteku kao predviđanje i uputiti model da izvrši potrebne izmjene.
import OpenAI from "openai"; const config = ` { "appName": "MyApp", "version": "1.0.0", "settings": { "enableFeatureX": false, "maxUsers": 100 } } `.trim(); const openai = new OpenAI(); const updatePrompt = ` Change "enableFeatureX" to true in the following JSON configuration. Respond only with the updated JSON, without any additional text. `; const completion = await openai.chat.completions.create({ model: "gpt-4o", messages: [ { role: "user", content: updatePrompt }, { role: "user", content: config } ], prediction: { type: "content", content: config } }); // Output the updated configuration console.log(completion.choices[0].message.content);
U ovom primjeru, model brzo generira ažuriranu konfiguracijsku datoteku, iskorištavajući predviđanje za smanjenje vremena odgovora.
Za aplikacije koje zahtijevaju strujanje odgovora, Predicted Outputs nudi još veće smanjenje latencije. Evo kako možete implementirati prethodni primjer koristeći streaming:
import OpenAI from "openai"; const config = `...`; // Original JSON configuration const openai = new OpenAI(); const updatePrompt = `...`; // Prompt as before const completion = await openai.chat.completions.create({ model: "gpt-4o", messages: [ /* ... */ ], prediction: { type: "content", content: config }, stream: true }); for await (const chunk of completion) { process.stdout.write(chunk.choices[0]?.delta?.content || ""); }
U vrijeme pisanja ovog teksta ne postoje alternative ovom rješenju od konkurencije. Čini se da je OpenAI-jeva značajka Predicted Outputs jedinstvena ponuda koja se bavi specifičnom potrebom za smanjenjem latencije prilikom regeneriranja poznatog sadržaja s manjim izmjenama.
Fora je što vam za početak korištenja ne treba gotovo ništa. Samo ga uzmite i koristite dodavanjem samo jednog novog parametra API zahtjevu. To razvojnim programerima olakšava implementaciju ove značajke u njihove postojeće aplikacije.
Iako predviđeni rezultati nude značajne prednosti, postoje važna razmatranja:
rejected_prediction_tokens
u podacima o korištenju za upravljanje troškovima.n
(vrijednosti veće od 1)logprobs
presence_penalty
(vrijednosti veće od 0)frequency_penalty
(vrijednosti veće od 0)max_completion_tokens
tools
(poziv funkcije nije podržan)
OpenAI's Predicted Outputs je revolucionarna značajka koja se bavi uobičajenim izazovom u AI aplikacijama: smanjenje latencije kada je odgovor u velikoj mjeri predvidljiv. Omogućujući programerima da isporuče očekivane rezultate, ubrzava vrijeme odziva i poboljšava korisničko iskustvo.
Po mom osobnom mišljenju, OpenAI modeli nisu tako jaki kao Anthropicovi modeli. Međutim, OpenAI proizvodi mnogo cool i stvarno potrebnih rješenja u drugim područjima. Značajke poput Predicted Outputs izdvajaju OpenAI od ostalih AI pružatelja, nudeći jedinstvena rješenja koja zadovoljavaju specifične potrebe u zajednici programera.