Πώς κρατάς υπό έλεγχο ένα AI

που γράφει τα προγράμματα της επιχείρησής σου

Από Κωνσταντίνος ΧαϊτάςΔημοσιεύτηκε Τελευταία ενημέρωση 8 λεπτά

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

Ένα AI που γράφει προγράμματα δεν το κρατάς υπό έλεγχο με το να διαλέξεις το «καλύτερο». Το κρατάς με τρεις απλούς ελέγχους γύρω του. Ξέρεις από πριν πότε μια δουλειά είναι τελειωμένη. Ελέγχεις κάθε παρατήρηση πριν την πιστέψεις. Και αν κάτι χαλάσει, γυρίζεις αμέσως στην προηγούμενη καλή έκδοση. Αυτά έμαθα φτιάχνοντας το Planner.

Με μια ματιά: AI που γράφει προγράμματα

  • Την ποιότητα την εγγυώνται οι έλεγχοι γύρω από το AI, όχι το ίδιο το AI
  • Οι έλεγχοι γράφονται πριν από το πρόγραμμα και ορίζουν πότε η δουλειά είναι τελειωμένη
  • Κάθε παρατήρηση ελέγχεται ξανά στο πρόγραμμα όπως είναι σήμερα, πριν γίνει δεκτή
  • Το πρόγραμμα δεν ανεβαίνει ποτέ στο live site αν έστω ένας τελικός έλεγχος αποτυγχάνει
  • Αν μια αλλαγή που ανέβηκε στο live site δεν δουλεύει, επιστρέφει αυτόματα η προηγούμενη καλή έκδοση
  • Στο Planner ο άνθρωπος αποφασίζει σε δύο σημεία: στους γύρους παρατηρήσεων και στην έγκριση πριν ανέβει μια αλλαγή στο live site

Γιατί δεν αρκεί να εμπιστεύεσαι το AI;

Ένα AI μπορεί να γράψει σωστό πρόγραμμα δέκα φορές και λάθος την ενδέκατη. Και θα το γράψει με την ίδια σιγουριά. Δεν μπορείς να προβλέψεις πότε θα γίνει το λάθος. Γι' αυτό η ποιότητα δεν μπορεί να στηρίζεται στην καλή του μέρα. Στηρίζεται σε ελέγχους που τρέχουν πάντα, ό,τι κι αν έγραψε.

Το ίδιο κάνεις με κάθε συνεργάτη που δεν βλέπεις να δουλεύει. Σκέψου έναν εργολάβο που χτίζει το μαγαζί σου. Δεν τον εμπιστεύεσαι επειδή είναι καλός άνθρωπος. Τον εμπιστεύεσαι επειδή η δουλειά του περνά από παραλαβή.

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

Στο Planner το εφάρμοσα κατά γράμμα. Το Planner παίρνει μια περιγραφή από εσένα και παραδίδει μια εφαρμογή που δουλεύει. Στον δρόμο περνά από πέντε στάδια. Σχεδιάζει το σχέδιο της εφαρμογής. Γράφει πρώτα τους ελέγχους και μετά το πρόγραμμα. Κάνει τελικό έλεγχο ποιότητας. Κάνει επιθεώρηση. Και στο τέλος την ανεβάζει στο live site. Κανένα στάδιο δεν εξαρτάται από το πόσο «έξυπνο» είναι το AI εκείνη τη μέρα.

Το AI αλλάζει κάθε λίγους μήνες. Οι έλεγχοι μένουν. Γι' αυτό βάζω τον κόπο μου εκεί.

Πώς ορίζεις πότε μια δουλειά είναι πραγματικά τελειωμένη;

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

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

Γι' αυτό οι έλεγχοι μπαίνουν από την αρχή. Πριν ξεκινήσει το γράψιμο, κάθε εργασία έχει μια λίστα με ελέγχους που πρέπει να «ανάψουν πράσινο». Οι τεχνικοί το λένε TDD, δηλαδή «πρώτα το τεστ, μετά το πρόγραμμα». Η λίστα είναι η εντολή που δίνεις. Δεν είναι κάτι που προστίθεται στο τέλος.

Τι κάνει έναν κανόνα καλό

Ένας καλός κανόνας έχει τρία πράγματα. Τον ελέγχει μηχανή. Μιλά για το αποτέλεσμα και όχι για τον τρόπο. Και δεν περνά αν το πρόγραμμα κάνει το λάθος πράγμα.

Το τρίτο είναι το δυσκολότερο. Φαντάσου ότι ο κανόνας λέει «ο έλεγχος πρέπει να περνά». Τότε το AI έχει έναν εύκολο δρόμο: να αλλάξει τον έλεγχο. Είναι σαν μαθητής που διορθώνει το κλειδί των απαντήσεων. Γι' αυτό το σύστημα έχει έναν αυστηρό κανόνα. Δεν χαλαρώνει ποτέ έναν έλεγχο για να βγει πράσινος. Αν ένας κανόνας είναι λάθος, αλλάζει φανερά και καταγράφεται.

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

