Using large language models for private library code generation
Creators: name: Αναγνωστόπουλος, Κωνσταντίνος Γεωργίου
Publisher: name: Aristotle University of Thessaloniki
Year: 2024
Subjects: Μεγάλα γλωσσικά μοντέλα
Αυτόματη παραγωγή κώδικα
Σύνολο αξιολόγησης
Large language models
Automatic code generation
Evaluation dataset

description: The goal of the current work was to design and implement a procedure for automatically generating code using private library data. The chosen approach is similar to a human developer's process when working with a new library: searching documentation for relevant functions and combining them with their general knowledge of programming to solve a problem. Two main modules are created and incorporated in the presented approach that work in a pipeline, the APIFetcher and the AutoCoder. The APIFetcher retrieves relevant functions from the closed library by utilizing similarity search in a vector database, while the AutoCoder uses this information to produce the desired code. We experimented with models for the APIFetcher and did a preliminary evaluation on the retrieval phase. We also tried different Code LLMs for the AutoCoder. An evaluation dataset was created from scratch, to allow the automatic evaluation of the whole process. We examined the efficiency of the procedure using this dataset in two modes, by using the retrieval phase and by providing the correct answers to the AutoCoder (oracle). Finally, the results of these experiments were presented, providing insight for the implementation described, along with notes for future improvements to enhance the overall process quality.
description: Στόχος της τρέχουσας εργασίας ήταν ο σχεδιασμός και η εφαρμογή μιας διαδικασίας αυτόματης παραγωγής κώδικα χρησιμοποιώντας δεδομένα ιδιωτικής βιβλιοθήκης. Η επιλεγμένη προσέγγιση είναι παρόμοια με τη διαδικασία που ακολουθεί ένας προγραμματιστής όταν εργάζεται με μια νέα βιβλιοθήκη: αναζήτηση στην βιβλιογραφία της κλειστής βιβλιοθήκης για σχετικές λειτουργίες και συνδυασμός τους με τις γενικές του γνώσεις στον προγραμματισμόγια την επίλυση ενός προβλήματος. Δύο κύριοι μηχανισμοί δημιουργούνται και ενσωματώνονται στην προσέγγιση που παρουσιάζεται, οι οποίες λειτουργούν σε σειρά, ο APIFetcher και ο AutoCoder. Ο APIFetcher ανακτά σχετικές συναρτήσεις από την κλειστή βιβλιοθήκη εφαρμόζοντας αναζήτηση ομοιότητας σε μια διανυσματική βάση δεδομένων, ενώ ο AutoCoder χρησιμοποιεί αυτές τις πληροφορίες για να παράγει τον επιθυμητό κώδικα. Πειραματιστήκαμε με διαφορετικά μοντέλα για τον APIFetcher και κάναμε μια προκαταρκτική αξιολόγηση στη φάση ανάκτησης. Δοκιμάσαμε επίσης διαφορετικά μεγάλα γλωσσικά μοντέλα, προ-εκπαιδευμένα σε κώδικα για τον AutoCoder. Ένα σύνολο δεδομένων αξιολόγησης δημιουργήθηκε εξ ολοκλήρου από την αρχή, για να επιτρέψει την αυτόματη αξιολόγηση της όλης διαδικασίας. Εξετάσαμε την αποτελεσματικότητα της διαδικασίας χρησιμοποιώντας αυτό το σύνολο δεδομένων με δύο τρόπους, αρχικά παρέχοντας τις σωστές απαντήσεις στον AutoCoder (oracle mode) και έπειτα χρησιμοποιώντας τη φάση ανάκτησης. Τέλος, παρουσιάστηκαν τα αποτελέσματα των πειραμάτων, παρέχοντας πληροφορίες για την υλοποίηση που περιγράφηκε, καθώς και σημειώσεις για μελλοντικές βελτιώσεις για την βελτιστοποίηση της συνολικής ποιότητας της διαδικασίας.