LLM-sovellukset tuotannossa (RAG + vektoritietokanta + välimuisti) · Oppitunti

Lähdedatan puhdistaminen ja duplikaattien poistaminen

Opitte puhdistamaan kohinaisia dokumentteja ja poistamaan päällekkäisen sisällön ennen ingestointia, jotta RAG-indeksi pysyy pienenä ja tarkkana eikä sisällä keskenään ristiriitaisia vastauksia.

Oppitunti 4/413 vaihetta

Lähdedatan puhdistaminen ja duplikaattien poistaminen on ilmainen LLM-sovellukset tuotannossa (RAG + vektoritietokanta + välimuisti)-oppitunti CoddyKitissä. Tämä on oppitunti 4/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 LLM-sovellukset tuotannossa (RAG + vektoritietokanta + välimuisti)-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. LLM-sovellukset tuotannossa (RAG + vektoritietokanta + välimuisti)-kurssilla on yhteensä 4 oppituntia.

Roskaa sisään, roskaa ulos

RAG:n laatua rajoittaa käsiteltävän aineiston laatu. Malline- ja vakiotekstit, HTML-tagit, päällekkäiset sivut ja virheellinen merkistökoodaus heikentävät kaikki hakua.

Puhdistus ja kaksoiskappaleiden poisto tehdään ennen lohkoihin jakoa ja upotusten muodostamista.

Yleisiä kohinan lähteitä

Raakadokumenteissa tyypillisesti esiintyvää tarpeetonta sisältöä:

  • Navigointivalikot, ylä- ja alatunnisteet
  • Evästeilmoitukset ja mainokset
  • Toistuvat oikeudelliset vastuuvapauslausekkeet
  • Virheellisestä merkistökoodauksesta johtuva mojibake
  • Liialliset välilyönnit ja ohjausmerkit

Tekstin perusnormalisointi

Normalisoikaa välilyönnit ja poistakaa ohjausmerkit ensin.

import re

def clean(text):
    text = re.sub(r'[\t\r]+', ' ', text)
    text = re.sub(r' {2,}', ' ', text)
    text = re.sub(r'\n{3,}', '\n\n', text)
    return text.strip()

print(clean('Hello     world\n\n\n\nbye'))

Vakiotekstin poistaminen

Poistakaa monilla sivuilla toistuva vakioteksti. Yksinkertainen tapa on kerätä dokumenteissa toistuvat rivit ja poistaa ne.

  • Alatunnisteet, tekijänoikeusrivit
  • Jakamiseen tarkoitetut widgetit
  • Identtiset navigointilohkot

Merkistökoodausongelmien korjaaminen

Mojibake, kuten 'caf\u00c3\u00a9' merkkijonon 'caf\u00e9' sijaan, sekoittaa upotukset. Tunnistakaa lähteen merkistökoodaus ja purkakaa sisältö johdonmukaisesti UTF-8-muotoon ennen tallennusta.

Täsmällisten kaksoiskappaleiden tunnistus

Edullisin tapa poistaa kaksoiskappaleet: laskekaa normalisoidusta tekstistä tiiviste ja poistakaa täsmälleen toistuvat kopiot.

import hashlib

seen = set()

def is_dup(text):
    h = hashlib.sha256(text.encode()).hexdigest()
    if h in seen:
        return True
    seen.add(h)
    return False

print(is_dup('a'))
print(is_dup('a'))

Lähes päällekkäisten sisältöjen tunnistus

Tarkka hajautus ohittaa sivut, jotka eroavat päivämäärän tai yhden sanan verran. Käyttäkää lähes päällekkäisten sisältöjen tunnistustekniikoita:

  • MinHash + Jaccardin samankaltaisuus
  • SimHash-sormenjäljet
  • Upotusten kosinisuuntaisuus, joka ylittää kynnysarvon

Jaccardin samankaltaisuus

Nopea tunnusjoukkojen päällekkäisyyspistemäärä lähes päällekkäisten sisältöjen merkitsemiseen.