Αόριστη ευχήΚανόνας που ελέγχεται
Η φόρμα δουλεύειΌταν στείλεις τη φόρμα με σωστά στοιχεία, πετυχαίνει και βλέπεις μήνυμα επιτυχίας
Η σελίδα είναι ασφαλήςΌποιος δεν έχει δικαίωμα και προσπαθήσει να μπει στη διαχείριση, παίρνει άρνηση πρόσβασης
Το site είναι γρήγοροΗ πρώτη οθόνη δεν «πηδά» όταν φορτώνει και οι εικόνες είναι σε σύγχρονη μορφή
Δεν χάλασε τίποταΟ τελικός έλεγχος όλης της εφαρμογής περνά χωρίς ούτε ένα κόκκινο

Πώς ελέγχεις κάθε παρατήρηση πριν την πιστέψεις;

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

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

Σε ένα μέρος του Planner, το Agent Studio, δουλεύουν ταυτόχρονα βοηθοί, ο καθένας στον δικό του τομέα. Ένας κοιτά την ποιότητα του κώδικα. Ένας την ασφάλεια. Ένας προσπαθεί να «σπάσει» την εφαρμογή σαν επίδοξος εισβολέας. Ένας τη δοκιμάζει όπως θα τη δοκίμαζε ένας χρήστης. Ένας κοιτά τη χρηστικότητα. Ένας κοιτά πώς βρίσκεται η ιστοσελίδα στις μηχανές αναζήτησης. Μετά, ένα ξεχωριστό βήμα δεν ρωτά «ακούγεται λογικό;». Ρωτά «μπορώ να το αποδείξω;».

Μια απάντηση που δόθηκε μία φορά δεν ξαναρωτιέται

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

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

Τι γίνεται όταν μια αλλαγή που ανέβηκε δεν δουλεύει;

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

Η αυτόματη επαναφορά είναι η τελευταία γραμμή άμυνας. Γι' αυτό δεν πρέπει να εξαρτάται από κανέναν. Οι έλεγχοι μειώνουν την πιθανότητα να φτάσει ένα λάθος στους πελάτες σου. Δεν τη μηδενίζουν. Το πραγματικό site έχει πάντα κάτι που δεν έχει το δοκιμαστικό. Έχει πραγματικά δεδομένα. Έχει πραγματική κίνηση. Και μπορεί να έχει μια ρύθμιση που διαφέρει.

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

Υπάρχει και ένας ακόμη κανόνας. Ο τελικός έλεγχος δεν παραδίδεται ποτέ κόκκινος. Αν κάτι αποτυγχάνει πριν το ανέβασμα, η αλλαγή δεν ανεβαίνει καν.

Πόσο ανθρώπινο μένει το σύστημα;

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

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

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

Πώς ξεκινάς να στήνεις τους ίδιους ελέγχους;

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

Τα βήματα, με τη σειρά:

  1. Για κάθε εργασία, γράψε τους κανόνες ως ελέγχους που περνούν ή αποτυγχάνουν, πριν ξεκινήσει το AI.
  2. Απαγόρευσε να χαλαρώνει ένας έλεγχος ή ένας κανόνας για να βγει πράσινος. Αν αλλάξει ένας κανόνας, να γίνεται φανερά.
  3. Για κάθε παρατήρηση που βγάζει ένα AI, ζήτα απόδειξη στο πρόγραμμα όπως είναι σήμερα: έναν έλεγχο που αποτυγχάνει ή μια τεκμηριωμένη διάψευση.
  4. Κράτα λίστα με τις παρατηρήσεις που απορρίφθηκαν, για να μην γυρίζουν.
  5. Αμέσως μετά το ανέβασμα, βάλε έναν αυτόματο έλεγχο να βλέπει ότι το site δουλεύει. Αν όχι, να γυρίζει μόνο του στην προηγούμενη έκδοση.
  6. Άφησε έγκριση από άνθρωπο εκεί που η αλλαγή φτάνει σε πραγματικούς χρήστες.

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

Συχνές ερωτήσεις: AI που γράφει προγράμματα

Όχι. Ένα καλύτερο AI κάνει λιγότερα λάθη, αλλά δεν τα μηδενίζει. Και δεν μπορείς να ξέρεις από πριν ποια θα είναι. Οι έλεγχοι τρέχουν ανεξάρτητα από το AI. Γι' αυτό μένουν χρήσιμοι, ακόμη κι όταν το AI γίνει καλύτερο.

Σημαίνει ότι μια μηχανή μπορεί να τον ελέγξει και να απαντήσει «ναι» ή «όχι», χωρίς να κρίνει. «Η φόρμα στέλνεται και βγαίνει μήνυμα επιτυχίας» είναι τέτοιος κανόνας. «Η λειτουργία δουλεύει σωστά» δεν είναι.

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

Ναι, στο σημείο που μια αλλαγή ανεβαίνει στο live site. Η επαναφορά περιορίζει τη ζημιά αν κάτι πάει στραβά. Δεν αποφασίζει όμως αν μια αλλαγή πρέπει να φτάσει στους χρήστες. Αυτή την απόφαση την παίρνει ο άνθρωπος.

Πηγές: AI που γράφει προγράμματα

Τελευταία ενημέρωση: