Remiantis paieškos rezultatais, ETL (ištraukimas, pakeitimas, įkėlimas) atlieka lemiamą vaidmenį duomenų gavimo sistemoje, skirtoje Retrieval papildytos kartos (RAG) sistemoms:
1. Ištrauka: pirmasis RAG duomenų perdavimo vamzdyno veiksmas yra duomenų ištraukimas iš įvairių šaltinių, pvz., duomenų bazių, serverių, duomenų centrų ir internetinių šaltinių. Tai apima struktūrinius ir nestruktūruotus duomenis, pvz., tekstinius failus, CSV failus ir PDF dokumentus. „LangChain“ teikia įvairias dokumentų įkėlimo programas, skirtas duomenims iš skirtingų šaltinių įkelti.
2. Transformacija: išgauti duomenys atlieka išankstinio apdorojimo veiksmą, kuris apima:
– Teksto skaidymas: ilgas tekstas suskaidomas į mažesnius segmentus, kad atitiktų maksimalų įterpimo modelio prieigos rakto ilgį.
– Ženklinimas: tekstas suskaidomas į atskirus žetonus, pvz., žodžius ar frazes, kad būtų sukurtas efektyvesnis ir tikslesnis vaizdas.
3. Įkelti: iš anksto apdoroti duomenys konvertuojami į didelio matmens vektorius, kurie atvaizduoja tekstą skaitmeniniu formatu. Šie įterpimai saugomi specializuotose vektorinėse duomenų bazėse, tokiose kaip Milvus, kurios yra optimizuotos greitoms paieškos ir gavimo operacijoms.
ETL procesas yra labai svarbus RAG duomenų perdavimo vamzdynui, nes jis užtikrina, kad duomenys būtų renkami, transformuojami ir įkeliami į sistemą taip, kad būtų galima efektyviai gauti ir integruoti su kalbos modeliais. Laikantis šio struktūrinio požiūrio, RAG sistema gali veiksmingai panaudoti išorinius duomenų šaltinius, kad padidintų kalbos modelių žinias ir pateiktų tikslesnius bei kontekstinius atsakymus į vartotojų užklausas.
Apibendrinant galima pasakyti, kad ETL procesas yra pagrindinė RAG duomenų perdavimo dujotiekio sudedamoji dalis, nes ji leidžia sistemai gauti ir paruošti didelius įvairių duomenų kiekius, skirtus naudoti papildytos kartos paieškos procese.
Citatos:[1] https://www.crossml.com/build-a-rag-data-ingestion-pipeline/
[2] https://aws.amazon.com/blogs/big-data/build-a-rag-data-ingestion-pipeline-for-large-scale-ml-workloads/
[3] https://docs.zenml.io/user-guide/llmops-guide/rag-with-zenml/data-ingestion
[4] https://developer.nvidia.com/blog/rag-101-demystifying-retrieval-augmented-generation-pipelines/
[5] https://mallahyari.github.io/rag-ebook/03_prepare_data.html