AI Engineering Academy · Oppitunti

RAG:n ratkaisema ongelma

Tutkitte todellisia epäonnistumistapauksia, joissa LLM:t hallusinoivat vanhentunutta tai virheellistä tietoa, ja ymmärrätte, miten vastausten perustaminen haettuihin dokumentteihin korjaa nämä ongelmat.

Oppitunti 1/413 vaihetta

RAG:n ratkaisema ongelma on ilmainen AI Engineering Academy-oppitunti CoddyKitissä. Tämä on oppitunti 1/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu AI Engineering Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. AI Engineering Academy-kurssilla on yhteensä 4 oppituntia.

LLM-malleilla on tietokatkos

Jokainen suuri kielimalli koulutetaan tiettyyn ajankohtaan asti kerätystä internetin tilannekuvasta. Tätä ajankohtaa kutsutaan tietokatkokseksi. GPT-4o:n tietokatkos on vuoden 2024 alkupuolella. Jos kysytte siltä tämän ajankohdan jälkeen tapahtuneista asioista, se joko myöntää tietämättömyytensä tai, mikä pahempaa, keksii itsevarmasti uskottavalta kuulostavia mutta vääriä tietoja. Tämä on perustavanlaatuinen ongelma sovelluksille, jotka tarvitsevat ajantasaista tai omistusoikeudellisesti suojattua tietoa.

Hallusinaatio-ongelma

Hallusinaatio syntyy, kun LLM tuottaa tekstiä, joka kuulostaa asiantuntevalta mutta on tosiasiallisesti väärää. Mallit koulutetaan tuottamaan sujuvaa ja johdonmukaista tekstiä — niitä ei ole erityisesti koulutettu kieltäytymään, kun ne eivät tiedä jotain. Siksi ne täyttävät tietojensa aukot uskottavilla arvauksilla. Tutkimukset osoittavat, että parhaatkin mallit hallusinoivat tietointensiivisissä tehtävissä 10–40 prosenttia ajasta ilman ulkoista tietopohjaa.

Konkreettinen esimerkki hallusinaatiosta

Kuvitelkaa kysyvänne LLM:ltä: Mitkä ovat yrityksemme vuoden 2025 kolmannen vuosineljänneksen toimittajasopimuksen ehdot? Malli ei ole koskaan nähnyt sisäistä dokumenttianne. Sen sijaan että se sanoisi, ettei tiedä, se saattaa tuottaa uskottavalta kuulostavan sopimusyhteenvedon yleistä juridista kieltä käyttäen. Jos työntekijä toimii keksittyjen tietojen perusteella, seuraukset voivat olla vakavat. Juuri tämän RAG on suunniteltu estämään.

# 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)

Tietopohjaisuus ratkaisee hallusinaatiot

RAG:n taustalla oleva oivallus on yksinkertainen: jos annatte mallille olennaiset tiedot kehotteen sisällä, sen ei tarvitse tukeutua muistiin tallentuneeseen tietoon. Malli siirtyy muistista tuottamisesta kontekstista lukemiseen. Näin myös ihmiset toimivat — kun tarvitsette täsmällisiä tietoja, tarkistatte ne sen sijaan, että luottaisitte muistikuvaanne. RAG soveltaa saman työnkulun LLM-malleihin.

# 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?'}
    ]
)

Staattinen hienosäätö ei auta tässä

Yleinen harhaluulo on, että mallin hienosäätö omilla dokumenteilla korjaa hallusinaatiot. Hienosäätö päivittää mallin painoja parantaakseen sen tyyliä, muotoilua ja tehtävän noudattamista, mutta se ei luotettavasti lisää malliin faktatietoa. Tutkimukset osoittavat, että hienosäädetyt mallit hallusinoivat edelleen jopa itse harjoitusdatasta. Jotta tieto voidaan palauttaa luotettavasti, se on annettava päättelyaikana konteksti-ikkunan kautta.

RAG mahdollistaa reaaliaikaisen tiedon

Koska RAG hakee tietoa jatkuvasti päivittyvästä dokumenttivarastosta, se käsittelee luonnostaan ajan myötä muuttuvaa tietoa. Kun käytäntöä kuvaava dokumentti päivitetään, indeksoitte sen uudelleen, ja jokainen seuraava kysely käyttää välittömästi uutta versiota — mallia ei tarvitse kouluttaa uudelleen. Siksi RAG on paljon käytännöllisempi kuin säännöllinen hienosäätö esimerkiksi sisäisissä tietopankeissa, asiakastukijärjestelmissä ja taloustutkimuksen työkaluissa.

RAG toimii yksityisellä omistusoikeudellisella datalla

