νέα

Αφήστε την τεχνητή νοημοσύνη να διαχειριστεί μεγάλες βάσεις κώδικα, καλά νέα για προγραμματιστές |

2024-08-11

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Υποβολή ομάδας CodexGraph
Qubits | Δημόσιος λογαριασμός QbitAI

Δεν μπορείτε να ολοκληρώσετε τις εργασίες δημιουργίας και ολοκλήρωσης κώδικα; !

Είναι καλύτερα να προσπαθήσετε να αφήσετε τα Large Language Models (LLMs) να βοηθήσουν.

Ωστόσο, αν είναιΤα LLM μπορούν να δυσκολευτούν όταν ασχολούνται με μεγάλες βάσεις κώδικα πολλών αρχείων.Αυτή τη στιγμή, το σύστημα Retrieval-Augmented Code Generation (RACG) χρειάζεται συχνά για την ανάκτηση σχετικών πληροφοριών κώδικα.

Οι υπάρχουσες λύσεις, όπως η ανάκτηση με βάση τη σημασιολογική ομοιότητα και τα μη αυτόματα σχεδιασμένα εργαλεία και API, αν και αποτελεσματικά σε συγκεκριμένες εργασίες, έχουν περιορισμούς στις δυνατότητες γενίκευσης και καθολική εφαρμογή.



Προκειμένου να αμβλυνθούν οι ελλείψεις καθολικότητας των υφιστάμενων μεθόδων RACG, ερευνητές από το Εθνικό Πανεπιστήμιο της Σιγκαπούρης, το Alibaba και το Πανεπιστήμιο Xi'an Jiaotong πρότεινανCodexGraphΈνα σύστημα που χρησιμοποιεί τη βάση δεδομένων γραφήματος κώδικα ως μέσο για τη σύνδεση του μοντέλου γλώσσας και της βάσης κώδικα.

Η ερευνητική ομάδα αξιολόγησε το CodexGraph σε τρία αντιπροσωπευτικά ακαδημαϊκά σημεία αναφοράς και επίσης υλοποίησε το CodexGraph σε πέντε σενάρια εφαρμογής πραγματικού κώδικα με βάση το ModelScope-Agent.

Πειράματα και πρακτικές πραγματικού κόσμου καταδεικνύουν την αποτελεσματικότητα και την ευελιξία του CodexGraph.



ερευνητικές μεθόδους

Το CodexGraph συνδέει καινοτόμα το μοντέλο γλώσσας με τη βάση κώδικα μέσω της διεπαφής βάσης δεδομένων γραφήματος κώδικα., για να ξεπεραστούν οι ελλείψεις των υφιστάμενων μεθόδων.

Η ροή εργασίας αυτού του συστήματος περιλαμβάνει κυρίως τα ακόλουθα βήματα:

Αρχικά, δημιουργήστε τη βάση δεδομένων γραφήματος κώδικα

Χρησιμοποιήστε τεχνολογία στατικής ανάλυσης για να χαρτογραφήσετε σύμβολα κώδικα (όπως μονάδες, κλάσεις, συναρτήσεις κ.λπ.) στη βάση κώδικα και τις σχέσεις μεταξύ τους σε κόμβους και ακμές στη βάση δεδομένων γραφήματος σύμφωνα με το προκαθορισμένο σχήμα.



Δεύτερον, ερωτήματα με επίγνωση της δομής κώδικα.

Χρησιμοποιήστε την ευελιξία της γλώσσας ερωτημάτων γραφήματος και συνδυάστε τη με τα δομικά χαρακτηριστικά της βάσης δεδομένων γραφημάτων για να επιτύχετε σύνθετα ερωτήματα και εις βάθος ανάκτηση γραφημάτων κώδικα.

Τρίτον, η στρατηγική «Γράψε και μετά μεταφράσε».

Ο κύριος πράκτορας LM αναλύει πρώτα προβλήματα κώδικα και δημιουργεί ερωτήματα φυσικής γλώσσας.

Στη συνέχεια, ένας εξειδικευμένος πράκτορας μετάφρασης LM μεταφράζει αυτά τα ερωτήματα σε μορφοποιημένη γλώσσα ερωτημάτων γραφήματος.



Τέταρτον, επαναληπτικός αγωγός.

Μέσω μιας επαναληπτικής προσέγγισης, ο πράκτορας LM βελτιστοποιεί σταδιακά αποτελέσματα ερωτημάτων και ανάκτησης με βάση τις ερωτήσεις των χρηστών και τις πληροφορίες που αποκτήθηκαν.

πείραμα

