Jump to content

Žebříček

Populární obsah

Showing content with the highest reputation since 03/21/24 in all areas

  1. Ahoj, skús drobnú úpravu v OnDialogResponse: if (dialogid == REG_DIALOG) // Všimni si, že som odstránil && response==1 z podmienky { if (!response) // Ak hráč stlačí pravé tlačítko dialogu (v tvojom prípade "Ukončit"), response má hodnotu 0 { // Sem vlož kód na zobrazenie registračného dialogu alebo kicknutie hráča zo serveru return 1; } if(strlen(inputtext) == 0) { SendClientMessage(playerid, B_CERV, "[ ! ] Moc kratke heslo!"); new message[256]; format(message, sizeof(message), "\n\n{FFFFFF}Vítaj {00FF00}%s{FFFFFF} na servery {00FF00}Realný Svet\n\n{FFFFFF}Pre registraciu si zvol {FF0000}Heslo\n\n", Jmeno(playerid)); ShowPlayerDialog(playerid, REG_DIALOG, DIALOG_STYLE_PASSWORD, "Registracia", message, "Prihlásit", "Ukončit"); } else { if (udb_Create(Jmeno(playerid),inputtext)) { new message[256]; format(message, sizeof(message), "\n\n{FFFFFF}Vítaj {00FF00}%s{FFFFFF} späť na servery {00FF00}Realný Svet\n\n{FFFFFF}Pre prihlásenie zadaj {FF0000}heslo!\n\n", Jmeno(playerid)); ShowPlayerDialog(playerid, LOG_DIALOG, DIALOG_STYLE_PASSWORD, "Prihlasenie", message, "Prihlásit", "Ukončit"); } else { new message[256]; format(message, sizeof(message), "\n\n{FFFFFF}Vítaj {00FF00}%s{FFFFFF} na servery {00FF00}Realný Svet\n\n{FFFFFF}Pre registraciu si zvol {FF0000}Heslo\n\n", Jmeno(playerid)); ShowPlayerDialog(playerid, REG_DIALOG, DIALOG_STYLE_PASSWORD, "Registrace", message, "Prihlásit", "Ukončit"); } } }
    1 point
  2. Navážu zde na obsah předchozího návodu o OpenAI, přeskočím tedy definice pojmů a vrhneme se přímo do problematiky. Rozdíly Nejpodstatnějším rozdílem mezi OpenAI modelem a Midjourney je právě skladba samotného promptu. Zatímco OpenAI GPT modely jsou stavěné pro komunikaci, Midjourney je navržen jen pro generaci obrázků. Původně modely generující obrázky vznikly jako modely popisující obrázky - model měl za úkol popsat co na existujícím obrázku vidí. Samotným otočením logiky začaly modely obrázky generovat na základě vložených "popisů". Je vhodné nad tímto přemýšlet při stavbě samotného promptu. Midjourney jmenovitě také nabízí možnost použití speciálních parametrů přímo v promptu (tedy na konci promptu). Tyto parametry vždy začínají dvěma pomlčkami, klíčovým slovem, mezerou a hodnotou. Podobně jako parametry konzolových aplikací jak na Windows tak linuxu. Další zajímavostí oproti jazykovým modelům je možnost tvorby negativních promptů - resp. zanesení slov do promptu, kterým se má model vyvarovat, či je úplně odstranit z možných generovatelných kontextů Architektura promptu Prompt jako takový lze dnes stavět různými způsoby. Původně však nejlepší výsledky vznikaly z promptů stavěných z klíčových slov. Čím více specifikovaná slova, tím přesnější, kvalitnější nebo hodnotnější výsledky byly generovány. Nejnovější modely se snaží přiblížit citlivostí na architekturu promptu co nejširší cílové skupině uživatelů - dokáží tedy zpracovávat i texty plné zbytečných nuancí s irelevantními větnými doplňky. Avšak nejlepších výsledků stále dosáhneme právě stavbou klíčových slov bez spojek, předložek a podobných větných součástí. Midjourney je také více citlivé na angličtinu, než jiné jazyky. Neznamená to však, že by se nedaly psát prompty v češtině nebo slovenštině. (Při ověřování českých promptů jsem se setkal spíše s neúspěchem než s úspěchem..) Spíše je potřeba počítat s tím, že pokud nastane problém s generací promptů v jazyce jiném než angličtina, je vhodné zkusit je nutné generovat s promptem přeloženým do angličtiny. To je však problém všech modelů (i jazykových), protože tréninková data jsou nejbohatší právě v anglickém jazyce. Podobně jako u OpenAI i zde platí pravidlo, že prompt je nejsilnější v prvních několika slovech. Avšak následný spád relevance už není tak znatelný, tedy prompt si po celou jeho délku udržuje celkem stabilní váhový gradient. Zjednodušeně řečeno - prvních pár slov je nejsilnějších, vše poté má o něco menší váhu v generaci, avšak stále dostatečně citelnou. Dle mého názoru je to typickým biasem lidských popisovačů tréninkových obrázků - lidé si nejdřív všimnou nejsilnějšího prvku v obrázku, který vždy dosadí na první pozici v popisu. Obsah promptu: Předmět Předmětné modifikátory Stylistické modifikátory Pozadí Efekty Negativní předmět Parametry Pořadí těchto prvků není kriticky důležité, jde spíš o můj vlastní zvyk napříč různými modely jak Midjourney tak i klasické stabilní difuze. Předmět je vlastně obsah obrázku, objekt pozorování, situace, čí jiná myšlenka, kterou má model generovat. Předmětné modifikátory Jde o úpravy předmětu, nebo jeho bližší specifikace. Vlastně tím zpřesňujeme definici předmětu, přidáváme další požadavky nebo se tím snažíme stočit pomyslnou cestičku samotné generace. Modifikátorů může být jakékoliv množství a mohou být jakkoliv specifické, nebo obecné, či naprosto vágní - model si s tím vždy nějak poradí. Sledovat občas co vzniká z naprosto nesmyslných, či totálně obecných promptů, je občas zážitek sám o sobě. Stylistické modifikátory Těmito nastavujeme celkovou kompozici, realističnost, či jiné stylistické zpracování celkového produktu. Stejně jako předtím, těchto modifikátorů může být jakékoliv množství a specifikovat mohou cokoliv. Jde o podrobnější štelování výsledků. Pozadí Stejně tak jako předmět, můžeme v zařadit do promptu i definici pozadí. Já obvykle definuji pozadí spíše ke konci promptu, ale jde asi jen o můj osobní zvyk. Model si zpracuje prompt po svém a teoreticky jen klíčové slovíčko "background", nebo "pozadí" je dostačující k tomu, aby model pochopil o co nám jde. Efekty Podobně jako stylistické modifikátory, můžeme specifikovat i efekty, resp. simulaci post-procesního zpracování. Negativní předmět Stejně jako stavíme předmět s jeho modifikátory, můžeme stavět i negativní součásti. Chápejme ve smyslu seznamu věcí, které generovat nechceme, tedy které nechceme vidět ve výsledcích. Negativní předmět je však součást parametru (--no), měl by tak být na konci promptu. Pokud chceme specifikovat více předmětů, je potřeba je oddělit čárkou Negativní prompty existují hlavně proto, že model nedokáže dobře odhadnout relevanci negativních vazeb samotného promptu vůči předmětům. Takže pokud chceme modelu předat informaci o tom, že něco nechceme generovat, tak místo tvorby takového požadavku v předmětu, nebo jeho modifikátorech (např. "tupé ruce bez prstů") bychom měli vždy použít parametr ("--no prsty"). Parametry Samotné parametry nám poté upravují již externí nastavení modelu, či jeho výstupu. Obvykle se nastavuje výběr samotného modelu, poměr stran, teplota (chaos), seed apod. Další parametry lze najít v dokumentaci https://docs.midjourney.com/docs/parameter-list Multi-prompting Midjourney nabízí také velmi silnou funkci multi-promptů. Je využitelná zejména, pokud chceme logicky oddělit předměty, tedy separovat jejich relevanci vůči sobě. Či pokud chceme jednotlivým předmětům nastavit různé váhy (a ovlivnit tak jejich podíl na výsledku) Dvojité dvojtečky definují separaci významů mezi oběma stranami. Lze za nimi specifikovat číslo (i s desetinou čárkou u nejnovějších modelů), které definuje váhu levé strany. Pokud chceme specifikovat i váhu pravé strany, je potřeba použít dvojtečky i za ní
    1 point
  3. Zdarec borci, dlouho jsem přemýšlel s jakým originálním návodem, který by řešil moderní téma, bych přišel a podělil se s vámi. Vyhrála to samozřejmě AI. Pojďme si nejdříve definovat pojmy a názvosloví: AI - Artificial Intelligence tedy Umělá Inteligence - pojem, který je dnes nejvíce ztotožněn s LLM neuronovými sítěmi. Nejde o "skutečnou umělou inteligenci", nýbrž o simulaci chování na základě předtrénovaného setu dat AGI - Artificial General Intelligence tedy Obecná Umělá Inteligence - dnes prozatím ještě blíže nespecifikovaný, či velmi široce obsáhlý pojem. Majorita lidí, kteří se ochomýtají okolo AI, se nyní snaží pojem AGI definovat jako tu "skutečnou umělou inteligenci". Prozatím však neexistuje žádný model neuronové sítě, který by se opravdu dal označit za "skutečnou umělou inteligenci" a vlastně ani nemáme žádný způsob či mechanismus jak bychom mohli určit, či prokázat "skutečnost" umělé inteligence. Jedná se tak hlavně o marketingový pojem, kterým se velcí AI hráči snaží prodat nejnovější modely. LLM - Large Language Model tedy Velký Jazykový Model - typ neuronové sítě, která je trénovaná na obrovském množství textových (či dnes i obrázkových) dat, která vyprodukoval člověk, či jiná neuronová síť. Token - formát dat, se kterými LLM neuronky pracují. Zjednodušeně jde o jakousi kompresi psaného textu, či několika písmen (případně bajtů textových znaků). Typicky se jedno slovo anglického jazyka rozděluje na dva, až čtyři tokeny - avšak jedno, či více-tokenová slova nejsou výjimkou. Kontext - Kontejner všech dat (tokenů), které jsou neuronové síti aktuálně dostupné - lze si to představit jako historii chatu + jakákoliv další data, která jsou do kontextu přidána jiným způsobem (třeba systémovou zprávou). Typicky je omezen řádově na tisíce tokenů Nyní, když známe ty nejzákladnější pojmy a já mohu pohodlně psát ve zkratkách, pojďme si povědět něco o tom, jak vlastně typická moderní AI funguje. Neuronové sítě různých firem se liší v mnoha věcech, avšak základní princip je u všech stejný - AI je trénovaná na obrovském množství dat, generuje určitý typ odpovědí, mimo API je většinou za moderační vrstvou a napříč různými verzemi modelů je různě "biased" vůči proměnlivým stylům, chování, či ochotě. Důležité je vědět, že dnes prozatím neexistuje mechanismus zajišťující 100% bezpečnost odpovědí umělé inteligence - a nikdo stále nedokáže s jistotou odhadnout, jestli vůbec někdy bude možné takovou bezpečnost zajistit. Jde o bezpečnost informační - obecně je nežádoucí, aby AI úspěšně využívali "špatní hráči (bad actors)" k provádění kriminální činnosti. Bohužel je to však stále možné. Firmy bojují vůči těmto možnostem moderační vrstvou, která funguje jako mezičlánek mezi AI a uživatelem - jedná se většinou o menší neuronový model, který se snaží vyhodnotit nebezpečnost otázky uživatele, nebo i odpovědi AI a případně přeruší zpracování, či celou komunikaci. Občas se může stát, že moderační vrstva vyhodnotí přehnaný úsudek, či podhodnotí nebezpečnost komunikace a tak se můžeme setkat s nesmyslnou blokací, nebo naopak vymyslet cestu jak vrstvu obejít jazykovou kličkou a generovat nebezpečné odpovědi. Způsob, jakým se nejefektivněji ptát LLM AI pro nejlepší šanci na generaci relevantní a smysluplné odpovědi, se může lišit vzhledem k tomu, na co byla neuronka předtrénovaná, či později nalazená (fine-tuned). V tomto návodu budu řešit způsob vytváření promptů relevantních pro GPT3.5 (či GPT4) od OpenAI. Struktura a architektura konverzace Rozuměno spíš i jako procedura, kterou se AI nejdříve připraví, nastaví, předají se data, určí předpoklad výsledku a poté se celý blok obrní vůči deviacím. Zní to složitě, ale dá se to rozpracovat do několika prvků, či kroků - které mezi sebou více, či méně souvisejí nebo i kombinují. Příprava - Připravíme AI k určitému chování, či definujeme naše očekávání. Nastavení - Nastavíme AI pro specifický výkon, tedy určíme co po AI přesně chceme. Informace - Předáme AI kontext, či další data, které zpracuje dle našich požadavků Mantinely - Instruujeme AI k dodržení našich pravidel a co nejvíc redukujeme možnost deviace a nečekaných výsledků (nastavíme hranice "kreativitě") Každá situace, nebo cíl může vyžadovat různé, či všechny tyto kroky. Snažil jsem se to co nejvíce zobecnit, ale pravdou je, že AI je neustále velkou neznámou. S velikostí modelů roste i jejich nevyzpytatelnost a nepředvídatelnost. Avšak experimentací lze docílit i zcela nových postupů, přístupů a proceduralizaci Příprava Před samotným aktem komunikace lze (a mnohdy je vhodno) model připravit na to, co vlastně bude provádět, zpracovávat, vytvářet. První instrukce u krátkých promptů mají statisticky největší reakci modelu. V případě pozdějšího delšího průběhu komunikace ztrácí první tokeny v kontextu váhu (jde o problém s transformátory, který se snaží vyřešit všechny firmy u všech modelů), či jsou ztraceny úplně (kvůli omezení velikosti kontextu). Příprava je vlastně takové zahájení imaginárního příběhu, kterého se AI bude snažit držet. Představíme situaci a navrhneme prostředí či aktivitu. Nastavení Po přípravě je na čase nastavit AI k nějaké akci, aktivitě či kroku. Vlastně jde o jakési předání instruktážního návodu, či modelové situace, jak se má AI chovat ke vstupním datům.. Dá se to chápat i jako rozšiřující dodatek k sekci Nastavení.. Rozdíl mezi těmito sekcemi je jejich velikost. Příprava by měla být co nejstručnější a nejpřesnější, kdežto samotné nastavení může být vysvětleno vyčerpávajícími a podrobnými detaily i s ukázkami příkladného chování. Informace Modelu je vhodno také dodat seznam různých důležitých informací, o kterých by měl znát detailnější (či lokálnější či speciální) informace. Informace předávají AI důležitý kontext, o kterém by mělo vědět při zpracovávání požadavků.. Mantinely Velmi důležité mohou být následné mantinely, bariéry či jiná omezení, které by AI mělo dodržovat. Dají se chápat jako součást a posílení již dříve postaveného Nastavení, ale zaměřené spíše na restriktivní argumenty, či podněty a příkazy. Vždy se však dají kreativními metodami obejít a tyto triky se model od modelu liší. Pro zaručení dodržení těchto mantinelů se aplikuje moderační vrstva s podobnými prompty, která však jen blokuje již generovaný výstup a případná generace se musí opakovat (třeba i s pozměněným vstupem). Striktnost promptů Masivní výhoda AI je, oproti jiným předchozím mechanismům pro generaci textu, hlavně v její schopnosti překladu jazykového kontextu a pochopení významu psaného textu i na základě lidsky typických nuancí. Prompty se díky tomu dají psát i vágně, obecně či neurčitě a přesto poté generují kvalitní výstupy. Lze také využít konverzačně nastavenou AI (ChatGPT) pro vytváření kvalitních promptů na základě dodaných požadavků. Naopak nevýhoda AI tkví v jejích možnostech generovat výstup mimo jasně specifikované rozsahy. AI vznikla jako neuronka, předpovídající co by chtěl uživatel napsat, nebo jak by chtěl pokračovat v textu a na stejném principu funguje dodnes. Je to neustále opakující se cyklus, generující nová slova na základě předchozích jen pomocí sítě pravděpodobnosti. Trénink AI probíhá v překladu souvisejících textů do souvisejících pravděpodobnostních poměrů
    1 point
×
×
  • Create New...