Nechápu limity a raty u OpenAI

Nechápu limity a raty u OpenAI
« kdy: 18. 06. 2023, 12:12:37 »
Dokumentaci jsem zkoumal, ptal se OpenAI a už to s ním řeším podruhé ale prostě to stále nechápu. Snad poradí člověk. Jde mi o to, že se snažím rozjet aplikaci, kterou mi napsal, abych mohl přes soubor odeslat delší požadavek jako rekapitulace studie co má 200 stránek A5 a ve výsledku je z toho asi 30 zpráv od ChatGPT. Tyhle data přepracuji do článku kde slučuji tři zprávy, ale článek je dlouhý. A budu po něm chtít, aby mi to rekapitulovat. Normálně bych to posílal třeba 10-15 zpráv přes ChatGPT. Ale je možné takto dlouhou věc zdarma poslat přes api, které jsem si s jeho pomocí napsal pro perl? Mám tedy takovýto jednoduchý požadavek.
Kód: [Vybrat]
{
  "model": "text-davinci-002",
  "prompt": "Once upon a time",
  "temperature": 0.5,
  "max_tokens": 50
}
Prompt budu muset ve skutečnosti načíst ze souboru jako
Kód: [Vybrat]
my $request_prompt = read_file($request_prompt);
my $escaped_prompt = encode_json($request_prompt);
Ale háček je v délce zprávy.
Tabulka obsahuje
ModelTPM Limit (Tokens per Minute)RPM Limit (Requests per Minute)
davinci250,00060
curie2560
babbage10020
ada20020

Dotaz na ChatGPT zněl:
Na kolik tokenů mám tedy nastavit max limit v tomto příkladu ZDARMA? (následoval výše uvedený kód toho json objektu)
Na dotaz: "Spočítejte jak dlouho by trvalo vygenerování odpovědi na předchozí dotaz."
ChatGPT mi napsal:
"1 token za minutu * 50 tokenů = 50 minut"

Mám toto brát vážně nebo to prostě jen nechápe? Netuším jak dlouhý je ten článek, ale zdá se, že počet odeslaných tokenů a počet přijatých tokenů se sčítají. Jako mě by asi nevadilo čekat na to třeba 20 minut. Proč ne. Ale jinak to nemá smysl, mohu mu to zadat ručně.


Re:Nechápu limity a raty u OpenAI
« Odpověď #1 kdy: 18. 06. 2023, 12:23:25 »
Ještě jsem to chtěl editovat a už to nejde. Takže výsledek naší diskuse (rekapitulace studie) má
stránky: 30 (A4)
slova: 18509
znaky: 106987
odstavce: 352

Re:Nechápu limity a raty u OpenAI
« Odpověď #2 kdy: 18. 06. 2023, 14:08:40 »
A otazka je teda aka?

Ak je otazka, ci maju verejne api rate limiting, tak ano mavaju. A tie co ho nemaju sa to vacsinou naucia tvrdym sposobom ze ho maju mat.

Re:Nechápu limity a raty u OpenAI
« Odpověď #3 kdy: 18. 06. 2023, 17:01:32 »
OpenAI API má několik limitů, každý se váže na něco jiného.

Mají user API limit na daný model, to je pro davinci a ostatní text modely 60 RPM (requestů na API za minutu) a zároveň maximální počet tokenů input+output nesmí přesáhnout 250 000, tento limit ale po 48 hodinách padá a je automaticky navýšen viz https://platform.openai.com/docs/guides/rate-limits/what-are-the-rate-limits-for-our-api.

Dále je tu limit počtu tokenů na 1 request - davinci má limit 4097, tedy input+output nesmí dohromady přesáhnout 4097 tokenů, před pár dny byl oznámen model s podporou 16k tokenů, podrobnosti zde https://platform.openai.com/docs/models/overview.


Re:Nechápu limity a raty u OpenAI
« Odpověď #4 kdy: 18. 06. 2023, 18:20:22 »
Mě zajímá jen Free tarif. Tam píšou 3 RPM
150,000 TPM
Jak dlouho by to tedy trvalo, než by bot zpracoval můj požadavek a jak bych měl nastavit ten json, na kolik?

Kód: [Vybrat]
{
  "model": "text-davinci-002",
  "prompt": "Once upon a time",
  "temperature": 0.5,
  "max_tokens": 150000
}
nebo

Kód: [Vybrat]
{
  "model": "text-davinci-002",
  "prompt": "Once upon a time",
  "temperature": 0.5,
  "max_tokens": 3
}

Anebo to co chci vůbec nepůjde protože je to moc textu? Zajímavé že v chatu na chat.openai.com s tak velkým množstvím textu není problém, ale při text/embeding je to jen 3 tokeny? Nebo 1 token pro davinci? Touhle rychlostí by se to vypisovalo snad měsíc v kuse.
« Poslední změna: 18. 06. 2023, 18:22:04 od exkalibr »


