Ini adalah implementasi Commitbert: Commit Pesan Menggunakan Model Bahasa Pemrograman Pra-Terlatih. Commitbert diterima di ACL Workshop: NLP4Prog. Pernahkah Anda ragu untuk menulis pesan komit? Sekarang dapatkan pesan komit dari kecerdasan buatan!
Codebert: Model pra-terlatih untuk pemrograman dan bahasa alami memperkenalkan model pra-terlatih dalam kombinasi bahasa program dan bahasa alami (PL-NL). Ini juga memperkenalkan masalah mengubah kode menjadi bahasa alami (pembuatan dokumentasi kode).
diff --git a/test.py b/test.py
new file mode 100644
index 0000000..d13f441
--- /dev/null
+++ b/test.py
@@ -0,0 +1,6 @@
+
+import torch
+import argparse
+
+def add(a, b):
+ return a + b
Recommended Commit Message : Add two arguments .
Kami dapat menggunakan Codebert untuk membuat model yang menghasilkan pesan komit saat kode ditambahkan. Namun, sebagian besar perubahan kode tidak hanya dilakukan dengan menambahkan kode, dan beberapa bagian kode dihapus.
diff --git a/test.py b/test.py
index d13f441..1b1b82a 100644
--- a/test.py
+++ b/test.py
@@ -1,6 +1,3 @@
-import torch
-import argparse
-
def add(a, b):
return a + b
Recommended Commit Message : Remove unused imports
Untuk mengatasi masalah ini, gunakan embedding baru yang disebut patch_type_embeddings yang dapat membedakan ditambahkan dan dihapus, seperti halnya XLM (Lample et al, 2019) menggunakan bahasa yang digunakan. (1 untuk ditambahkan, 2 untuk dihapus.)
| Bahasa | Ditambahkan | Diff | Data (hanya diff) | Bobot |
|---|---|---|---|---|
| Python | ✅ | ✅ | 423k | Link |
| Javascript | ✅ | ✅ | 514k | Link |
| Pergi | ⬜ | ⬜ | ⬜ | ⬜ |
| JAWA | ⬜ | ⬜ | ⬜ | ⬜ |
| Rubi | ⬜ | ⬜ | ⬜ | ⬜ |
| Php | ⬜ | ⬜ | ⬜ | ⬜ |
Kami berencana untuk secara perlahan menaklukkan bahasa yang saat ini tidak didukung. Namun, saya juga perlu menggunakan instance GPU mahal AWS atau GCP untuk melatih tentang bahasa di atas. Silakan lakukan sponsor sederhana untuk ini! Tambahkan Data adalah Dataset CodesearchNet.
Untuk menjalankan proyek ini, Anda memerlukan server inferensi berbasis Flask (GPU) dan klien (Modul Komit). Jika Anda tidak memiliki GPU, jangan khawatir, Anda dapat menggunakannya melalui Google Colab.
Siapkan Docker dan Nvidia-Docker sebelum menjalankan server.
Sajikan server Flask dengan NVIDIA Docker. Periksa tag Docker untuk bahasa pemrograman di sini.
| Bahasa | Menandai |
|---|---|
| Python | py |
| Javascript | JS |
| Pergi | pergi |
| JAWA | Jawa |
| Rubi | rubi |
| Php | php |
$ docker run -it -d --gpus 0 -p 5000:5000 graykode/commit-autosuggestions:{language}Bahkan jika Anda tidak memiliki GPU, Anda masih dapat melayani server Flask dengan menggunakan pengaturan NGROK di Commit_AutoSugestions.IPYNB.
commit .Pertama, pasang paket melalui PIP.
$ pip install commit Atur titik akhir untuk server Flask yang dikonfigurasi pada Langkah 1 melalui perintah Commit Configure. (Misalnya, jika titik akhir adalah http://127.0.0.1:5000, atur sebagai berikut: commit configure --endpoint http://127.0.0.1:5000 )
$ commit configure --help
Usage: commit configure [OPTIONS]
Options:
--profile TEXT unique name for managing each independent settings
--endpoint TEXT endpoint address accessible to the server (example :
http://127.0.0.1:5000/) [required]
--help Show this message and exit.Semua pengaturan selesai! Sekarang, Anda bisa mendapatkan pesan komit dari AI dengan komitmen perintah.
$ commit --help
Usage: commit [OPTIONS] COMMAND [ARGS]...
Options:
--profile TEXT unique name for managing each independent settings
-f, --file FILENAME patch file containing git diff (e.g. file created by
` git add ` and ` git diff --cached > test.diff ` )
-v, --verbose print suggested commit message more detail.
-a, --autocommit automatically commit without asking if you want to
commit
--help Show this message and exit.
Commands:
configureRujuk cara melatih untuk gaya serat Anda. Ini memungkinkan Anda untuk menyalakan kembali penyetelan ke gaya serat komit repositori Anda.
Anda dapat menyumbangkan apa pun, bahkan kesalahan ketik atau kode dalam artikel. Jangan ragu !!. Versi dikelola hanya di dalam cabang dengan nama setiap versi. Setelah dirilis di PYPI, ia digabungkan ke dalam cabang utama dan hasil pengembangan baru di cabang versi yang ditingkatkan.
Tae Hwan Jung (@graykode)
@article{jung2021commitbert,
title={CommitBERT: Commit Message Generation Using Pre-Trained Programming Language Model},
author={Jung, Tae-Hwan},
journal={arXiv preprint arXiv:2105.14242},
year={2021}
}