Οι τεχνητές νοημοσύνης προγραμματισμού φυσικής γλώσσας αφαιρούν την αγγαρεία από την κωδικοποίηση

“Μάθετε να κωδικοποιείτε.” Αυτή η υποτιμητική τριπλή λέξη είναι διαρκώς στα χείλη και στα χέρια των trolls του Διαδικτύου και των τεχνολογικών αδερφών όποτε ανακοινώνονται απολύσεις στα μέσα ενημέρωσης. Ένα άχρηστο συναίσθημα από μόνο του, αλλά με την πρόσφατη εμφάνιση των AI που παράγουν κώδικα, η γνώση των στοιχείων μιας γλώσσας προγραμματισμού όπως η Python θα μπορούσε σύντομα να είναι εξίσου χρήσιμη με το να ξέρεις να μιλάς άπταιστα μια νεκρή γλώσσα όπως τα σανσκριτικά. Στην πραγματικότητα, αυτά τα genAI βοηθούν ήδη τους επαγγελματίες προγραμματιστές λογισμικού να κωδικοποιούν ταχύτερα και πιο αποτελεσματικά, χειριζόμενοι μεγάλο μέρος της εργασίας γρυλίσματος προγραμματισμού.


Πώς λειτουργεί η κωδικοποίηση

Δύο από τις πιο ευρέως διαδεδομένες και γραπτές γλώσσες κωδικοποίησης σήμερα είναι η Java και η Python. Το πρώην σχεδόν single έφερε επανάσταση στη λειτουργία πολλαπλών πλατφορμών όταν κυκλοφόρησε στα μέσα της δεκαετίας του ’90 και τώρα οδηγεί “τα πάντα, από έξυπνες κάρτες έως διαστημικά οχήματα”, σύμφωνα με


Περιοδικό Java


το 2020 — για να μην αναφέρουμε τη λειτουργία αναζήτησης της Wikipedia και όλο το Minecraft. Το τελευταίο στην πραγματικότητα προηγείται της Java κατά μερικά χρόνια και χρησιμεύει ως η βάση κώδικα για πολλές σύγχρονες εφαρμογές όπως το Dropbox, το

και το Instagram.


Διαφέρουν σημαντικά στη λειτουργία τους στο ότι η Java πρέπει να μεταγλωττιστεί (με τον αναγνώσιμο από τον άνθρωπο κώδικα μεταφρασμένο σε κώδικα μηχανής που μπορεί να εκτελεστεί), ενώ η Python είναι μια ερμηνευτική γλώσσα που σημαίνει ότι ο ανθρώπινος κώδικας της μετατρέπεται σε κώδικα μηχανής γραμμή-γραμμή καθώς εκτελείται το πρόγραμμα, δίνοντάς του τη δυνατότητα να εκτελείται χωρίς πρώτα να έχει μεταγλωττιστεί. Η μέθοδος ερμηνείας επιτρέπει στον κώδικα να γράφεται πιο εύκολα για πολλές πλατφόρμες, ενώ ο μεταγλωττισμένος κώδικας τείνει να εστιάζεται σε έναν συγκεκριμένο τύπο επεξεργαστή. Ανεξάρτητα από το πώς εκτελούνται, η πραγματική διαδικασία σύνταξης κώδικα είναι σχεδόν πανομοιότυπη μεταξύ των δύο: κάποιος πρέπει να καθίσει, να ανοίξει ένα πρόγραμμα επεξεργασίας κειμένου ή ένα ολοκληρωμένο περιβάλλον ανάπτυξης (IDE) και να γράψει πραγματικά όλες αυτές τις γραμμές διδασκαλίας. Και μέχρι πρόσφατα, κάποιος ήταν συνήθως άνθρωπος.

Η σημερινή διαδικασία γραφής του «κλασικού προγραμματισμού» δεν είναι τόσο διαφορετική από τη διαδικασία της ENIAC, με έναν μηχανικό λογισμικού να αντιμετωπίζει ένα πρόβλημα, να το αναλύει σε μια σειρά υποπροβλημάτων, γράφοντας κώδικα για να λύσει καθένα από αυτά τα υποπροβλήματα με τη σειρά, και στη συνέχεια επανειλημμένα εντοπισμό σφαλμάτων και μεταγλώττιση του κώδικα μέχρι να εκτελεστεί. Ο “αυτόματος προγραμματισμός”, από την άλλη πλευρά, αφαιρεί τον προγραμματιστή κατά ένα βαθμό διαχωρισμού. Αντί ένας άνθρωπος να γράφει κάθε γραμμή κώδικα ξεχωριστά, το άτομο δημιουργεί μια αφαίρεση υψηλού επιπέδου της εργασίας για τον υπολογιστή, ώστε στη συνέχεια να δημιουργήσει κώδικα χαμηλού επιπέδου προς διεύθυνσή του. Αυτό διαφέρει από τον «διαδραστικό» προγραμματισμό, ο οποίος σας επιτρέπει να κωδικοποιήσετε ένα πρόγραμμα ενώ εκτελείται ήδη.

