Not logged in.

Contribution Details

Type Master's Thesis
Scope Discipline-based scholarship
Title Transfer Learning for Code Search How Pre-training Improves Deep Learning on Source Code
Organization Unit
Authors
  • Christoph Schwizer
Supervisors
  • Harald Gall
  • Pasquale Salza
Language
  • English
Institution University of Zurich
Faculty Faculty of Business, Economics and Informatics
Date 2020
Abstract Text The Transformer architecture and transfer learning have marked a quantum leap in natural language processing (NLP), improving on the state of the art across a range of NLP tasks. This thesis examines how these advancements can be applied to and improve code search. To this end, we pre-train a BERT-based model on combinations of natural language and source code data and evaluate it on pairs of StackOverflow question titles and code answers. Our results show, that the pre-trained models consistently outperform the models that were not pre-trained. In cases where the model was pre-trained on natural language and source code data, it also outperforms our Elasticsearch baseline. Furthermore, transfer learning is particularly effective in cases where a lot of pre-training data is available and fine-tuning data is limited. We demonstrate that NLP models based on the Transformer architecture can be directly applied to source code analysis tasks, such as code search. With the development of Transformer models that are designed more specifically for dealing with source code data, we believe the results on source code analysis tasks can be further improved.
Zusammenfassung Die Entwicklung des Transformers und die Einführung von Transfer Learning markierten einen Quantensprung in der Computerlinguistik und führten zu massgeblichen Verbesserungen in einer Vielzahl von Problemen in der Analyse natürlicher Sprache. Diese Masterarbeit untersucht, wie diese Fortschritte genutzt werden können, um Codesuche zu verbessern. Dazu trainieren wir ein Modell auf natürlicher Sprache und Programmiersprachen vor und evaluieren es danach auf einem Datensatz bestehend aus StackOverflow Fragen und Antworten. Wir verwenden dafür ein Modell, dass auf BERT basiert. Unsere Resultate zeigen, dass die vortrainierten Modelle die Modelle, welche kein Vortraining erhielten, übertreffen. Wenn das Modell auf einer Kombination von natürlicher Sprache und Programmiersprachen vortrainiert wurde, erzielt es ebenfalls bessere Ergebnisse als unser Elasticsearch Modell. Es stellt sich heraus, dass Transfer Learning insbesondere dann effektiv ist, wenn grosse Datensätze für das Vortrainieren vorhanden, die Datensätze für das Zielproblem aber limitiert sind. Wir zeigen, dass Transformer Modelle direkt auf Probleme der Source Code Anlayse, wie zum Beispiel Codesuche, angewendet werden können. Wir glauben, dass mit der Entwicklung von Transformer Modellen, welche spezifisch für die Codesuche entwickelt wurden, die Ergebnisse von Codesuche weiter verbessert werden können.
PDF File Download
Export BibTeX