Developing LLM-powered Applications Using Modern Frameworks
Lehto, Timo (2024)
Lehto, Timo
2024
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-2024060320372
https://urn.fi/URN:NBN:fi:amk-2024060320372
Tiivistelmä
Tekoälyn (AI) kehitys on viime vuosina ollut erittäin nopeaa. Teoreettisen tutkimuksen edistysaskeleet, sekä merkittävä kasvu laskentatehossa ovat mahdollistaneet yhä kehittyneempien ja monimutkaisempien tekoälymallien tekemisen. Suuret kielimallit (LLM) edustavat tämän kehityksen kärkeä, ja chat-mallit, kuten ChatGPT, ovat saavuttaneet valtavan suosion suuren yleisön keskuudessa. Nämä generatiiviset kielimallit ovat koulutettu laajoilla tietoaineistoilla, mikä mahdollistaa niille tekstin tuottamisen ja kysymyksiin vastaamisen lähes kaikista aiheista. Mallien tieto on kuitenkin rajoittunut niille koulutetun datan perusteella, eivätkä ne voi käsitellä uutta tietoa ilman uudelleenkoulutusta tai hienosäätöä, mikä saattaa vaatia huomattavia laskentaresursseja.
Tämän rajoituksen ratkaisemiseksi on kehitetty tekniikoita, kuten hakupohjainen generointi (Retrieval-Augmented Generation, RAG), joka mahdollistaa LLM-malleille kyvyn dynaamiseen tietojen hakuun ja käsittelyyn. Lisäksi sovelluskehykset, kuten LangChain, mahdollistavat kehittyneiden LLM-sovellusten rakentamisen RAG-ominaisuuksilla tarjoamalla laajoja kirjastoja ja menetelmiä niiden integroimiseksi ohjelmointikieliin, kuten Python ja JavaScript.
Ensisijaisena tavoitteena oli tarjota kattava yleiskatsaus näihin teknologioihin, varhaisimmista kielimalleista moderneihin LLM-malleihin, RAG-tekniikkaan ja LangChain-sovelluskehykseen. Metodologinen lähestymistapa kattoi sekä laadullisen tutkimuksen että määrällisen analyysin. Toissijaisena tavoitteena oli tutkia näitä teknologioita kyberturvallisuuden kontekstissa. Tämän vuoksi tutkimuksessa painotettiin malleja ja moduuleja, jotka voidaan ottaa käyttöön paikallisesti ilman tarvetta lähettää arkaluonteisia tietoja kolmansille osapuolille API-rajapintojen kautta. Se myös rajasi tutkimuksen halittavampaan kokonaisuuteen.
Keskeiset havainnot osoittivat, että näitä malleja on mahdollista ajaa paikallisesti kuluttajatason laitteilla, mikä avaa laajoja mahdollisuuksia kehittyneiden LLM-sovellusten rakentamiseen. The evolution of artificial intelligence (AI) has been rapid in recent years. Advancements in theoretical research and significant increases in computational power have paved the way for ever more sophisticated and complex AI models. Large Language Models (LLMs) represent the forefront of this advancement, with chat models such as ChatGPT widely adopted among broader audiences. These generative language models have been trained with vast datasets, enabling them to answer and generate text on almost every topic. However, the knowledge of these models is limited to the data they are trained on, and they cannot process new information without retraining or fine-tuning, which may require substantial compu-tational resources.
To address this limitation, techniques such as Retrieval-Augmented Generation (RAG) were developed to enhance LLMs with dynamic data retrieval and processing capabilities. Furthermore, development frameworks such as LangChain enable the creation of sophisticated LLM-powered applications with RAG capabilities by offering extensive libraries and methods to integrate them with programming languages like Python and JavaScript.
The primary objective was to provide a comprehensive overview of these technologies, from the earliest language models to modern LLMs, RAG, and the LangChain framework. A methodological approach en-compassed both qualitative research and quantitative analysis. The secondary objective was to investigate these technologies in the context of cybersecurity. This methodology prioritizes models and modules that can be deployed locally without needing to send sensitive data to third parties over API gateways. It also set manageable scope for the research.
The key findings indicated that it is possible to run these models locally with consumer level hardware, opening vast possibilities for building sophisticated LLM-powered applications.
Tämän rajoituksen ratkaisemiseksi on kehitetty tekniikoita, kuten hakupohjainen generointi (Retrieval-Augmented Generation, RAG), joka mahdollistaa LLM-malleille kyvyn dynaamiseen tietojen hakuun ja käsittelyyn. Lisäksi sovelluskehykset, kuten LangChain, mahdollistavat kehittyneiden LLM-sovellusten rakentamisen RAG-ominaisuuksilla tarjoamalla laajoja kirjastoja ja menetelmiä niiden integroimiseksi ohjelmointikieliin, kuten Python ja JavaScript.
Ensisijaisena tavoitteena oli tarjota kattava yleiskatsaus näihin teknologioihin, varhaisimmista kielimalleista moderneihin LLM-malleihin, RAG-tekniikkaan ja LangChain-sovelluskehykseen. Metodologinen lähestymistapa kattoi sekä laadullisen tutkimuksen että määrällisen analyysin. Toissijaisena tavoitteena oli tutkia näitä teknologioita kyberturvallisuuden kontekstissa. Tämän vuoksi tutkimuksessa painotettiin malleja ja moduuleja, jotka voidaan ottaa käyttöön paikallisesti ilman tarvetta lähettää arkaluonteisia tietoja kolmansille osapuolille API-rajapintojen kautta. Se myös rajasi tutkimuksen halittavampaan kokonaisuuteen.
Keskeiset havainnot osoittivat, että näitä malleja on mahdollista ajaa paikallisesti kuluttajatason laitteilla, mikä avaa laajoja mahdollisuuksia kehittyneiden LLM-sovellusten rakentamiseen.
To address this limitation, techniques such as Retrieval-Augmented Generation (RAG) were developed to enhance LLMs with dynamic data retrieval and processing capabilities. Furthermore, development frameworks such as LangChain enable the creation of sophisticated LLM-powered applications with RAG capabilities by offering extensive libraries and methods to integrate them with programming languages like Python and JavaScript.
The primary objective was to provide a comprehensive overview of these technologies, from the earliest language models to modern LLMs, RAG, and the LangChain framework. A methodological approach en-compassed both qualitative research and quantitative analysis. The secondary objective was to investigate these technologies in the context of cybersecurity. This methodology prioritizes models and modules that can be deployed locally without needing to send sensitive data to third parties over API gateways. It also set manageable scope for the research.
The key findings indicated that it is possible to run these models locally with consumer level hardware, opening vast possibilities for building sophisticated LLM-powered applications.