Re:Nechápu limity a raty u OpenAI
« Odpověď #5 kdy: 18. 06. 2023, 18:42:32 »
Limit 3 RPM znamená 3 volání API za 1 minutu. V tvém případě ale řešíš počet tokenů, který na API můžeš poslat v jednom requestu a to je kolem 4097 včetně historie u chatgpt modelů, tomu se říká context lenght.

max_tokens parametr je limit počtu tokenů na completion reqest, tedy tímto limituješ počet tokenů, které ti model vrátí - tím se omezuje velikost odpovědi.

Ohledně zpracování celého dokumentu - prvně záleží jaký je to jazyk, u češtiny třeba je spotřeba tokenů mnohem větší, protože každý znak s diakritikou se počítá jako extra token. Pokud to má 106987 znaků jak píšeš, tak to se tam určitě nevleze. Chatgpt třeba začne postupně zapomínat starší zprávy z aktualní chat relace.

Počet tokenů si můžeš zkusit spočítat zde: https://platform.openai.com/tokenizer, stačí vložit text a přepočítá to na tokeny.

Tyto limity se ale nevztahují na rychlost generování.

Re:Nechápu limity a raty u OpenAI
« Odpověď #6 kdy: 18. 06. 2023, 19:01:24 »
Děkuji moc. A to číslo toho limitu si našel kde? To je ten odkaz na models/overview
text-davinci-003   Can do any language task with better quality, longer output, and consistent instruction-following than the curie, babbage, or ada models. Also supports some additional features such as inserting text.   4,097 tokens   Up to Jun 2021
?

Tak to se tedy nevyplatí dělat vlastní API. To tak leda na chat, který nepotřebuju. A kdybych to třeba chtěl dát na nějakou webovku, tak by si lidi moc nezachatovali. Když si to tak vezmeš tak na chat.openai.com je to skoro bez omezení, jen ta délka textu kterou bot generuje je trochu kratší.

Re:Nechápu limity a raty u OpenAI
« Odpověď #7 kdy: 18. 06. 2023, 19:19:39 »
Ano přesně tak limity počtu tokenů jsou na https://platform.openai.com/docs/models/overview. Vždy záleží na konkrétním použití. Pokud třeba chceš hledat pomocí openAI API v dokumentu, tak lze použít různé technicky dlouhodobé paměti. Na to slouží tzn. vektorové databáze.

Funguje to tak, že text dokumentu pošleš na embbeding model, ten ti vrátí velký matrix čísel - to je číselná reprezentace textu. Ten se uloží do vektorové databáze. Následně to funguje tak, že před dotazem na openAI API se nejprve provede hledání ve vektorové databázi a výsledek z tohoto hledání se pošle jako součast requestu. Tedy neposílá se celý dokument ale jen relevantní časti textu.

Tuto problematiku řeší třeba langchanin pro python a javascript což je framework, kde je většina těchto problémů již vyřešena: https://github.com/hwchase17/langchain

Pokud pak je třeba hledat v opravdu velkým množství dat, tak pak je asi potřeba použít fine tunning, tzn. doučení daného modelu. Ale to už je mnohem dražší.

Re:Nechápu limity a raty u OpenAI
« Odpověď #8 kdy: 18. 06. 2023, 20:07:32 »
Na FREE bych se neorientoval.
Tvá práce, či to co vytváříš, je snad dražší než pofiderní úspora za placený přístup OpenAI.
Není-li tomu, tak je zapotřebí to brát tak, že free slouží buď pro otestování, a nebo na náhodné používání.
Jinak se na to vykašli, všude ve světě, a mnohde i u nás, je všechno již pouze za peníze.

V nejhorším případě, při orientaci pouze na free, něco vytvoříš a oni následně změní podmínky, a to co jsi vytvořil spláchneš do kanálu.

Re:Nechápu limity a raty u OpenAI
« Odpověď #9 kdy: 18. 06. 2023, 20:48:56 »
honzako nevíte kolik za kolik. Vaše logika padá v případě že jde o free projekt. Zisk musí pokrýt náklady, správně? Tam kde je zisk 0 nemůžete očekávat, že budou tolerovány ztráty.

Re:Nechápu limity a raty u OpenAI
« Odpověď #10 kdy: 19. 06. 2023, 07:39:36 »
honzako nevíte kolik za kolik. Vaše logika padá v případě že jde o free projekt. Zisk musí pokrýt náklady, správně? Tam kde je zisk 0 nemůžete očekávat, že budou tolerovány ztráty.
Pokud váš čas stojí 0, pak tato úvaha dává smysl. Jinak ne.