{
  "version": "https://jsonfeed.org/version/1",
  "title": "gruszka.dev",
  "home_page_url": "https://gruszka.dev",
  "feed_url": "https://gruszka.dev/tag-jezykoznawstwo.json",
  "description": "Things I would like to share",
  "items": [
    {
      "id": "https://gruszka.dev/cechy-jezykowe-a-llm.html",
      "url": "https://gruszka.dev/cechy-jezykowe-a-llm.html",
      "title": "Cechy językowe - co musisz wiedzieć, zanim zrozumiesz, jak myśli LLM",
      "content_html": "<p>LLM (Large Language Models, czyli takie ChatGPT, Claude, Gemini i spółka) jest już z nami od jakiegoś czasu i stwierdziłem, że zacznę głębiej wchodzić w ten temat i pojawiło się jedno wielkie pytanie: <strong>ale jak to w ogóle działa, że model &quot;rozumie&quot; język?</strong> Bo przecież pod spodem to tylko &quot;matematyka i statystyka&quot;, prawda? No... tak i nie ;-)</p>\n<p>I wtedy wpadłem na lingwistykę. I okazało się, że żeby naprawdę zrozumieć, co LLM robi z językiem, trzeba najpierw zrozumieć, z czego ten język się składa. A że programista próbujący czytać o lingwistyce to dość zabawny obrazek, to pomyślałem: <strong>podzielę się tym z wami</strong> ;-)</p>\n<p>To jest <strong>pierwszy wpis z serii</strong>, w której będziemy przeglądać różne poziomy analizy języka i patrzeć, jak to wszystko łączy się z LLM. W dzisiejszym wpisie zbudujemy fundament - poznamy pięć głównych warstw języka i zobaczymy, dlaczego każda z nich jest ważna dla modeli językowych.</p>\n<hr />\n<h2><a href=\"#język-jak-cebulka---warstwa-na-warstwie\" aria-hidden=\"true\" class=\"anchor\" id=\"język-jak-cebulka---warstwa-na-warstwie\"></a>Język jak cebulka - warstwa na warstwie</h2>\n<p>Zanim wejdziemy w szczegóły, wyobraźcie sobie język jako taką... cebulę. Albo tort warstwowy, jeśli wolicie słodkie metafory :D</p>\n<p>Każda warstwa to inny poziom, na którym język &quot;działa&quot;. Od najniższej - dźwięków - do najwyższej - tego, co <em>naprawdę</em> chcieliśmy powiedzieć, nawet jeśli powiedzieliśmy coś zupełnie innego.</p>\n<pre class=\"marmite-code\"><code class=\"marmite-code-inner language-mermaid\">graph TD\n    A[&quot;🔊 Fonetyka i fonologia&lt;br/&gt;&lt;i&gt;dźwięki i system dźwięków&lt;/i&gt;&quot;] --&gt; B[&quot;🧩 Morfologia&lt;br/&gt;&lt;i&gt;budowa słów&lt;/i&gt;&quot;]\n    B --&gt; C[&quot;📐 Składnia&lt;br/&gt;&lt;i&gt;budowa zdań&lt;/i&gt;&quot;]\n    C --&gt; D[&quot;💡 Semantyka&lt;br/&gt;&lt;i&gt;znaczenie&lt;/i&gt;&quot;]\n    D --&gt; E[&quot;🎭 Pragmatyka&lt;br/&gt;&lt;i&gt;znaczenie w kontekście&lt;/i&gt;&quot;]\n    \n    style A fill:#ff9999,color:#000\n    style B fill:#ffcc99,color:#000\n    style C fill:#ffff99,color:#000\n    style D fill:#99ff99,color:#000\n    style E fill:#9999ff,color:#000\n</code></pre>\n<p>Pięć warstw, pięć sposobów, na jakie język jest &quot;analizowany&quot;. I uwaga - <strong>LLM musi sobie z każdym z tych poziomów radzić</strong>, żeby wydawać się sensownym rozmówcą. Oczywiście nie robi tego świadomie - ale struktury, których uczy się w trakcie treningu, jakoś te warstwy &quot;łapią&quot;.</p>\n<div class=\"markdown-alert markdown-alert-note\">\n<p class=\"markdown-alert-title\">Note</p>\n<p><strong>Pięć warstw języka w pigułce:</strong></p>\n<ol>\n<li><strong>Fonetyka i fonologia</strong> - dźwięki i jak są zorganizowane w system</li>\n<li><strong>Morfologia</strong> - jak słowa są budowane z mniejszych kawałków</li>\n<li><strong>Składnia</strong> - zasady porządku słów w zdaniu</li>\n<li><strong>Semantyka</strong> - znaczenie słów i zdań</li>\n<li><strong>Pragmatyka</strong> - jak kontekst zmienia znaczenie wypowiedzi</li>\n</ol>\n</div>\n<p>OK, przejdźmy do rzeczy. Zaczynamy od dołu naszej cebulki ;-)</p>\n<hr />\n<h2><a href=\"#fonetyka-i-fonologia---dźwięki-których-llm-nie-słyszy\" aria-hidden=\"true\" class=\"anchor\" id=\"fonetyka-i-fonologia---dźwięki-których-llm-nie-słyszy\"></a>Fonetyka i fonologia - dźwięki, których LLM nie słyszy</h2>\n<h3><a href=\"#czym-jest-fonetyka\" aria-hidden=\"true\" class=\"anchor\" id=\"czym-jest-fonetyka\"></a>Czym jest fonetyka?</h3>\n<p><strong>Fonetyka</strong> bada dźwięki mowy jako zjawiska fizyczne. Mówiąc najprościej: jak produkujemy dźwięki, jak one podróżują przez powietrze i jak je odbieramy.</p>\n<p>Ma trzy gałęzie:</p>\n<table>\n<thead>\n<tr>\n<th>Gałąź</th>\n<th>Co bada</th>\n<th>Przykład</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong>Artykulacyjna</strong></td>\n<td>Jak narządy mowy produkują dźwięki</td>\n<td>Gdzie jest język, gdy mówisz &quot;sz&quot;?</td>\n</tr>\n<tr>\n<td><strong>Akustyczna</strong></td>\n<td>Fizyczne właściwości fal dźwiękowych</td>\n<td>Częstotliwość, amplituda</td>\n</tr>\n<tr>\n<td><strong>Audytywna</strong></td>\n<td>Jak ucho i mózg odbierają dźwięki</td>\n<td>Jak ślimak przetwarza fale na sygnał nerwowy</td>\n</tr>\n</tbody>\n</table>\n<h3><a href=\"#a-fonologia\" aria-hidden=\"true\" class=\"anchor\" id=\"a-fonologia\"></a>A fonologia?</h3>\n<p><strong>Fonologia</strong> to poziom wyżej. Nie interesują jej same dźwięki jako fizyczne zjawiska, ale <strong>jak dźwięki są zorganizowane w konkretnym języku</strong>.</p>\n<p>Kluczowe pojęcie: <strong>fonem</strong> - to najmniejsza jednostka dźwiękowa, która odróżnia znaczenie słów.</p>\n<p>Prosty przykład po polsku:</p>\n<ul>\n<li><strong>kot</strong> vs <strong>lot</strong> - słowa różnią się jednym dźwiękiem (/k/ vs /l/), a znaczenie jest zupełnie inne</li>\n<li><strong>ras</strong> vs <strong>las</strong> - /r/ vs /l/ znowu zmienia wszystko</li>\n</ul>\n<p>Albo po angielsku:</p>\n<ul>\n<li><strong>pat</strong> vs <strong>bat</strong> - /p/ vs /b/ i mamy zupełnie inne słowo</li>\n</ul>\n<div class=\"markdown-alert markdown-alert-tip\">\n<p class=\"markdown-alert-title\">Tip</p>\n<p><strong>Eksperyment:</strong> Wymów na głos &quot;kot&quot; raz jako zwykłe zdanie (&quot;Mój kot śpi.&quot;), a raz jako pytanie z zaskoczeniem (&quot;Kot?!&quot; z uniesionymi brwami). Ten sam wyraz, ale intonacja, akcent i melodia całkowicie zmieniają to, co &quot;słyszy&quot; odbiorca. To jest właśnie fonologia w działaniu - dźwięki + ich organizacja w system.</p>\n</div>\n<h3><a href=\"#dlaczego-to-ważne-dla-llm\" aria-hidden=\"true\" class=\"anchor\" id=\"dlaczego-to-ważne-dla-llm\"></a>Dlaczego to ważne dla LLM?</h3>\n<p>No właśnie - <strong>LLM dostaje tekst, nie dźwięk</strong>. Nigdy nie usłyszał wymowy. A mimo to...</p>\n<ul>\n<li>wie, że &quot;kot&quot; i &quot;lot&quot; rymują się (bo widział to w tekstach)</li>\n<li>radzi sobie z kalamburami i grami słowymi opartymi na dźwiękach</li>\n<li>potrafi pisać wiersze z rymami</li>\n</ul>\n<p>Czyli model jakoś <strong>przyswaja informacje fonologiczne</strong> z samych danych tekstowych. Trochę jakbyś nigdy nie widział oceanu, ale przeczytał o nim tyle książek, że potrafisz go opisać ;-)</p>\n<p>No ale oczywiście są ograniczenia. LLM tekstowy nie rozróżnia homofonów (słów, które brzmią tak samo, ale znaczą co innego) na podstawie fonetyki - radzi sobie z nimi czysto na poziomie semantycznym (o czym za chwilę).</p>\n<p>I tu ciekawostka: modele typu <strong>Whisper</strong> (speech-to-text od OpenAI) już łączą fonetykę z tekstem. Ale to temat na osobny wpis w tej serii ;-)</p>\n<div class=\"markdown-alert markdown-alert-warning\">\n<p class=\"markdown-alert-title\">Warning</p>\n<p><strong>Paradoks:</strong> LLM nigdy nie słyszał żadnego dźwięku, ale z danych treningowych &quot;wie&quot; o rymach, grach słownych i wzorcach brzmieniowych. To trochę jak osoba głucha od urodzenia, która potrafi pisać wiersze z rymami - bo przeczytała ich miliony.</p>\n</div>\n<hr />\n<h2><a href=\"#morfologia---jak-słowa-są-budowane-z-klocków\" aria-hidden=\"true\" class=\"anchor\" id=\"morfologia---jak-słowa-są-budowane-z-klocków\"></a>Morfologia - jak słowa są budowane z klocków</h2>\n<h3><a href=\"#czym-jest-morfologia\" aria-hidden=\"true\" class=\"anchor\" id=\"czym-jest-morfologia\"></a>Czym jest morfologia?</h3>\n<p><strong>Morfologia</strong> bada budowę słów - jak są one składane z mniejszych, sensownych kawałków zwanych <strong>morfemami</strong>.</p>\n<p>Morfem to <strong>najmniejsza jednostka języka, która niesie ze sobą znaczenie</strong>. Nie da się jej podzielić na coś jeszcze mniejszego, co miałoby znaczenie.</p>\n<p>Przykład z angielskiego, często używany w podręcznikach:</p>\n<pre class=\"marmite-code\"><code class=\"marmite-code-inner\">unhappiness = un + happy + ness\n              ↑       ↑       ↑\n           „nie&quot;   „szczęśliwy&quot;  rzeczownik\n</code></pre>\n<p>Albo po polsku:</p>\n<pre class=\"marmite-code\"><code class=\"marmite-code-inner\">nieszczęśliwy = nie + szczęśliw + y\n                  ↑        ↑       ↑\n              „nie&quot;  „szczęście&quot;   rodzaj męski\n</code></pre>\n<p>Albo jeszcze bardziej:</p>\n<pre class=\"marmite-code\"><code class=\"marmite-code-inner\">nieprzystojny = nie + przy + stoj + ny\n</code></pre>\n<p>Każdy z tych kawałków ma swoje znaczenie. To są właśnie morfemy.</p>\n<h3><a href=\"#dwa-rodzaje-morfemów\" aria-hidden=\"true\" class=\"anchor\" id=\"dwa-rodzaje-morfemów\"></a>Dwa rodzaje morfemów</h3>\n<table>\n<thead>\n<tr>\n<th>Typ</th>\n<th>Opis</th>\n<th>Przykłady</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong>Wolne</strong></td>\n<td>Mogą stać samodzielnie jako słowo</td>\n<td>kot, dom, biegnie</td>\n</tr>\n<tr>\n<td><strong>Związane</strong></td>\n<td>Muszą być dołączone do innego morfemu</td>\n<td>nie-, -ek, -owie, -ować</td>\n</tr>\n</tbody>\n</table>\n<p>A wśród morfemów związanych mamy <strong>afiksy</strong>:</p>\n<ul>\n<li><strong>Prefiksy</strong> (przed rdzeniem): <em>nie-</em>, <em>prze-</em>, <em>od-</em>, <em>naj-</em></li>\n<li><strong>Sufiksy</strong> (za rdzeniem): <em>-ek</em>, <em>-owie</em>, <em>-ować</em>, <em>-ny</em></li>\n<li><strong>Infiksy</strong> (wewnątrz rdzenia): w polskim praktycznie nie występują, ale w innych językach tak! Np. w tagalskim (Filipiny): <em>sulat</em> (pisać) -&gt; <em>s<strong>um</strong>ulat</em> (napisać) - morfem <em>-um-</em> jest wstawiony w środek rdzenia. Albo pomyślcie o angielskim <em>abso-bloody-lutely</em> ;-)</li>\n</ul>\n<h3><a href=\"#fleksja-vs-słowotwórstwo\" aria-hidden=\"true\" class=\"anchor\" id=\"fleksja-vs-słowotwórstwo\"></a>Fleksja vs słowotwórstwo</h3>\n<p>To ważne rozróżnienie:</p>\n<p><strong>Fleksja</strong> (odmiana) - zmienia formę gramatyczną, ale nie tworzy nowego słowa:</p>\n<ul>\n<li>dom -&gt; dom<strong>y</strong> (liczba mnoga)</li>\n<li>biegnie -&gt; bieg<strong>ł</strong> (czas przeszły)</li>\n</ul>\n<p><strong>Słowotwórstwo</strong> (derywacja) - tworzy nowe słowo, często zmieniając część mowy:</p>\n<ul>\n<li>uczyć -&gt; <strong>uczeń</strong> (czasownik -&gt; rzeczownik)</li>\n<li>dom -&gt; <strong>domowy</strong> (rzeczownik -&gt; przymiotnik)</li>\n</ul>\n<div class=\"markdown-alert markdown-alert-warning\">\n<p class=\"markdown-alert-title\">Warning</p>\n<p><strong>Polska morfologia to koszmar dla LLM!</strong> Język polski jest silnie fleksyjny - mamy 7 przypadków, 2 liczby, 3 rodzaje, aspekty czasowników, i mnóstwo wyjątków. Dla porównania: w angielskim odmiana rzeczownika to max. dodanie <em>-s</em>. W polskim? &quot;Dom, domu, domowi, dom, domem, domu, domie, domy, domów...&quot; i tak dalej :D</p>\n</div>\n<h3><a href=\"#jak-llm-radzi-sobie-z-morfologią\" aria-hidden=\"true\" class=\"anchor\" id=\"jak-llm-radzi-sobie-z-morfologią\"></a>Jak LLM radzi sobie z morfologią?</h3>\n<p>Tu jest ciekawostka. LLM nie &quot;wie&quot; czym są morfemy. Używa <strong>tokenizacji BPE</strong> (Byte Pair Encoding), która dzieli tekst na tokeny - ale tokeny to <strong>nie to samo</strong> co morfemy.</p>\n<pre class=\"marmite-code\"><code class=\"marmite-code-inner language-mermaid\">graph LR\n    subgraph &quot;Lingwista widzi:&quot;\n        A[&quot;nie-szczęśliw-y&quot;] --&gt; A1[&quot;nie + szczęśliw + y&quot;]\n    end\n    subgraph &quot;GPT-4o widzi (tokenizacja BPE):&quot;\n        B[&quot;nie-szczęśliw-y&quot;] --&gt; B1[&quot;nie + -s + zcz + ę + śli + wy&quot;]\n    end\n    \n    style A1 fill:#99ff99,color:#000\n    style B1 fill:#ff9999,color:#000\n</code></pre>\n<p>Tokenizator BPE dzieli tekst na podstawie <strong>częstotliwości występowania</strong> w danych treningowych, a nie na podstawie struktury językowej. Czasem to się pokrywa z morfemami, a czasem nie.</p>\n<p>To znaczy, że model nie uczy się morfologii &quot;od strony&quot; - on uczy się jej pośrednio, przez statystykę. I jakoś mu to działa ;-)</p>\n<div class=\"markdown-alert markdown-alert-tip\">\n<p class=\"markdown-alert-title\">Tip</p>\n<p><strong>Zabawa dla was:</strong> Potraficie rozbić te słowa na morfemy?</p>\n<ul>\n<li><em>nieprawdopodobny</em></li>\n<li><em>najpiękniejszy</em></li>\n<li><em>przeczytaliśmy</em></li>\n</ul>\n</div>\n<hr />\n<h2><a href=\"#składnia---zasady-gry-w-układanie-zdań\" aria-hidden=\"true\" class=\"anchor\" id=\"składnia---zasady-gry-w-układanie-zdań\"></a>Składnia - zasady gry w układanie zdań</h2>\n<h3><a href=\"#czym-jest-składnia\" aria-hidden=\"true\" class=\"anchor\" id=\"czym-jest-składnia\"></a>Czym jest składnia?</h3>\n<p><strong>Składnia</strong> to zbiór reguł, które określają, jak słowa są łączone w zdania. To dzięki składni wiemy, że &quot;Kot siedzi na macie&quot; to poprawne zdanie, a &quot;Kot macie na siedzi&quot; to bełkot.</p>\n<p>Proste? No... bardziej albo mniej ;-)</p>\n<h3><a href=\"#szyk-zdania\" aria-hidden=\"true\" class=\"anchor\" id=\"szyk-zdania\"></a>Szyk zdania</h3>\n<p>W różnych językach obowiązują różne zasady porządku słów:</p>\n<table>\n<thead>\n<tr>\n<th>Język</th>\n<th>Podstawowy szyk</th>\n<th>Przykład</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Angielski</td>\n<td>SVO (Subject-Verb-Object)</td>\n<td>The cat sits on the mat</td>\n</tr>\n<tr>\n<td>Polski</td>\n<td>&quot;Elastyczny&quot; SVO, ale...</td>\n<td>Kot siedzi na macie / Na macie siedzi kot / Siedzi kot na macie</td>\n</tr>\n<tr>\n<td>Japoński</td>\n<td>SOV</td>\n<td>猫がマットの上に座っている</td>\n</tr>\n<tr>\n<td>Łacina</td>\n<td>Wolny (bo końcówki mówią wszystko)</td>\n<td>Felix in tapete sedet</td>\n</tr>\n</tbody>\n</table>\n<p>Polski jest fajny, bo mamy dość dużą swobodę w szyku zdania. O ile w angielskim &quot;On the mat sits the cat&quot; brzmi poetycko albo nienaturalnie, o tyle u nas to normalne zdanie ;-)</p>\n<h3><a href=\"#drzewo-składniowe\" aria-hidden=\"true\" class=\"anchor\" id=\"drzewo-składniowe\"></a>Drzewo składniowe</h3>\n<p>Zdania mają strukturę hierarchiczną - słowa grupują się w frazy, a frazy w większe frazy. Można to narysować jako drzewo:</p>\n<pre class=\"marmite-code\"><code class=\"marmite-code-inner language-mermaid\">graph TD\n    S[&quot;S (zdanie)&quot;] --&gt; NP1[&quot;NP (fraza rzeczownikowa)&quot;]\n    S --&gt; VP[&quot;VP (fraza czasownikowa)&quot;]\n    NP1 --&gt; N1[&quot;Kot&quot;]\n    VP --&gt; V[&quot;siedzi&quot;]\n    VP --&gt; PP[&quot;PP (fraza przyimkowa)&quot;]\n    PP --&gt; P[&quot;na&quot;]\n    PP --&gt; NP2[&quot;NP (fraza rzeczownikowa)&quot;]\n    NP2 --&gt; N2[&quot;macie&quot;]\n    \n    style S fill:#9999ff,color:#fff\n    style NP1 fill:#99ff99,color:#000\n    style VP fill:#ffcc99,color:#000\n    style PP fill:#ff9999,color:#000\n</code></pre>\n<p>To jest proste zdanie &quot;Kot siedzi na macie&quot; i już ma swoją hierarchię! A wyobraźcie sobie zdania z podrzędnymi, imiesłowami, okolicznikami...</p>\n<h3><a href=\"#bezbarwne-zielone-idee-śpią-zaciekawione\" aria-hidden=\"true\" class=\"anchor\" id=\"bezbarwne-zielone-idee-śpią-zaciekawione\"></a>&quot;Bezbarwne zielone idee śpią zaciekawione&quot;</h3>\n<p>To słynny przykład Noama Chomsky'ego (w oryginale: <em>&quot;Colorless green ideas sleep furiously&quot;</em>).</p>\n<p>Zdanie jest <strong>składniowo poprawne</strong> - ma podmiot, orzeczenie, prawidłową strukturę. Ale <strong>semantycznie</strong> to kompletny absurd - idee nie mogą być zielone ani spać.</p>\n<p>I to jest właśnie dowód na to, że <strong>składnia i semantyka to dwa różne poziomy</strong>. Można mieć perfekt składnię i zero sensu ;-)</p>\n<div class=\"markdown-alert markdown-alert-important\">\n<p class=\"markdown-alert-title\">Important</p>\n<p><strong>Składnia to supermoc LLM.</strong> Model uczy się przewidywać następny token na podstawie ogromnej ilości danych tekstowych. W trakcie tego procesu przyswaja wzorce składniowe - wie, że po &quot;Kot siedzi na...&quot; spodziewamy się rzeczownika, a po &quot;Szybko...&quot; czasownika. To jest fundament tego, dlaczego LLM generuje poprawne gramatycznie zdania.</p>\n</div>\n<h3><a href=\"#quiz-poprawne-czy-nie\" aria-hidden=\"true\" class=\"anchor\" id=\"quiz-poprawne-czy-nie\"></a>Quiz: poprawne czy nie?</h3>\n<p>Sprawdźcie się - które zdania są składniowo poprawne?<sup class=\"footnote-ref\"><a href=\"#fn-1\" id=\"fnref-1\" data-footnote-ref>1</a></sup></p>\n<ol>\n<li>Pies szczeka na listonosza.</li>\n<li>Na listonosza szczeka pies.</li>\n<li>Szczeka pies na listonosza.</li>\n<li>Pies listonosza na szczeka.</li>\n<li>Czy pies szczeka na listonosza?</li>\n</ol>\n<hr />\n<h2><a href=\"#semantyka---co-to-w-ogóle-znaczy-znaczenie\" aria-hidden=\"true\" class=\"anchor\" id=\"semantyka---co-to-w-ogóle-znaczy-znaczenie\"></a>Semantyka - co to w ogóle znaczy, &quot;znaczenie&quot;?</h2>\n<h3><a href=\"#czym-jest-semantyka\" aria-hidden=\"true\" class=\"anchor\" id=\"czym-jest-semantyka\"></a>Czym jest semantyka?</h3>\n<p>Jeśli składnia pyta &quot;jak to jest zbudowane?&quot;, to semantyka pyta: <strong>&quot;co to znaczy?&quot;</strong></p>\n<p>Semantyka bada znaczenie słów, fraz i zdań. I od razu się okazuje, że to wcale nie jest takie proste.</p>\n<h3><a href=\"#wieloznaczność---jedno-słowo-wiele-znaczeń\" aria-hidden=\"true\" class=\"anchor\" id=\"wieloznaczność---jedno-słowo-wiele-znaczeń\"></a>Wieloznaczność - jedno słowo, wiele znaczeń</h3>\n<p>Klasyczny polski przykład: <strong>zamek</strong></p>\n<ul>\n<li>Zamek - budowla (&quot;Zamek Królewski w Warszawie&quot;)</li>\n<li>Zamek - do drzwi (&quot;Zepsuł mi się zamek w drzwiach&quot;)</li>\n<li>Zamek - do ubrania (&quot;Rozpiął zamek w kurtce&quot;)</li>\n<li>Zamek - w karabinie (&quot;Zamek w karabinie się zaciął&quot;)</li>\n</ul>\n<p>To samo słowo, cztery zupełnie różne znaczenia. Jak LLM wie, o który chodzi? <strong>Z kontekstu.</strong> I to jest właśnie to, co robi dobrze - bo widział miliony zdań, gdzie &quot;zamek&quot; występował w różnych kontekstach.</p>\n<p>Albo inny klasyk - wieloznaczność w jednym zdaniu:</p>\n<blockquote>\n<p>&quot;Moja droga, ta droga jest bardzo droga.&quot;</p>\n</blockquote>\n<p>Trzy razy to samo słowo, trzy różne znaczenia: <strong>droga</strong> (zwrócenie się do kogoś), <strong>droga</strong> (ulica/szlak), <strong>droga</strong> (tania -&gt; droga, przymiotnik). Kontekst zmienia wszystko ;-)</p>\n<h3><a href=\"#synonimy---czy-duży-wielki-i-ogromny-to-to-samo\" aria-hidden=\"true\" class=\"anchor\" id=\"synonimy---czy-duży-wielki-i-ogromny-to-to-samo\"></a>Synonimy - czy &quot;duży&quot;, &quot;wielki&quot; i &quot;ogromny&quot; to to samo?</h3>\n<p>Prawie. Ale nie do końca:</p>\n<ul>\n<li><strong>Duży dom</strong> - normalny, po prostu spory</li>\n<li><strong>Wielki dom</strong> - brzmi bardziej oficjalnie/poetycko</li>\n<li><strong>Ogromny dom</strong> - no, to już jest rezydencja :D</li>\n</ul>\n<p>Semantyka bada te subtelne różnice - zarówno <strong>denotację</strong> (dosłowne znaczenie), jak i <strong>konotację</strong> (skojarzenia, nacechowanie emocjonalne).</p>\n<h3><a href=\"#jak-llm-rozumie-znaczenie\" aria-hidden=\"true\" class=\"anchor\" id=\"jak-llm-rozumie-znaczenie\"></a>Jak LLM &quot;rozumie&quot; znaczenie?</h3>\n<p>Tu wchodzi koncept <strong>word embeddings</strong> (osadzeń słów). W dużym uproszczeniu: każde słowo jest reprezentowane jako wektor - ciąg liczb - w wielowymiarowej przestrzeni. Słowa o podobnym znaczeniu są &quot;blisko&quot; siebie w tej przestrzeni.</p>\n<p>Słynny przykład, który prawdopodobnie widzieliście:</p>\n<pre class=\"marmite-code\"><code class=\"marmite-code-inner\">wektor(&quot;król&quot;) - wektor(&quot;mężczyzna&quot;) + wektor(&quot;kobieta&quot;) ≈ wektor(&quot;królowa&quot;)\n</code></pre>\n<p>Czyli: model &quot;wie&quot;, że relacja między &quot;król&quot; a &quot;mężczyzna&quot; jest analogiczna do relacji między &quot;królowa&quot; a &quot;kobieta&quot;. I to z samych danych, nikt go tego nie uczył!</p>\n<p>Możemy to nawet pokazać w kodzie. Oto prosty przykład z biblioteką <code>gensim</code> w Pythonie:</p>\n<pre class=\"marmite-code\"><code class=\"marmite-code-inner language-python\"><a-k>from</a-k> <a-v>gensim</a-v>.<a-v>downloader</a-v> <a-k>import</a-k> <a-v>load</a-v>\n\n<a-v>model</a-v> <a-o>=</a-o> <a-f>load</a-f>(<a-s>&quot;glove-wiki-gigaword-50&quot;</a-s>)\n\n<a-v>result</a-v> <a-o>=</a-o> <a-v>model</a-v>.<a-pr>most_similar</a-pr>(\n    <a-v>positive</a-v><a-o>=</a-o>[<a-s>&quot;king&quot;</a-s>, <a-s>&quot;woman&quot;</a-s>],\n    <a-v>negative</a-v><a-o>=</a-o>[<a-s>&quot;man&quot;</a-s>],\n    <a-v>topn</a-v><a-o>=</a-o><a-n>3</a-n>\n)\n\n<a-f>print</a-f>(<a-v>result</a-v>)\n<a-c># [(&#39;queen&#39;, 0.85), ...]  -- na pierwszym miejscu: queen!</a-c></code></pre>\n<div class=\"markdown-alert markdown-alert-tip\">\n<p class=\"markdown-alert-title\">Tip</p>\n<p><strong>Jeśli chcecie to przetestować sami:</strong> zainstalujcie <code>gensim</code> (<code>pip install gensim</code>) i odpalcie powyższy kod. Oczywiście potrzebujecie trochę RAM-u - model GloVe nie jest mały. Ale efekt jest naprawdę satysfakcjonujący ;-)</p>\n</div>\n<h3><a href=\"#kompozycyjność\" aria-hidden=\"true\" class=\"anchor\" id=\"kompozycyjność\"></a>Kompozycyjność</h3>\n<p>Jedno z najważniejszych pojęć w semantyce: <strong>znaczenie zdania jest wynikiem znaczeń poszczególnych słów + zasad ich łączenia.</strong></p>\n<p>Czyli: &quot;Czerwony kot siedzi na macie&quot; = [czerwony] + [kot] + [siedzi] + [na] + [macie] + zasady składniowe.</p>\n<p>Brzmi banalne, ale to potężna zasada. Dzięki niej potrafimy zrozumieć nieskończoną liczbę zdań, nawet takich, których nigdy wcześniej nie słyszeliśmy. I dzięki niej LLM potrafi generować nowe, niespotykane zdania, które i tak mają sens.</p>\n<div class=\"markdown-alert markdown-alert-warning\">\n<p class=\"markdown-alert-title\">Warning</p>\n<p><strong>Ale uwaga:</strong> &quot;Zrozumiałem, że nie zrozumiałeś, że to nie było zrozumiałe.&quot; - każde słowo jest proste, ale zdanie jako całość wymaga przeanalizowania warstwy po warstwie. Kompozycyjność to potężne narzędzie, ale ma swoje granice.</p>\n</div>\n<hr />\n<h2><a href=\"#pragmatyka---co-naprawdę-miałem-na-myśli\" aria-hidden=\"true\" class=\"anchor\" id=\"pragmatyka---co-naprawdę-miałem-na-myśli\"></a>Pragmatyka - co naprawdę miałem na myśli</h2>\n<h3><a href=\"#czym-jest-pragmatyka\" aria-hidden=\"true\" class=\"anchor\" id=\"czym-jest-pragmatyka\"></a>Czym jest pragmatyka?</h3>\n<p>I tak dochodzimy do najciekawszej (według mnie) warstwy. <strong>Pragmatyka</strong> bada to, <strong>jak kontekst wpływa na znaczenie wypowiedzi</strong> - co <em>naprawdę</em> chcemy powiedzieć, często mówiąc coś zupełnie innego.</p>\n<p>Jeśli semantyka pyta &quot;co to znaczy?&quot;, pragmatyka pyta: <strong>&quot;co autor miał na myśli w tej konkretnej sytuacji?&quot;</strong></p>\n<h3><a href=\"#scenki-z-życia-wzięte\" aria-hidden=\"true\" class=\"anchor\" id=\"scenki-z-życia-wzięte\"></a>Scenki z życia wzięte</h3>\n<p><strong>Scenka 1: &quot;Zimno tu.&quot;</strong></p>\n<p>Semantycznie: informacja o temperaturze w pomieszczeniu.<br />\nPragmatycznie: <strong>&quot;Zamknij okno!&quot;</strong> albo <strong>&quot;Zwiększ ogrzewanie!&quot;</strong> albo <strong>&quot;Daj mi koc.&quot;</strong></p>\n<p>Każdy z was zrozumie, że kiedy ktoś mówi &quot;Zimno tu&quot; w momencie, gdy stoi przy otwartym oknie - nie pytasz o stopnie Celsjusza, tylko zamykasz okno.</p>\n<p><strong>Scenka 2: &quot;Mógłbyś podać sól?&quot;</strong></p>\n<p>Semantycznie: pytanie o twoją <em>zdolność</em> podania soli.<br />\nPragmatycznie: <strong>prośba o podanie soli.</strong></p>\n<p>Odpowiedź &quot;Tak, mógłbym&quot; (i nic więcej) jest semantycznie poprawna, ale pragmatycznie... no, jesteś trochę niemiły ;-)</p>\n<p><strong>Scenka 3: Ironia</strong></p>\n<blockquote>\n<p>&quot;No gratulacje, znowu to zepsułeś.&quot;</p>\n</blockquote>\n<p>Semantycznie: gratulacje.<br />\nPragmatycznie: <strong>ironia, krytyka, rozczarowanie.</strong></p>\n<p>Czy LLM łapie ironię? Czasem tak, czasem nie. To wciąż otwarty problem badawczy.</p>\n<h3><a href=\"#teoria-aktów-mowy\" aria-hidden=\"true\" class=\"anchor\" id=\"teoria-aktów-mowy\"></a>Teoria aktów mowy</h3>\n<p>Filozof J.L. Austin wymyślił coś genialnego: <strong>wypowiedzi nie tylko opisują rzeczywistość, ale też coś <em>robią</em>.</strong></p>\n<table>\n<thead>\n<tr>\n<th>Typ aktu mowy</th>\n<th>Opis</th>\n<th>Przykład</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong>Lokucyjny</strong></td>\n<td>Samo wypowiedzenie</td>\n<td>Mówisz &quot;Zamykam okno&quot;</td>\n</tr>\n<tr>\n<td><strong>Illokucyjny</strong></td>\n<td>Intencja wypowiedzi</td>\n<td>Obiecanie, że zamkniesz okno</td>\n</tr>\n<tr>\n<td><strong>Perlokucyjny</strong></td>\n<td>Efekt na odbiorcę</td>\n<td>Słuchacz czuje ulgę</td>\n</tr>\n</tbody>\n</table>\n<p>Inne przykłady aktów mowy:</p>\n<ul>\n<li><strong>Obietnica:</strong> &quot;Obiecuję, że to zrobię.&quot; - mówiąc to, <em>wykonujesz</em> akt obietnicy</li>\n<li><strong>Oświadczenie:</strong> &quot;Oświadczam was mężem i żoną.&quot; - ktoś musi mieć do tego władzę, ale działa!</li>\n<li><strong>Przeprosiny:</strong> &quot;Przepraszam.&quot; - to nie jest opis stanu rzeczy, to <em>jest</em> akt przeprosin</li>\n</ul>\n<h3><a href=\"#implikatury-gricea\" aria-hidden=\"true\" class=\"anchor\" id=\"implikatury-gricea\"></a>Implikatury Grice'a</h3>\n<p>Paul Grice, inny filozof języka, zauważył, że w rozmowie obowiązuje <strong>zasada współpracy</strong> - mówimy rzeczy, które są istotne, prawdziwe, jasne i na temat.</p>\n<p>Kiedy ktoś tę zasadę łamie, szukamy <strong>implikatury</strong> - ukrytego znaczenia.</p>\n<p>Przykład:</p>\n<blockquote>\n<p>A: &quot;Idziesz na imprezę?&quot;<br />\nB: &quot;Mam egzamin jutro.&quot;</p>\n</blockquote>\n<p>B nie odpowiedział &quot;tak&quot; ani &quot;nie&quot;. Ale z kontekstu A rozumie: <strong>nie idę, bo muszę się uczyć.</strong> To jest implikatura konwersacyjna.</p>\n<h3><a href=\"#jak-llm-radzi-sobie-z-pragmatyką\" aria-hidden=\"true\" class=\"anchor\" id=\"jak-llm-radzi-sobie-z-pragmatyką\"></a>Jak LLM radzi sobie z pragmatyką?</h3>\n<div class=\"markdown-alert markdown-alert-warning\">\n<p class=\"markdown-alert-title\">Warning</p>\n<p><strong>To jest najtrudniejsza warstwa dla LLM.</strong> I to nie jest tylko moje zdanie - badacze z całego świata pracują nad benchmarkami testującymi pragmatykę modeli językowych.</p>\n</div>\n<p>Problemy:</p>\n<ul>\n<li><strong>Ironia i sarkazm</strong> - model często bierze dosłownie</li>\n<li><strong>Implikatury</strong> - nie zawsze &quot;wyłapuje&quot; to, co jest między wierszami</li>\n<li><strong>Akt mowy</strong> - może nie rozpoznać, czy ktoś obiecuje, pyta czy grozi</li>\n<li><strong>Kontekst kulturowy</strong> - co jest grzeczne w jednej kulturze, jest niegrzeczne w innej</li>\n</ul>\n<p>Ale z drugiej strony - GPT-4 i nowsze modele radzą sobie coraz lepiej. Dlaczego? Bo <strong>ogromna ilość danych treningowych zawiera pragmatykę w praktyce</strong> - dialogi z filmów, książek, forów internetowych. Model &quot;widział&quot; miliony przykładów ironii, grzeczności, próśb.</p>\n<div class=\"markdown-alert markdown-alert-tip\">\n<p class=\"markdown-alert-title\">Tip</p>\n<p><strong>Eksperyment dla was:</strong> Otwórzcie ChatGPT (albo Claude, albo co tam macie pod ręką) i przeprowadźcie ten krótki test:</p>\n<p>Napiszcie modelowi:</p>\n<p><em>&quot;Właśnie strzeliłem sobie w palca gwoździem.&quot;</em></p>\n<p>A potem od nowej rozmowy:</p>\n<p><em>&quot;No gratulacje, znowu strzeliłem sobie w palca gwoździem!&quot;</em></p>\n<p>Zobaczcie, czy model zauważy, że w drugim przypadku &quot;gratulacje&quot; to ironia, czy jednak zacznie wzywać pogotowie?</p>\n</div>\n<hr />\n<h2><a href=\"#podsumowanie---cała-cebulka-w-jednym-miejscu\" aria-hidden=\"true\" class=\"anchor\" id=\"podsumowanie---cała-cebulka-w-jednym-miejscu\"></a>Podsumowanie - cała cebulka w jednym miejscu</h2>\n<p>Oto nasze pięć warstw, w pigułce:</p>\n<table>\n<thead>\n<tr>\n<th>Warstwa</th>\n<th>Co bada</th>\n<th>Przykład</th>\n<th>Jak radzi sobie LLM</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong>Fonetyka i fonologia</strong></td>\n<td>Dźwięki i system dźwięków</td>\n<td>/kot/ vs /lot/</td>\n<td>Nie słyszy, ale &quot;wie&quot; z danych tekstowych</td>\n</tr>\n<tr>\n<td><strong>Morfologia</strong></td>\n<td>Budowa słów z morfemów</td>\n<td>nie-szczęśliw-y</td>\n<td>Tokenizacja BPE ≠ morfemy, ale jakoś działa</td>\n</tr>\n<tr>\n<td><strong>Składnia</strong></td>\n<td>Porządek słów w zdaniu</td>\n<td>Kot siedzi na macie</td>\n<td>Supermoc modelu - świetnie radzi sobie z gramatyką</td>\n</tr>\n<tr>\n<td><strong>Semantyka</strong></td>\n<td>Znaczenie słów i zdań</td>\n<td>&quot;zamek&quot; - który?</td>\n<td>Word embeddings + kontekst</td>\n</tr>\n<tr>\n<td><strong>Pragmatyka</strong></td>\n<td>Znaczenie w kontekście</td>\n<td>&quot;Zimno tu&quot; = zamknij okno</td>\n<td>Najtrudniejsza warstwa, wciąż otwarty problem</td>\n</tr>\n</tbody>\n</table>\n<pre class=\"marmite-code\"><code class=\"marmite-code-inner language-mermaid\">graph LR\n    subgraph &quot;Jak LLM przetwarza język&quot;\n        F[&quot;Fonetyka&lt;br/&gt;❌ nie słyszy&quot;] --&gt; M[&quot;Morfologia&lt;br/&gt;⚠️ przez pryzmat tokenów&quot;]\n        M --&gt; S[&quot;Składnia&lt;br/&gt;✅ bardzo dobrze&quot;]\n        S --&gt; Sem[&quot;Semantyka&lt;br/&gt;✅ dobrze, z wyjątkami&quot;]\n        Sem --&gt; P[&quot;Pragmatyka&lt;br/&gt;❓ najtrudniejsza&quot;]\n    end\n</code></pre>\n<h3><a href=\"#co-dalej\" aria-hidden=\"true\" class=\"anchor\" id=\"co-dalej\"></a>Co dalej?</h3>\n<p>W kolejnym wpisie zmieniamy perspektywę - zamiast patrzeć na warstwy języka, patrzymy na samą naturę znaków i znaczenia:</p>\n<ul>\n<li><strong><a href=\"semiotyka-a-llm.html\">Semiotyka - dlaczego LLM nie &quot;myśli&quot;, ale jednak coś znaczy</a></strong></li>\n</ul>\n<!--W kolejnych wpisach tej serii wejdziemy głębiej w każdą z tych warstw:\n\n- **Fonetyka i LLM** - gdzie kończy się tekst, a zaczyna mowa? Jak modele speech (Whisper, TTS) łączą dźwięk z językiem?\n- **Morfologia i składnia w LLM** - czy model naprawdę rozpoznaje strukturę, czy tylko statystykę?\n- **Semantyka w LLM** - znaczenie, reprezentacja wektorowa i granice \"rozumienia\"\n- **Pragmatyka w LLM** - kontekst, implikatury i dlaczego model czasem \"nie ogarnia\"\n- **Reprezentacje lingwistyczne w LLM** - czy wewnątrz modelu można znaleźć \"neurony\" odpowiadające za konkretne cechy języka?-->\n<hr />\n<p>Jeśli dotarliście aż tu - <strong>dzięki!</strong> ;-) Naprawdę doceniam, że poświęciliście czas na przeczytanie tego potworka.</p>\n<p>Mam nadzieję, że choć trochę przybliżyłem wam temat. Jeśli coś jest niejasne - <strong>napiszcie w komentarzach</strong>, postaram się wyjaśnić. A jeśli macie lepsze przykłady (bo na pewno macie!) - tym bardziej dajcie znać.</p>\n<p>Która warstwa was najbardziej zaskoczyła? Która jest waszym zdaniem najciekawsza w kontekście AI?</p>\n<p>Do następnego wpisu!</p>\n<hr />\n<p><strong>Źródła i ciekawe linki:</strong></p>\n<p>Jeśli chcecie wejść głębiej, oto materiały, z których korzystałem przy pisaniu tego wpisu:</p>\n<ul>\n<li><a href=\"https://fiveable.me/introduction-study-language/unit-1/branches-linguistics/study-guide/Bbhz9eKIobWh0O9F\">Branches of linguistics - Fiveable</a> - świetny przegląd działów lingwistyki z przykładami</li>\n<li><a href=\"https://fiveable.me/lists/levels-of-linguistic-analysis\">Levels of Linguistic Analysis - Fiveable</a> - synteza poziomów analizy językowej</li>\n<li><a href=\"https://relay.libguides.com/science-of-teaching-reading-resource-guide/five-language-domains\">The Five Language Domains - Relay Graduate School</a> - proste, dydaktyczne ujęcie pięciu domen języka</li>\n<li><a href=\"https://www.zenml.io/llmops-database/linguistic-informed-approach-to-production-llm-systems\">Linguistic-Informed Approach to Production LLM Systems - ZenML</a> - pomost między lingwistyką a praktyką LLM</li>\n<li><a href=\"https://www.stat.lmu.de/soda/en/research/research-projects/evaluating-large-language-models-on-linguistic-competence/\">Evaluating Large Language Models on Linguistic Competence - LMU Munich</a> - jak bada się kompetencję językową modeli</li>\n<li><a href=\"https://arxiv.org/abs/2502.12378\">Pragmatics in the Era of LLMs: A Survey - arXiv</a> - przegląd badań nad pragmatyką w LLM</li>\n</ul>\n<section class=\"footnotes\" data-footnotes>\n<ol>\n<li id=\"fn-1\">\n<p>Odpowiedzi do quizu: zdania 1-3 i 5 są poprawne (różnią się szykiem, ale polski na to pozwala; 5 to pytanie z słówkiem &quot;czy&quot;). Zdanie 4 (&quot;Pies listonosza na szczeka&quot;) jest niepoprawne składniowo - szyk jest tak zaburzony, że nie spełnia zasad polskiej gramatyki. <a href=\"#fnref-1\" class=\"footnote-backref\" data-footnote-backref data-footnote-backref-idx=\"1\" aria-label=\"Back to reference 1\">↩</a></p>\n</li>\n</ol>\n</section>\n",
      "summary": "",
      "date_published": "2026-06-06T00:00:00-00:00",
      "image": "",
      "authors": [
        {
          "name": "Błażej Gruszka",
          "url": "https://www.linkedin.com/in/blazejgruszka/",
          "avatar": "https://github.com/bgruszka.png"
        }
      ],
      "tags": [
        "llm",
        "ai",
        "jezykoznawstwo",
        "nlp",
        "linguistics",
        "language-models",
        "chatgpt"
      ],
      "language": "pl"
    }
  ]
}