CoolFace
Datasetpublic

administraktor/hrvatski-dataset

Hrvatski dataset Širok hrvatski korpus za jezičnu prilagodbu i fino ugađanje malih jezičnih modela, osobito Gemma 3 1B, Gemma 3 4B te kompatibilnih Gemma 4 modela. Skup nije samo zbirka kratkih uputa. Sastoji se od dva komplementarna dijela: cpt: 22,5 milijuna riječi književnog, enciklopedijskog i autentičnog govornog hrvatskog za continued pretraining sft: 47.588 razgovora za praćenje uputa, prirodne odgovore, dulji tekst, književni nastavak i razgovorne replike Za najbolji… See the full description on the dataset page: https://huggingface.co/datasets/administraktor/hrvatski-dataset.

sourceHugging Faceotherupdated 2mo agoView on Hugging Face
0likes51downloads
Dataset Card

Hrvatski dataset

Širok hrvatski korpus za jezičnu prilagodbu i fino ugađanje malih jezičnih modela, osobito Gemma 3 1B, Gemma 3 4B te kompatibilnih Gemma 4 modela.

Skup nije samo zbirka kratkih uputa. Sastoji se od dva komplementarna dijela:

  • —cpt: 22,5 milijuna riječi književnog, enciklopedijskog i autentičnog govornog hrvatskog za continued pretraining
  • —sft: 47.588 razgovora za praćenje uputa, prirodne odgovore, dulji tekst, književni nastavak i razgovorne replike

Za najbolji rezultat model se prvo prilagođava na cpt, a zatim fino ugađa na sft. Ako želite samo jedan jednostavan trening na postojećem Instruct modelu, upotrijebite konfiguraciju sft.

Veličina i struktura

Continued pretraining

PodjelaZapisaRiječi
train50.81122.529.479
validation1.583727.005
test1.161519.989
cpt-small train5.0312.229.365

Zapisi koriste standardni jezično-modelski format:

json
{"text":"Dugi povezani hrvatski ulomak..."}

cpt-small je deterministički uzorak punog train skupa namijenjen provjeri postavki, memorije i brzine prije punog treninga.

Conversational SFT

PodjelaZapisa
train47.588
validation2.550
test2.539
json
{
  "messages": [
    {"role":"user","content":"Napiši prirodan hrvatski odgovor."},
    {"role":"assistant","content":"Naravno. Kako vam mogu pomoći?"}
  ]
}

SFT train sadrži:

Izvor/vrstaZapisa
sintetičke hrvatske upute45.000
autentične susjedne govorne replike1.002
književni nastavci840
dulji enciklopedijski odgovori746

U podacima nema ručno umetnutih <bos>, <start_of_turn> ni <end_of_turn> oznaka. Chat-predložak mora primijeniti tokenizer odabranoga modela. Standardna uloga assistant pritom se za Gemmu mapira na ulogu model.

Preporučeni način treniranja

Najjednostavnije: samo SFT

Ovo je preporučeni početak za Unsloth Studio:

  1. 1.Odaberite Gemma Instruct/IT model.
  2. 2.Odaberite konfiguraciju sft.
  3. 3.Koristite messages kao razgovorni stupac.
  4. 4.Uključite loss samo na odgovorima asistenta, ako Studio nudi tu opciju.
  5. 5.Počnite s jednom epohom i pratite validation loss.

Razumne početne vrijednosti za Gemma 3 1B:

PostavkaPočetna vrijednost
metodaQLoRA/LoRA
epohe1
maksimalna duljina1.024 tokena
learning rate1e-4
LoRA rank16 ili 32
LoRA alpha32
warmup ratio0,03
evaluacijauključena

Najbolja jezična prilagodba: CPT pa SFT

  1. 1.Počnite Base checkpointom, ne Instruct checkpointom.
  2. 2.Prvo provjerite postavke na cpt-small.
  3. 3.Pokrenite jednu epohu na punom cpt skupu uz maksimalnu duljinu od 2.048 tokena.
  4. 4.Dobiveni model zatim fino ugodite na konfiguraciji sft.
  5. 5.Chat-predložak dodajte tek u SFT fazi.

Za CPT je puni fine-tuning 1B modela kvalitetniji ako imate dovoljno memorije. Ako koristite LoRA, krenite s rankom 64, svim linearnim slojevima i learning rateom između 5e-5 i 1e-4. Za full fine-tuning krenite konzervativnije, primjerice oko 2e-5. To su početne vrijednosti; validation loss ima prednost pred fiksnim receptom.

Nemojte trenirati na validation ili test podjeli. Dokumenti su podijeljeni na razini izvornog djela, članka ili parlamentarne sjednice, pa susjedni odlomci istog izvora ne cure među podjelama.

Učitavanje

python
from datasets import load_dataset