Στο πειραματικό μέρος, το CodexGraph αξιολογήθηκε σε τρία αντιπροσωπευτικά σημεία αναφοράς σε βασικό επίπεδο κώδικα: CrossCodeEval, EvoCodeBench και SWE-bench.



Αυτά τα τεστΚαλύπτει τη συμπλήρωση κώδικα μεταξύ αρχείων, τη δημιουργία κώδικα και την αυτοματοποιημένη επίλυση προβλημάτων GitHubκλπ. από πολλές απόψεις.

Τα πειραματικά αποτελέσματα δείχνουν ότι το CodexGraph παρουσιάζει εξαιρετική και σταθερή απόδοση σε όλες τις δοκιμές αναφοράς, επαληθεύοντας την αποτελεσματικότητα της βάσης δεδομένων γραφημάτων κώδικα ως διεπαφής μεταξύ μοντέλων γλώσσας και βιβλιοθηκών κώδικα.



Η ανάλυση της αρχικής εργασίας επεσήμανε περαιτέρω ότι,Όταν το CodexGraph χειρίζεται συλλογιστικές εργασίες διαφορετικών δυσκολιών, υπάρχουν διαφορές στα αποτελέσματα ενός μεμονωμένου ερωτήματος και των στρατηγικών πολλαπλών ερωτημάτων.

Στο CrossCodeEval, οι πολλαπλές στρατηγικές ερωτημάτων είναι πιο αποτελεσματικές, ενώ στο SWE-bench, μια μεμονωμένη στρατηγική ερωτημάτων αποδίδει καλύτερα.



Επιπλέον, η κατάργηση του παράγοντα Cypher LM θα αυξήσει σημαντικά το βάρος συμπερασμάτων του πρωτεύοντος παράγοντα LM, με αποτέλεσμα την υποβάθμιση της απόδοσης.

Αυτό δείχνει ότι ο παράγοντας Cypher LM παίζει βασικό ρόλο στην ανακούφιση της συλλογιστικής πίεσης του πρωτεύοντος παράγοντα LM.

Παραδείγματα πραγματικών σεναρίων εφαρμογών

Με βάση το πλαίσιο ModelScope-Agent, η πρακτική αξία εφαρμογής του CodexGraph έχει αντικατοπτριστεί σε πολλά σενάρια, όπως:

  • Βοηθός συνομιλίας κώδικα(Συζήτηση κωδικών)
  • Εργαλεία εντοπισμού σφαλμάτων κώδικα(Κωδικός εντοπισμού σφαλμάτων)
  • Γεννήτρια δοκιμής μονάδας(Δοκιμαστής μονάδας κώδικα)
  • γεννήτρια κώδικα(Γεννήτρια κώδικα)
  • Εργαλείο σχολιασμού κώδικα(Σχολιαστής Κώδικα)

Αυτές οι εφαρμογές δείχνουν πώς το CodexGraph μπορεί να βοηθήσει τους προγραμματιστές να λύσουν πρακτικά προβλήματα σε ένα περιβάλλον παραγωγής και να βελτιώσουν την αποτελεσματικότητα και την ποιότητα της ανάπτυξης κώδικα.

Συνοψίζω

Χρησιμοποιώντας τη βάση δεδομένων γραφημάτων ως μέσο, ​​το CodexGraph παρέχει μια νέα μέθοδο αλληλεπίδρασης μεταξύ του μοντέλου γλώσσας και της βάσης κώδικα.

Όχι μόνο βελτιώνει την ικανότητα του γλωσσικού μοντέλου να κατανοεί πολύπλοκες βάσεις κώδικα, αλλά επίσης βελτιώνει την ακρίβεια της συνολικής ανάκτησης και πλοήγησης κώδικα.

Εμφανίστηκε στον τομέα της αυτοματοποιημένης μηχανικής λογισμικού,Ειδικά όταν αντιμετωπίζετε την πρόκληση του RACG, φέρνοντας νέες λύσεις που επιδεικνύουν ευρεία δυναμική και πραγματική αξία σε διάφορες εργασίες κωδικοποίησης και εφαρμογές πραγματικού κόσμου.

Με τη συνεχή ανάπτυξη της τεχνολογίας, το CodexGraph αναμένεται να υποστηρίξει περισσότερες γλώσσες προγραμματισμού στο μέλλον και να βελτιστοποιήσει περαιτέρω τη ροή εργασιών και την αποδοτικότητα κατασκευής ευρετηρίου.

Κωδικός σύνδεσμος:

https://github.com/modelscope/modelscope-agent/tree/master/apps/codexgraph_agent

σύνδεσμος arXiv:

https://arxiv.org/pdf/2408.03910