0Pricing
AI Engineering Academy · Lekcja

Problem rozwiązywany przez RAG

Uczestnicy przeanalizują rzeczywiste przypadki błędów, w których LLM-y generują nieaktualne lub nieprawdziwe informacje, oraz zrozumieją, jak oparcie odpowiedzi na pobranych dokumentach rozwiązuje te problemy.

Problem rozwiązywany przez RAG to bezpłatna lekcja AI Engineering Academy 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 Engineering Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs AI Engineering Academy zawiera 4 lekcji w sumie.

LLM-y mają granicę wiedzy

Każdy duży model językowy jest trenowany na obrazie internetu zebranym do określonej daty, nazywanej granicą wiedzy. Granica wiedzy modelu GPT-4o przypada na początek 2024 roku. Jeśli zapytają go Państwo o wydarzenia, które miały miejsce później, model albo przyzna, że nie zna odpowiedzi, albo — co gorsza — z dużą pewnością zmyśli wiarygodnie brzmiące, ale nieprawdziwe informacje. W przypadku aplikacji wymagających aktualnej lub zastrzeżonej wiedzy jest to fundamentalny problem.

Problem halucynacji

Halucynacja występuje, gdy LLM generuje tekst brzmiący autorytatywnie, ale niezgodny z faktami. Modele są trenowane tak, aby tworzyć płynny i spójny tekst — nie są wyraźnie uczone odmawiania odpowiedzi, gdy czegoś nie wiedzą. W rezultacie uzupełniają luki w wiedzy wiarygodnie brzmiącymi domysłami. Badania pokazują, że nawet najlepsze modele halucynują w zadaniach wymagających wiedzy od 10 do 40% czasu, jeśli nie zostaną ugruntowane w zewnętrznych źródłach.

Konkretny przykład halucynacji

Rozważmy pytanie zadane LLM: Jakie są warunki umowy z dostawcą naszej firmy na trzeci kwartał 2025 roku? Model nigdy nie widział Państwa wewnętrznego dokumentu. Zamiast przyznać, że nie zna odpowiedzi, może wygenerować wiarygodnie brzmiące podsumowanie umowy, używając ogólnego języka prawniczego. Jeśli pracownik podejmie działania na podstawie tych zmyślonych informacji, konsekwencje mogą być poważne. Jest to dokładnie ten rodzaj błędu, któremu RAG miał zapobiegać.

# Without RAG — LLM guesses from parametric memory
response = client.chat.completions.create(
    model='gpt-4o',
    messages=[
        {'role': 'user',
         'content': 'What are our Q3 2025 vendor contract terms?'}
    ]
)
# Model has no access to your documents — may hallucinate
print(response.choices[0].message.content)

Ugruntowanie rozwiązuje problem halucynacji

Założenie stojące za RAG jest proste: jeśli dostarczą Państwo modelowi odpowiednie informacje wewnątrz promptu, nie będzie musiał polegać na zapamiętanej wiedzy. Model przechodzi od generowania z pamięci do czytania z kontekstu. Tak samo działają ludzie — gdy potrzebują dokładnych szczegółów, sprawdzają je zamiast polegać na pamięci. RAG wdraża ten sam sposób pracy w przypadku LLM-ów.

# With RAG — answer grounded in retrieved documents
context = retrieve_relevant_chunks(query='Q3 2025 vendor contract terms')

response = client.chat.completions.create(
    model='gpt-4o',
    messages=[
        {'role': 'system', 'content': 'Answer using only the provided context.'},
        {'role': 'user', 'content': f'Context: {context}\n\nQuestion: What are our Q3 2025 vendor contract terms?'}
    ]
)

Statyczne dostrajanie nie pomaga w tym przypadku

Powszechnym błędnym przekonaniem jest to, że dostrajanie modelu na podstawie własnych dokumentów rozwiązuje problem halucynacji. Dostrajanie aktualizuje wagi modelu, aby poprawić jego styl, format i stosowanie się do poleceń, ale nie zapewnia niezawodnego wprowadzania wiedzy faktograficznej. Badania pokazują, że dostrojone modele nadal halucynują nawet w odniesieniu do danych treningowych. Aby wiedza mogła być niezawodnie przywoływana, należy udostępnić ją w czasie wnioskowania za pośrednictwem okna kontekstu.

RAG zapewnia dostęp do aktualnej wiedzy w czasie rzeczywistym

Ponieważ RAG pobiera informacje z aktualizowanego repozytorium dokumentów, naturalnie obsługuje wiedzę, która zmienia się w czasie. Gdy dokument dotyczący zasad zostanie zaktualizowany, wystarczy ponownie go zindeksować, a każde kolejne zapytanie natychmiast użyje nowej wersji — bez konieczności ponownego trenowania modelu. Dzięki temu RAG jest znacznie praktyczniejszy niż okresowe dostrajanie w zastosowaniach takich jak wewnętrzne bazy wiedzy, systemy obsługi klienta i narzędzia do analiz finansowych.

RAG działa na prywatnych, zastrzeżonych danych