sft = load_dataset("administraktor/hrvatski-dataset", "sft")
cpt = load_dataset("administraktor/hrvatski-dataset", "cpt")
cpt_small = load_dataset("administraktor/hrvatski-dataset", "cpt-small")

Lokalno:

python
from datasets import load_dataset

sft = load_dataset(
    "json",
    data_files={
        "train": "data/sft/train.jsonl",
        "validation": "data/sft/validation.jsonl",
        "test": "data/sft/test.jsonl",
    },
)

Izvori

Korpus je izveden isključivo iz izvora s navedenim uvjetima ponovne uporabe:

  • —Croatian Wikisource 20231201.hr: književnost, drama, povijesni tekstovi i stariji jezični registri
  • —Croatian Wikipedia 20231101.hr: moderna objašnjenja i tematska širina
  • —ParlaMint-HR 3.0: autentični transkripti hrvatskoga parlamentarnog govora
  • —lokalni sintetički Hrvatski skup uputa v1: praktične upute i asistentski zadaci

Detaljni URL-ovi, verzije, izvorni kontrolni zbrojevi i licence nalaze se u source_manifest.json. Svaki redak skupa ima odgovarajući zapis u data/provenance/ s izvornim dokumentom, naslovom, URL-om, licencom, vrstom primjera i SHA-256 otiskom.

Licence i atribucija

Ovo je skup mješovitih licenci, zato metapodatak repozitorija koristi license: other.

  • —Wikimedia sadržaj: CC BY-SA 3.0 / GFDL; pojedina djela mogu biti u javnom dobru
  • —ParlaMint-HR 3.0: CC BY 4.0
  • —lokalne sintetičke upute: MIT
  • —skripte za izgradnju i validaciju u ovom repozitoriju: MIT

Uvjeti se primjenjuju po izvornom zapisu navedenom u provenance datotekama. Korisnik je odgovoran za poštivanje atribucije, ShareAlike zahtjeva i uvjeta modela koji fino ugađa. Ovaj opis nije pravni savjet.

Čišćenje i provjera kvalitete

Izgradnja uključuje:

  • —Unicode NFC normalizaciju i UTF-8 izlaz
  • —uklanjanje HTML/wiki ostataka i ponovljenih redaka
  • —heurističko odbijanje nehrvatskih, ćiriličnih i prekratkih dokumenata
  • —povezane ulomke od približno 160 do 760 riječi
  • —točnu normaliziranu deduplikaciju
  • —determinističku dokumentnu podjelu 96/2/2
  • —line-aligned provenance za svaki zapis
  • —provjeru izmjene user/assistant uloga
  • —provjeru neželjenih chat-tokena
  • —provjeru SHA-256 veze između podataka i provenijencije

Rezultat pune validacije: 0 pogrešaka.

bash
python3 validate_broad_dataset.py
sha256sum -c checksums.sha256

validation_report.json sadrži broj zapisa, riječi, raspodjelu izvora, duljine i kontrolne zbrojeve. cpt.schema.json i sft.schema.json opisuju stroge formate zapisa.

Ograničenja

  • —Književni dio namjerno sadrži arhaičan pravopis, čakavske i dubrovačke književne oblike. To povećava stilsku širinu, ali nije uvijek suvremeni standard.
  • —Parlamentarni govor poboljšava duge govorne konstrukcije i replike, ali može prenijeti političku pristranost, retoriku i transkripcijske pogreške.
  • —Hrvatska Wikipedija može sadržavati činjenične pogreške, zastarjele podatke i uredničke pristranosti.
  • —Većina kratkih instrukcijskih primjera sintetička je. Autentični i dulji primjeri dodani su radi prirodnijeg ritma, ali ne predstavljaju svaki dijalekt ili svakodnevnu situaciju.
  • —Javni parlamentarni izvori mogu sadržavati imena javnih osoba.

Fino ugađeni model treba zasebno evaluirati na suvremenom standardnom hrvatskom, duljem pisanju, razgovoru, dijalektima, halucinacijama i sigurnosti.

Ponovna izgradnja

bash
python3 download_sources.py
pip install pyarrow
python3 build_broad_dataset.py
python3 validate_broad_dataset.py

Izgradnja je deterministička uz seed 20260727.

Autor

Skup pripremio administraktor za hrvatsku zajednicu jezičnih modela i llm.com.hr.

Citiranje izvora

Za ParlaMint-HR citirajte izvorni ParlaMint 3.0 zapis:

bibtex
@misc{11356_1486,
  title = {Multilingual comparable corpora of parliamentary debates ParlaMint 3.0},
  url = {http://hdl.handle.net/11356/1486},
  year = {2023}
}

Za Wikimedia podatke navedite Wikimedia Foundation dumps te URL i licencu izvornog dokumenta iz provenance zapisa.