Podręcznik uczestnika z objaśnieniami, przykładami i ćwiczeniami do samodzielnej nauki do Modułu 6

2. R1. Plan ewaluacji i warunki akceptacji

2.1. Konfiguracja, wersje i pochodzenie danych

ENHANCER+ · Moduł 6 · Ewaluacja RAG · Podrozdział

Konfiguracja ma pozwolić ustalić, jaki system naprawdę badano. Dwa pliki nazwane „baseline” mogą wskazywać inne modele, indeksy lub prompty. Dlatego rozdziel parametry wykonywania, identyfikatory danych i opis organizacyjny eksperymentu.

Tag modelu i digest

Tag bge-m3:latest jest nazwą używaną w żądaniu. Digest identyfikuje konkretną zawartość modelu. Sam tag nie gwarantuje, że na innym komputerze za miesiąc będzie używany ten sam model. W pakiecie digest embeddingu pochodzi z index_metadata.json. Digest LLM odczytywany jest z backendu albo manifestu checkpointów. Nie wymyślaj brakującej identyfikacji.

Indeks obejmuje trzy powiązane pliki: embeddings.npy, chunks.jsonl i index_metadata.json. Manifest podaje wymiar, liczbę rekordów, metrykę, normalizację i sumy kontrolne. Zmiana jednego pliku bez pozostałych może spowodować przypisanie wektora do niewłaściwego tekstu. Niezgodność modelu embeddingowego wymaga właściwego indeksu albo jego przebudowy zgodnie z M3.

Schemat slajdu a schemat pakietu

Slajdy pokazują dokumentację konfiguracji w postaci zagnieżdżonych obiektów. W wykonywalnym pakiecie M6 modele mają płaskie pola, a ich digests są osobną mapą. Zachowaj schemat oczekiwany przez kod. Dodatkowy opis eksperymentu zapisuj obok, bez podmieniania typu pola używanego przez wykonawcę.

ZnaczenieZapis pakietu M6Jak wykorzystać w raporcie
Tag embeddinguembedding_modelPełna nazwa modelu pytania i indeksu
Digest embeddingumodel_digestIdentyfikacja z manifestu indeksu
Digests modelimodel_digests[tag]Osobno embedding i LLM
Indeksindex_idPowiązanie z manifestem i plikami
Parametry RAGtop_k, similarity_threshold, prompt_versionFaktyczne argumenty wykonania
Generacjatemperature, seed, num_predict, num_ctxObsługiwane wartości pakietowe
Rozmowahistory_window, use_selectorZakres historii i sposób wyboru narzędzi

Warstwa check_config dopuszcza tylko parametry rzeczywiście obsługiwane przez dostarczony adapter. Nie wystarczy zmienić liczby w JSON, by zmienić zachowanie modelu. Eksperymenty z nową temperaturą lub modelem wymagają najpierw rozszerzenia ścieżki wykonania i jej kontroli. W tym warsztacie zmieniasz przede wszystkim top_k, próg albo wersję promptu.

Zapisz opis środowiska

Poniższy kod odczytuje metadane i sumy kontrolne. Zapisz wynik w environment_manifest.json w katalogu swojego eksperymentu. Nie dopisuj go do konfiguracji podawanej wykonawcy, bo compare_configs traktuje każdą różnicę parametru jako zmianę.

Notebook warsztatu · przykład wywołania

import hashlib, platform

def sha256(path):
    return hashlib.sha256(Path(path).read_bytes()).hexdigest()

index_dir = ROOT / ref.read_json(ROOT / 'konfiguracja.json')['index_dir']
manifest = ref.read_json(index_dir / 'index_metadata.json')
snapshot = {
    'python': platform.python_version(),
    'mode': MODE,
    'index_manifest': manifest,
    'test_cases_sha256': sha256(ROOT / 'evaluation/test_cases.jsonl'),
    'code_sha256': sha256(ROOT / 'kod/moj_m6.py'),
    'config': config,
}
ref.save_json(E / 'environment_manifest.json', snapshot)

Wersję DocAssist odczytujesz z metadanych dokumentów, a wersję zestawu z kontraktów. Wersja fikcyjnej aplikacji, wersja korpusu, wersja zestawu i wersja schematu JSON mają różne znaczenia. Gdy korpus nie ma osobnej deklaracji wersji, identyfikuj go sumą pliku fragmentów i index_id, zamiast wpisywać dowolny numer.

Skąd pochodzą wyniki

PochodzenieCo oznaczaJakich wniosków nie wyciągać
assistant_run, mode=ollamaNowa tura z lokalnymi wywołaniamiNie uogólniaj jednego wyniku na cały model
assistant_run, mode=checkpointOdtworzona tura aplikacji z zapisanymi odpowiedziamiNie mierz bieżącej szybkości ani niezależnej zmienności
isolated_retrievalOsobny test wyszukiwaniaNie przypisuj rankingu późniejszej odpowiedzi
same_assistant_callRanking przechwycony podczas danej tury RAGNie zakładaj poprawności treści tylko dlatego, że zapis jest pełny
historical_ollama_M5Pełny import dawnego wynikuNie zmieniaj go automatycznie w nowy test M6

Datę importu można zapisać osobno. Oryginalny czas wykonania pozostaje w raw_result. Zachowaj oba konteksty czasowe, jeśli są potrzebne do raportu. W zapisie checkpointu pole original_elapsed_s dotyczy historycznego wywołania, a current_elapsed_s czasu odtworzenia. Żadne z nich samo nie opisuje nowej inferencji na Twoim komputerze.

Kontrola R1: druga osoba powinna umieć wskazać konkretny indeks, modele, kontrakty i pochodzenie wyników bez pytania autora, co miał na myśli.

Lokalne chatboty, agenci i systemy RAG z własną bazą wiedzy · Moduł 6 · Wydanie 29.09.2026