Paikallinen RAG-järjestelmä avoimilla kielimalleilla
Antikainen, Jari (2025)
Antikainen, Jari
2025
All rights reserved. This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-202504106117
https://urn.fi/URN:NBN:fi:amk-202504106117
Tiivistelmä
Insinöörityössä kehitettiin ja arvioitiin paikallisesti toimiva Retrieval-Augmented Generation (RAG) -järjestelmä. Tavoitteena oli rakentaa kysymys-vastaussovellus, joka hyödyntää avoimen lähdekoodin kielimalleja ja mahdollistaa organisaation omien dokumenttien käyttämisen tietolähteenä ilman riippuvuutta pilvipalveluista, parantaen näin tietosuojaa ja hallittavuutta.
Järjestelmän toteutus perustui LangChain-ohjelmistokehykseen. Paikallinen toiminta mahdollistettiin Ollama-sovelluksella käyttäen Llama 3.2 -kielimallia ja bge-m3-upotusmallia. Dokumenttien käsittelyssä ja indeksoinnissa hyödynnettiin Chroma-vektoritietokantaa. Tiedonhaussa sovellettiin kehittyneitä tekniikoita, kuten hybridihakua (BM25 ja semanttinen haku), monikyselyhakua sekä cross-encoder-pohjaista uudelleenjärjestämistä hakutulosten relevanssin parantamiseksi. Järjestelmälle toteutettiin myös interaktiivinen Streamlit-käyttöliittymä testausta varten.
Toteutettu RAG-järjestelmä osoittautui toimivaksi ja kykeni vastaamaan kysymyksiin paikallisesti tallennettujen dokumenttien perusteella. Kvalitatiivisessa testauksessa havaittiin, että kehittyneet hakutekniikat, erityisesti hybridihaku, paransivat vastausten tarkkuutta ja kattavuutta verrattuna perustason semanttiseen hakuun. Myös uudelleenjärjestämisen ja valinnaisen vastausten jatkojalostuksen vaikutuksia arvioitiin.
Työ osoitti, että paikallisten, avoimeen lähdekoodiin perustuvien RAG-järjestelmien rakentaminen on mahdollista ja ne tarjoavat käyttökelpoisen ratkaisun organisaatioille tietoturvalliseen tiedonhakuun omista aineistoista.
Järjestelmän toteutus perustui LangChain-ohjelmistokehykseen. Paikallinen toiminta mahdollistettiin Ollama-sovelluksella käyttäen Llama 3.2 -kielimallia ja bge-m3-upotusmallia. Dokumenttien käsittelyssä ja indeksoinnissa hyödynnettiin Chroma-vektoritietokantaa. Tiedonhaussa sovellettiin kehittyneitä tekniikoita, kuten hybridihakua (BM25 ja semanttinen haku), monikyselyhakua sekä cross-encoder-pohjaista uudelleenjärjestämistä hakutulosten relevanssin parantamiseksi. Järjestelmälle toteutettiin myös interaktiivinen Streamlit-käyttöliittymä testausta varten.
Toteutettu RAG-järjestelmä osoittautui toimivaksi ja kykeni vastaamaan kysymyksiin paikallisesti tallennettujen dokumenttien perusteella. Kvalitatiivisessa testauksessa havaittiin, että kehittyneet hakutekniikat, erityisesti hybridihaku, paransivat vastausten tarkkuutta ja kattavuutta verrattuna perustason semanttiseen hakuun. Myös uudelleenjärjestämisen ja valinnaisen vastausten jatkojalostuksen vaikutuksia arvioitiin.
Työ osoitti, että paikallisten, avoimeen lähdekoodiin perustuvien RAG-järjestelmien rakentaminen on mahdollista ja ne tarjoavat käyttökelpoisen ratkaisun organisaatioille tietoturvalliseen tiedonhakuun omista aineistoista.