def jaccard(a, b):
    sa, sb = set(a.split()), set(b.split())
    return len(sa & sb) / len(sa | sb)

print(round(jaccard('the cat sat', 'the cat ran'), 2))

Miksi kaksoiskappaleet haittaavat RAG-järjestelmiä

Kaksoiskappaleet tuhlaavat indeksitilaa ja vääristävät hakua: top-k-tulokset täyttyvät saman tekstikohdan kopioista, jolloin monipuolinen näyttö jää niiden ulkopuolelle. Keskenään ristiriitaiset lähes päällekkäiset versiot (vanha ja uusi käytäntö) voivat jopa tuottaa ristiriitaisia vastauksia.

Puhdistusputken rakentaminen

Ketjuttakaa vaiheet tässä järjestyksessä: normalize -> fix encoding -> strip boilerplate -> exact dedup -> near dedup. Kirjatkaa, kuinka paljon sisältöä poistettiin, jotta voitte tarkastaa voimakkaiden suodattimien vaikutukset.

Idempotentti uudelleensyöttö

Kun asiakirjat syötetään järjestelmään uudelleen, käyttäkää vakaata sisältöhajautusta tietueen avaimena, jotta päivitykset korvaavat vanhan version eivätkä luo kaksoiskappaleita. Näin indeksi pysyy ajan mittaan siistinä.

Pikatarkistus

Testatkaa, miten hyvin ymmärrätte deduplikoinnin.

Kertaus

Opitte valmistelemaan puhdasta lähdedataa: normalisoikaa teksti, korjatkaa koodaus, poistakaa vakiomuotoinen oheissisältö ja poistakaa sitten sekä täsmälleen samanlaiset että lähes päällekkäiset sisällöt. Käyttäkää vakaata sisältöhajautusta idempotenttiin uudelleensyöttöön. Puhtaammat syötteet tarkoittavat pienempää indeksiä sekä tarkempia ja ristiriidattomia hakutuloksia.

Aloita maksutta

Opi LLM-sovellukset tuotannossa (RAG + vektoritietokanta + välimuisti) 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
12
Oppitunnit
48

Usein kysytyt kysymykset

Onko oppitunti ”Lähdedatan puhdistaminen ja duplikaattien poistaminen” ilmainen?

Kyllä – oppitunnin ”Lähdedatan puhdistaminen ja duplikaattien poistaminen” 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 LLM-sovellukset tuotannossa (RAG + vektoritietokanta + välimuisti)-kurssin, päivitä CoddyKit PROhon. LLM-sovellukset tuotannossa (RAG + vektoritietokanta + välimuisti)-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Lähdedatan puhdistaminen ja duplikaattien poistaminen”?

Opitte puhdistamaan kohinaisia dokumentteja ja poistamaan päällekkäisen sisällön ennen ingestointia, jotta RAG-indeksi pysyy pienenä ja tarkkana eikä sisällä keskenään ristiriitaisia vastauksia. Harjoittelet LLM-sovellukset tuotannossa (RAG + vektoritietokanta + välimuisti)-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni LLM-sovellukset tuotannossa (RAG + vektoritietokanta + välimuisti)-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin LLM-sovellukset tuotannossa (RAG + vektoritietokanta + välimuisti)-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 4/4.

Kuinka kauan ”Lähdedatan puhdistaminen ja duplikaattien poistaminen”-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ä LLM-sovellukset tuotannossa (RAG + vektoritietokanta + välimuisti)-oppitunnilla?

Kyllä. Jokainen LLM-sovellukset tuotannossa (RAG + vektoritietokanta + välimuisti)-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. Monimuotoisten dokumenttimuotojen lataaminen
  2. Kontekstin huomioivat pilkkomisstrategiat
  3. Metatietojen hallinta ja suodatus
  4. Lähdedatan puhdistaminen ja duplikaattien poistaminen
← Takaisin: LLM-sovellukset tuotannossa (RAG + vektoritietokanta + välimuisti)