Τα σημερινά συστήματα κωδικοποίησης τεχνητής νοημοσύνης συνομιλίας, όπως αυτό που βλέπουμε στο Copilot του Github ή στο

του

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

Μεταξύ των πρώτων από αυτή τη νέα φυλή AI κωδικοποίησης συνομιλίας ήταν το Codex, το οποίο αναπτύχθηκε από την OpenAI και κυκλοφόρησε στα τέλη του 2021. Το OpenAI είχε ήδη εφαρμόσει το GPT-3 (πρόδρομος του GPT-3.5 που εξουσιοδοτεί το κοινό του BingChat) μέχρι αυτό το σημείο, τη μεγάλη γλώσσα μοντέλο εξαιρετικά επιδέξιο στη μίμηση του ανθρώπινου λόγου και γραφής αφού εκπαιδεύτηκε σε δισεκατομμύρια λέξεις από τον δημόσιο ιστό. Στη συνέχεια, η εταιρεία βελτίωσε αυτό το μοντέλο χρησιμοποιώντας 100 και πλέον gigabyte δεδομένων GitHub για να δημιουργήσει το Codex. Είναι σε θέση να δημιουργεί κώδικα σε 12 διαφορετικές γλώσσες και μπορεί να μεταφράσει υπάρχοντα προγράμματα μεταξύ τους.

Το Codex είναι έμπειρο στη δημιουργία μικρών, απλών ή επαναλαμβανόμενων στοιχείων, όπως “ένα μεγάλο κόκκινο κουμπί που κουνάει για λίγο την οθόνη όταν πατηθεί” ή κανονικές λειτουργίες όπως το εργαλείο επικύρωσης διεύθυνσης email σε μια Φόρμα Ιστού

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

Το DeepMind της Google ανέπτυξε τον AlphaCode ειδικά για να αντιμετωπίσει τέτοιες προκλήσεις. Όπως το Codex, το AlphaCode εκπαιδεύτηκε για πρώτη φορά σε πολλά gigabyte υπαρχόντων αρχείων κώδικα GitHub, αλλά στη συνέχεια τροφοδοτήθηκε με χιλιάδες προκλήσεις κωδικοποίησης που προέρχονταν από διαδικτυακούς διαγωνισμούς προγραμματισμού, όπως η ανακάλυψη

πόσες δυαδικές συμβολοσειρές με δεδομένο μήκος δεν περιέχουν διαδοχικά μηδενικά

.

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


Επιστήμη


, το AlphaCode κατάφερε να απαντήσει σωστά σε αυτές τις ερωτήσεις πρόκλησης το 34% των περιπτώσεων (σε σύγκριση με τη μονοψήφια επιτυχία του Codex στα ίδια σημεία αναφοράς, αυτό δεν είναι κακό). DeepMind ακόμη

συμμετείχε στο AlphaCode σε έναν διαδικτυακό διαγωνισμό προγραμματισμού 5.000 ανταγωνιστών

όπου ξεπέρασε σχεδόν το 46 τοις εκατό των ανθρώπινων ανταγωνιστών.


Τώρα ακόμη και το AI έχει σημειώσεις

Ακριβώς όπως το GPT-3.5 χρησιμεύει ως θεμελιώδες μοντέλο για το ChatGPT, το Codex χρησιμεύει ως βάση για το Copilot AI του GitHub. Εκπαιδευμένο σε δισεκατομμύρια γραμμές κώδικα που έχουν συγκεντρωθεί από τον δημόσιο ιστό, το Copilot προσφέρει λειτουργίες αυτόματης συμπλήρωσης κωδικοποίησης με τη βοήθεια AI μέσω ενός συνδρομητικού plugin για τα ολοκληρωμένα περιβάλλοντα ανάπτυξης Visual Studio Code, Visual Studio, Neovim και JetBrains (IDE).

Αρχικά κυκλοφόρησε ως προεπισκόπηση προγραμματιστή τον Ιούνιο του 2021, το Copilot ήταν μεταξύ των πρώτων AI με δυνατότητα κωδικοποίησης που έφτασε στην αγορά. Περισσότεροι από ένα εκατομμύριο προγραμματιστές έχουν αξιοποιήσει το σύστημα τα δύο χρόνια από τότε, είπε στο Engadget ο αντιπρόεδρος του προϊόντος του GitHub, Ryan J Salva, κατά τη διάρκεια μιας πρόσφατης συνέντευξης. Με το Copilot, οι χρήστες μπορούν να δημιουργήσουν κώδικα με δυνατότητα εκτέλεσης από εισόδους κειμένου φυσικής γλώσσας, καθώς και να συμπληρώσουν αυτόματα τις κοινώς επαναλαμβανόμενες ενότητες κώδικα και τις λειτουργίες προγραμματισμού.

