9. Odpowiedzi do ćwiczeń

Porównaj tok rozumowania i dane, nie tylko końcową liczbę. Jeżeli Twój wniosek jest inny, wróć do fragmentu, który ma go uzasadniać. Odpowiedzi dotyczą sześciu zadań w tej książce, a nie pełnego klucza do notebooków.

Ćwiczenie 1. Słowa i znaczenie

Najbardziej przydatny jest A: wiąże zmianę ustawień z restartem właściwego procesu i potwierdzeniem statusu active. „Nowe ustawienia” odpowiadają zmianie konfiguracji, „potwierdź status active” odpowiada sprawdzeniu, czy usługa działa. „Restart” jest parafrazą ponownego uruchomienia.

B ma wspólne słowa „usługa”, „działa” i „zmiana”, lecz dotyczy harmonogramu kopii. C wspomina konfigurację, ale mówi o przechowywaniu pliku. D dotyczy etapu instalacji. A powinno być pierwsze; kolejność słabszych B, C i D nie jest jednoznacznym pomiarem semantycznym. Możesz np. uznać B i C za podobnie nieprzydatne. Nie twórz pozornej precyzji przez przypisywanie im wymyślonych score.

Najwyższy wynik podobieństwa oznacza pierwsze miejsce w danym rankingu. Nie dowodzi prawdziwości dokumentu ani poprawności przyszłej odpowiedzi. W przykładzie A jest uzasadnionym wyborem na podstawie treści, a nie dlatego, że model nadał mu liczbę.

Ćwiczenie 2. Przetwarzanie i błędy

Rekord Rozstrzygnięcie Uzasadnienie
E1 Poprawny Prawidłowy wymiar, skończone wartości i niezerowa norma.
E2 Pominięty Brak treści po usunięciu odstępów; trzeba sprawdzić źródło i odczyt.
E3 Błędny Niezgodny wymiar. Dopisanie zer nie odtwarza brakujących cech modelu.
E4 Błędny NaN uniemożliwia poprawne porównania.
E5 Poprawny Przechodzi wymagane kontrole.

Liczności: 5 = 2 poprawne + 1 pominięty + 2 błędne. Zachowaj tekst i chunk_id, metadane, model i digest, wymiar, datę, pochodzenie wejścia i jego sumę kontrolną oraz opis problemów. E2 wymaga korekty danych; awaria Ollama wymaga sprawdzenia środowiska i wznowienia nowej próby. Nie usuwaj jej śladu ani nie twórz losowego wektora.

Ten dziennik jest zadaniem o klasyfikacji. W działającym pakiecie błędy systemowe mogą przerwać przebieg zamiast pozwolić kontynuować zapis. Jest to właściwe zachowanie: nie należy ogłaszać kompletnego wyniku, jeśli usługa przestała działać.

Ćwiczenie 3. Rachunek kosinusa

Para Iloczyn skalarny Normy Kosinus
q, A 3×6 + 4×8 = 50 5 i 10 1
q, B 3×4 + 4×(-3) = 0 5 i 5 0
q, C 3×(-3) + 4×(-4) = -25 5 i 5 -1

Znormalizowane q to [0.6, 0.8]. Pomnożenie A przez dodatnie 10 zmienia długość, lecz nie kierunek, więc kosinus pozostaje 1. Z wektorem [0, 0] miara nie jest określona. [3, 4, 0] ma inny wymiar, więc porównanie również wymaga odrzucenia wejścia, a nie zgadywania.

Poprawne zdanie: „Dla tej pary i tej konfiguracji podobieństwo kosinusowe wynosi 0,82; o przydatności fragmentu rozstrzygamy po przeczytaniu treści”. Nie ma tutaj interpretacji procentowej dotyczącej prawdziwości.

Ćwiczenie 4. Ranking i treść

Dla k = 1 dostajesz D6, dla k = 2 D6 i D1, a dla k = 3 również D2. Dokładna komenda systemctl is-active docassist-api znajduje się w D1, więc dopiero warianty k = 2 i k = 3 obejmują potrzebny fragment. D6 mówi o sprawdzeniu uruchomienia, ale nie podaje polecenia. D2 dotyczy kopii i nie uzupełnia komendy sprawdzającej.

