Łączenie tekstu i obrazów
Ujednolicone prompty multimodalne
Łączenie tekstu i obrazów to bezpłatna lekcja AI Prompt Engineering na CoddyKit. To lekcja 1 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.
Ujednolicony prompt multimodalny
Prompt multimodalny to nie tekst z dołączonym obrazem. To pojedyncza przeplatana sekwencja, w której tokeny obrazu i tokeny tekstowe znajdują się w tym samym kontekście i wzajemnie na siebie oddziałują. Model nie „ogląda obrazu, a potem czyta tekstu” — przetwarza scalony strumień tokenów.
- Fragmenty obrazu są rzutowane do tej samej przestrzeni osadzeń co tokeny tekstowe.
- Kolejność ma znaczenie: pytanie umieszczone przed obrazem kieruje uwagę inaczej niż pytanie umieszczone po obrazie.
- Należy tworzyć jeden prompt w dwóch postaciach wejścia, a nie dwa prompty.
Kolejność przeplatania i zakotwiczanie
Miejsce umieszczenia obrazu względem instrukcji zmienia zachowanie modelu. Umieszczenie instrukcji po obrazie pozwala modelowi oprzeć pytanie na tym, co już zakodował; umieszczenie jej przed obrazem sprawia, że obraz staje się dowodem na potrzeby wcześniej określonego zadania.
W promptach zawierających wiele obrazów należy oznaczać każdy obraz bezpośrednio w tekście, aby późniejszy tekst mógł jednoznacznie się do niego odwoływać ([Image 1], [Image 2]).
messages = [
{'role': 'user', 'content': [
{'type': 'text', 'text': 'You will see two product photos.'},
{'type': 'text', 'text': 'Image 1:'},
{'type': 'image', 'source': img_a},
{'type': 'text', 'text': 'Image 2:'},
{'type': 'image', 'source': img_b},
{'type': 'text', 'text': 'Which has better lighting? Cite the image label.'}
]}
]Formułowanie zadania przed kodowaniem
Enkodery wizyjne są stratne: szczegóły, które nie mają znaczenia dla niejawnego zadania, mogą zostać odrzucone podczas operacji pooling. Jeśli określi Pan/Pani zadanie przed obrazem, model będzie skłonny zwracać uwagę na istotne obszary.
- Ogólne prośby o podpisy generują ogólne cechy.
- Konkretne pytanie („policz rezystory na płytce”) koncentruje budżet reprezentacji na odpowiednich podobszarach.
Jeśli potrzebne są drobne szczegóły, należy od początku jasno określić zadanie.
Budżety rozdzielczości i kafelkowania
Większość modeli wizyjnych dzieli obrazy o wysokiej rozdzielczości na fragmenty o stałym rozmiarze, z których każdy kosztuje tokeny. Obraz o wymiarach 2000x2000 może zostać podzielony na wiele kafelków, z których każdy jest pomniejszany. Budżet tokenów to ukryte ograniczenie promptowania multimodalnego.
- Przed wysłaniem należy przyciąć obraz do interesującego obszaru — nie należy liczyć na to, że model sam wykona zbliżenie.
- W przypadku gęstych dokumentów należy wysyłać wycinki stron zamiast jednego obrazu całej strony.
- Należy znać maksymalną liczbę kafelków obsługiwaną przez dostawcę; po jej przekroczeniu drobny tekst staje się nieczytelny.
def estimate_image_tokens(w, h, tile=512, per_tile=256):
import math
tiles = math.ceil(w / tile) * math.ceil(h / tile)
return tiles * per_tile + per_tile # + thumbnailTekst jako ustrukturyzowany schemat dla wizji
Obraz należy połączyć z jawnym schematem wyjścia w kanale tekstowym. Obraz dostarcza treści, a tekst — kontraktu. Jest to znacznie bardziej niezawodne niż opis w swobodnej formie.
Należy poprosić o JSON z kluczami odpowiadającymi oczekiwanym encjom oraz polecić modelowi zwracanie null dla pól, których nie widać — ogranicza to zmyślanie szczegółów.
instruction = (
'Extract from the receipt image. Return JSON: '
'{"merchant": str|null, "total": number|null, '
'"date": str|null, "line_items": [{"name": str, "price": number}]}. '
'Use null when a field is not legible. Do not invent values.'
)Rozstrzyganie niejednoznaczności za pomocą wyrażeń deiktycznych
Wskazujące odniesienia („ten”, „ten po lewej”, „zaznaczone pole”) wiążą tekst z obszarami obrazu. Jeśli można wcześniej opisać obraz adnotacjami (narysować ramkę, dodać strzałkę), odniesienie tekstowe staje się znacznie bardziej niezawodne niż sam język opisujący położenie.
- Określenia położenia („prawy górny róg”) są podatne na błędy po obróceniu lub przycięciu obrazu.
- Nałożony numerowany znacznik wraz z określeniem „obiekt nr 3” jest jednoznaczny.
- Wstępne przetworzenie obrazu w celu dodania znaczników jest uzasadnioną techniką prompt engineeringu.
Few-shot z mieszanymi modalnościami
Można dostarczyć przykłady image-to-text, aby utrwalić format i styl rozumowania. Każdy przykład jest przeplatanym zestawem (obraz, idealna odpowiedź). Model wywnioskuje sposób mapowania na podstawie demonstracji.
Obrazy przykładowe powinny odzwierciedlać rzeczywisty rozkład danych — przykład z innej domeny uczy niewłaściwego wyboru cech.
shots = [
('image', chart_a), ('text', 'Trend: upward. Peak: Q3. Anomaly: none.'),
('image', chart_b), ('text', 'Trend: flat. Peak: Q1. Anomaly: Q4 dip.'),
('image', target_chart), ('text', 'Trend:') # model completes
]Ugruntowywanie twierdzeń w pikselach
W przypadku ekstrakcji o wysokiej stawce należy wymagać od modelu wskazania, gdzie w obrazie ma źródło każde twierdzenie. Przybliżone ramki ograniczające lub zacytowany tekst znajdujący się na obrazie stanowią weryfikowalny dowód i znacząco ograniczają pewne siebie zmyślanie.
- „Dla każdej wartości należy zacytować dokładny odczytany tekst etykiety”.
- „Dla każdego pola należy podać przybliżoną znormalizowaną ramkę [x0,y0,x1,y1]”.
Ugruntowanie zmienia nieprzejrzystą odpowiedź w odpowiedź możliwą do przeaudytowania.
Tryby błędów, przed którymi należy się chronić
Modele multimodalne zawodzą w charakterystyczny sposób:
- Przesunięcia OCR w przypadku małych lub stylizowanych czcionek — cyfry takie jak 1/7 i 0/O bywają mylone.
- Załamanie zliczania przy więcej niż około 6 podobnych obiektach.
- Stronniczość podpisu: opisywanie typowej sceny zamiast tej rzeczywiście przedstawionej.
- Nadpisanie przez kanał tekstowy: pewne siebie, błędne twierdzenie tekstowe może wyprzeć poprawne dane wizualne.
Można temu przeciwdziałać, prosząc model, aby najpierw wywnioskował odpowiedź z obrazu, a dopiero potem uzgodnił ją z twierdzeniami tekstowymi.
Prompty uzgadniające
Gdy kontekst tekstowy i obraz są ze sobą sprzeczne, należy jawnie określić priorytet — model nie ma domyślnej polityki, której można zaufać. Należy to zapisać wprost: „Jeśli obraz jest sprzeczny z dostarczonymi metadanymi, należy zaufać obrazowi i oznaczyć rozbieżność”.
To jedno zdanie zamienia cichy błąd w jawny, wykryty konflikt, który dalszy potok może skierować do weryfikacji.
policy = (
'You are given metadata AND a photo. '
'When they disagree, prefer the photo as ground truth. '
'Emit {"value": ..., "conflict": bool, "note": str}.'
)Projektowanie potoku fuzji
Produkcyjne promptowanie multimodalne to potok, a nie pojedyncze wywołanie:
- Wstępne przetwarzanie: przycięcie, adnotowanie i pomniejszenie obrazu do dostępnego budżetu.
- Fuzja: przeplatanie danych z instrukcją określającą zadanie na początku oraz ze schematem wyjścia.
- Ugruntowanie: wymaganie dowodu dla każdego twierdzenia.
- Uzgodnienie: określenie priorytetu między modalnościami.
- Weryfikacja: parsowanie JSON oraz sprawdzanie wartości null i znaczników konfliktów.
Każdy etap ogranicza obszar błędów, którego nie da się wyeliminować samym promptowaniem.
Szybkie sprawdzenie
Musi Pan/Pani wyodrębnić drobny druk ze skanu umowy w wysokiej rozdzielczości i potrzebuje wiarygodnych liczb.
Podsumowanie: łączenie tekstu i obrazów
Ujednolicony prompt multimodalny to jeden przeplatany strumień tokenów. Najważniejsze działania to: formułowanie zadania na początku, aby ukierunkować enkoder wizyjny, uwzględnienie rozdzielczości i kafelkowania za pomocą przycinania, jawne schematy wyjścia z polami dopuszczającymi wartość null, ugruntowanie w pikselach każdego twierdzenia oraz określony priorytet modalności na wypadek konfliktów. Należy traktować to jako potok — wstępne przetwarzanie, fuzja, ugruntowanie, uzgodnienie, weryfikacja — a delikatne elementy promptowania wizji staną się możliwe do kontrolowania.
Często zadawane pytania
Czy lekcja „Łączenie tekstu i obrazów” jest bezpłatna?
Tak — pełny tekst „Łączenie tekstu i obrazów” 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 „Łączenie tekstu i obrazów”?
Ujednolicone prompty multimodalne Ć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 1 z 4.
Ile czasu zajmuje lekcja „Łączenie tekstu i obrazów”?
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