{"id":13058,"date":"2026-09-17T18:25:00","date_gmt":"2026-09-17T16:25:00","guid":{"rendered":"https:\/\/www.lukaswojcik.com\/blog\/?p=13058"},"modified":"2026-10-26T12:44:09","modified_gmt":"2026-10-26T11:44:09","slug":"tutorial-sprawdzanie-rozmiaru-chunku-i-nakladki-na-zestawie-testowym","status":"publish","type":"post","link":"https:\/\/www.lukaswojcik.com\/blog\/pl\/cloud-ai-pl\/tutorials-pl-cloud-ai-pl\/tutorial-sprawdzanie-rozmiaru-chunku-i-nakladki-na-zestawie-testowym\/","title":{"rendered":"Tutorial: Sprawdzanie rozmiaru chunku i nak\u0142adki na zestawie testowym"},"content":{"rendered":"<p>Chunk to fragment \u017ar\u00f3d\u0142a przechowywany jako jednostka wyszukiwania. Nak\u0142adanie oznacza, \u017ce s\u0105siednie chunki powtarzaj\u0105 cz\u0119\u015b\u0107 tego samego tekstu \u017ar\u00f3d\u0142owego. Rozmiar chunku wp\u0142ywa na ilo\u015b\u0107 przydatnych dowod\u00f3w i pobocznego tekstu przekazywanego do modelu odpowiedzi. Nie istnieje uniwersalnie najlepszy rozmiar ani stopie\u0144 nak\u0142adania. Por\u00f3wnanie wymaga sta\u0142ych \u017ar\u00f3de\u0142, sprawdzonych pyta\u0144 i jasno okre\u015blonego kryterium sukcesu.<\/p>\n<p>Ten poradnik ocenia znalezione dowody bez generowania odpowiedzi. Modele embeddingowe, budowa indeksu i wyszukiwanie nadal zu\u017cywaj\u0105 zasoby i mog\u0105 kosztowa\u0107. Przyk\u0142ad w Pythonie dzia\u0142a lokalnie na sztucznych listach wynik\u00f3w. Jest modu\u0142em oceny, a nie kompletnym systemem osadzania tekstu.<\/p>\n<figure class=\"lw-diagram\"><img decoding=\"async\" src=\"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/diagrams\/dia-13054-chunking-20261024-pl.png\" width=\"1120\" height=\"580\" loading=\"lazy\" alt=\"Cztery etapy oceny wyszukiwania\"><figcaption>Cztery etapy oceny wyszukiwania<\/figcaption><\/figure>\n<h2>Utrwalenie \u017ar\u00f3de\u0142 i oznaczenie dowod\u00f3w<\/h2>\n<p>Ka\u017cde pytanie otrzymuje identyfikator, tre\u015b\u0107, identyfikator niezmiennej wersji dokumentu oraz sprawdzony zakres dowodu. Zakres u\u017cywa pozycji znak\u00f3w Pythona: pocz\u0105tek w\u0142\u0105cznie, koniec wy\u0142\u0105cznie. Zapisany cytat musi dok\u0142adnie odpowiada\u0107 temu wycinkowi utrwalonego \u017ar\u00f3d\u0142a. Pozycje bajt\u00f3w, UTF-16 i token\u00f3w s\u0105 innymi uk\u0142adami wsp\u00f3\u0142rz\u0119dnych.<\/p>\n<p>Pozycje powstaj\u0105 po ekstrakcji i normalizacji tekstu, lecz przed podzia\u0142em. Ka\u017cdy chunk zachowuje identyfikator wersji dokumentu i zakres \u017ar\u00f3d\u0142owy. Wyszukiwanie samego cytatu mog\u0142oby uzna\u0107 identyczne zdanie z innego dokumentu lub innego miejsca. Dalsze zmiany tekstu wymagaj\u0105 wiarygodnego odwzorowania na te wsp\u00f3\u0142rz\u0119dne.<\/p>\n<p>Pytania syntetyczne mog\u0105 uzupe\u0142nia\u0107 pierwszy zestaw. Generowanie z ca\u0142ych dokument\u00f3w nie usuwa jednak podobie\u0144stwa do s\u0142ownictwa \u017ar\u00f3d\u0142a. R\u0119czna kontrola sprawdza mo\u017cliwo\u015b\u0107 udzielenia odpowiedzi, dow\u00f3d, parafraz\u0119 i pokrycie zada\u0144. Rzeczywiste zapytania dodaj\u0105 przydatne przypadki, z uwzgl\u0119dnieniem prywatno\u015bci i jako\u015bci oznacze\u0144. Pytania bez odpowiedzi lub wymagaj\u0105ce kilku dokument\u00f3w potrzebuj\u0105 osobnych regu\u0142. Poni\u017cszy przyk\u0142ad obejmuje jeden ci\u0105g\u0142y zakres dowodu na pytanie z odpowiedzi\u0105.<\/p>\n<h2>Wyb\u00f3r miary przed por\u00f3wnaniem<\/h2>\n<p><strong>Single-span hit@k<\/strong> oznacza tutaj udzia\u0142 pyta\u0144, kt\u00f3rych pe\u0142ny dow\u00f3d mie\u015bci si\u0119 w co najmniej jednym z pierwszych k chunk\u00f3w. <strong>Union hit@k<\/strong> dopuszcza kilka wynik\u00f3w z tej samej wersji dokumentu, je\u015bli ich zakresy pokrywaj\u0105 dow\u00f3d bez luk. Druga miara wykrywa rozdzielone dowody, ale nie potwierdza prawid\u0142owej rekonstrukcji przez model odpowiedzi.<\/p>\n<p><strong>Single-span MRR@k<\/strong> to \u015brednia odwrotno\u015b\u0107 pozycji pierwszego chunku zawieraj\u0105cego ca\u0142y dow\u00f3d, z zerem przy braku trafienia. Pe\u0142ne trafienie na pozycji 1 wnosi 1, na pozycji 2 warto\u015b\u0107 0,5, a na pozycji 4 warto\u015b\u0107 0,25. S\u0105 to jawnie zdefiniowane miary dla tego schematu oznacze\u0144. Recall og\u00f3lnie opisuje, jaka cz\u0119\u015b\u0107 wszystkich istotnych jednostek zosta\u0142a znaleziona. Trafienie w jedn\u0105 jednostk\u0119 nie oznacza odzyskania kilku wymaganych fragment\u00f3w dowodowych.<\/p>\n<p>Trzydzie\u015bci lub pi\u0119\u0107dziesi\u0105t pyta\u0144 mo\u017ce s\u0142u\u017cy\u0107 jako pilota\u017c, ale nie jest uniwersalnie wystarczaj\u0105c\u0105 pr\u00f3b\u0105. Zmiana jednego wyniku oznacza 3,33 punktu procentowego przy 30 pytaniach i 2 punkty przy 50. Ma\u0142e r\u00f3\u017cnice wymagaj\u0105 wi\u0119kszej liczby dowod\u00f3w, por\u00f3wna\u0144 dla poszczeg\u00f3lnych pyta\u0144 i w\u0142a\u015bciwej analizy niepewno\u015bci. Od\u0142o\u017cony zestaw testowy oddziela wielokrotne strojenie od niezale\u017cnej oceny.<\/p>\n<h2>Niewielki dzia\u0142aj\u0105cy modu\u0142 oceny<\/h2>\n<p>Plik korzysta wy\u0142\u0105cznie z biblioteki standardowej Pythona i uruchamia si\u0119 poleceniem <code>python3 evaluate.py<\/code>. Wyniki zachowuj\u0105 kolejno\u015b\u0107 wyszukiwania. Pusta lista oznacza zako\u0144czone wyszukiwanie bez wynik\u00f3w, natomiast brak listy jest b\u0142\u0119dem. Powt\u00f3rzone zakresy, nieprawid\u0142owe pozycje i cytaty niezgodne ze \u017ar\u00f3d\u0142em s\u0105 odrzucane.<\/p>\n<pre><code>def evaluate(questions, rankings, corpus, k=5):\n    # corpus keys identify immutable document versions.\n    if type(k) is not int or k &lt; 1 or not questions:\n        raise ValueError(&quot;positive k and nonempty questions required&quot;)\n    def valid_span(s):\n        doc, start, end = s\n        if (doc not in corpus or type(start) is not int\n                or type(end) is not int\n                or not 0 &lt;= start &lt; end &lt;= len(corpus[doc])):\n            raise ValueError(&quot;invalid source span&quot;)\n        return doc, start, end\n    hits, union_hits, reciprocal = 0, 0, 0.0\n    seen = set()\n    for q in questions:\n        if q[&quot;id&quot;] in seen:\n            raise ValueError(&quot;duplicate question id&quot;)\n        seen.add(q[&quot;id&quot;])\n        doc, start, end = valid_span(q[&quot;evidence&quot;])\n        if q[&quot;quote&quot;] != corpus[doc][start:end]:\n            raise ValueError(&quot;quote does not match the source span&quot;)\n        # A missing result is not silently treated as an empty ranking.\n        rows = rankings[q[&quot;id&quot;]]\n        if len({tuple(c) for c in rows}) != len(rows):\n            raise ValueError(&quot;duplicate retrieved span&quot;)\n        rows = [valid_span(c) for c in rows]\n        top = rows[:k]\n        rank = next((n for n, (d, a, b) in enumerate(top, 1)\n                     if d == doc and a &lt;= start and b &gt;= end), None)\n        if rank is not None:\n            hits += 1\n            reciprocal += 1 \/ rank\n        # Union coverage: adjacent intervals may cover a split sentence.\n        cursor = start\n        spans = sorted((max(a, start), min(b, end)) for d, a, b in top\n                       if d == doc and a &lt; end and b &gt; start)\n        for a, b in spans:\n            if a &gt; cursor:\n                break\n            cursor = max(cursor, b)\n        union_hits += cursor &gt;= end\n    n = len(questions)\n    return {&quot;single_hit_at_k&quot;: hits \/ n,\n            &quot;union_hit_at_k&quot;: union_hits \/ n,\n            &quot;single_mrr_at_k&quot;: reciprocal \/ n}\n\nif __name__ == &quot;__main__&quot;:\n    corpus = {&quot;manual-v1&quot;: &quot;AA BBBB CC&quot;, &quot;other-v1&quot;: &quot;AA BBBB CC&quot;}\n    questions = [{&quot;id&quot;: &quot;q1&quot;, &quot;evidence&quot;: [&quot;manual-v1&quot;, 3, 7],\n                  &quot;quote&quot;: &quot;BBBB&quot;}]\n    rankings = {&quot;q1&quot;: [(&quot;other-v1&quot;, 0, 10),\n                       (&quot;manual-v1&quot;, 0, 5),\n                       (&quot;manual-v1&quot;, 5, 10)]}\n    print(evaluate(questions, rankings, corpus, k=3))\n    # single_hit_at_k: 0.0, union_hit_at_k: 1.0, single_mrr_at_k: 0.0\n<\/code><\/pre>\n<p>Sztuczny przyk\u0142ad zwraca Single-span hit 0, Union hit 1 oraz Single-span MRR 0. Pierwszy wynik zawiera ten sam tekst w innym dokumencie i nie jest zaliczany. Kolejne dwa wyniki wsp\u00f3lnie pokrywaj\u0105 w\u0142a\u015bciwy zakres. Te warto\u015bci sprawdzaj\u0105 modu\u0142 oceny, a nie jako\u015b\u0107 modelu embeddingowego.<\/p>\n<h2>Pod\u0142\u0105czenie rzeczywistego wyszukiwania<\/h2>\n<p>Dla ka\u017cdej konfiguracji system dzieli ten sam utrwalony zbi\u00f3r, tworzy embeddingi, buduje osobny indeks i zwraca uporz\u0105dkowane zakresy \u017ar\u00f3d\u0142owe dla ka\u017cdego pytania. Adapter musi odwzorowa\u0107 ka\u017cdy znaleziony chunk na pierwotny zakres. Przyk\u0142ad nie dostarcza tokenizera, mechanizmu dzielenia, klienta embedding\u00f3w ani indeksu wyszukiwania.<\/p>\n<p>Cztery przyk\u0142adowe rozmiary: 256, 512, 1024 i 2048 token\u00f3w, ka\u017cdy bez nak\u0142adania lub z nak\u0142adaniem 20%, daj\u0105 osiem konfiguracji. Rozmiary musz\u0105 mie\u015bci\u0107 si\u0119 w limitach wybranego modelu i tokenizera. Ciche obci\u0119cie wej\u015bcia mo\u017ce sprawi\u0107, \u017ce wektor reprezentuje mniej tekstu ni\u017c zapisany chunk. Takie obcinanie wymaga wy\u0142\u0105czenia, je\u015bli jest to obs\u0142ugiwane, albo wykrycia i uznania konfiguracji za nieudan\u0105.<\/p>\n<p>Wersja modelu, ustawienia dla pytania i dokumentu, ekstrakcja, funkcja podobie\u0144stwa, filtry i parametry wyszukiwania pozostaj\u0105 sta\u0142e. Embeddingi pyta\u0144 mo\u017cna wykorzysta\u0107 ponownie przy identycznych pe\u0142nych wej\u015bciach i ustawieniach modelu. Ta sama zasada dotyczy dokument\u00f3w. Zmiana modelu wymaga nowego por\u00f3wnania.<\/p>\n<h2>Por\u00f3wnanie jako\u015bci, kontekstu i kosztu<\/h2>\n<p>Przy sta\u0142ym k wi\u0119ksze chunki mog\u0105 przekaza\u0107 wi\u0119cej tekstu. Iloczyn <code>k \u00d7 rozmiar chunku<\/code> to tylko nominalna granica dla pe\u0142nych fragment\u00f3w. Kr\u00f3tkie ko\u0144c\u00f3wki, dodatkowe opisy, usuwanie powt\u00f3rze\u0144 i obcinanie zmieniaj\u0105 d\u0142ugo\u015b\u0107 promptu. Por\u00f3wnanie ze sta\u0142ym bud\u017cetem liczy gotowy kontekst tokenizerem modelu odpowiedzi i stosuje tak\u0105 sam\u0105 regu\u0142\u0119 pakowania dla ka\u017cdej konfiguracji.<\/p>\n<p>Dla d\u0142ugiego tekstu dzielonego sta\u0142ymi oknami mno\u017cnik liczby token\u00f3w przy udziale nak\u0142adania r zbli\u017ca si\u0119 do <code>1 \/ (1 - r)<\/code>. Przy r = 0,20 daje to 1,25: oko\u0142o 25% dodatkowych token\u00f3w, a nie 20%. Cztery przebiegi bez nak\u0142adania i cztery z nak\u0142adaniem 20% dla dw\u00f3ch milion\u00f3w token\u00f3w daj\u0105 wi\u0119c oko\u0142o 18 milion\u00f3w token\u00f3w dokument\u00f3w do osadzenia. Granice dokument\u00f3w i zaokr\u0105glenia zmieniaj\u0105 dok\u0142adny wynik. Embeddingi pyta\u0144, indeks, przechowywanie i praca przy ocenie to dodatkowe koszty.<\/p>\n<p>Przydatna tabela wynik\u00f3w obejmuje konfiguracj\u0119, liczb\u0119 pyta\u0144, obie miary trafie\u0144, MRR, rzeczywiste tokeny kontekstu, tokeny embedding\u00f3w, rozmiar indeksu i op\u00f3\u017anienie. Ten poradnik nie przedstawia zmierzonej krzywej jako\u015bci. Rekomendacji 512 token\u00f3w nie da si\u0119 uzasadni\u0107 bez identyfikowalnego zbioru, oznacze\u0144 i wynik\u00f3w przebiegu. Podzia\u0142 wed\u0142ug struktury jest kolejnym kandydatem, a nie automatycznym zwyci\u0119zc\u0105.<\/p>\n<h2>Osobna ocena ca\u0142ego procesu odpowiedzi<\/h2>\n<p>Przy ponownym rankingowaniu pokrycie dowod\u00f3w ma znaczenie zar\u00f3wno w zbiorze kandydat\u00f3w, jak i po zmianie kolejno\u015bci oraz spakowaniu kontekstu. Wysoki wynik pierwszego etapu nie gwarantuje zachowania dowodu w ko\u0144cowych pi\u0119ciu chunkach. Gotowa odpowied\u017a wymaga r\u00f3wnie\u017c sprawdzenia warunk\u00f3w, \u017ar\u00f3de\u0142 i niepopartych twierdze\u0144.<\/p>\n<p>Ponowna ocena nast\u0119puje po istotnych zmianach dokument\u00f3w, pyta\u0144, modeli lub przetwarzania. Ani coroczny termin, ani z g\u00f3ry ustalony czas kontroli nie gwarantuje pokrycia. Wersjonowane pytania i wyniki dla ka\u017cdego zapytania u\u0142atwiaj\u0105 wykrywanie pogorszenia.<\/p>\n<h2>\u0179r\u00f3d\u0142a<\/h2>\n<ul>\n<li><a href=\"https:\/\/www.sbert.net\/docs\/package_reference\/sentence_transformer\/evaluation.html\">Sentence Transformers: miary oceny<\/a><\/li>\n<li><a href=\"https:\/\/www.trychroma.com\/research\/evaluating-chunking\">Chroma: ocena strategii dzielenia tekstu<\/a><\/li>\n<li><a href=\"https:\/\/arxiv.org\/abs\/2608.16586\">Caspari i wsp\u00f3\u0142autorzy: wielokryterialna ocena dzielenia tekstu<\/a><\/li>\n<li><a href=\"https:\/\/docs.cloud.google.com\/vertex-ai\/generative-ai\/docs\/embeddings\/get-text-embeddings\">Google Cloud: embeddingi tekstu i obcinanie<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Rozmiar chunku i nak\u0142adanie s\u0105 oceniane na sprawdzonych zakresach \u017ar\u00f3d\u0142owych. Dzia\u0142aj\u0105cy przyk\u0142ad Pythona rozdziela pojedyncze trafienie od \u0142\u0105cznego pokrycia; por\u00f3wnanie uwzgl\u0119dnia bud\u017cet kontekstu, niepewno\u015b\u0107 pr\u00f3by i koszt embedding\u00f3w.<\/p>\n","protected":false},"author":1,"featured_media":28489,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[92640],"tags":[92343,92346,92238],"class_list":["post-13058","post","type-post","status-publish","format-standard","hentry","category-tutorials-pl-cloud-ai-pl","tag-artificial-intelligence-pl","tag-llm-pl","tag-tutorial-pl"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Tutorial: Sprawdzanie rozmiaru chunku i nak\u0142adki na zestawie testowym | Lukas Wojcik<\/title>\n<meta name=\"description\" content=\"Budowa ma\u0142ego zestawu testowego bez przecieku, pomiar trafno\u015bci w pierwszych k wynikach dla rozmiar\u00f3w chunku i nak\u0142adek oraz odczyt krzywej.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.lukaswojcik.com\/blog\/pl\/cloud-ai-pl\/tutorials-pl-cloud-ai-pl\/tutorial-sprawdzanie-rozmiaru-chunku-i-nakladki-na-zestawie-testowym\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Tutorial: Sprawdzanie rozmiaru chunku i nak\u0142adki na zestawie testowym | Lukas Wojcik\" \/>\n<meta property=\"og:description\" content=\"Budowa ma\u0142ego zestawu testowego bez przecieku, pomiar trafno\u015bci w pierwszych k wynikach dla rozmiar\u00f3w chunku i nak\u0142adek oraz odczyt krzywej.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.lukaswojcik.com\/blog\/pl\/cloud-ai-pl\/tutorials-pl-cloud-ai-pl\/tutorial-sprawdzanie-rozmiaru-chunku-i-nakladki-na-zestawie-testowym\/\" \/>\n<meta property=\"og:site_name\" content=\"Lukas Wojcik - Blog\" \/>\n<meta property=\"article:published_time\" content=\"2026-09-17T16:25:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-10-26T11:44:09+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/10\/hero-13058-chunking-20261024-dark.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Lukas Wojcik\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Lukas Wojcik\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/cloud-ai-pl\\\/tutorials-pl-cloud-ai-pl\\\/tutorial-sprawdzanie-rozmiaru-chunku-i-nakladki-na-zestawie-testowym\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/cloud-ai-pl\\\/tutorials-pl-cloud-ai-pl\\\/tutorial-sprawdzanie-rozmiaru-chunku-i-nakladki-na-zestawie-testowym\\\/\"},\"author\":{\"name\":\"Lukas Wojcik\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"headline\":\"Tutorial: Sprawdzanie rozmiaru chunku i nak\u0142adki na zestawie testowym\",\"datePublished\":\"2026-09-17T16:25:00+00:00\",\"dateModified\":\"2026-10-26T11:44:09+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/cloud-ai-pl\\\/tutorials-pl-cloud-ai-pl\\\/tutorial-sprawdzanie-rozmiaru-chunku-i-nakladki-na-zestawie-testowym\\\/\"},\"wordCount\":1101,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"image\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/cloud-ai-pl\\\/tutorials-pl-cloud-ai-pl\\\/tutorial-sprawdzanie-rozmiaru-chunku-i-nakladki-na-zestawie-testowym\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/lw-flux3-20261031\\\/hero-13058.png\",\"keywords\":[\"Artificial Intelligence\",\"LLM\",\"Tutorial\"],\"articleSection\":[\"Tutorials\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/cloud-ai-pl\\\/tutorials-pl-cloud-ai-pl\\\/tutorial-sprawdzanie-rozmiaru-chunku-i-nakladki-na-zestawie-testowym\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/cloud-ai-pl\\\/tutorials-pl-cloud-ai-pl\\\/tutorial-sprawdzanie-rozmiaru-chunku-i-nakladki-na-zestawie-testowym\\\/\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/cloud-ai-pl\\\/tutorials-pl-cloud-ai-pl\\\/tutorial-sprawdzanie-rozmiaru-chunku-i-nakladki-na-zestawie-testowym\\\/\",\"name\":\"Tutorial: Sprawdzanie rozmiaru chunku i nak\u0142adki na zestawie testowym | Lukas Wojcik\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/cloud-ai-pl\\\/tutorials-pl-cloud-ai-pl\\\/tutorial-sprawdzanie-rozmiaru-chunku-i-nakladki-na-zestawie-testowym\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/cloud-ai-pl\\\/tutorials-pl-cloud-ai-pl\\\/tutorial-sprawdzanie-rozmiaru-chunku-i-nakladki-na-zestawie-testowym\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/lw-flux3-20261031\\\/hero-13058.png\",\"datePublished\":\"2026-09-17T16:25:00+00:00\",\"dateModified\":\"2026-10-26T11:44:09+00:00\",\"description\":\"Budowa ma\u0142ego zestawu testowego bez przecieku, pomiar trafno\u015bci w pierwszych k wynikach dla rozmiar\u00f3w chunku i nak\u0142adek oraz odczyt krzywej.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/cloud-ai-pl\\\/tutorials-pl-cloud-ai-pl\\\/tutorial-sprawdzanie-rozmiaru-chunku-i-nakladki-na-zestawie-testowym\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/cloud-ai-pl\\\/tutorials-pl-cloud-ai-pl\\\/tutorial-sprawdzanie-rozmiaru-chunku-i-nakladki-na-zestawie-testowym\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/cloud-ai-pl\\\/tutorials-pl-cloud-ai-pl\\\/tutorial-sprawdzanie-rozmiaru-chunku-i-nakladki-na-zestawie-testowym\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/lw-flux3-20261031\\\/hero-13058.png\",\"contentUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/lw-flux3-20261031\\\/hero-13058.png\",\"width\":1200,\"height\":630,\"caption\":\"Tutorial: Sprawdzanie rozmiaru chunku i nak\u0142adki na zestawie testowym\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/cloud-ai-pl\\\/tutorials-pl-cloud-ai-pl\\\/tutorial-sprawdzanie-rozmiaru-chunku-i-nakladki-na-zestawie-testowym\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Tutorial: Sprawdzanie rozmiaru chunku i nak\u0142adki na zestawie testowym\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/\",\"name\":\"Lukas Wojcik - Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\",\"name\":\"Lukas Wojcik\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\",\"contentUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\",\"width\":424,\"height\":636,\"caption\":\"Lukas Wojcik\"},\"logo\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\"},\"sameAs\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Tutorial: Sprawdzanie rozmiaru chunku i nak\u0142adki na zestawie testowym | Lukas Wojcik","description":"Budowa ma\u0142ego zestawu testowego bez przecieku, pomiar trafno\u015bci w pierwszych k wynikach dla rozmiar\u00f3w chunku i nak\u0142adek oraz odczyt krzywej.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.lukaswojcik.com\/blog\/pl\/cloud-ai-pl\/tutorials-pl-cloud-ai-pl\/tutorial-sprawdzanie-rozmiaru-chunku-i-nakladki-na-zestawie-testowym\/","og_locale":"en_US","og_type":"article","og_title":"Tutorial: Sprawdzanie rozmiaru chunku i nak\u0142adki na zestawie testowym | Lukas Wojcik","og_description":"Budowa ma\u0142ego zestawu testowego bez przecieku, pomiar trafno\u015bci w pierwszych k wynikach dla rozmiar\u00f3w chunku i nak\u0142adek oraz odczyt krzywej.","og_url":"https:\/\/www.lukaswojcik.com\/blog\/pl\/cloud-ai-pl\/tutorials-pl-cloud-ai-pl\/tutorial-sprawdzanie-rozmiaru-chunku-i-nakladki-na-zestawie-testowym\/","og_site_name":"Lukas Wojcik - Blog","article_published_time":"2026-09-17T16:25:00+00:00","article_modified_time":"2026-10-26T11:44:09+00:00","og_image":[{"width":1200,"height":630,"url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/10\/hero-13058-chunking-20261024-dark.png","type":"image\/png"}],"author":"Lukas Wojcik","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Lukas Wojcik","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/cloud-ai-pl\/tutorials-pl-cloud-ai-pl\/tutorial-sprawdzanie-rozmiaru-chunku-i-nakladki-na-zestawie-testowym\/#article","isPartOf":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/cloud-ai-pl\/tutorials-pl-cloud-ai-pl\/tutorial-sprawdzanie-rozmiaru-chunku-i-nakladki-na-zestawie-testowym\/"},"author":{"name":"Lukas Wojcik","@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"headline":"Tutorial: Sprawdzanie rozmiaru chunku i nak\u0142adki na zestawie testowym","datePublished":"2026-09-17T16:25:00+00:00","dateModified":"2026-10-26T11:44:09+00:00","mainEntityOfPage":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/cloud-ai-pl\/tutorials-pl-cloud-ai-pl\/tutorial-sprawdzanie-rozmiaru-chunku-i-nakladki-na-zestawie-testowym\/"},"wordCount":1101,"commentCount":0,"publisher":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"image":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/cloud-ai-pl\/tutorials-pl-cloud-ai-pl\/tutorial-sprawdzanie-rozmiaru-chunku-i-nakladki-na-zestawie-testowym\/#primaryimage"},"thumbnailUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/lw-flux3-20261031\/hero-13058.png","keywords":["Artificial Intelligence","LLM","Tutorial"],"articleSection":["Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.lukaswojcik.com\/blog\/pl\/cloud-ai-pl\/tutorials-pl-cloud-ai-pl\/tutorial-sprawdzanie-rozmiaru-chunku-i-nakladki-na-zestawie-testowym\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/cloud-ai-pl\/tutorials-pl-cloud-ai-pl\/tutorial-sprawdzanie-rozmiaru-chunku-i-nakladki-na-zestawie-testowym\/","url":"https:\/\/www.lukaswojcik.com\/blog\/pl\/cloud-ai-pl\/tutorials-pl-cloud-ai-pl\/tutorial-sprawdzanie-rozmiaru-chunku-i-nakladki-na-zestawie-testowym\/","name":"Tutorial: Sprawdzanie rozmiaru chunku i nak\u0142adki na zestawie testowym | Lukas Wojcik","isPartOf":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/cloud-ai-pl\/tutorials-pl-cloud-ai-pl\/tutorial-sprawdzanie-rozmiaru-chunku-i-nakladki-na-zestawie-testowym\/#primaryimage"},"image":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/cloud-ai-pl\/tutorials-pl-cloud-ai-pl\/tutorial-sprawdzanie-rozmiaru-chunku-i-nakladki-na-zestawie-testowym\/#primaryimage"},"thumbnailUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/lw-flux3-20261031\/hero-13058.png","datePublished":"2026-09-17T16:25:00+00:00","dateModified":"2026-10-26T11:44:09+00:00","description":"Budowa ma\u0142ego zestawu testowego bez przecieku, pomiar trafno\u015bci w pierwszych k wynikach dla rozmiar\u00f3w chunku i nak\u0142adek oraz odczyt krzywej.","breadcrumb":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/cloud-ai-pl\/tutorials-pl-cloud-ai-pl\/tutorial-sprawdzanie-rozmiaru-chunku-i-nakladki-na-zestawie-testowym\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.lukaswojcik.com\/blog\/pl\/cloud-ai-pl\/tutorials-pl-cloud-ai-pl\/tutorial-sprawdzanie-rozmiaru-chunku-i-nakladki-na-zestawie-testowym\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/cloud-ai-pl\/tutorials-pl-cloud-ai-pl\/tutorial-sprawdzanie-rozmiaru-chunku-i-nakladki-na-zestawie-testowym\/#primaryimage","url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/lw-flux3-20261031\/hero-13058.png","contentUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/lw-flux3-20261031\/hero-13058.png","width":1200,"height":630,"caption":"Tutorial: Sprawdzanie rozmiaru chunku i nak\u0142adki na zestawie testowym"},{"@type":"BreadcrumbList","@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/cloud-ai-pl\/tutorials-pl-cloud-ai-pl\/tutorial-sprawdzanie-rozmiaru-chunku-i-nakladki-na-zestawie-testowym\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.lukaswojcik.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Tutorial: Sprawdzanie rozmiaru chunku i nak\u0142adki na zestawie testowym"}]},{"@type":"WebSite","@id":"https:\/\/www.lukaswojcik.com\/blog\/#website","url":"https:\/\/www.lukaswojcik.com\/blog\/","name":"Lukas Wojcik - Blog","description":"","publisher":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.lukaswojcik.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9","name":"Lukas Wojcik","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg","url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg","contentUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg","width":424,"height":636,"caption":"Lukas Wojcik"},"logo":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg"},"sameAs":["https:\/\/www.lukaswojcik.com\/blog"]}]}},"_links":{"self":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/13058","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/comments?post=13058"}],"version-history":[{"count":6,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/13058\/revisions"}],"predecessor-version":[{"id":27013,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/13058\/revisions\/27013"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/media\/28489"}],"wp:attachment":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/media?parent=13058"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/categories?post=13058"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/tags?post=13058"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}