Μονάδα 12 / 12

Όρια: Ασφάλεια, Απόρρητο, Άδεια και Δεοντολογία

Κέρδη:

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

Εξέταση Ενοτήτων

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

  • Α) Τελική έγκριση ορθότητας, ασφάλειας και επανεξέτασης και δοκιμής του κώδικα που τέθηκε σε παραγωγή ✔
  • Β) Δημιουργία του πρώτου σκελετού κώδικα για μια συνάρτηση
  • Γ) Παραγωγή λίστας προτάσεων για ονόματα μεταβλητών
  • Δ) Προετοιμασία σχεδίου κειμένου για σχόλια κώδικα

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

2. Η τεχνητή νοημοσύνη έχει δημιουργήσει μια συνάρτηση για εσάς και φαίνεται να λειτουργεί στην ευτυχισμένη διαδρομή. Ποιο είναι το καλύτερο βήμα πριν το βάλεις στην παραγωγή;

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

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

3. Το AI πρότεινε μια μέθοδο που ονομάζεται 'array.sortStable()' που δεν υπάρχει στη γλώσσα σας και την εξήγησε με σαφή τρόπο. Ποια είναι η πρώτη σωστή ενέργεια που πρέπει να κάνετε;

  • Α) Χρήση της μεθόδου απευθείας επειδή το AI φαίνεται σίγουρο
  • Β) Ορίστε τη μέθοδο μόνοι σας και χρησιμοποιήστε ακριβώς το όνομά της
  • Γ) Επαλήθευση της ύπαρξης της μεθόδου από την επίσημη τεκμηρίωση της γλώσσας/βιβλιοθήκης ✔
  • Δ) Κλείστε την προειδοποίηση του μεταγλωττιστή και συνεχίστε

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

4. Θέλετε να επικολλήσετε τον εμπιστευτικό πηγαίο κώδικα της εταιρείας σας και ένα ενσωματωμένο κλειδί API σε ένα δημόσιο εργαλείο AI και να ζητήσετε βοήθεια. Ποια είναι η πιο σωστή προσέγγιση;

  • Α) Επικόλληση του κώδικα όπως είναι με το κλειδί API για ταχύτητα
  • Β) Αρκεί απλώς να διαγράψετε το όνομα της εταιρείας και να μοιραστείτε οτιδήποτε άλλο
  • Γ) Κοινή χρήση του κώδικα και στη συνέχεια ζητώντας από το AI να τον διαγράψει
  • Δ) Αφαίρεση μυστικών και κρυμμένης λογικής και μείωση του προβλήματος σε αντιπροσωπευτικό παράδειγμα ή χρήση θεσμικού εργαλείου ✔

Περιγραφή: Μυστικός πηγαίος κώδικας και διαπιστευτήρια (κλειδί API, κωδικός πρόσβασης, συμβολοσειρά σύνδεσης). Είναι επικίνδυνο από άποψη εταιρικού μυστικού και ασφάλειας. Είναι απαραίτητο να αφαιρέσετε τα μυστικά και την κρυμμένη επιχειρηματική λογική και να περιορίσετε το πρόβλημα σε ένα ανώνυμο/αντιπροσωπευτικό παράδειγμα ή να χρησιμοποιήσετε ένα εργαλείο κοινής χρήσης επιχείρησης/μη δεδομένων.

5. Το AI είπε ότι η πολυπλοκότητα μιας συνάρτησης αναζήτησης που έγραψε ήταν O(n). αλλά υπάρχουν δύο ένθετοι βρόχοι στον κώδικα. Ποια είναι η σωστή μηχανική συμπεριφορά;

  • Α) Αναλύστε τον κώδικα χειροκίνητα και εξαγάγετε μόνοι σας την πολυπλοκότητα και μετρήστε τον εάν χρειάζεται ✔
  • Β) Αποδεχτείτε το O(n) και συνεχίστε επειδή είπε η AI
  • Γ) Υποθέτοντας ότι ο αριθμός των κύκλων δεν έχει καμία σχέση με την απόδοση
  • Δ) Απλώς αλλάξτε το όνομα της συνάρτησης