Dla godzin przyjmowania zgłoszeń wybierasz D3: dni robocze 08:00–16:00, wraz z opisem działania poza godzinami i wyjątkiem. Telefonu administratora w D1–D6 nie ma. Wynik dotyczący administratora nie daje prawa do wymyślenia numeru.

Obok score pokaż chunk_id, tekst i metadane, co najmniej nazwę pliku, identyfikator dokumentu, wersję oraz stronę albo sekcję, jeżeli występuje. Miejsce w rankingu nie zastępuje identyfikatora fragmentu.

Ćwiczenie 5. Spójność indeksu

Najwyższy score wskazuje wiersz 0, ale po błędnym sortowaniu rekord 0 opisuje D2. System zwróci więc niewłaściwy tekst z poprawnie obliczoną liczbą 1. Liczności, typ macierzy i normy mogą być prawidłowe mimo zerwania powiązania.

Naprawa polega na odbudowaniu par z oryginalnego R2: wektor D1 z rekordem D1 i wektor D2 z rekordem D2. Dopiero potem nadaj vector_index zgodny z kolejnością wierszy. Samo przepisanie indeksów na 0 i 1 bez sprawdzenia par nie naprawia błędu. Jeżeli oryginalnego powiązania nie da się wiarygodnie odtworzyć, przelicz indeks ze znanych danych.

Przy 9 wierszach macierzy i 10 rekordach zatrzymaj odczyt: nie wybieraj arbitralnie, który rekord pominąć. Test restartu uruchom w nowym procesie lub kernelu. Wczytaj trzy pliki, zweryfikuj je i użyj zapisanego wektora pytania kontrolnego. Porównaj identyfikatory oraz wartości score z wynikiem przed zapisem. Takie sprawdzenie bada odtwarzalność zapisu; samo nie dowodzi merytorycznej trafności indeksu.

Ćwiczenie 6. Klucz i metryki

ID Typ i oczekiwany fragment Pozycja Hit@1 Hit@3 Hit@5
B01 answerable; D1 2 0 1 1
B02 answerable; D1 1 1 1 1
B03 answerable; D2 4 0 0 1
B04 answerable; D3 6 0 0 0
B05 answerable; D4, po przyjęciu opisanej interpretacji 3 0 1 1
B06 answerable; D5 1 1 1 1
B07 missing_in_sources; brak — null null null
B08 out_of_scope; brak — null null null

Średnie dla sześciu przypadków answerable: Hit@1 = 2/6 ≈ 33,3%; Hit@3 = 4/6 ≈ 66,7%; Hit@5 = 5/6 ≈ 83,3%. B07 jest pytaniem z zakresu obsługi DocAssist, lecz brakuje danych kontaktowych. B08 dotyczy zupełnie innej dziedziny. Obu nie dodajesz do mianownika i nie zamieniasz null na 0.

B05 bez doprecyzowania mogłoby odnosić się do kopii pliku, wyniku testu albo zgłoszenia. Przyjęta interpretacja ustala D4 jako oczekiwany fragment; nie zmieniaj jej po zobaczeniu rankingu. B03 zyskuje przy przejściu z k = 3 do 5. B04 nadal nie mieści się w top-5, mimo obecności właściwej informacji w bazie.

Przykładowy plan: zbadać, dlaczego D3 jest dopiero szósty dla B04. Najpierw sprawdzić treść i mapowanie, potem porównać jedną zmianę reprezentacji lub przygotowania fragmentu na niezmienionym zestawie. Zachować pierwszy raport. Samo podniesienie k do 6 w tej miniaturze obejmuje całą bazę i podnosi trafienia, ale znosi selekcję; nie jest automatycznie dobrym rozwiązaniem dla przyszłego kontekstu.

ENHANCER+ · Politechnika Warszawska · podręcznik do samodzielnej nauki offline