Suurinta osaa yritysten datasta ei voida lähettää OpenAI:lle koulutusta varten tietosuoja- ja vaatimustenmukaisuusvaatimusten vuoksi. RAG kiertää tämän ongelman: arkaluonteiset dokumenttinne säilyvät omassa vektoritietokannassanne, ja kustakin kyselystä LLM:lle lähetetään vain olennaiset tekstiosat. Voitte jopa käyttää paikallista LLM:ää, kuten Llama 3:a, jolloin kaikki data pysyy omissa tiloissanne. RAG on ensisijainen malli rakennettaessa tekoälyä luottamuksellisen yrityssisällön käsittelyyn.

RAG mahdollistaa lähteiden ilmoittamisen

Kun LLM tuottaa vastauksen muistinsa perusteella, sille ei ole lähdettä, johon viitata. Kun se tuottaa vastauksen haetuista dokumenteista, se voi viitata täsmällisiin lähteisiin. Voitte ohjeistaa mallia sisällyttämään vastaukseensa dokumenttien nimet ja sivunumerot, jolloin käyttäjät voivat avata alkuperäisen lähteen ja tarkistaa tiedot. Lähteiden ilmoittaminen lisää huomattavasti luottamusta tekoälyn tuottamiin vastauksiin, mikä on ratkaisevan tärkeää oikeudellisissa, lääketieteellisissä ja taloudellisissa sovelluksissa.

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."'''

Hae ja tuota -malli

RAG noudattaa päättelyaikana kaksivaiheista mallia: Hae — muunna käyttäjän kysymys upotukseksi, etsi vektoritietokannasta olennaisimmat dokumenttiosat ja kerää parhaat K tulosta. Tuota — muodosta kehote, joka sisältää haetut osat kontekstina, ja pyydä LLM:ää vastaamaan kysymykseen ainoastaan tämän kontekstin perusteella. LLM lukee, yhdistää tiedot ja vastaa.

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

Mitä RAG ei ratkaise

RAG on tehokas, mutta se ei ratkaise kaikkea. Se epäonnistuu edelleen, kun vastaus edellyttää satojen dokumenttien tietojen yhdistämistä (haku palauttaa vain muutaman osan), kysymys on luonnostaan monivaiheinen ja mallin on pääteltävä välivaiheiden kautta tai haetut osat ovat harhaanjohtavia tai ristiriitaisia. Näiden rajoitusten ymmärtäminen auttaa suunnittelemaan hybridijärjestelmiä, joissa RAG yhdistyy päättelyagentteihin.

RAG ja vaihtoehdot

LLM:lle voi antaa toimialakohtaista tietoa kolmella päävaihtoehdolla: kehotteen täyttäminen (kaikki lisätään kehotteeseen — toimii vain erittäin pienillä aineistoilla), hienosäätö (opettaa tyylin ja muodon hyvin, mutta ei ole luotettava faktatiedon palauttamiseen) ja RAG (hakee olennaiset faktat dynaamisesti päättelyaikana ja skaalautuu miljooniin dokumentteihin). Useimmissa tuotantokäyttötapauksissa, joissa tarvitaan ajantasaista, yksityistä tai laajamittaista tietoa, RAG on oikea valinta.

Pikatarkistus

Testatkaa, miten hyvin ymmärrätte tämän oppitunnin AI Engineering -käsitteet.

Oppitunnin yhteenveto

Tässä oppitunnissa opitte: miksi LLM:t hallusinoivat tietokatkosten ja »en tiedä» -vastauksen ilmoittamisen vaikeuden vuoksi, miksi hienosäätö ei ratkaise hallusinaatioita faktatiedon palauttamisen osalta sekä miten RAG perustaa vastaukset haettuihin dokumentteihin, mikä mahdollistaa lähteiden ilmoittamisen, reaaliaikaisen tiedon käytön ja yksityisen datan turvallisen hyödyntämisen. Seuraavaksi tutustumme RAG-arkkitehtuuriin kokonaisuudessaan, mukaan lukien sen indeksointi- ja hakuvaiheet.

Aloita maksutta

Opi Python tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
30
Oppitunnit
120

Usein kysytyt kysymykset

Onko oppitunti ”RAG:n ratkaisema ongelma” ilmainen?

Kyllä – oppitunnin ”RAG:n ratkaisema ongelma” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko AI Engineering Academy-kurssin, päivitä CoddyKit PROhon. AI Engineering Academy-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”RAG:n ratkaisema ongelma”?

Tutkitte todellisia epäonnistumistapauksia, joissa LLM:t hallusinoivat vanhentunutta tai virheellistä tietoa, ja ymmärrätte, miten vastausten perustaminen haettuihin dokumentteihin korjaa nämä ongelm… Harjoittelet AI Engineering Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni AI Engineering Academy-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin AI Engineering Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 1/4.

Kuinka kauan ”RAG:n ratkaisema ongelma”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä AI Engineering Academy-oppitunnilla?

Kyllä. Jokainen AI Engineering Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. RAG:n ratkaisema ongelma
  2. RAG-arkkitehtuuri: indeksointi ja haku
  3. Täydennetyn promptin laatiminen
  4. RAG vai hienosäätö: milloin kumpaakin käytetään
← Takaisin: AI Engineering Academy