paint-brush
Predviđeni rezultati: OpenAI značajka koju ste vjerojatno propustilipo@iamarsenibragimov
Nova povijest

Predviđeni rezultati: OpenAI značajka koju ste vjerojatno propustili

po iamarsenibragimov4m2024/11/20
Read on Terminal Reader

Predugo; Čitati

Predviđeni izlazi značajno smanjuju kašnjenje za odgovore modela, posebno kada je većina rezultata poznata unaprijed. Ova je značajka osobito korisna za aplikacije koje uključuju regeneriranje tekstualnih dokumenata ili kodnih datoteka s manjim izmjenama. Čini se da je značajka jedinstvena ponuda koja se bavi specifičnom potrebom za smanjenjem latencije prilikom regeneriranja sadržaja.
featured image - Predviđeni rezultati: OpenAI značajka koju ste vjerojatno propustili
iamarsenibragimov HackerNoon profile picture
0-item


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.


Što su predviđeni rezultati?

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 .


Kako funkcioniraju predviđeni rezultati?

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.


Prilagođeni primjer: Ažuriranje konfiguracijskih datoteka

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.


Streaming s predviđenim rezultatima

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.


Savjeti za programere

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.


Ograničenja

Iako predviđeni rezultati nude značajne prednosti, postoje važna razmatranja:

  • Kompatibilnost modela : samo modeli gpt-4o i gpt-4o-mini podržavaju predviđene rezultate. Mislim da to što je dostupan samo na ovim modelima uopće nije problem, jer su to trenutno najbolji modeli iz OpenAI-ja, a originalni GPT-4 je ionako prespor za ovo.
  • Posljedice naplate : Odbijeni tokeni predviđanja naplaćuju se po istoj stopi kao i generirani tokeni. Pratite rejected_prediction_tokens u podacima o korištenju za upravljanje troškovima.
  • Nepodržani parametri :
    • 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)
  • Ograničenja modaliteta : Podržani su samo tekstualni modaliteti; audio ulazi i izlazi nisu kompatibilni s predviđenim izlazima.


Zaključak

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.