AGI και το μέλλον της AI

MetaGPT: Ολική Οδηγός για τον Καλύτερο Διαθέσιμο Πραγματικό Έξυπνο Πράκτορα

mm
Προσθέστε το Unite.AI στις προτιμώμενες πηγές σας στο Google

Με τα Μεγάλα Μοντέλα Γλώσσας (LLM) όπως το ChatGPT, η OpenAI έχει δει μια αύξηση στην υιοθέτηση από επιχειρήσεις και χρήστες, με τρέχουσες μηνιαίες έσοδα γύρω στα 80 εκατομμύρια δολάρια. Σύμφωνα με μια πρόσφατη αναφορά από το The Information, η εταιρεία με έδρα το Σαν Φρανσίσκο βρίσκεται σε πορεία να φτάσει τα 1 δισεκατομμύρια δολάρια σε ετήσιες πωλήσεις.

Την τελευταία φορά που εξετάσαμε το AutoGPT και GPT-Engineering, τα πρώτα mainstream ανοιχτά μοντέλα LLM-βασισμένα έξυπνα πράκτορες που σχεδιάστηκαν για την αυτοματοποίηση σύνθετων εργασιών. Αν και υποσχόμενα, αυτά τα συστήματα είχαν το μερίδιό τους προβλήματα: ασυνεχείς αποτελέσματα,瓶-neck επιδόσεων και περιορισμοί στην αντιμετώπιση πολύπλοκων απαιτήσεων. Δείχνουν ικανότητα στη γεννήτρια κώδικα, αλλά οι ικανότητές τους συχνά σταματούν εκεί. Λείπουν κρίσιμες λειτουργίες διαχείρισης έργων όπως η γεννήτρια PRD, η τεχνική σχεδίαση και η πρωτοτυπία διεπαφής API.

Εισάγετε το MetaGPT — ένα σύστημα πολλαπλών πρακτόρων που χρησιμοποιεί Μεγάλα Μοντέλα Γλώσσας από τον Sirui Hong που συνδυάζει Προτυποποιημένες Διαδικασίες Λειτουργίας (SOP) με LLM-βασισμένα συστήματα πολλαπλών πρακτόρων. Αυτή η αναδυόμενη παράδοση διαταράσσει τις υφιστάμενες περιορισμοί των LLM στη διευκόλυνση της αποτελεσματικής συνεργασίας και της αποσύνθεσης εργασιών σε σύνθετες, πραγματικές εφαρμογές.

Η ομορφιά του MetaGPT βρίσκεται στη δομή του. Εκμεταλλεύεται τεχνικές μετα-προγραμματισμού για να χειρίζεται, να αναλύει και να μετατρέπει κώδικα σε πραγματικό χρόνο. Ο στόχος; Να υλοποιήσει μια ευέλικτη, ευέλικτη αρχιτεκτονική λογισμικού που μπορεί να προσαρμοστεί σε δυναμικές προγραμματιστικές εργασίες.

Αγίλη Ανάπτυξη - Metagpt

Αγίλη Ανάπτυξη

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

Κατανόηση του Πλαισίου MetaGPT

Πλαίσιο MetaGPT

