Ön eğitimli dil modellerinin kokan kod sınıflama performansının üçlü kayıp yöntemiyle iyileştirilmesi
Optimizing the code smell classification performance of pretrained language models using the triple loss method
- Tez No: 875380
- Danışmanlar: DR. ÖĞR. ÜYESİ ALİ NİZAM
- Tez Türü: Yüksek Lisans
- Konular: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol, Computer Engineering and Computer Science and Control
- Anahtar Kelimeler: Belirtilmemiş.
- Yıl: 2024
- Dil: Türkçe
- Üniversite: Fatih Sultan Mehmet Vakıf Üniversitesi
- Enstitü: Lisansüstü Eğitim Enstitüsü
- Ana Bilim Dalı: Bilgisayar Mühendisliği Ana Bilim Dalı
- Bilim Dalı: Belirtilmemiş.
- Sayfa Sayısı: 48
Özet
Tez çalışmasının amacı, geliştiricilerin kodda yaptıkları değişiklikleri ve kötü kokan kod veya kısaca kötü kod (code smell) tespit araçlarının çıktılarını derin öğrenme sistemleriyle analiz ederek bir kötü kod tespit sistemi oluşturmaktır. Analizin derin öğrenme teknikleriyle yapılmasıyla kötü kod tespitinde semantik anlamın dikkate alınması, doğruluk ve performansın arttırılması hedeflenmektedir. Bu hedefe yönelik olarak derin öğrenme alanında kullanılan ön eğitimli dil modellerin, üçlü kayıp tekniğiyle iyileştirilerek kokan kod sınıflama performansının arttırılmasına yönelik bir çalışma yapılmıştır. Günümüzde büyüyen ve çeşitlenen kod miktarı, kod analizi işlemlerinde ve kod yönetiminde zorluklar meydana getirmiştir. Bununla birlikte İnternetteki büyük miktarda açık kaynak kod içeren GitHub gibi depolar kod analizinde önemli fırsatlar sunmaktadır. Kod yerleştirmesi (code embedding), kodun semantik anlamını vektörel biçimde saklar. Mevcut kod yerleştirmesi yöntemleri, kaynak kod analizinde çeşitli yazılım mühendisliği görevleri için başarıyla kullanılmış olsa da statik kod analiz araçlarının performansını ve işlevselliğini elde edebilmek için ilave çalışmalara ihtiyaç vardır. Ayrıca, kod yerleştirme modelleri kullanan sistemlerde performansın arttırılması için, görüntü işleme alanında olduğu gibi, yerleştirmeleri iyileştirme için kullanılan ön işleme yöntemlerinin standartlaştırılmasına ihtiyaç vardır. Bu çalışma, toplanan kötü kodları sınıflandırmak için bir modelin geliştirilmesini ve bu modelin performansını iyileştirmek amacıyla karşılaştırmalı (contrastive) öğrenmenin kod yerleştirmelerine uygulanmasını kapsamaktadır. Kod kokusu tespiti gibi kod sınıflandırma görevleri için sınıf içi benzerliği güçlendirmek ve farklı sınıflar arasındaki mesafeyi artırmak amacıyla üçlü kayıp tabanlı bir ağ kullanılmaktadır. GitHub'daki açık kaynaklı proje depolarından kod toplanarak deneysel bir veri kümesi oluşturulmuştur. Çalışmada, yaygın olarak kullanılan, önceden eğitilmiş; BERT, CodeBERT ve GraphCodeBERT dil modellerinin ürettiği kod yerleştirmeleri ve karşılaştırmalı öğrenme ile iyileştirilmiş ve bu iyileştirmenin sınıflamaya etkisi değerlendirilmiştir. Bulgular, ön eğitimli modeller ile oluşturulan yerleştirmelerinin doğrudan kullanımı ile %80-89 arasında bir doğruluk oranı elde edildiğini göstermiştir. Bu doğruluk oranı karşılaştırmalı öğrenme kullanımı ile %7-19 arasında iyileştirilmiştir. Bu sonuçlar, karşılaştırmalı öğrenmenin bir ön işleme adımı olarak önceden eğitilmiş kod yerleştirmeler yaklaşımları için avantajlar sunabileceğini göstermektedir. Sonuç olarak, karşılaştırmalı öğrenme tekniklerinin kod yerleştirme vektörü oluşturma sürecine dahil edilmesi, kod analizinde performans iyileştirmesi için fırsatlar sağlayabilir.
Özet (Çeviri)
The aim of this thesis is to create a bad code or smelly code detection system by analyzing the code changes made by developers and the outputs of code smell detection tools with deep learning systems. By using deep learning techniques, it is aimed to take semantic meaning into account in bad code detection and to increase accuracy and performance. Towards this goal, a study has been conducted to improve the performance of the pre-trained language models used in deep learning by using the triple loss technique to improve the performance of bad code classification. Today, the growing and diversifying amount of code has created difficulties in code analysis and code management. However, repositories such as GitHub, which contain large amounts of open source code on the Internet, offer significant opportunities in code analysis. Code embedding stores the semantic meaning of code in vector form. While existing code embedding methods have been successfully used in source code analysis for various software engineering tasks, additional work is needed to achieve the performance and functionality of static code analysis tools. Furthermore, to improve the performance of systems using code embedding models, there is a need to standardize the preprocessing methods used to refine embeddings, as in the field of image processing. This thesis presents the development of a model for classifying collected smelly codes and the application of contrastive learning to code embeddings to improve the performance of this model. For code classification tasks such as code odor detection, a triple loss-based network is used to strengthen the intra-class similarity and increase the distance between different classes. An experimental dataset was created by collecting code from open-source project repositories on GitHub. In the study, the widely used, pre-trained BERT, CodeBERT and GraphCodeBERT language models are improved with code embeddings and benchmark learning, and the effect of this improvement on classification is evaluated. The results show that the direct use of the embeddings generated by the pre-trained models yields an accuracy rate between 80-89%. This accuracy was improved by 7-19% with the use of contrastive learning. These results show that contrastive learning can offer advantages for pre-trained code embeddings approaches as a pre-processing step. Consequently, the incorporation of contrastive learning techniques into the code placement vector generation process can provide opportunities for performance improvement in code analysis.
Benzer Tezler
- Yeni ALC yabancı dil öğretim sisteminin değerlendirilmesi
Başlık çevirisi yok
MUSTAFA ER
Yüksek Lisans
Türkçe
2000
Eğitim ve Öğretimİstanbul Üniversitesiİngiliz Dili ve Edebiyatı Ana Bilim Dalı
YRD. DOÇ. DR. ALEV BULUT
- Derlem tabanlı görsel Türkçe sözlük kullanımının yabancı dil olarak Türkçe öğrenenlerin kelime öğrenme düzeyine etkisi
The effect of the use of the corpus-based visual Turkish dictionary on the vocabulary learning level of the learners of Turkish as a foreign language
SERCAN HALAT
Doktora
Türkçe
2020
Eğitim ve ÖğretimMuğla Sıtkı Koçman ÜniversitesiTürkçe Eğitimi Ana Bilim Dalı
DOÇ. DR. HATİCE FIRAT
- Mimarlıkta yapı ve yapım teknolojileri (MYYT) eğitimine yönelik bir yaklaşım ve eğitim materyali önerisi: Detayın üretici dönüşümsel dilbilgisi
Proposal for an approach and instructional material for the education of construction technologies in architecture (CTA): Transformational generative grammar of detail
HÜLYA NUR KIZILYAPRAK
Doktora
Türkçe
2020
Mimarlıkİstanbul Teknik ÜniversitesiMimarlık Ana Bilim Dalı
DR. ÖĞR. ÜYESİ MEHMET CEM ALTUN
- A conceptual approach for design and development of serious games in maritime domain
Denizcilik alanında eğitici oyun dizaynı ve geliştirilmesi için konseptsel bir yaklaşım
SÜLEYMAN CİHAN GÜRBÜZ
Doktora
İngilizce
2024
Denizcilikİstanbul Teknik ÜniversitesiDeniz Ulaştırma Mühendisliği Ana Bilim Dalı
PROF. METİN ÇELİK
- The use of pretrained language models in sentiment analysis
Duygu analizinde ön eğitimli dil modellerinin kullanımı
ÖMER YİĞİT YÜRÜTÜCÜ
Yüksek Lisans
İngilizce
2022
Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve KontrolMEF ÜNİVERSİTESİBilişim Teknolojileri Ana Bilim Dalı
DR. ÖĞR. ÜYESİ ŞENİZ DEMİR