CodeT5 und CodeT5+ sind offiziell veröffentlichte Forschungsmodelle von Salesforce Research, die speziell für die Code-Verständnis und -Generierung entwickelt wurden. Die Modelle wurden in folgenden Artikeln vorgestellt:
CodeT5+: Open Code Large Language Models for Code Understanding and Generation Autoren: Yue Wang*, Hung Le*, Akhilesh Deepak Gotmare, Nghi D.Q. Bui, Junnan Li, Steven C.H. Hoi (* zeigt gleichberechtigte Beiträge an)
CodeT5: Identifier-aware Unified Pre-trained Encoder-Decoder Models for Code Understanding and Generation Autoren: Yue Wang, Weishi Wang, Shafiq Joty, Steven C.H. Hoi
In der Praxis können die CodeT5- und CodeT5+-Modelle als AI-gestützter Codierungsassistent eingesetzt werden, um die Produktivität von Softwareentwicklern zu steigern. Bei Salesforce haben wir beispielsweise einen AI-Codierungsassistenten-Demo aufgebaut, der CodeT5 als VS Code-Plugin verwendet und drei Funktionen bietet:
- Text-to-code-Generierung: Hier wird Code basierend auf der natürlichen Sprachbeschreibung generiert. So kann man beispielsweise eine Beschreibung in natürlicher Sprache eingeben und das entsprechende Code-Snippet erhalten.
- Code-Autovervollständigung: Wenn der Name der Zielfunktion gegeben ist, kann der gesamte Funktionscode vervollständigt werden. Dies spart Entwicklern Zeit und Mühe, da sie nicht den gesamten Code von Hand schreiben müssen.
- Code-Zusammenfassung: Die Zusammenfassung einer Funktion wird in natürlicher Sprache generiert. Dadurch kann man schnell einen Überblick über die Funktion erhalten, ohne den gesamten Code durchlesen zu müssen.
Im Laufe der Zeit wurden auch verschiedene Veröffentlichungen und Weiterentwicklungen vorgenommen:
- Im Mai 2023 wurden das CodeT5+-Papier und die Modelle veröffentlicht! Man kann die relevanten Informationen über das Papier, den Code, das Modell und den Blog finden.
- Im September 2022 wurde unser CodeRL-Papier bei NeurIPS 2022 akzeptiert. Auch hier gibt es die entsprechenden Links zu Papier, Code und Blog.
- Im Juli 2022 wurden zwei große CodeT5-Checkpoints bei HuggingFace veröffentlicht: Salesforce/codet5-large und Salesforce/codet5-large-ntp-py, die durch das CodeRL-Papier vorgestellt wurden.
- Im Oktober 2021 wurden feinabgestimmte Checkpoints für alle in dem Papier behandelten Downstream-Tasks veröffentlicht. Außerdem wurde ein CodeT5-base feinabgestimmter Checkpoint (Salesforce/codet5-base-multi-sum) für die mehrsprachige Code-Zusammenfassung veröffentlicht.
- Im September 2021 wurde das CodeT5-Papier bei EMNLP 2021 akzeptiert und die Modelle veröffentlicht. Auch hier gibt es die entsprechenden Links zu Papier, Code, Modell und Blog.
Wenn Sie diese Code für Ihre Forschung nützlich finden, sollten Sie bitte die folgenden Zitate berücksichtigen:
@inproceedings{ wang2021codet5, title={CodeT5: Identifier-aware Unified Pre-trained Encoder-Decoder Models for Code Understanding and Generation}, author={Yue Wang, Weishi Wang, Shafiq Joty, Steven C.H. Hoi}, booktitle={EMNLP}, year={2021}, }
@inproceedings{ le2022coderl, title={CodeRL: Mastering Code Generation through Pretrained Models and Deep Reinforcement Learning}, author={Le, Hung and Wang, Yue and Gotmare, Akhilesh Deepak and Savarese, Silvio and Hoi, Steven C. H.}, booktitle={NeurIPS}, year={2022} }
@article{ wang2023codet5plus, title={CodeT5+: Open Code Large Language Models for Code Understanding and Generation}, author={Wang, Yue and Le, Hung and Gotmare, Akhilesh Deepak and Bui, Nghi D.Q. and Li, Junnan and Hoi, Steven C. H.}, journal={arXiv preprint}, year={2023} }
Das Code wird unter der BSD-3-Lizenz veröffentlicht (siehe LICENSE.txt für Details). Allerdings bitten wir auch die Benutzer, die folgenden Punkte zu beachten:
Dieses Software sollte nicht zur Förderung oder zum Profitieren von: Gewalt, Hass und Spaltung, Umweltzerstörung, Menschenrechtsverletzungen oder der Zerstörung der körperlichen und geistigen Gesundheit von Menschen genutzt werden.
Wir ermutigen die Benutzer dieser Software, uns über die Anwendungen zu informieren, in denen sie sie verwenden, indem sie eine E-Mail an senden und die Verwendung entsprechender Dokumentation bei der Entwicklung von Anwendungen mit hohem Risiko dieses Modells.
Wenn Sie Fragen, Vorschläge, Anfragen oder Fehlerberichte haben, erstellen Sie bitte ein GitHub-Issue. Wir begrüßen auch Pull-Requests!