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ę.
| Znaczenie | Zapis pakietu M6 | Jak wykorzystać w raporcie |
|---|---|---|
| Tag embeddingu | embedding_model | Pełna nazwa modelu pytania i indeksu |
| Digest embeddingu | model_digest | Identyfikacja z manifestu indeksu |
| Digests modeli | model_digests[tag] | Osobno embedding i LLM |
| Indeks | index_id | Powiązanie z manifestem i plikami |
| Parametry RAG | top_k, similarity_threshold, prompt_version | Faktyczne argumenty wykonania |
| Generacja | temperature, seed, num_predict, num_ctx | Obsługiwane wartości pakietowe |
| Rozmowa | history_window, use_selector | Zakres 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
| Pochodzenie | Co oznacza | Jakich wniosków nie wyciągać |
|---|---|---|
| assistant_run, mode=ollama | Nowa tura z lokalnymi wywołaniami | Nie uogólniaj jednego wyniku na cały model |
| assistant_run, mode=checkpoint | Odtworzona tura aplikacji z zapisanymi odpowiedziami | Nie mierz bieżącej szybkości ani niezależnej zmienności |
| isolated_retrieval | Osobny test wyszukiwania | Nie przypisuj rankingu późniejszej odpowiedzi |
| same_assistant_call | Ranking przechwycony podczas danej tury RAG | Nie zakładaj poprawności treści tylko dlatego, że zapis jest pełny |
| historical_ollama_M5 | Pełny import dawnego wyniku | Nie 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