นี่คือการดำเนินการของ COMPLERT: การสร้างข้อความโดยใช้รูปแบบภาษาการเขียนโปรแกรมที่ผ่านการฝึกอบรมมาก่อน COMMITBERT ได้รับการยอมรับใน ACL Workshop: NLP4PROG คุณเคยลังเลที่จะเขียนข้อความที่กระทำหรือไม่? ตอนนี้ได้รับข้อความจากปัญญาประดิษฐ์!
Codebert: รูปแบบที่ผ่านการฝึกอบรมมาก่อนสำหรับการเขียนโปรแกรมและภาษาธรรมชาติแนะนำรูปแบบที่ผ่านการฝึกอบรมมาก่อนในการรวมกันของภาษาโปรแกรมและภาษาธรรมชาติ (PL-NL) นอกจากนี้ยังแนะนำปัญหาของการแปลงรหัสเป็นภาษาธรรมชาติ (การสร้างเอกสารรหัส)
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 .
เราสามารถใช้ Coderbert เพื่อสร้างโมเดลที่สร้างข้อความ commit เมื่อเพิ่มรหัส อย่างไรก็ตามการเปลี่ยนแปลงรหัสส่วนใหญ่ไม่ได้ทำโดยการเพิ่มรหัสเท่านั้นและบางส่วนของรหัสจะถูกลบ
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
ในการแก้ปัญหานี้ให้ใช้การฝังใหม่ที่เรียกว่า patch_type_embeddings ที่สามารถแยกแยะและลบและลบได้เช่นเดียวกับ XLM (Lample et al, 2019) ใช้ภาษาที่ฝังอยู่ (1 สำหรับเพิ่ม 2 สำหรับการลบ)
| ภาษา | ที่เพิ่มเข้ามา | แตกต่าง | ข้อมูล (เฉพาะเท่านั้น) | น้ำหนัก |
|---|---|---|---|---|
| งูหลาม | 423K | การเชื่อมโยง | ||
| จาวาสคริปต์ | 514K | การเชื่อมโยง | ||
| ไป | ||||
| ชวา | ||||
| ทับทิม | ||||
| PHP |
เราวางแผนที่จะเอาชนะภาษาที่ไม่ได้รับการสนับสนุนอย่างช้าๆ อย่างไรก็ตามฉันยังต้องใช้อินสแตนซ์ GPU ที่มีราคาแพงของ AWS หรือ GCP เพื่อฝึกฝนเกี่ยวกับภาษาข้างต้น โปรดทำสปอนเซอร์ง่ายๆสำหรับเรื่องนี้! เพิ่มข้อมูลคือชุดข้อมูล CodeSearchNet
ในการเรียกใช้โครงการนี้คุณต้องใช้เซิร์ฟเวอร์การอนุมานแบบขวด (GPU) และไคลเอนต์ (โมดูลคอมมิชชัน) หากคุณไม่มี GPU ไม่ต้องกังวลคุณสามารถใช้มันผ่าน Google Colab
เตรียม Docker และ Nvidia-Docker ก่อนเรียกใช้เซิร์ฟเวอร์
เสิร์ฟเซิร์ฟเวอร์ Flask ด้วย Nvidia Docker ตรวจสอบแท็ก Docker สำหรับภาษาการเขียนโปรแกรมที่นี่
| ภาษา | ติดแท็ก |
|---|---|
| งูหลาม | พาย |
| จาวาสคริปต์ | JS |
| ไป | ไป |
| ชวา | ชวา |
| ทับทิม | ทับทิม |
| PHP | PHP |
$ docker run -it -d --gpus 0 -p 5000:5000 graykode/commit-autosuggestions:{language}แม้ว่าคุณจะไม่มี GPU คุณก็ยังสามารถให้บริการเซิร์ฟเวอร์ขวดได้โดยใช้การตั้งค่า NGROK ใน commit_autosuggestions.ipynb
commitขั้นแรกให้ติดตั้งแพ็คเกจผ่าน PIP
$ pip install commit ตั้งค่าจุดสิ้นสุดสำหรับเซิร์ฟเวอร์ Flask ที่กำหนดค่าไว้ในขั้นตอนที่ 1 ผ่านคำสั่ง commiture (ตัวอย่างเช่นหากจุดสิ้นสุดคือ http://127.0.0.1:5000 ให้ตั้งค่าดังต่อไปนี้: 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.การตั้งค่าทั้งหมดเสร็จสิ้นแล้ว! ตอนนี้คุณสามารถรับข้อความที่กระทำจาก AI ด้วยคำสั่งที่กระทำ
$ 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:
configureอ้างอิงถึงวิธีการฝึกอบรมสำหรับสไตล์ผ้าสำลีของคุณ สิ่งนี้จะช่วยให้คุณสามารถปรับแต่งการปรับแต่งรูปแบบผ้าสำลีของที่เก็บของคุณได้อีกครั้ง
คุณสามารถมีส่วนร่วมอะไรก็ได้แม้แต่การพิมพ์ผิดหรือรหัสในบทความ อย่าลังเล !!. มีการจัดการเวอร์ชันภายในสาขาที่มีชื่อของแต่ละเวอร์ชัน หลังจากได้รับการปล่อยตัวใน PYPI มันจะถูกรวมเข้ากับสาขาหลักและการพัฒนาใหม่ที่ได้รับในสาขาเวอร์ชันที่อัพเกรด
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}
}