Ο Salva σημειώνει ότι πριν από την κυκλοφορία του Copilot, οι προηγούμενες προτάσεις κωδικοποίησης του GitHub που δημιουργήθηκαν από μηχανή έγιναν αποδεκτές από τους χρήστες μόνο στο 14-17 τοις εκατό των περιπτώσεων, «κάτι που είναι εντάξει. Σημαίνει ότι βοηθούσε τους προγραμματιστές». Στα δύο χρόνια από το ντεμπούτο του Copilot, αυτό το ποσοστό έχει αυξηθεί στο 35 τοις εκατό, «και αυτό ισοδυναμεί με λιγότερο από το ήμισυ του όγκου του κώδικα που γράφεται [on GitHub] — 46 τοις εκατό από AI για την ακρίβεια.”

“[It’s] δεν είναι θέμα μόνο ποσοστού κώδικα που γράφτηκε», διευκρίνισε ο Σάλβα. “Πρόκειται πραγματικά για την παραγωγικότητα, την εστίαση, την ικανοποίηση των προγραμματιστών που δημιουργούν.”

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

«Ανάμεσα στο πότε το μοντέλο παράγει μια πρόταση και όταν αυτή η πρόταση παρουσιάζεται στον προγραμματιστή», είπε ο Salva, «στο χρόνο εκτέλεσης εκτελούμε … μια ανάλυση ποιότητας κώδικα για τον προγραμματιστή, αναζητώντας κοινά σφάλματα ή τρωτά σημεία στον κώδικα, όπως δέσμες ενεργειών μεταξύ τοποθεσιών ή ένεση διαδρομής.”

Αυτό το βήμα ελέγχου έχει σκοπό να βελτιώσει την ποιότητα του προτεινόμενου κώδικα με την πάροδο του χρόνου αντί να παρακολουθεί ή να ελέγχει για ποιον σκοπό μπορεί να χρησιμοποιηθεί ο κωδικός. Το Copilot μπορεί να βοηθήσει τους προγραμματιστές να δημιουργήσουν τον κώδικα που συνθέτει κακόβουλο λογισμικό, το σύστημα δεν θα το αποτρέψει. «Έχουμε πάρει τη θέση ότι το Copilot είναι εκεί ως εργαλείο για να βοηθήσει τους προγραμματιστές να παράγουν κώδικα», είπε ο Salva, δείχνοντας τις πολυάριθμες εφαρμογές White Hat για ένα τέτοιο σύστημα. «Το να θέσουν ένα εργαλείο όπως το Copilot στα χέρια τους… τους κάνει πιο ικανούς ερευνητές ασφαλείας», συνέχισε.

Καθώς η τεχνολογία συνεχίζει να αναπτύσσεται, η Salva βλέπει τη γενετική κωδικοποίηση AI να επεκτείνεται πολύ πέρα ​​από τα τρέχοντα τεχνολογικά της όρια. Αυτό περιλαμβάνει «ένα μεγάλο στοίχημα» στην τεχνητή νοημοσύνη συνομιλίας. «Βλέπουμε επίσης την υποβοηθούμενη από AI ανάπτυξη να διεισδύει πραγματικά σε άλλα μέρη του κύκλου ζωής ανάπτυξης λογισμικού», είπε, όπως η χρήση της τεχνητής νοημοσύνης για αυτόνομα

επιδιόρθωση σφαλμάτων κατασκευής CI/CD

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

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


Από κωδικοποιητές μέχρι γκαμπέρηδες

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

παραβιάζει πνευματικά δικαιώματα

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

Το GitHub δεν απέχει πολύ από το να είναι μόνο στις προσπάθειές του να δημιουργήσει έναν φίλο προγραμματισμού AI. Το ChatGPT του OpenAI είναι ικανό να δημιουργεί κώδικα — όπως και οι ήδη αμέτρητες indie παραλλαγές που δημιουργούνται στην πλατφόρμα GPT. Έτσι είναι επίσης

Το σύστημα AWS CodeWhisperer της Amazon

, το οποίο παρέχει πολλές από τις ίδιες λειτουργίες αυτόματης συμπλήρωσης με το Copilot, αλλά βελτιστοποιημένο για χρήση εντός του πλαισίου AWS. Μετά από πολλαπλά αιτήματα από χρήστες, η Google ενσωμάτωσε δυνατότητες δημιουργίας κώδικα και εντοπισμού σφαλμάτων στο Bard και τον περασμένο Απρίλιο, ενόψει του προσανατολισμού της σε όλο το οικοσύστημα να αγκαλιάσει την τεχνητή νοημοσύνη στο I/O 2023 και

την κυκλοφορία του Codey

, απάντηση της Alphabet στον Copilot. Δεν μπορούμε να είμαστε σίγουροι ακόμη ποια θα γίνουν τελικά τα γενετικά συστήματα κωδικοποίησης ή πώς μπορεί να επηρεάσει τη βιομηχανία της τεχνολογίας — θα μπορούσαμε να εξετάσουμε τις πρώτες επαναλήψεις μιας μετασχηματιστικής εκδημοκρατιζόμενης τεχνολογίας ή θα μπορούσε να είναι το Clippy για μια νέα γενιά.


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


Engadget.com



You might also like


Leave A Reply



Cancel Reply

Your email address will not be published.