magistrsko delo
Abstract
Programiranje s pomočjo velikih jezikovnih modelov postaja vse bolj razširjeno. Pojavljajo se pomisleki glede zasebnosti kode pri uporabi komercialnih rešitev. Težava je tudi vse močnejša strojna oprema, potrebna za izvajanje velikih modelov. V delu se zato osredotočimo na uporabo modelov velikosti 160 milijonov parametrov, ki so primerni za lokalno izvajanje, in jih obogatimo z uporabo poizvedovanja iz lokalnih projektov. Na odprtokodnih Python datotekah učimo modela GPT-2 in RETRO, ju eksperimentalno primerjamo in potrdimo korist poizvedovanja na podlagi vektorskih vložitev. Uspešnost modelov izboljšamo s kontekstnim poizvedovanjem, ki primerne kontekste izbere na podlagi Jaccardovega koeficienta podobnosti žetonov. Doprinos kontekstnega poizvedovanja preverimo na večjih modelih in ugotovimo, da je pristop kljub enostavnosti koristnejši od arhitekture RETRO. Izpostavimo tudi ključno vlogo primerne tokenizacije za doseganje dobrih rezultatov velikih jezikovnih modelov.
Keywords
veliki jezikovni modeli;dopolnjevanje kode;s poizvedovanjem obogateno dopolnjevanje;kontekstno poizvedovanje;
Data
| Language: |
Slovenian |
| Year of publishing: |
2024 |
| Typology: |
2.09 - Master's Thesis |
| Organization: |
UL FRI - Faculty of Computer and Information Science |
| Publisher: |
[M. Hostnik] |
| UDC: |
004.42 |
| COBISS: |
200036099
|
| Views: |
77 |
| Downloads: |
11 |
| Average score: |
0 (0 votes) |
| Metadata: |
|
Other data
| Secondary language: |
English |
| Secondary title: |
Retrieval-augmented code completion for local projects using large language models |
| Secondary abstract: |
The use of large language models is becoming increasingly widespread among developers. However, privacy and computational requirements are problematic with commercial solutions and the use of large models. In this work, we focus on using large language models with 160 million parameters that are suitable for local execution and augmentation with retrieval from local projects. We train GPT-2 and RETRO models on open-source Python files, experimentally compare them and confirm the benefits of vector embedding based retrieval. Additionally, we improve our models' performance with in-context retrieval, which retrieves the context based on the Jaccard similarity of tokens. We further evaluate in-context retrieval on larger models and conclude that, despite its simplicity, the approach is better than using the RETRO architecture. We highlight the key role of proper tokenization in achieving the full potential of large language models. |
| Secondary keywords: |
large language models;code completion;retrieval-augmented generation;in-context retrieval; |
| Type (COBISS): |
Master's thesis/paper |
| Study programme: |
0 |
| Thesis comment: |
Univ. v Ljubljani, Fak. za matematiko in fiziko, Oddelek za matematiko, Računalništvo in matematika - 2. stopnja |
| Pages: |
X, 45 str. |
| ID: |
24473629 |