# 2. Uzorkovanje Podataka {{#include ../../banners/hacktricks-training.md}} ## **Uzorkovanje Podataka** **Uzorkovanje Podataka** je ključni proces u pripremi podataka za obučavanje velikih jezičkih modela (LLM) poput GPT-a. Uključuje organizovanje tekstualnih podataka u ulazne i ciljne sekvence koje model koristi da nauči kako da predviđa sledeću reč (ili token) na osnovu prethodnih reči. Pravilno uzorkovanje podataka osigurava da model efikasno hvata jezičke obrasce i zavisnosti. > [!TIP] > Cilj ove druge faze je vrlo jednostavan: **Uzorkujte ulazne podatke i pripremite ih za fazu obučavanja obično razdvajanjem skupa podataka na rečenice određene dužine i generisanjem očekivanog odgovora.** ### **Zašto je Uzorkovanje Podataka Važno** LLM-ovi kao što je GPT obučavaju se da generišu ili predviđaju tekst razumevanjem konteksta koji pružaju prethodne reči. Da bi se to postiglo, obučeni podaci moraju biti strukturirani na način da model može naučiti odnos između sekvenci reči i njihovih sledećih reči. Ovaj strukturirani pristup omogućava modelu da generalizuje i generiše koherentan i kontekstualno relevantan tekst. ### **Ključni Koncepti u Uzorkovanju Podataka** 1. **Tokenizacija:** Razbijanje teksta na manje jedinice nazvane tokeni (npr. reči, podreči ili karakteri). 2. **Dužina Sekvence (max_length):** Broj tokena u svakoj ulaznoj sekvenci. 3. **Klizni Prozor:** Metod za kreiranje preklapajućih ulaznih sekvenci pomeranjem prozora preko tokenizovanog teksta. 4. **Korak:** Broj tokena koje klizni prozor pomera unapred da bi kreirao sledeću sekvencu. ### **Primer Korak po Korak** Hajde da prođemo kroz primer kako bismo ilustrovali uzorkovanje podataka. **Primer Teksta** ```arduino "Lorem ipsum dolor sit amet, consectetur adipiscing elit." ``` **Tokenizacija** Pretpostavimo da koristimo **osnovni tokenizator** koji deli tekst na reči i interpunkcijske znakove: ```vbnet Tokens: ["Lorem", "ipsum", "dolor", "sit", "amet,", "consectetur", "adipiscing", "elit."] ``` **Parametri** - **Maksimalna dužina sekvence (max_length):** 4 tokena - **Korak kliznog prozora:** 1 token **Kreiranje ulaznih i ciljanih sekvenci** 1. **Pristup kliznom prozoru:** - **Ulazne sekvence:** Svaka ulazna sekvenca se sastoji od `max_length` tokena. - **Ciljane sekvence:** Svaka ciljana sekvenca se sastoji od tokena koji odmah slede odgovarajuću ulaznu sekvencu. 2. **Generisanje sekvenci:**
Pozicija prozora | Ulazna sekvenca | Ciljana sekvenca |
---|---|---|
1 | ["Lorem", "ipsum", "dolor", "sit"] | ["ipsum", "dolor", "sit", "amet,"] |
2 | ["ipsum", "dolor", "sit", "amet,"] | ["dolor", "sit", "amet,", "consectetur"] |
3 | ["dolor", "sit", "amet,", "consectetur"] | ["sit", "amet,", "consectetur", "adipiscing"] |
4 | ["sit", "amet,", "consectetur", "adipiscing"] | ["amet,", "consectetur", "adipiscing", "elit."] |
Pozicija tokena | Token |
---|---|
1 | Lorem |
2 | ipsum |
3 | dolor |
4 | sit |
5 | amet, |
6 | consectetur |
7 | adipiscing |
8 | elit. |