Podręcznik uczestnika z objaśnieniami, przykładami i ćwiczeniami do samodzielnej nauki do Modułu 3
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.