Ugruntowanie między modalnościami
Odwoływanie się do dowodów wizualnych w tekście
Ugruntowanie między modalnościami to bezpłatna lekcja AI Prompt Engineering na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej AI Prompt Engineering, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs AI Prompt Engineering zawiera 4 lekcji w sumie.
Znaczenie ugruntowania
Ugruntowanie oznacza wymóg, aby każde twierdzenie tekstowe można było prześledzić do konkretnego dowodu w innej modalności. Nieugruntowana odpowiedź multimodalna to płynnie przedstawione przypuszczenie; ugruntowana odpowiedź to możliwe do obrony twierdzenie ze wskazaniem pikseli (lub klatki audio), które je uzasadniają.
- Ugruntowanie zmienia nieprzejrzyste dane wyjściowe w dane możliwe do przeaudytowania.
- Jest to najskuteczniejszy pojedynczy sposób ograniczania pewnych siebie halucynacji wizualnych.
Kolejność rozumowania: najpierw dowody
Należy wymusić na modelu wyodrębnienie dowodów przed wyciągnięciem wniosków. Jeśli wniosek zostanie wygenerowany jako pierwszy, „dowód” stanie się uzasadnieniem dorobionym po fakcie, dopasowanym do potencjalnie błędnej odpowiedzi.
Odpowiedź należy ułożyć tak, aby najpierw pojawiły się zaobserwowane obszary, następnie interpretacja, a na końcu odpowiedź końcowa.
schema = {
'observations': '[{region: str, text_read: str}]',
'inference': 'str — reasoning over observations only',
'answer': 'str'
}
# Order in the prompt enforces order in generation.Cytowanie ramek ograniczających i obszarów
Należy poprosić model o podanie przybliżonych znormalizowanych współrzędnych dla każdego twierdzenia wizualnego. Nawet niedokładne ramki są wartościowe: system dalszego przetwarzania może przyciąć obraz i ponownie przeprowadzić weryfikację, a rażąco błędna ramka natychmiast ujawnia halucynację.
- Należy używać znormalizowanych współrzędnych [x0,y0,x1,y1] z zakresu 0..1, aby rozdzielczość nie miała znaczenia.
- Ramki należy traktować jako wskazówki lokalizacyjne, a nie detekcję co do pojedynczego piksela.
instruction = (
'For each extracted field, return '
'{"field": str, "value": str, "box": [x0,y0,x1,y1]}. '
'Coordinates normalized 0..1. If you cannot locate it, omit the field.'
)Weryfikacja przez cytowanie pikseli
W przypadku dowolnego tekstu widocznego na obrazie należy wymagać dosłownego zacytowania tego, co model odczytał. Dosłowny cytat można sprawdzić: da się go wyrywkowo zweryfikować za pomocą OCR, a model znacznie rzadziej wymyśli wartość, którą musi również dokładnie przepisać.
To ograniczenie typu „odczytaj i powtórz” jest tanie i wyjątkowo skuteczne w przypadku dokumentów, wykresów i oznakowania.
Kontrole spójności między modalnościami
Gdy ten sam fakt występuje w dwóch modalnościach (na obrazie slajdu i w jego narracji mówionej), należy poprosić model o ich sprawdzenie krzyżowe. Zgodność zwiększa pewność, a niezgodność jest sama w sobie sygnałem, który warto ujawnić.
- „Czy podpis rysunku odpowiada temu, co pokazuje wykres?”
- „Czy narracja zgadza się z liczbą wyświetlaną na ekranie?”
prompt = (
'You have a slide image and its transcript. '
'For each numeric claim, state: value_on_slide, value_in_transcript, agree(bool). '
'Flag any disagreement explicitly.'
)Odmowa jako wynik ugruntowania
Ugruntowany system musi mieć możliwość odpowiedzi „niewidoczne”. Bez jawnego mechanizmu wyjścia awaryjnego model wypełnia luki wiarygodnie brzmiącymi zmyśleniami. Należy go zapewnić i odpowiednio premiować.
Należy polecić: „Jeśli dowód nie istnieje lub jest nieczytelny, zwróć NOT_FOUND zamiast zgadywać”. Następnie należy uczynić NOT_FOUND pełnoprawnym, niekaranym wynikiem w potoku.
Ugruntowywanie relacji przestrzennych
Twierdzenia relacyjne („zawór znajduje się na lewo od manometru”) trudniej ugruntować niż obecność obiektu. Należy poprosić model o niezależne ugruntowanie obu elementów odniesienia za pomocą ramek, a następnie wyprowadzić relację ze współrzędnych zamiast stwierdzać ją bezpośrednio.
Taki rozkład zadania zamienia podatną na błędy ocenę relacyjną w dwa prostsze zadania lokalizacyjne oraz obliczenia arytmetyczne.
# Derive relation from grounded boxes, not from vibes
# left_of(a, b) := a.x1 < b.x0
def left_of(a, b):
return a['box'][2] < b['box'][0]Ugruntowanie dźwięku i czasu
Ugruntowanie wykracza poza obrazy. W przypadku dźwięku lub wideo należy wymagać znaczników czasu jako dowodu: „należy wskazać znacznik [mm:ss], w którym to powiedziano”. Wskaźniki czasowe pozwalają wyrywkowo porównać twierdzenie z odpowiednim fragmentem źródłowym.
- Znaczniki czasu ugruntowują twierdzenia dotyczące transkrypcji i diarizacji.
- Ujawniają podsumowania odbiegające od tego, co rzeczywiście powiedziano.
Pułapka nadpisania przez tekst
Pewne siebie twierdzenie w kanale tekstowym może wyprzeć poprawne dane wizualne — model podporządkowuje się dostarczonemu wcześniej założeniu. Jeśli kontekst mówi „suma na fakturze wynosi 400 USD”, a obraz pokazuje 450 USD, nieugruntowany model może bezkrytycznie powtórzyć 400 USD.
Obrona: należy polecić modelowi, aby najpierw wyprowadził odpowiedź wyłącznie z obrazu, następnie porównał ją z dostarczonym tekstem i oznaczył rozbieżności, zamiast po cichu je uzgadniać.
Weryfikowanie ugruntowania w dalszym przetwarzaniu
Ugruntowanie jest użyteczne tylko wtedy, gdy się na nim działa. Należy zbudować weryfikator, który przetwarza ustrukturyzowane dowody:
- Należy ponownie przyciąć każdą ramkę i wykonać OCR zacytowanego tekstu; niezgodność -> odrzucenie.
- Należy odtworzyć wskazany znacznik czasu w drugim przebiegu ASR.
- Wartości NOT_FOUND i znaczniki konfliktów należy traktować jako sygnały kierujące do weryfikacji przez człowieka.
Prompt dostarcza dowodów, a system egzekwuje ich wykorzystanie.
def verify(field):
crop = image.crop(field['box'])
read = ocr(crop)
return similar(read, field['value']) > 0.9Szablon kontraktu ugruntowania
Wielokrotnego użytku kontrakt ugruntowania łączy wszystkie techniki:
- Obserwacje przed wnioskami.
- Ramka i dosłowny cytat dla każdego twierdzenia.
- Mechanizm wyjścia awaryjnego NOT_FOUND — nigdy nie należy zgadywać.
- Wyprowadzanie odpowiedzi najpierw z obrazu, a następnie uzgadnianie jej z dostarczonym tekstem i oznaczanie konfliktów.
- Znaczniki czasu dla każdego twierdzenia dotyczącego dźwięku lub wideo.
Należy zdefiniować ten kontrakt raz i używać go ponownie w każdym zadaniu multimodalnym.
Szybkie sprawdzenie
Metadane kontekstu wskazują, że suma zamówienia wynosi 400 USD, ale podejrzewa Pan/Pani, że zeskanowany obraz może przedstawiać inną kwotę.
Podsumowanie: ugruntowanie w różnych modalnościach
Ugruntowanie sprawia, że dane wyjściowe multimodalne można przeaudytować: obserwacje przed wnioskami, ramki i dosłowne cytaty dla każdego twierdzenia, znaczniki czasu dla dźwięku i wideo, mechanizm wyjścia awaryjnego NOT_FOUND oraz wyprowadzanie odpowiedzi najpierw z obrazu i oznaczanie konfliktów z dostarczonym tekstem. Kontrakt ugruntowania należy połączyć z weryfikatorem działającym w dalszym przetwarzaniu, który ponownie przycina obrazy, odczytuje dane i kieruje oznaczone przypadki do weryfikacji. Dowody w prompcie, egzekwowanie ich wykorzystania w systemie — razem neutralizują pewne siebie halucynacje.
Często zadawane pytania
Czy lekcja „Ugruntowanie między modalnościami” jest bezpłatna?
Tak — pełny tekst „Ugruntowanie między modalnościami” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu AI Prompt Engineering, przejdź na CoddyKit PRO. Kurs AI Prompt Engineering zawiera 4 lekcji w sumie.
Co nauczysz się w „Ugruntowanie między modalnościami”?
Odwoływanie się do dowodów wizualnych w tekście Ćwiczysz AI Prompt Engineering z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć AI Prompt Engineering?
Nie wymagamy żadnego doświadczenia. AI Prompt Engineering w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.
Ile czasu zajmuje lekcja „Ugruntowanie między modalnościami”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji AI Prompt Engineering?
Tak. Każda lekcja AI Prompt Engineering zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Łączenie tekstu i obrazów
- Ugruntowanie między modalnościami
- Wspólne użycie dźwięku, tekstu i obrazu
- Kontrola danych wyjściowych multimodalnych