Αυτή η Α.Ι. Εφαρμογή προγραμματίζει Καλύτερα Από Εσένα

Κοινοποίηση:

Αυτή η Α.Ι. Εφαρμογή προγραμματίζει Καλύτερα Από Εσένα

Τις τελευταίες μέρες το ίντερνετ, (ή τουλάχιστον η μικρή σκοτεινή γωνία του ίντερνετ που πλοηγούμαι εγώ), έχει κατακλυστεί από screenshots και αποσπάσματα από την νέα Α.Ι. εφαρμογή με το όνομα ChatGPT.

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

Η OpenAI μάλιστα δημοσιοποίησε μία δοκιμαστική online εφαρμογή που χρησιμοποιεί το μοντέλο ChatGPT. Έτσι μπορούμε όλοι να την δοκιμάσουμε από τον browser μας ακολουθώντας τον παρακάτω σύνδεσμο:

https://chat.openai.com/

Τι είναι το ChatGPT και σε τι διαφέρει από άλλα αντίστοιχα γλωσσικά μοντέλα

Το ChatGPT είναι μία εξειδικευμένη έκδοση του μοντέλου GPT3.5. Τα μοντέλα της σειράς GPT είναι πολύ μεγάλα γλωσσικά μοντέλα που έχουν εκπαιδευτεί σε πάρα πολλά δεδομένα και βασικός σκοπός τους είναι να διαλέγουν την πιο κατάλληλη λέξη μετά από μία σειρά λέξεων.

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

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

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

Παραδείγματα

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

Επεξήγηση σύνθετων εννοιών με απλά λόγια

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

Επεξήγηση σύνθετων εννοιών με απλά λόγια
Quantum computers use the principles of quantum mechanics to perform calculations. Unlike classical computers, which use bits to represent information as either a 0 or a 1, quantum computers use quantum bits, or qubits, which can represent a 0, a 1, or both at the same time. This allows quantum computers to perform certain calculations much more quickly than classical computers.

Α.Ι. και ποίηση 

Σε αυτό το παράδειγμα ζήτησα από το ChatGPT να γράψει ένα ποίημα για διαστημικούς πιγκουίνους

Ενα ποίημα για διαστημικούς πιγκουίνους από το ChatGPT
In the dark of space, Where stars twinkle and glow, Lives a curious creature, With a beak and flippers, A penguin made of ice and snow.

It waddles and it hops, Through the vacuum of the void, Exploring distant planets, With a heart full of joy.

From the frozen plains of Mars, To the swirling gas giants of the outer rim, This spacefaring penguin roams, A hero, for all of time.

So here's to you, dear penguin, Our feathered friend from the stars, May your journey through the cosmos, Be filled with wonder, adventure, and all that you wish for.

Δημιουργία κώδικα σε γλώσσα προγραμματισμού

Τέλος, ζήτησα από το ChatGPT να γράψει 2 προγράμματα σε γλώσσα Python. Πρώτα ένα αρκετά από παράδειγμα και στην συνέχεια ένα με λίγο πιο σύνθετη λογική.

Στο πρώτο παράδειγμα ζήτησα να μου φτιάξει κώδικα που να παράγει αριθμούς από την ακολουθία Fibonacci.

Παραγωγη αριθμών Fibonacci σε Python από το ChatGPT
# Define the function to generate the Fibonacci sequence
def fibonacci(n):
  # Set the initial values for the sequence
  a = 0
  b = 1
  # Create an empty list to store the sequence
  sequence = []
  # Generate the sequence until the n-th term
  for i in range(n):
    # Compute the next term in the sequence
    c = a + b
    # Add the term to the sequence
    sequence.append(c)
    # Update the values of a and b
    a = b
    b = c
  # Return the generated sequence
  return sequence
# Generate the first 10 terms of the Fibonacci sequence
print(fibonacci(10))

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

Στο δεύτερο παράδειγμα ζήτησα να φτιάξει ένα πρόγραμμα για ένα παιχνίδι “πέτρα ψαλίδι χαρτί”.

Πέτρα ψαλίδι χαρτί σε Python από το ChatGPT

Και σε αυτήν την περίπτωση το ChatGPT ανταποκρίθηκε χωρίς πρόβλημα.

# Define the function to play the game

def play_game():
  # Prompt the first player to enter their move
  move1 = input("Player 1, enter your move (rock, paper, or scissors): ")
  # Prompt the second player to enter their move
  move2 = input("Player 2, enter your move (rock, paper, or scissors): ")

  # Determine the winner of the game
  if move1 == move2:
    # If the players have the same move, the game is a tie
    print("It's a tie!")
  elif move1 == "rock" and move2 == "scissors":
    # If player 1 plays rock and player 2 plays scissors, player 1 wins
    print("Player 1 wins!")
  elif move1 == "paper" and move2 == "rock":
    # If player 1 plays paper and player 2 plays rock, player 1 wins
    print("Player 1 wins!")
  elif move1 == "scissors" and move2 == "paper":
    # If player 1 plays scissors and player 2 plays paper, player 1 wins
    print("Player 1 wins!")
  else:
    # Otherwise, player 2 wins
    print("Player 2 wins!")

# Play the game
play_game()

Πως εκπαιδεύτηκε το ChatGPT

Το μοντέλο ChatGPT εκπαιδεύτηκε με την τεχνική RLHF (Reinforcement Learning from Human Feedback). Δηλαδή, εκπαίδευση με ενίσχυση με ανάδραση από άνθρωπο. Σε αυτή τη διαδικασία της εκπαίδευσης, άνθρωποι εκπαιδευτές τροφοδοτούν το μοντέλο με συζητήσεις στις οποίες έχουν γράψει οι ίδιοι τις ερωτήσεις και τις απαντήσεις. Επιπλέον, οι άνθρωποι εκπαιδευτές έχουν πρόσβαση στις προτάσεις που παράγει το μοντέλο για κάθε ερώτηση και αξιολογούν τις απαντήσεις ή τις χρησιμοποιούν σαν βάση για να διαμορφώσουν τις απαντήσεις τους.

Περιορισμοί και Παρατηρήσεις

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

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

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

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

H OpenAI έχει προσπαθήσει να ορίσει κάποια φίλτρα και μηχανισμούς που θα αποτρέψουν το μοντέλο να απαντήσει με προσβλητικό, “μή ασφαλές”, ή προκλητικό περιεχόμενο. 

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

Οι σκέψεις μου πάνω στο θέμα

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

Πρέπει λοιπόν να αρχίσουμε να ανησυχούμε; 

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

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

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