Επεξήγηση: Η χρονική πολυπλοκότητα (Big-O) δείχνει πώς αυξάνεται ο αριθμός των πράξεων καθώς αυξάνεται η είσοδος. Δύο ένθετοι βρόχοι συνήθως σημαίνουν O(n^2). Ο ισχυρισμός περί πολυπλοκότητας της τεχνητής νοημοσύνης θα πρέπει να επαληθεύεται με μη αυτόματη ανάλυση του κώδικα και μέτρηση με αυξανόμενες εισόδους, εάν είναι απαραίτητο. Η επίκληση της αξίωσης παράγει μια εσφαλμένη υπόθεση απόδοσης.

6. Κώδικας που δημιουργείται από AI που εισάγει απευθείας τα δεδομένα χρήστη σε ένα ερώτημα SQL συνενώνοντας κείμενο. Ποιο είναι το κύριο πρόβλημα και η σωστή λύση εδώ;

  • Α) Κανένα πρόβλημα. Η συγχώνευση κειμένου είναι η πιο γρήγορη μέθοδος
  • Β) Υπάρχει κίνδυνος SQL injection. Θα πρέπει να χρησιμοποιηθεί ένα παραμετροποιημένο ερώτημα (προετοιμασμένη δήλωση) που διαχωρίζει την είσοδο ✔
  • Γ) Αρκεί μόνο η μετατροπή του ερωτήματος σε κεφαλαία
  • Δ) Η σύντομη σύνταξη του ερωτήματος θα λύσει το πρόβλημα

Περιγραφή: Η προσθήκη εισόδου χρήστη απευθείας στο κείμενο του ερωτήματος δημιουργεί μια ευπάθεια SQL injection. Ο εισβολέας μπορεί να τροποποιήσει το ερώτημα με την είσοδο. Η σωστή λύση είναι να χρησιμοποιήσετε ένα παραμετροποιημένο ερώτημα (προετοιμασμένη δήλωση) που διαχωρίζει την είσοδο από το κείμενο του ερωτήματος. Αυτό είναι ένα από τα πιο συχνά χαμένα λάθη ασφαλείας στον κώδικα AI.

7. Έχετε περιορισμένο χρόνο όταν εξετάζετε ένα κομμάτι κώδικα που έχει παραχθεί από AI. Ποια θέματα είναι καλύτερα να δώσουμε προτεραιότητα;

  • Α) Μορφοποιήστε μόνο λεπτομέρειες όπως εσοχές και απόσταση
  • Β) Μόνο το μήκος των ονομάτων μεταβλητών
  • Γ) Λογική ορθότητα, τρωτά σημεία και συμπεριφορά ακραίων περιπτώσεων ✔
  • Δ) Μόνο ο συνολικός αριθμός γραμμών του αρχείου

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

8. Θέλετε να έχετε την τεχνητή νοημοσύνη να λύσει ένα σφάλμα. Ποια εισαγωγή θα βοηθούσε καλύτερα το AI να βρει τη βασική αιτία;

  • Α) Απλώς λέγοντας "ο κωδικός δεν λειτουργεί, διορθώστε τον"
  • Β) Απλώς δώστε το όνομα του αρχείου
  • Γ) Λέγοντας απλώς το αναμενόμενο αποτέλεσμα, χωρίς το κείμενο σφάλματος
  • Δ) Παρέχετε πλήρες μήνυμα σφάλματος, ίχνος στοίβας, σχετικό κωδικό και ελάχιστο παράδειγμα αναπαραγωγής ✔

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

9. Όλες οι δοκιμές μονάδας που παράγονται από AI περνούν στην πρώτη εκτέλεση. Ποιος κίνδυνος δεν πρέπει να αγνοηθεί σε αυτήν την κατάσταση;

  • Α) Οι δοκιμές μπορεί να επιβεβαιώσουν την τρέχουσα κατάσταση του κώδικα αλλά όχι την πραγματική/αναμενόμενη συμπεριφορά ✔
  • Β) Ο κωδικός είναι απολύτως χωρίς λάθη επειδή όλες οι δοκιμές πέρασαν
  • Γ) Η ποιότητα είναι εγγυημένη εάν ο αριθμός των δοκιμών είναι μεγάλος
  • Δ) Η επιτυχία του τεστ αποδεικνύει ότι η κάλυψη έχει ολοκληρωθεί

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

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

  • Α) Χρήση της άδειας χωρίς σκέψη γιατί ο κώδικας λειτουργεί
  • Β) Έλεγχος της πηγής/άδειας του κώδικα, επανεγγραφή εάν χρειάζεται και συμμόρφωση με την εταιρική πολιτική ✔
  • Γ) Απλώς αλλάξτε τα ονόματα των μεταβλητών και θεωρήστε το πρόβλημα λυμένο
  • Δ) Υποθέτοντας ότι η αδειοδότηση αφορά μόνο μεγάλες εταιρείες

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