Πλαίσιο MetaGPT (https://arxiv.org/pdf/2308.00352.pdf)

Βασικά και Συνεργατικά Στρώματα

Η αρχιτεκτονική του MetaGPT χωρίζεται σε δύο στρώματα: το Στρώμα Βασικών Στοιχείων και το Στρώμα Συνεργασίας.

  1. Στρώμα Βασικών Στοιχείων: Αυτό το στρώμα επικεντρώνεται στις ατομικές επιχειρήσεις των πρακτόρων και διευκολύνει την ανταλλαγή πληροφοριών σε ολόκληρο το σύστημα. Εισάγει βασικά δομικά στοιχεία όπως Περιβάλλον, Μνήμη, Ρόλοι, Ενέργειες και Εργαλεία. Το Περιβάλλον ρυθμίζει τη σκηνή για κοινά χώρους εργασίας και μονοπάτια επικοινωνίας, ενώ η Μνήμη χρησιμεύει ως αρχείο ιστορικών δεδομένων. Οι Ρόλοι περικλείουν εξειδικευμένες γνώσεις, οι Ενέργειες εκτελούν modυλικές εργασίες και τα Εργαλεία προσφέρουν κοινές υπηρεσίες. Αυτό το στρώμα εξυπηρετεί ουσιαστικά ως το λειτουργικό σύστημα για τους πράκτορες. Περισσότερες λεπτομέρειες για το πώς αυτά συνεργάζονται είναι διαθέσιμες στο άρθρο ‘Πέρα από το ChatGPT; Έξυπνος Πράκτορας: Ένας Νέος Κόσμος Εργατών
  2. Στρώμα Συνεργασίας: Χτισμένο πάνω στα βασικά στοιχεία, αυτό το στρώμα διαχειρίζεται και ροώνει τις συνεργατικές προσπάθειες των ατομικών πρακτόρων. Εισάγει δύο μηχανισμούς: Κοινή Ανταλλαγή Γνώσεων και Περιέκλυση Ροών Εργασιών.
    • Κοινή Ανταλλαγή Γνώσεων: Αυτό ενεργεί ως το συνεργατικό κόλλα που συνδέει τους πράκτορες. Οι πράκτορες μπορούν να αποθηκεύουν, να ανακτούν και να μοιράζονται πληροφορίες σε διάφορα επίπεδα, μειώνοντας έτσι την επανάληψη και βελτιώνοντας την λειτουργική αποτελεσματικότητα.
    • Περιέκλυση Ροών Εργασιών: Αυτό είναι το σημείο όπου οι Προτυποποιημένες Διαδικασίες Λειτουργίας (SOP) έρχονται στο παιχνίδι. Οι SOPs ενεργούν ως蓝prints που διασπούν τις εργασίες σε διαχειρίσιμα συστατικά. Οι πράκτορες ανατίθενται αυτές τις υπο-εργασίες και η απόδοσή τους ευθυγραμμίζεται με προτυποποιημένες εξόδους.

Το MetaGPT χρησιμοποιεί επίσης “Ορισμοί Ρόλων” για να ξεκινήσει διάφορους εξειδικευμένους πράκτορες όπως οι Product Managers, Architects, κ.λπ. όπως συζητήσαμε παραπάνω. Αυτοί οι ρόλοι χαρακτηρίζονται από κλειδιά χαρακτηριστικά όπως όνομα, προφίλ, στόχος, περιορισμοί και περιγραφή.

Επιπλέον, “Αγκυροβόληδες Πράκτορες” παρέχουν ρόλο-ειδικές οδηγίες σε αυτούς τους πράκτορες. Για παράδειγμα, ο ρόλος του Product Manager μπορεί να αρχικοποιηθεί με τον περιορισμό της “αποτελεσματικής δημιουργίας ενός επιτυχημένου προϊόντος”. Οι αγκυροβόληδες πράκτορες διασφαλίζουν ότι η συμπεριφορά των πρακτόρων ευθυγραμμίζεται με τους υπέρτατους στόχους, βελτιώνοντας έτσι την απόδοση.

Γνωστικές Διεργασίες σε Πράκτορες MetaGPT

Το MetaGPT μπορεί να παρατηρήσει, να σκεφτεί, να ανακλέψει και να ενεργήσει. Λειτουργούν μέσω συγκεκριμένων συμπεριφορικών λειτουργιών όπως _think(), _observe(), _publish_message(), κ.λπ. Αυτό το γνωστικό μοντέλο εξοπλίζει τους πράκτορες να είναι ενεργοί μαθητές που μπορούν να προσαρμοστούν και να εξελιχθούν.

  1. Παρατήρηση: Οι πράκτορες σκανάρουν το περιβάλλον τους και ενσωματώνουν βασικά δεδομένα στη Μνήμη τους.
  2. Σκέψη & Ανακλήση: Μέσω της _think() λειτουργίας, οι ρόλοι συζητούν πριν από την εκτέλεση ενεργειών.
  3. Δημοσίευση Μηνυμάτων: Οι πράκτορες χρησιμοποιούν _publish_message() για να μοιράσουν την τρέχουσα κατάσταση εργασιών και σχετικές εγγραφές ενεργειών.
  4. Σύμπτωση Γνώσεων & Ενέργεια: Οι πράκτορες αξιολογούν εισερχόμενες μηνύματα και ενημερώνουν τα εσωτερικά τους αποθετήρια πριν από την απόφαση για την επόμενη πορεία ενέργειας.
  5. Διαχείριση Κατάστασης: Με χαρακτηριστικά όπως κλείδωμα εργασιών και ενημέρωση κατάστασης, οι ρόλοι μπορούν να επεξεργαστούν πολλές ενέργειες σειριακά χωρίς διακοπή, αντανακλώντας την πραγματική ανθρώπινη συνεργασία.

Μηχανισμοί Κώδικα-Αναθεώρησης για MetaGPT

Η αναθεώρηση κώδικα είναι ένα κρίσιμο συστατικό στον κύκλο ζωής της ανάπτυξης λογισμικού, αλλά λείπει σε πολλά δημοφιλή πλαισια. Τόσο το MetaGPT όσο και το AgentVerse υποστηρίζουν ικανότητες αναθεώρησης κώδικα, αλλά το MetaGPT πάει ένα βήμα παραπέρα. Περιλαμβάνει επίσης εκτέλεση προ-συναρμολόγησης, η οποία βοηθά στην πρώιμη ανίχνευση σφαλμάτων και στη συνέχεια ανυψώνει την ποιότητα του κώδικα. Λόγω της επαναληπτικής φύσης της προγραμματισμού, αυτό το χαρακτηριστικό δεν είναι απλώς ένα add-on, αλλά μια απαιτούμενη προϋπόθεση για οποιοδήποτε ώριμο πλαισιο ανάπτυξης.

Ποσοτικές πειραματικές μετρήσεις που διεξήχθησαν σε διάφορες εργασίες αποκάλυψαν ότι το MetaGPT ξεπέρασε τους ανταγωνιστές του σε σχεδόν κάθε σενάριο. Το Pass@1 είναι ένα μέτρο της ικανότητας του πλαισίου να παράγει ακριβή κώδικα σε μια seule επανάληψη. Αυτό το μέτρο προσφέρει μια πιο ρεαλιστική αντανάκλαση της χρησιμότητας του πλαισίου σε ένα πρακτικό περιβάλλον. Ένας υψηλότερος ρυθμός Pass@1 σημαίνει λιγότερη αποσφαλμάτωση και περισσότερη αποτελεσματικότητα, επηρεάζοντας άμεσα τους κύκλους ανάπτυξης και τα κόστη. Όταν τοποθετηθεί σε σύγκριση με άλλα προηγμένα εργαλεία γεννήτριας κώδικα όπως το CodeX, το CodeT, και ακόμη και το GPT-4, το MetaGPT υπερέχει από όλα αυτά. Η ικανότητα του πλαισίου να επιτύχει ένα 81.7% έως 82.3% ρυθμό Pass@1 σε HumanEval και MBPP benchmarks.

Σύγκριση MBPP και HumanEval Μετρικών μεταξύ MetaGPT και άλλων Ηγετικών Μοντέλων (https://arxiv.org/pdf/2308.00352.pdf)

Σύγκριση MBPP και HumanEval Μετρικών μεταξύ MetaGPT και άλλων Ηγετικών Μοντέλων (https://arxiv.org/pdf/2308.00352.pdf)

Το πλαισιο χρησιμοποιεί επίσης λιγότερους tokens και υπολογιστικούς πόρους, επιτυγχάνοντας υψηλό ποσοστό επιτυχίας σε một κλάσμα του παραδοσιακού κόστους μηχανικής λογισμικού. Τα δεδομένα έδειξαν ένα μέσο κόστος μόνο $1.09 ανά έργο με το MetaGPT, που είναι ένα κλάσμα του τι θα χρεώσει ένας προγραμματιστής για την ίδια εργασία.

Βήματα για Τοπική Εγκατάσταση του MetaGPT στο Σύστημα σας

NPM, Python Εγκατάσταση

  1. Ελέγξτε & Εγκαταστήστε NPM: Πρώτα από όλα, βεβαιωθείτε ότι το NPM είναι εγκατεστημένο στο σύστημα σας. Αν δεν είναι, θα πρέπει να εγκαταστήσετε node.js. Για να ελέγξετε αν έχετε NPM, εκτελέστε αυτή την εντολή στο τερματικό σας: npm --version. Αν δείτε έναν αριθμό έκδοσης, είστε έτοιμοι.
  2. Για να εγκαταστήσετε το mermaid-js, μια εξάρτηση για το MetaGPT, εκτελέστε: sudo npm install -g @mermaid-js/mermaid-cli ή npm install -g @mermaid-js/mermaid-cli
  3. Επιβεβαιώστε την Έκδοση Python: Βεβαιωθείτε ότι έχετε Python 3.9 ή νεότερη έκδοση. Για να ελέγξετε την έκδοση Python, ανοίξτε το τερματικό σας και πληκτρολογήστε: python --version. Αν δεν είστε ενημερωμένοι, κατεβάστε την τελευταία έκδοση από την επίσημη ιστοσελίδα Python.
  4. Κλωνοποίηση Αποθετηρίου MetaGPT: Ξεκινήστε κλωνοποιώντας το αποθετήριο MetaGPT στο GitHub χρησιμοποιώντας την εντολή git clone https://github.com/geekan/metagpt. Βεβαιωθείτε ότι έχετε εγκαταστήσει το Git στο σύστημα σας για αυτό. Αν όχι, επισκεφθείτε εδώ.
  5. Πλοήγηση στο Κατάλογο: Μόλις κλωνοποιηθεί, πλοηγήστε στο κατάλογο MetaGPT χρησιμοποιώντας την εντολή cd metagpt.
  6. Εγκατάσταση: Εκτελέστε το σενάριο εγκατάστασης Python για να εγκαταστήσετε το MetaGPT με την εντολή python setup.py install.
  7. Δημιουργία Εφαρμογής: Εκτελέστε python startup.py "ENTER-PROMPT" --code_review True

Σημείωση:

  • Το νέο σας έργο πρέπει τώρα να βρίσκεται στον workspace/ κατάλογο.
  • --code_review True θα επιτρέψει στο μοντέλο GPT να εκτελέσει πρόσθετες εργασίες που θα διασφαλίσουν ότι ο κώδικας εκτελείται ακριβώς, αλλά σημειώστε ότι θα κοστίσει περισσότερο.
  • Αν συναντήσετε einen σφάλμα άδειας κατά την εγκατάσταση, δοκιμάστε να εκτελέσετε python setup.py install --user ως εναλλακτική.
  • Για πρόσβαση σε συγκεκριμένες εκδόσεις και περισσότερες λεπτομέρειες, επισκεφθείτε την επίσημη σελίδα εκδόσεων MetaGPT στο GitHub: Εκδόσεις MetaGPT.

Εγκατάσταση Docker

Για εκείνους που προτιμούν την εναπόθεση, το Docker απλοποιεί τη διαδικασία:

  • Κάντε Pull την Εικόνα Docker: Κατεβάστε την επίσημη εικόνα MetaGPT και προετοιμάστε το αρχείο διαμόρφωσης:
docker pull metagpt/metagpt:v0.3.1
mkdir -p /opt/metagpt/{config,workspace}
docker run --rm metagpt/metagpt:v0.3.1 cat /app/metagpt/config/config.yaml > /opt/metagpt/config/key.yaml
vim /opt/metagpt/config/key.yaml
  • Εκτέλεση του Container MetaGPT: Εκτελέστε το container με την ακόλουθη εντολή:
docker run --rm --privileged \
-v /opt/metagpt/config/key.yaml:/app/metagpt/config/key.yaml \
-v /opt/metagpt/workspace:/app/metagpt/workspace \
metagpt/metagpt:v0.3.1 \
python startup.py "Δημιουργήστε ένα απλό και διαδραστικό CLI-βασισμένο παιχνίδι πέτρα-ψαλίδι-χαρτί" --code_review True

Διαμόρφωση του MetaGPT με το Κλειδί API της OpenAI

Μετά την αρχική εγκατάσταση, θα πρέπει να ενσωματώσετε το MetaGPT με το Κλειδί API της OpenAI. Εδώ είναι τα βήματα για να το κάνετε:

  1. Βρείτε ή Γεννήστε το Κλειδί OpenAI: Μπορείτε να βρείτε αυτό το κλειδί στο πίνακα ελέγχου της OpenAI, κάτω από τις ρυθμίσεις API.
  2. Ρυθμίστε το Κλειδί API: Έχετε την επιλογή να τοποθετήσετε το κλειδί API σε οποιοδήποτε από τα config/key.yaml, config/config.yaml, ή να το ορίσετε ως μια μεταβλητή περιβάλλοντος (env). Η σειρά προτεραιότητας είναι config/key.yaml > config/config.yaml > env.
  3. Για να ορίσετε το κλειδί, πλοηγήστε στο config/key.yaml και αντικαταστήστε το κείμενο αναπλήρωσης με το κλειδί OpenAI σας: OPENAI_API_KEY: "sk-..."

Θυμηθείτε να προστατεύσετε το Κλειδί API της OpenAI. Ποτέ μην το αναρτήσετε σε ένα δημόσιο αποθετήριο ή το μοιραστείτε με μη εξουσιοδοτημένα άτομα.

Παράδειγμα Χρήσης

Έδωσα τον στόχο να αναπτύξω ένα CLI-βασισμένο παιχνίδι πέτρα-ψαλίδι-χαρτί, και το MetaGPT εκτέλεσε επιτυχώς την εργασία.

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

Δημοσίευση MetaGPT

Το MetaGPT παρείχε ένα έγγραφο σχεδίασης συστήματος σε μορφή Markdown — μια κοινή, ελαφριά γλώσσα σήμανσης. Αυτό το έγγραφο Markdown ήταν γεμάτο διαγράμματα UML, προσφέροντας μια λεπτομερή άποψη του αρχιτεκτονικού σχεδίου. Επιπλέον, οι προδιαγραφές API περιελάμβαναν μεθόδους HTTP, τελικά σημεία, αντικείμενα αιτήματος/απάντησης και κωδικούς κατάστασης

Έξοδος MetaGPT - Σχεδιασμός Συστήματος Markdown

Έξοδος MetaGPT – Σχεδιασμός Συστήματος Markdown

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

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

Σύνοψη: MetaGPT—Επανακαθορίζοντας την Ανάπτυξη Λογισμικού

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

Αυτά είναι τα βασικά σημεία από αυτό το άρθρο:

  1. Η Δύναμη της Μετα-Προγραμματισμού: Χρησιμοποιώντας μετα-προγραμματισμό, το MetaGPT παρέχει μια αγίλη και προσαρμόσιμη αρχιτεκτονική λογισμικού. Υπερβαίνει τη στενή λειτουργικότητα των παραδοσιακών εργαλείων και εισάγει μια μετασχηματιστική προσέγγιση που χειρίζεται όχι μόνο τον κώδικα, αλλά και τη διαχείριση έργων και τη λήψη αποφάσεων.
  2. Δομή Δύο Στρωμάτων: Με τα στρώματα των βασικών και συνεργατικών στοιχείων, το MetaGPT δημιουργεί ένα συναγωνιστικό οικοσύστημα όπου οι πράκτορες μπορούν να συνεργαστούν, παρόμοιο με μια εμπειρικά διαχειριζόμενη ομάδα λογισμικού.
  3. Βελτιωμένη Αναθεώρηση Κώδικα: Πέρα από τη γεννήτρια κώδικα, το MetaGPT προσφέρει χαρακτηριστικά εκτέλεσης προ-συναρμολόγησης, που είναι ουσιαστικά ένα σύστημα προειδοποίησης για σφάλματα. Αυτό δεν μόνο économει χρόνο αποσφαλμάτωσης, αλλά διασφαλίζει επίσης την ποιότητα του κώδικα.
  4. Γνωστικοί Πράκτορες: Οι έξυπνοι πράκτορες του MetaGPT, πλήρεις με γνωστικές λειτουργίες όπως _observe(), _think(), και _publish_message(), εξελίσσονται και προσαρμόζονται, διασφαλίζοντας ότι η λύση λογισμικού σας δεν είναι απλώς κωδικοποιημένη, αλλά και ‘έξυπνη’.
  5. Εγκατάσταση & Αναπτύξη: Έχουμε δείξει ότι το MetaGPT μπορεί να εγκατασταθεί εύκολα, είτε με τοπική εγκατάσταση μέσω NPM και Python, είτε με εναπόθεση μέσω Docker.

Έχω περάσει τα τελευταία πέντε χρόνια βυθισμένος στον συναρπαστικό κόσμο της Μηχανικής Μάθησης και του Βαθιάς Μάθησης. Η δέσμευσή μου και η εξειδίκευσή μου με οδήγησαν να συμβάλλω σε πάνω από 50 διαφορετικά projects μηχανικής λογισμικού, με ιδιαίτερη έμφαση στο AI/ML. Η συνεχής περιέργειά μου με έχει οδηγήσει επίσης προς την Επεξεργασία Φυσικής Γλώσσας, ένα πεδίο που είμαι πρόθυμος να εξερευνήσω περαιτέρω.