Większości danych firmowych nie można wysyłać do OpenAI w celu trenowania modeli ze względu na wymagania dotyczące prywatności i zgodności z przepisami. RAG omija ten problem: poufne dokumenty pozostają w Państwa własnej bazie wektorowej, a do LLM przy każdym zapytaniu wysyłane są tylko odpowiednie fragmenty. Można nawet uruchomić lokalny LLM, taki jak Llama 3, aby wszystkie dane pozostały lokalnie, w infrastrukturze firmy. RAG to podstawowy wzorzec tworzenia systemów AI korzystających z poufnych treści firmowych.

RAG umożliwia przypisywanie źródeł

Gdy LLM generuje odpowiedź z pamięci, nie ma źródła, które można zacytować. Gdy generuje ją na podstawie pobranych dokumentów, może cytować dokładne źródła. Można polecić modelowi umieszczanie w odpowiedzi nazw dokumentów i numerów stron, a użytkownicy mogą przejść do źródła, aby zweryfikować oryginał. Przypisywanie źródeł znacznie zwiększa zaufanie do odpowiedzi generowanych przez AI, co ma kluczowe znaczenie w zastosowaniach prawnych, medycznych i finansowych.

system_prompt = '''You are a helpful assistant.
Answer questions using ONLY the provided context.
At the end of your answer, list the sources you used
in this format: [Source: document_name, page X]
If the context does not contain the answer, say:
"I don't have that information in the provided documents."'''

Wzorzec pobierz, a następnie wygeneruj

RAG działa według dwuetapowego wzorca w czasie wnioskowania: Retrieve — konwersja pytania użytkownika na embedding, wyszukanie w bazie wektorowej najbardziej trafnych fragmentów dokumentów i zebranie wyników top-K. Generate — utworzenie promptu zawierającego pobrane fragmenty jako kontekst i poproszenie LLM o udzielenie odpowiedzi na pytanie wyłącznie na podstawie tego kontekstu. LLM odczytuje informacje, syntezuje je i odpowiada.

def answer_with_rag(user_question, vector_store, llm_client):
    # Step 1: Retrieve
    query_embedding = embed(user_question)
    chunks = vector_store.search(query_embedding, top_k=5)
    context = '\n\n'.join([c['text'] for c in chunks])

    # Step 2: Generate
    response = llm_client.chat.completions.create(
        model='gpt-4o',
        messages=[
            {'role': 'system', 'content': f'Answer using only:\n{context}'},
            {'role': 'user', 'content': user_question}
        ]
    )
    return response.choices[0].message.content

Czego RAG nie rozwiązuje

RAG jest potężnym rozwiązaniem, ale nie jest panaceum. Nadal zawodzi, gdy: odpowiedź wymaga syntezy informacji z setek dokumentów (wyszukiwanie zwraca tylko kilka fragmentów), pytanie ma z natury charakter multi-hop i model musi przeprowadzić rozumowanie obejmujące kroki pośrednie lub pobrane fragmenty są mylące albo sprzeczne. Zrozumienie tych ograniczeń pomaga projektować systemy hybrydowe łączące RAG z agentami rozumującymi.

RAG a alternatywy

Istnieją trzy główne sposoby udostępniania LLM wiedzy z danej dziedziny: prompt stuffing (umieszczenie wszystkiego w promptcie — działa tylko w przypadku bardzo małych zbiorów), dostrajanie (dobrze uczy stylu i formatu, ale nie zapewnia niezawodnego przywoływania faktów) oraz RAG (dynamicznie pobiera istotne fakty w czasie wnioskowania i skaluje się do milionów dokumentów). W większości produkcyjnych zastosowań wymagających aktualnej, prywatnej lub obszernej wiedzy właściwym wyborem jest RAG.

Szybkie sprawdzenie

Sprawdź swoją wiedzę na temat koncepcji AI Engineering przedstawionych w tej lekcji.

Podsumowanie lekcji

W tej lekcji poznali Państwo: dlaczego LLM-y halucynują z powodu ograniczeń zakresu wiedzy i niezdolności do powiedzenia „nie wiem”, dlaczego dostrajanie nie rozwiązuje problemu halucynacji w przypadku przywoływania faktów oraz jak RAG opiera odpowiedzi na pobranych dokumentach, umożliwiając przypisywanie źródeł, dostęp do aktualnej wiedzy i bezpieczne korzystanie z prywatnych danych. W następnej części omówimy pełną architekturę RAG, w tym jej etapy indeksowania i pobierania.

Często zadawane pytania

Czy lekcja „Problem rozwiązywany przez RAG” jest bezpłatna?

Tak — pełny tekst „Problem rozwiązywany przez RAG” 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 Engineering Academy, przejdź na CoddyKit PRO. Kurs AI Engineering Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Problem rozwiązywany przez RAG”?

Uczestnicy przeanalizują rzeczywiste przypadki błędów, w których LLM-y generują nieaktualne lub nieprawdziwe informacje, oraz zrozumieją, jak oparcie odpowiedzi na pobranych dokumentach rozwiązuje te… Ćwiczysz AI Engineering Academy 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 Engineering Academy?

Nie wymagamy żadnego doświadczenia. AI Engineering Academy 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 „Problem rozwiązywany przez RAG”?

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 Engineering Academy?

Tak. Każda lekcja AI Engineering Academy 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

  1. Problem rozwiązywany przez RAG
  2. Architektura RAG: indeksowanie i pobieranie
  3. Tworzenie rozszerzonego promptu
  4. RAG a fine-tuning: kiedy stosować którą metodę
← Powrót do AI Engineering Academy