11. Η τεχνητή νοημοσύνη πρότεινε να μεταβείτε αμέσως στην αρχιτεκτονική microservices για το έργο σας. Ποια είναι η καταλληλότερη τεχνική προσέγγιση κατά την αξιολόγηση αυτής της πρότασης;

  • Α) Διαχωρίστε αμέσως ολόκληρο το σύστημα σε μικροϋπηρεσίες γιατί προτείνει η τεχνητή νοημοσύνη
  • Β) Υποθέτοντας ότι η microservice είναι πάντα η καλύτερη επιλογή
  • Γ) Αξιολογήστε την πρόταση σύμφωνα με την πραγματική ανάγκη, το φορτίο, τη δομή της ομάδας και την ισορροπία συν-πλην ✔
  • Δ) Η λήψη της απόφασης βασίζεται αποκλειστικά στη δημοτικότητα της αρχιτεκτονικής

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

12. Το AI δημιούργησε μια βελτιωμένη τεκμηρίωση README και API για τον κώδικά σας. αλλά ορισμένα τελικά σημεία και παράμετροι δεν ταιριάζουν στον κώδικα. Ποια είναι η σωστή συμπεριφορά;

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

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

13. Ποια προσέγγιση εισόδου είναι κατάλληλη για έξοδο υψηλότερης ποιότητας όταν ζητάτε κώδικα από AI;

  • Α) Σαφή παροχή γλώσσας/έκδοσης, σύμβαση εισόδου-εξόδου, περιορισμών και καταστάσεων σφαλμάτων ✔
  • Β) Απλώς λέγοντας "γράψτε μου έναν κωδικό εργασίας"
  • Γ) Γράψτε το συντομότερο αίτημα χωρίς να δώσετε κανένα πλαίσιο
  • Δ) Απλώς προσδιορίζοντας πόσες γραμμές κώδικα θα υπάρχουν

Περιγραφή: Ισχυρή προτροπή. Περιλαμβάνει τη γλώσσα και την έκδοση που χρησιμοποιείται, τη σύμβαση εισόδου-εξόδου, περιορισμούς απόδοσης και στυλ, συνθήκες σφάλματος και την οδηγία «παραμονή μόνο εντός του ζητούμενου πεδίου». Ένα αίτημα "γράψτε μου μια συνάρτηση" χωρίς πλαίσιο είναι γενικό και συχνά παράγει ακατάλληλο κώδικα.

14. Το AI δημιούργησε μια διαμόρφωση για τη διοχέτευση CI/CD (συνεχής ενσωμάτωση/ανάπτυξη) και ενσωμάτωσε τον κωδικό πρόσβασης της βάσης δεδομένων σε αυτό σε απλό κείμενο. Ποια είναι η σωστή διόρθωση;

  • Α) Αφήνοντας τον κωδικό πρόσβασης ως απλό κείμενο επειδή λειτουργεί
  • Β) Μετακίνηση μυστικών μέσω μεταβλητής περιβάλλοντος ή εργαλείου διαχείρισης μυστικών, χωρίς τοποθέτηση απλού κειμένου στο αποθετήριο ✔
  • Γ) Μετακινήστε τον κωδικό πρόσβασης μόνο στη γραμμή σχολίων
  • Δ) Η αλλαγή του ονόματος αρχείου λύνει το πρόβλημα

Επεξήγηση: Η εγγραφή μυστικών όπως κωδικών πρόσβασης και κλειδιών σε απλό κείμενο στο αρχείο διαμόρφωσης ενέχει τον κίνδυνο διαρροής ελέγχου έκδοσης και μη εξουσιοδοτημένης πρόσβασης. Μυστικά? Θα πρέπει να διατηρείται εκτός από μεταβλητές περιβάλλοντος ή από ειδικό διαχειριστή μυστικών και δεν πρέπει ποτέ να εισάγεται στο χώρο αποθήκευσης σε απλό κείμενο.