τα στοιχεία επικοινωνίας μου
Ταχυδρομείο[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Αυτό το άρθρο είναι οι σημειώσεις του τρίτου ακαδημαϊκού μοντέλου μεγάλης κλίμακας που φιλοξενείται από το Εργαστήριο Τεχνητής Νοημοσύνης της Σαγκάης.Πρωτότυπος σύνδεσμος του tutorial。
Για να εγγραφείτε, αναζητήστε το "The Third Scholar Model Practical Camp" στο WeChat.
Αυτή η σημείωση είναι μια προσωπικά σχολιασμένη σημείωση που τροποποιήθηκε με βάση το αρχικό σεμινάριο.
😀Hello大家好,欢迎来到Μελετητής μεγάλο μοντέλοΠρακτική κατασκήνωση, εδώ είναι ένα βασικό μάθημα που ετοιμάζει η πρακτική κατασκήνωση για μαθητές που συμμετέχουν στην πρακτική κατασκήνωση για πρώτη φορά, και φοιτητές από διάφορες βιομηχανίες που δεν έχουν βασικές γνώσεις Linux Εδώ θα σας μάθουμε πώς να το χρησιμοποιείτεΜηχάνημα ανάπτυξης InternStudioκαι μάθετε μερικά βασικάΓνώση Linux , έτσι ώστε όλοι να μην έχουν ιδέα από πού να ξεκινήσουν στα παρακάτω μαθήματα, ελπίζω ότι θα είναι χρήσιμο σε όλους. Έχουμε ετοιμάσει ορισμένες εργασίες επιπέδου για εσάς στις εργασίες επιπέδου εδώ Όταν ολοκληρώσετε τις απαιτούμενες εργασίες επιπέδου και κάνετε check in, θα λάβετε την ανταμοιβή υπολογιστικής ισχύος του τρέχοντος επιπέδου.ας αρχίσουμε!
InternStudio 是大模型时代下的云端算力平台。基于 InternLM 组织下的诸多算法库支持,为开发者提供开箱即用的大语言模型微调环境、工具、数据集,并完美兼容 🤗 HugginFace 开源生态。
Εάν θέλετε να μάθετε περισσότερα για το InternStudio, μπορείτε να ελέγξετε τα ακόλουθα έγγραφα: InternStudio
https://studio.intern-ai.org.cn/
Πρώτα ανοίξτε τον παραπάνω σύνδεσμο για να εισέλθετε στο InternStudio Αφού συνδεθείτε, θα μεταβείτε αυτόματα στη διεπαφή της κονσόλας, όπως φαίνεται στην παρακάτω εικόνα:
Επιτρέψτε μου να σας πω τις λειτουργίες των σελίδων που αντιστοιχούν σε κάθε σειριακό αριθμό:
Το παραπάνω είναι μια σύντομη εισαγωγή στην πλατφόρμα InternStudio Ας ρίξουμε μια ματιά στο πώς να δημιουργήσουμε μια μηχανή ανάπτυξης Πηγαίνουμε στην αρχική σελίδα και κάνουμε κλικ στο ".Δημιουργήστε μια μηχανή ανάπτυξης”
Εδώ επιλέγουμε να δημιουργήσουμεμηχανή προσωπικής ανάπτυξης, με όνομαδοκιμή,CudaΗ έκδοση είναι 12.2,Κατανομή των πόρωνΕπιλέξτε 10% και η προεπιλεγμένη διάρκεια είναι καλή.
Αφού ολοκληρωθεί η δημιουργία, στοΜηχάνημα ανάπτυξηςΜπορείτε να δείτε τη μηχανή ανάπτυξης που μόλις δημιουργήσατε στη διεπαφή.
Αφού εισέλθετε στη μηχανή ανάπτυξης, μπορείτε να δείτε την κύρια σελίδα της μηχανής ανάπτυξης Η μηχανή ανάπτυξης έχει τρεις τρόπους επιλογής:JupyterLab, Terminal και VScode
σε:
Εισαγάγαμε παραπάνωΠλατφόρμα InternStudio, και πώς να δημιουργήσετε μια μηχανή ανάπτυξης Σε αυτήν την ενότητα, θέλουμε να καταλάβουμε τιSSH、Γιατί να χρησιμοποιήσετε απομακρυσμένη σύνδεση, Πώς να χρησιμοποιήσετε το SSHαπομακρυσμένη σύνδεσηΜηχάνημα ανάπτυξης, τι είναιΧαρτογράφηση λιμένωνκαι πώς να προχωρήσετεΧαρτογράφηση λιμένων。
SSHΤο πλήρες όνομα είναι Secure Shell, το οποίο μεταφράζεται στα κινέζικα ως ασφαλές κέλυφοςπρωτόκολλο ασφαλείας δικτύου , πραγματοποιήστε ασφαλή πρόσβαση και μεταφορά αρχείων και άλλες υπηρεσίες μέσω μηχανισμών κρυπτογράφησης και ελέγχου ταυτότητας. Το πρωτόκολλο SSH παρέχει ασφαλείς υπηρεσίες δικτύου σε ένα μη ασφαλές περιβάλλον δικτύου με κρυπτογράφηση και έλεγχο ταυτότητας δεδομένων δικτύου.
Το SSH είναι (αρχιτεκτονική C/S) απόυπηρέτηςκαιπελάτηςΓια να δημιουργήσετε ένα ασφαλές κανάλι SSH, και τα δύο μέρη πρέπει πρώτα να δημιουργήσουν μια σύνδεση TCP, στη συνέχεια να διαπραγματευτούν τον αριθμό έκδοσης και τους διάφορους αλγόριθμους που χρησιμοποιούνται και να δημιουργήσουν το ίδιοκλειδί συνεδρίας χρησιμοποιείται για επακόλουθη συμμετρική κρυπτογράφηση. Μετά την ολοκλήρωση του ελέγχου ταυτότητας χρήστη, και τα δύο μέρη μπορούν να δημιουργήσουν μια περίοδο λειτουργίας για ανταλλαγή δεδομένων.
Στη συνέχεια, στην επόμενη πρακτική θα το κάνουμεΔιαμόρφωση κλειδιών SSH, το κλειδί διαμόρφωσης είναι έτσι ώστε να μην χρειάζεται να εισάγουμε επανειλημμένα τον κωδικό πρόσβασης όταν συνδεόμαστε εξ αποστάσεως στο μηχάνημα ανάπτυξης, και στη συνέχειαΓιατί να συνδεθείτε εξ αποστάσεως;?
Το πλεονέκτημα της απομακρυσμένης σύνδεσης είναι ότι εάν χρησιμοποιείτε απομακρυσμένο γραφείο, μπορείτε να συνδεθείτε εξ αποστάσεως με τη μηχανή ανάπτυξης μέσω SSH, ώστε να μπορείτε να αναπτύξετε τοπικά. Και αν χρειάζεται να εκτελέσετε κάποιο τοπικό κώδικα και δεν έχετε περιβάλλον, τότε η απομακρυσμένη σύνδεση είναι πολύ απαραίτητη.
Αρχικά, χρησιμοποιούμε τη μέθοδο εισαγωγής του κωδικού πρόσβασης για απομακρυσμένη σύνδεση SSH Αργότερα θα μιλήσουμε για τον τρόπο διαμόρφωσης της σύνδεσης χωρίς κωδικό πρόσβασης.
Αφού ολοκληρώσουμε τη δημιουργία του μηχανήματος ανάπτυξης, πρέπει να ανοίξουμε το τερματικό powerShell του υπολογιστή μας και να το χρησιμοποιήσουμεWin+R Χρησιμοποιήστε το πλήκτρο συντόμευσης για να ανοίξετε το πλαίσιο εκτέλεσης, εισαγάγετε το powerShell και ανοίξτε το τερματικό powerShell. (Εάν χρησιμοποιείτε λειτουργικό σύστημα Linux ή Mac, τα παρακάτω βήματα είναι τα ίδια)
Επιστρέφουμε στην πλατφόρμα μηχανών ανάπτυξης και μπαίνουμεΜηχάνημα ανάπτυξηςΒρείτε το μηχάνημα ανάπτυξης που δημιουργήσαμε στη σελίδα και κάντε κλικΣύνδεση SSH。
στη συνέχεια αντιγράψτεΕντολή σύνδεσης, 37367 εδώ είναι η θύρα SSH που χρησιμοποιείται από το μηχάνημα ανάπτυξης Γενικά, η θύρα 22 χρησιμοποιείται χωρίς αυτόν τον αριθμό θύρας, και η θύρα του καθενός είναι διαφορετική, οπότε αν συνδέεστε στο μηχάνημα ανάπτυξης. , πρέπει να ελέγξετε αν η θύρα είναι λάθος.
Επικολλήστε την αντιγραμμένη εντολή στο powershell και πατήστε Enter Εδώ πρέπει να εισαγάγουμε τον κωδικό πρόσβασης κάτω από την εντολή σύνδεσης και να τον επικολλήσουμε στο τερματικό.Σημειώστε ότι μετά την αντιγραφή του κωδικού πρόσβασης, κάντε δεξί κλικ για να τον επικολλήσετε Το πλήκτρο συντόμευσης φλοιού για επικόλληση σε ορισμένους υπολογιστές είναιshift+ins
, ο κωδικός που επικολλήθηκε εδώ δεν θα εμφανιστεί, αυτό είναι φυσιολογικό.
Τέλος, πατήστε Enter και εμφανίζεται το ακόλουθο περιεχόμενο, υποδεικνύοντας επιτυχία:
Αφού συνδεθούμε στη μηχανή ανάπτυξης, μπορούμε να χρησιμοποιήσουμεhostname
Για να δείτε το όνομα του μηχανήματος ανάπτυξης, χρησιμοποιήστε τοuname -a
Για να δείτε τις πληροφορίες του πυρήνα του μηχανήματος ανάπτυξης, χρησιμοποιήστε τοlsb_release -a
Για να δείτε πληροφορίες έκδοσης μηχανήματος ανάπτυξης, χρησιμοποιήστε τοnvidia-smi
Ελέγξτε τις πληροφορίες της GPU Θα μιλήσουμε αργότερα για αυτές τις εντολές.exit
Αυτό είναι.
Αλλά όταν αναπτύσσουμε και μελετάμε, είναι ενοχλητικό να εισάγουμε τον κωδικό πρόσβασης από απόσταση. Μπορούμε να ρυθμίσουμε το κλειδί SSH για να παραλείψουμε το βήμα εισαγωγής του κωδικού πρόσβασηςssh-keygenεντολή για τη δημιουργία του κλειδιού
Το κλειδί SSH είναι μια ασφαλής και βολική μέθοδος ελέγχου ταυτότητας σύνδεσης, που χρησιμοποιείται για έλεγχο ταυτότητας και κρυπτογραφημένη επικοινωνία στο πρωτόκολλο SSH.
ssh-keygenΥποστηρίζει κλειδιά ελέγχου ταυτότητας RSA και DSA.
Οι παράμετροι που χρησιμοποιούνται συνήθως περιλαμβάνουν:
Εδώ χρησιμοποιούμε τον αλγόριθμο RSA για να δημιουργήσουμε το κλειδί, η εντολή είναι:
ssh-keygen -t rsa
Αφού εισαγάγετε την εντολήΜπείτε μέχρι το τέλοςΑυτό είναι όλο, το κλειδί εδώ δημιουργείται από προεπιλογή~/.ssh/
κάτω από τον κατάλογο,~
Σημαίνει τον αρχικό κατάλογο, αν είναι windows, είναιC:Users{your_username}
.Μπορεί να χρησιμοποιηθεί στο powerShellGet-Content
Εντολή για προβολή του κλειδιού που δημιουργήθηκε, το οποίο μπορεί να χρησιμοποιηθεί εάν πρόκειται για λειτουργικό σύστημα Linuxcat
Σειρά.
Στη συνέχεια επιστρέφουμε στην πλατφόρμα του μηχανήματος ανάπτυξης και κάνουμε κλικ στο Configuration στην αρχική σελίδαΚλειδί SSHκαι μετά κάντε κλικΠροσθήκη δημόσιου κλειδιού SSH,
Αντιγράψτε το κλειδί που μόλις δημιουργήσατε και επικολλήστε το στο πλαίσιο δημόσιου κλειδιού. Τέλος, κάντε κλικ στην επιλογή Προσθήκη τώρα και η διαμόρφωση του κλειδιού SSH έχει ολοκληρωθεί.
Αφού ολοκληρώσετε τη δημιουργία του κλειδιού SSH, κάντε επανεκκίνησητερματικόΚατά την απομακρυσμένη σύνδεση, το βήμα της εισαγωγής του κωδικού πρόσβασης θα παραλειφθεί.
Φυσικά, μπορείτε επίσης να χρησιμοποιήσετε λογισμικό απομακρυσμένης σύνδεσης SSH, όπως:Windterm, Xterminal Περίμενε. Εδώ χρησιμοποιούμε το VScode για απομακρυσμένη σύνδεση Το πλεονέκτημα της χρήσης του VScode είναι ότι είναι ένας επεξεργαστής κώδικα, ο οποίος είναι πολύ βολικός για την τροποποίηση κώδικα και άλλες λειτουργίες.
Εάν θέλουμε να συνδεθούμε εξ αποστάσεως στο VScode, πρέπει επίσης να εγκαταστήσουμε ένα σύνολο προσθηκών. Μπορείτε να αναζητήσετε στο διαδίκτυο πώς να εγκαταστήσετε το VScode. (Το vscode στη μηχανή ανάπτυξης δεν μπορεί να αναζητήσει αυτό το πρόσθετο, αλλά το τοπικό vscode μπορεί)
Εάν έχετε εγκαταστήσει το VScode, μπορείτε να κάνετε κλικ στη σελίδα επέκτασης στα αριστερά και να εισαγάγετε "SSH" στο πλαίσιο αναζήτησης. Το πρώτο είναι το πρόσθετο που θέλουμε να εγκαταστήσουμε.
Αφού εγκαταστήσετε το plug-in, κάντε κλικ στο εικονίδιο απομακρυσμένης σύνδεσης στην πλαϊνή γραμμή, κάντε κλικ στο κουμπί "+" στο SSH και προσθέστε την εντολή σύνδεσης για τη σύνδεση SSH του μηχανήματος ανάπτυξης.
Αντιγράφουμε την εντολή σύνδεσης, επικολλάμε την εντολή στο αναδυόμενο παράθυρο και, τέλος, πατάμε Enter:
Το προεπιλεγμένο αρχείο ρύθμισης παραμέτρων είναι εντάξει. Φυσικά, μπορείτε επίσης να το προσαρμόσετε.
Host ssh.intern-ai.org.cn #主机ip也可以是域名
HostName ssh.intern-ai.org.cn #主机名
Port 37367 #主机的SSH端口
User root #登录SSH使用的用户
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
Εάν θέλετε να προσθέσετε μερικές από τις ακόλουθες επιλογές διαμόρφωσης με μη αυτόματο τρόπο, πρέπει να τροποποιήσετε τα αντίστοιχα μέρη σύμφωνα με την παραπάνω μορφή.
Αν *
StrictHostKeyChecking
no
καιUserKnownHostsFile
*/dev/null
Διαγράψτε το αναδυόμενο παράθυρο που θα εμφανιστεί για επαλήθευση δακτυλικών αποτυπωμάτων:
StrictHostKeyChecking no
Υποδεικνύει ότι ο αυστηρός έλεγχος κλειδιού κεντρικού υπολογιστή είναι απενεργοποιημένος. Αυτό σημαίνει ότι κατά τη σύνδεση σε έναν νέο διακομιστή SSH, το κλειδί κεντρικού υπολογιστή του διακομιστή δεν θα επαληθεύεται αυστηρά, γεγονός που μπορεί να εγκυμονεί συγκεκριμένο κίνδυνο ασφάλειας.
UserKnownHostsFile /dev/null
Ορίζει το αρχείο κλειδιού κεντρικού υπολογιστή που είναι γνωστό στον χρήστη σε /dev/null, το οποίο ουσιαστικά αγνοεί την εγγραφή και τη χρήση γνωστών κλειδιών κεντρικού υπολογιστή.Ωστόσο, στη γενική πρακτική ασφαλείας, δεν συνιστάται η αυθαίρετη απενεργοποίηση του αυστηρού ελέγχου κλειδιού κεντρικού υπολογιστή.
Στη συνέχεια, κάντε κλικ στο "Σύνδεση" στο παράθυρο προτροπής που εμφανίζεται στην κάτω δεξιά γωνία για να συνδεθείτε απομακρυσμένα με το μηχάνημα ανάπτυξης.
Μετά την ολοκλήρωση της απομακρυσμένης σύνδεσης, μπορείτε να επιλέξετε τον φάκελο που θα ανοίξει, ο οποίος μπορεί επίσης να ονομάζεται κατάλογος εργασίας. Μπορείτε να επιλέξετε τον φάκελο στο μηχάνημα ανάπτυξης ή τον τοπικό φάκελο.δίσκος σύννεφο。
Όταν κάνετε μια απομακρυσμένη σύνδεση την επόμενη φορά, δεν χρειάζεται να εισάγετε εντολές σύνδεσης και άλλες πληροφορίες Χρειάζεται μόνο να ανοίξετε την απομακρυσμένη σύνδεση του vscode για να δείτε τις πληροφορίες του μηχανήματος ανάπτυξης της πρώτης σύνδεσης, ως εξής.root
Σημαίνει ότι όταν συνδεόμαστε για πρώτη φορά με τη μηχανή ανάπτυξης, χρησιμοποιούμε/root
Λίστα εργασιών.
Και στην παρακάτω εικόνα->
Υποδεικνύει ότι πρέπει να επιλέξετε ξανά τον κατάλογο εργασίας μετά την είσοδο στο μηχάνημα ανάπτυξης:
Και στην παρακάτω εικόνα->
Υποδεικνύει την είσοδο στον κατάλογο εργασίας που επιλέχθηκε από την τελευταία μηχανή ανάπτυξης:
Ο κατάλογος εργασίας που επιλέγεται κάθε φορά θα εμφανίζεται κάτω από τις πληροφορίες του μηχανήματος ανάπτυξης: (υπάρχει ένας επιπλέον κατάλογος εργασίας για το lagent εδώ)
Στη συνέχεια θα παρουσιάσουμε το πότεΧαρτογράφηση λιμένων。
Χαρτογράφηση λιμένων Είναι μια τεχνολογία δικτύου που μπορεί να αντιστοιχίσει οποιαδήποτε θύρα στο εξωτερικό δίκτυο στην αντίστοιχη θύρα του εσωτερικού δικτύου για να πραγματοποιήσει την επικοινωνία μεταξύ του εσωτερικού δικτύου και του εξωτερικού δικτύου. Μέσω της χαρτογράφησης θυρών, οι υπηρεσίες ή οι εφαρμογές στο intranet μπορούν να έχουν πρόσβαση από το εξωτερικό δίκτυο για να επιτευχθεί άνετη επικοινωνία σε όλο το δίκτυο.
Γιατί λοιπόν πρέπει να εκτελούμε χαρτογράφηση θυρών όταν χρησιμοποιούμε μια μηχανή ανάπτυξης;
Γιατί στα επόμενα μαθήματα θα διεξάγουμε μοντέλαweb_demo Στην πρακτική ανάπτυξης, κατά τη διάρκεια αυτής της διαδικασίας, είναι πιθανό να αντιμετωπίσετε το πρόβλημα της ατελούς φόρτωσης της διεπαφής web.Αυτό συμβαίνει επειδή κατά την εκτέλεση του web_demo στο Web IDE του μηχανήματος ανάπτυξης, η απευθείας πρόσβαση στην υπηρεσία http/https στη μηχανή ανάπτυξης ενδέχεται να αντιμετωπίσει προβλήματα διακομιστή μεσολάβησης.πόρους UIΔεν έχει φορτωθεί πλήρως.
Για να λύσουμε λοιπόν αυτό το πρόβλημα, πρέπει να μεταφέρουμε τη χαρτογράφηση της σύνδεσης με το web_demo καιΟι σύνδεσμοι εξωτερικού δικτύου αντιστοιχίζονται στον τοπικό μας κεντρικό υπολογιστή , χρησιμοποιούμε τοπική πρόσβαση σύνδεσης για να λύσουμε αυτό το πρόβλημα διακομιστή μεσολάβησης. Ας το εξασκήσουμε τώρα.
Ας καταλάβουμε πρώτα πώς λειτουργεί η χαρτογράφηση θυρών μηχανής ανάπτυξης με βάση ένα διάγραμμα:
Υπάρχουν πρακτικά βήματα παρακάτω. Κατανοήστε πρώτα πώς να κάνετε χαρτογράφηση θυρών.
ssh -p 37367 [email protected] -CNg -L 7860:127.0.0.1:7860 -o StrictHostKeyChecking=no
Το παραπάνω είναι μια εντολή χαρτογράφησης θύρας Εκτελέστε αυτήν την εντολή στον κεντρικό υπολογιστή για να εκτελέσετε τη χαρτογράφηση θυρών.
Ο προσωπικός υπολογιστής θα συνδεθεί εξ αποστάσεως στη μοναδική εκτεθειμένη θύρα 37367 της μηχανής ανάπτυξης (αυτό αναφέρεται κατά το SSH και η εκτεθειμένη θύρα κάθε μηχανής ανάπτυξης είναι διαφορετική) και θα ορίσει τις επιλογές σήραγγας. Οι εκτεθειμένες θύρες χρησιμεύουν ως σταθμοί μεταφοράς για την προώθηση της κυκλοφορίας.
-C
: Ενεργοποιήστε τη συμπίεση για να μειώσετε τον όγκο των δεδομένων που μεταφέρονται.-N
: Δεν εκτελεί απομακρυσμένες εντολές, δημιουργεί μόνο τούνελ.-g
: Επιτρέψτε στους απομακρυσμένους κεντρικούς υπολογιστές να συνδεθούν σε τοπικά προωθημένες θύρες.Όταν αυτή η εντολή SSH εκτελείται σε προσωπικό υπολογιστή, ο πελάτης SSH θα ακούσει στη θύρα 7860 του τοπικού μηχανήματος.
Οποιαδήποτε κίνηση αποστέλλεται στην τοπική θύρα 7860 θα προωθηθεί από τη σήραγγα SSH στη θύρα 7860 στη διεύθυνση 127.0.0.1 του απομακρυσμένου διακομιστή.
Αυτό σημαίνει ότι ακόμα κι αν αυτή η θύρα της μηχανής ανάπτυξης δεν εκτίθεται απευθείας στο εξωτερικό δίκτυο, μπορούμε να έχουμε πρόσβαση με ασφάλεια σε υπηρεσίες στον απομακρυσμένο διακομιστή μέσω αυτής της σήραγγας. .
Εξακολουθούμε να πηγαίνουμε στη διεπαφή του μηχανήματος ανάπτυξης, βρίσκουμε το μηχάνημα ανάπτυξης και κάνουμε κλικΠροσαρμοσμένες υπηρεσίες, αντιγράψτε την πρώτη εντολή,
ssh -p 37367 [email protected] -CNg -L {本地机器_PORT}:127.0.0.1:{开发机_PORT} -o StrictHostKeyChecking=no
Ας του παρουσιάσουμε τη σημασία κάθε μέρους της εντολής:
-p 37367
: Καθορίζει τη θύρα για σύνδεση SSH στο 37367, η οποία αναφέρθηκε προηγουμένως.[email protected]
: Υποδεικνύει τη χρήση root
Η ταυτότητα χρήστη συνδέεται μεssh.intern-ai.org.cn
αυτός ο οικοδεσπότης.-CNg
:
-C
Συνήθως χρησιμοποιείται για την ενεργοποίηση της συμπίεσης.-N
Υποδεικνύει ότι οι απομακρυσμένες εντολές δεν εκτελούνται, αλλά δημιουργούνται μόνο συνδέσεις για προώθηση θύρας κ.λπ.-g
Επιτρέψτε στους απομακρυσμένους κεντρικούς υπολογιστές να συνδέονται σε τοπικά προωθημένες θύρες.-L {本地机器_PORT}:127.0.0.1:{开发机_PORT}
: Πρόκειται για τη ρύθμιση της προώθησης τοπικής θύρας για την προώθηση της καθορισμένης θύρας του τοπικού μηχανήματος (από {本地机器_PORT}
αντιπροσωπεύει) προωθείται στον απομακρυσμένο κεντρικό υπολογιστή (εδώ, π.χ.ssh.intern-ai.org.cn
)του 127.0.0.1
(δηλαδή η τοπική διεύθυνση loopback) και η καθορισμένη θύρα μηχανής ανάπτυξης (που ορίζεται από{开发机_PORT}
εξπρές).-o StrictHostKeyChecking=no
: Απενεργοποιήστε τον αυστηρό έλεγχο κλειδιού κεντρικού υπολογιστή για να αποφύγετε μηνύματα ή σφάλματα λόγω άγνωστων κλειδιών κεντρικού υπολογιστή κατά τη σύνδεση για πρώτη φορά.Όταν εκτελείτε μια επίδειξη ιστού, μπορείτε να χρησιμοποιήσετε αυτήν την εντολή για να εκτελέσετε αντιστοίχιση θυρών, για παράδειγμα:
Δημιουργούμε ένα αρχείο hello_world.py (κάνουμε δεξί κλικ στη διεπαφή του μηχανήματος ανάπτυξης για να δημιουργήσουμε το αρχείο και αλλάξουμε το όνομα σε hello_world.py) και συμπληρώνουμε το ακόλουθο περιεχόμενο στο αρχείο:
import socket
import re
import gradio as gr
# 获取主机名
def get_hostname():
hostname = socket.gethostname()
match = re.search(r'-(d+)$', hostname)
name = match.group(1)
return name
# 创建 Gradio 界面
with gr.Blocks(gr.themes.Soft()) as demo:
html_code = f"""
<p align="center">
<a href="https://intern-ai.org.cn/home">
<img src="https://intern-ai.org.cn/assets/headerLogo-4ea34f23.svg" alt="Logo" width="20%" style="border-radius: 5px;">
</a>
</p>
<h1 style="text-align: center;">☁️ Welcome {get_hostname()} user, welcome to the ShuSheng LLM Practical Camp Course!</h1>
<h2 style="text-align: center;">😀 Let’s go on a journey through ShuSheng Island together.</h2>
<p align="center">
<a href="https://github.com/InternLM/Tutorial/blob/camp3">
<img src="https://oss.lingkongstudy.com.cn/blog/202406301604074.jpg" alt="Logo" width="20%" style="border-radius: 5px;">
</a>
</p>
"""
gr.Markdown(html_code)
demo.launch()
Θυμηθείτε μετά την επεξεργασίαctrl+s
αποθηκεύσετε
Πριν εκτελέσετε τον κώδικα, πρέπει να χρησιμοποιήσετεpip install gradio==4.29.0
Εντολή για εγκατάσταση των παρακάτω πακέτων εξάρτησης (αντιγράψτε και επικολλήστε την εντολή στο τερματικό) και, στη συνέχεια, εκτελέστε ένα στο τερματικό του Web IDEpython hello_world.py
Σειρά
Εάν η αντιστοίχιση θύρας δεν εκτελείται, δεν είναι δυνατή η πρόσβαση σε αυτήν χρησιμοποιώντας τοπική IP.
Μπορώ να το εισάγω στο powerShell χρησιμοποιώντας την ακόλουθη εντολή:
ssh -p 37367 [email protected] -CNg -L 7860:127.0.0.1:7860 -o StrictHostKeyChecking=no
Αυτό αντιπροσωπεύει την επιτυχία. (Ειδοποίηση: Αυτή η εντολή δεν επιστρέφει περιεχόμενο, πράγμα που σημαίνει ότι εκτελείται η αντιστοίχιση της θύρας και, στη συνέχεια, μπορείτε να δείτε τη διεπαφή web UI ανοίγοντας τη σύνδεση στην ιστοσελίδα)
Φυσικά, εάν τρέχουμε διαφορετικά UI ιστού, πρέπει να εισάγουμε επανειλημμένα εντολές, κάτι που είναι πολύ ενοχλητικό και πρέπει να χρησιμοποιήσουμε το VScode.Έχουμε συνδέσει το μηχάνημα ανάπτυξης εξ αποστάσεως μέσω SSH. Το VScode παρέχει αυτόματη αντιστοίχιση θυρών.Ξυπνήστε το τερματικό, οι επιλογές θύρας βρίσκονται στη δεξιά πλευρά του τερματικού:
Εδώ μπορείτε να δείτε τις πληροφορίες αντιστοίχισης θύρας Εάν θέλετε να τροποποιήσετε τη θύρα, μπορείτε να τροποποιήσετε τον αριθμό θύρας στη στήλη της θύρας.
Σε αυτό το μέρος, θα σας οδηγήσω να κατανοήσετε ορισμένες πτυχές του Linux.Βασικές λειτουργίες και χρησιμοποιήστε μερικά εργαλεία. Για να το λύσει ο καθένας μόνος του όταν αντιμετωπίζει προβλήματα, μπορείτε να σχολιάσετε και εδώ και θα σας απαντήσω εγκαίρως.
γιατί χρησιμοποιούμεΜηχάνημα ανάπτυξηςσπάνια χρησιμοποιούμενοδιαχείριση της αρχής , οπότε δεν θα το παρουσιάσουμε. (Οι παρακάτω λειτουργίες εκτελούνται όλες στο τερματικό VScode)
Στο Linux, οι κοινές λειτουργίες διαχείρισης αρχείων περιλαμβάνουν:
touch
η εντολή δημιουργεί ένα κενό αρχείο.mkdir
Σειρά.cd
Σειρά.pwd
Σειρά.cat
Απευθείας εμφάνιση ολόκληρου του περιεχομένου του αρχείου,more
καιless
Μπορεί να προβληθεί σε σελίδες.vi
ήvim
Περιμένετε τον συντάκτη.cp
Σειρά.ln
Σειρά.mv
Σειρά.rm
Σειρά.rmdir
(Μόνο κενοί κατάλογοι μπορούν να διαγραφούν) ή rm -r
(Οι μη κενοί κατάλογοι μπορούν να διαγραφούν).find
Σειρά.ls
εντολή, όπως η χρήση ls -l
Προβολή λεπτομερών πληροφοριών σχετικά με αρχεία σε έναν κατάλογο.sed
Σειρά.Ακολουθούν αρκετές εντολές που θα χρησιμοποιήσουμε στο μάθημα:
Μπορούμε να χρησιμοποιήσουμε την αφή για να δημιουργήσουμε γρήγορα αρχεία, επομένως δεν χρειάζεται να κάνουμε κλικ με μη αυτόματο τρόπο για να τα δημιουργήσουμε.Για παράδειγμα, θέλουμε να δημιουργήσουμε έναdemo.py
έγγραφο:
Με τον ίδιο τρόπο, εάν θέλετε να δημιουργήσετε ένα αρχείο με όνομαtest
Ευρετήριο:
Αυτή η εντολή θα είναι η πιο συχνά χρησιμοποιούμενη εντολή Πριν τη χρησιμοποιήσετε, πρέπει να εξηγήσετε τη δομή του καταλόγου σε μαθητές που δεν έχουν δεξιότητες υπολογιστή και να σχεδιάσετε μια εικόνα για να την κατανοήσουν όλοι.
Αυτό που χρησιμοποιούμε τώρα είναιroot
κατάλογο, ο οποίος είναι επίσης ο αρχικός κατάλογος του χρήστη root.~
, σε λειτουργικό σύστημα linux/
Αντιπροσωπεύει τον ριζικό κατάλογο Υπάρχουν πολλοί κατάλογοι και αρχεία που απαιτούνται από το σύστημα στον ριζικό κατάλογοroot
κατάλογο, μεταξύ των οποίων.
Αντιπροσωπεύει τον τρέχοντα κατάλογο,..
Ο γονικός κατάλογος που αντιπροσωπεύεται.Αν έμπαινα τώραtest
κατάλογο και μετά επιστρέψτε στονroot
Κατάλογος, μπορούμε να κάνουμε αυτό:
μπορούμε να χρησιμοποιήσουμεpwd
Εντολή για προβολή του τρέχοντος καταλόγου: Αυτό μας διευκολύνει να προσδιορίσουμε σε ποιον κατάλογο βρισκόμαστε αυτήν τη στιγμή.
cat
Η εντολή μπορεί να προβάλει τα περιεχόμενα του αρχείου και μπορούν να χρησιμοποιηθούν περισσότερες εντολές--help
Εντολή για προβολή:
Μπορούμε να το χρησιμοποιήσουμε όταν χρειάζεται να επεξεργαστούμε αρχείαvi
ήvim
εντολή, όταν εισάγετε την επεξεργασία αρχείων, υπάρχουν τρεις τρόποι:
Εισαγάγετε τη λειτουργία επεξεργασίας για χρήσηi
, η ευκολία του vim είναι ότι μπορείτε να κάνετε απλές τροποποιήσεις αρχείων στο τερματικό.
**cp
**Η εντολή θα χρησιμοποιηθεί συχνά στα ακόλουθα μαθήματα. Χρησιμοποιείται για την αντιγραφή ενός αρχείου ή καταλόγου σε άλλον κατάλογο.
cp 源文件 目标文件
cp -r 源目录 目标目录
Αλλά αν θέλουμε να χρησιμοποιήσουμε το μοντέλο, αυτή η λειτουργία θα καταλαμβάνει πολύ χώρο στο δίσκο, επομένως χρησιμοποιούμε γενικάln
εντολή, αυτή είναι ίδια με τη συντόμευση των Windows. Υπάρχουν δύο τύποι συνδέσμων στο Linux:σκληρός σύνδεσμος(σκληρός σύνδεσμος)μεμαλακός σύνδεσμος (συμβολικός σύνδεσμος), ένας σκληρός σύνδεσμος σημαίνει ότι ένα αρχείο μπορεί να έχει πολλά ονόματα, ενώ ένας μαλακός σύνδεσμος δημιουργεί ένα ειδικό αρχείο του οποίου το περιεχόμενο δείχνει τη θέση ενός άλλου αρχείου. Οι σκληροί σύνδεσμοι υπάρχουν στο ίδιο σύστημα αρχείων, αλλά οι μαλακοί σύνδεσμοι μπορούν να εκτείνονται σε διαφορετικά συστήματα αρχείων.
Ως εκ τούτου, χρησιμοποιούμε γενικά μαλακές συνδέσεις Οι συνήθεις μέθοδοι χρήσης του είναι οι εξής:
ln [参数][源文件或目录][目标文件或目录]
Οι παράμετροι είναι οι εξής:
mv
εντολή καιrm
Οι εντολές χρησιμοποιούνται με παρόμοιο τρόπο, αλλάmv
Χρησιμοποιείται για τη μετακίνηση αρχείων ή καταλόγων και μπορεί επίσης να μετονομαστεί.rm
Η εντολή χρησιμοποιείται για τη διαγραφή αρχείων ή καταλόγων.
Οι μέθοδοι που χρησιμοποιούνται συνήθως είναι οι εξής:
Παράμετροι που χρησιμοποιούνται συνήθως:
-i
: Διαδραστική λειτουργία, ερώτηση πριν την αντικατάσταση.-f
: Κάλυψη δύναμης.-u
: Μετακίνηση μόνο εάν το αρχείο προέλευσης είναι νεότερο από το αρχείο προορισμού.Παράδειγμα χρήσης:
mv file1.txt dir1/
: μετακινήστε το αρχείο file1.txt
Μετακίνηση στον κατάλογοdir1
Μέσης.
mv file1.txt file2.txt
: μετακινήστε το αρχείο file1.txt
Μετονομασία σεfile2.txt
。
εντολή rm:
Παράμετροι που χρησιμοποιούνται συνήθως:
-i
: Διαδραστική λειτουργία, ερώτηση πριν τη διαγραφή.-f
: Αναγκαστική διαγραφή, αγνοώντας ανύπαρκτα αρχεία, χωρίς να ζητείται επιβεβαίωση.-r
:Διαγράψτε αναδρομικά έναν κατάλογο και τα περιεχόμενά του.Παράδειγμα χρήσης:
rm file.txt
:Διαγραφή αρχείων file.txt
。rm -r dir1/
: Αναδρομική διαγραφή καταλόγων dir1
και όλο το περιεχόμενό του.Μπορεί επίσης να χρησιμοποιηθεί η εντολή διαγραφής καταλόγουrmdir
。
find
Η εντολή είναι ένα ισχυρό εργαλείο αναζήτησης αρχείων στο σύστημα Linux. Μπορεί να βρει αρχεία ή καταλόγους που πληρούν τις προϋποθέσεις στον καθορισμένο κατάλογο και τους υποκαταλόγους του και να εκτελέσει τις αντίστοιχες λειτουργίες.
Το παρακάτω είναιfind
Μερικές κοινές χρήσεις της εντολής:
-name
επιλογή για εύρεση αρχείων κατά όνομα αρχείου. Για παράδειγμα,find /path/to/directory -name "file.txt"
θα αναζητήσει τον καθορισμένο κατάλογο και τους υποκαταλόγους του με όνομαfile.txt
έγγραφο.-type
επιλογή για εύρεση αρχείων ανά τύπο αρχείου. Για παράδειγμα,find /path/to/directory -type f
Θα βρεθούν όλα τα συνηθισμένα αρχεία στον καθορισμένο κατάλογο και στους υποκαταλόγους του.-size
επιλογή για εύρεση αρχείων κατά μέγεθος αρχείου. Για παράδειγμα,find /path/to/directory -size +100M
Θα βρείτε αρχεία μεγαλύτερα από 100 MB στον καθορισμένο κατάλογο και στους υποκαταλόγους του.-mtime
、-atime
ή-ctime
Οι επιλογές βρίσκουν αρχεία βάσει του χρόνου τροποποίησης, του χρόνου πρόσβασης ή του χρόνου αλλαγής κατάστασης. Για παράδειγμα,find /path/to/directory -mtime -7
Θα βρείτε αρχεία στον καθορισμένο κατάλογο και στους υποκαταλόγους του που έχουν τροποποιηθεί εντός 7 ημερών.-perm
επιλογή για εύρεση αρχείων με βάση τα δικαιώματα αρχείων. Για παράδειγμα,find /path/to/directory -perm 755
Θα βρει αρχεία με άδεια 755 στον καθορισμένο κατάλογο και στους υποκαταλόγους του.-user
ή-group
Οι επιλογές βρίσκουν αρχεία από τον ιδιοκτήτη ή την ομάδα τους. Για παράδειγμα,find /path/to/directory -user username
Θα πραγματοποιήσει αναζήτηση στον καθορισμένο κατάλογο και στους υποκαταλόγους του που ανήκουν στον χρήστηusername
έγγραφο.-exec
Οι επιλογές μπορούν να εκτελέσουν αντίστοιχες λειτουργίες στα αρχεία που βρέθηκαν. Για παράδειγμα,find /path/to/directory -name "*.txt" -exec rm {} ;
θα διαγράψει όλα τα ευρήματα που τελειώνουν με.txt
αρχείο στο τέλος.ls
Η εντολή μπορεί να χρησιμοποιηθεί για τη λίστα των περιεχομένων ενός καταλόγου καθώς καιΛεπτομέριες。
Οι παράμετροι και οι μέθοδοι χρήσης που χρησιμοποιούνται συνήθως είναι οι εξής:
-a
: Εμφάνιση όλων των αρχείων και των καταλόγων, συμπεριλαμβανομένων των κρυφών αρχείων (πέρα.
αρχείο ή κατάλογο που αρχίζει με .).-l
: Εμφανίζει λεπτομερείς πληροφορίες σε μεγάλη μορφή, συμπεριλαμβανομένων των δικαιωμάτων αρχείου, του κατόχου, του μεγέθους, του χρόνου τροποποίησης κ.λπ.-h
:και-l
Χρησιμοποιείται σε συνδυασμό για την εμφάνιση του μεγέθους του αρχείου με τρόπο αναγνώσιμο από τον άνθρωπο (π.χ.K
、M
、G
Περίμενε).-R
: Αναφέρετε τα περιεχόμενα των υποκαταλόγων αναδρομικά.-t
: Εμφάνιση με σειρά χρόνου τροποποίησης αρχείου. ,sed
Το Command είναι ένας επεξεργαστής ροής, που χρησιμοποιείται κυρίως για επεξεργασία κειμένου. Χρησιμοποιείται συχνά κατά την επεξεργασία σύνθετων λειτουργιών αρχείων.sed
Οι παράμετροι που χρησιμοποιούνται συνήθως και τα παραδείγματα χρήσης εντολών είναι τα εξής:
-e<script>
ή--expression=<script>
: Καθορίστε σενάρια απευθείας στη γραμμή εντολών για επεξεργασία κειμένου.-f<script文件>
ή--file=<script文件>
: Διαβάστε το σενάριο από το καθορισμένο αρχείο σεναρίου για επεξεργασία κειμένου.-n
ή--quiet
ή--silent
: Εκτυπώστε μόνο τα αποτελέσματα εξόδου που επεξεργάζονται το σενάριο και μην εκτυπώνετε αταίριαστες γραμμές.a
: Προσθέστε την καθορισμένη συμβολοσειρά κειμένου στην επόμενη γραμμή της τρέχουσας γραμμής.c
: Αντικαθιστά το καθορισμένο εύρος γραμμών με την καθορισμένη συμβολοσειρά κειμένου.d
: Διαγραφή της καθορισμένης σειράς.i
: Προσθέστε την καθορισμένη συμβολοσειρά κειμένου στην προηγούμενη γραμμή της τρέχουσας γραμμής.p
: Εκτυπώστε τις επιλεγμένες γραμμές.συνήθως με-n
Όταν χρησιμοποιείται μαζί με τις παραμέτρους, εκτυπώνονται μόνο οι αντίστοιχες γραμμές.s
: Χρησιμοποιήστε κανονικές εκφράσεις για αντικατάσταση κειμένου. Για παράδειγμα,s/old/new/g
Αντικαταστήστε όλα τα "InternLM" με "InternLM yyds".που χρησιμοποιείται στο παράδειγμαecho
εντολή, αυτή είναι η ίδια όπως στην pythonprint
Το ίδιο, χρησιμοποιείται για την εκτύπωση περιεχομένου, εδώ χρησιμοποιήστε τον χαρακτήρα σωλήνα>
Εκτύπωση InternLM σε αρχείο αρχείου Οι συνήθως χρησιμοποιούμενοι χαρακτήρες σωλήνων περιλαμβάνουν<
και|
, για παράδειγμα μπορούμε να χρησιμοποιήσουμεgrep
Εντολή για προβολή των εγκατεστημένων περιλαμβάνει στην pythonos
Πακέτο πεδίου:
grep
Είναι ένα ισχυρό εργαλείο αναζήτησης κειμένου. Οι παράμετροι που χρησιμοποιούνται συνήθως είναι οι εξής:
-i
: Αναζήτηση ανεξαρτήτως περίπτωσης.-v
: Αντιστρέφει την αντιστοίχιση, δηλαδή εμφανίζει μη αντιστοιχισμένες γραμμές.-n
: Εμφάνιση αριθμού γραμμής.-c
: Μετρήστε τον αριθμό των γραμμών που ταιριάζουν.Διαχείριση της διαδικασίαςΟι εντολές είναι σημαντικά εργαλεία για την παρακολούθηση του συστήματος και τη διαχείριση διεργασιών Οι συνήθως χρησιμοποιούμενες εντολές διαχείρισης διεργασιών περιλαμβάνουν τα ακόλουθα:
Υπάρχει επίσης μια ειδική εντολή στη μηχανή ανάπτυξηςnvidia-smi
, το οποίο είναι ένα εργαλείο γραμμής εντολών για τη διεπαφή διαχείρισης συστήματος NVIDIA, που χρησιμοποιείται για την παρακολούθηση και τη διαχείριση συσκευών GPU NVIDIA. Παρέχει έναν γρήγορο τρόπο προβολής πληροφοριών όπως η κατάσταση της GPU, η χρήση, η θερμοκρασία, η χρήση μνήμης, η κατανάλωση ενέργειας και οι διεργασίες που εκτελούνται στη GPU.
Τα παρακάτω είναι παραδείγματα χρήσης κάθε εντολής:
ps
: Καταχωρίστε τις διαδικασίες στο τρέχον σύστημα. Διαφορετικές πληροφορίες διαδικασίας μπορούν να εμφανιστούν χρησιμοποιώντας διαφορετικές επιλογές, όπως:ps aux # 显示系统所有进程的详细信息
top
: Εμφανίζει δυναμικά την κατάσταση των διεργασιών στο σύστημα. Ενημερώνει τη λίστα διεργασιών σε πραγματικό χρόνο, εμφανίζοντας τις διαδικασίες με την υψηλότερη χρήση CPU και μνήμης.top # 启动top命令,动态显示进程信息
pstree
: Εμφανίζει τις τρέχουσες διεργασίες και τις σχέσεις γονέα-παιδιού τους με τη μορφή δενδρικού διαγράμματος. pstree # 显示进程树
pgrep
: Βρείτε διαδικασίες που ταιριάζουν με τα κριτήρια. Μπορείτε να αναζητήσετε διεργασίες με βάση το όνομα της διαδικασίας, τον χρήστη και άλλες συνθήκες.pgrep -u username # 查找特定用户的所有进程
nice
: Αλλαγή της προτεραιότητας μιας διαδικασίας.nice
Όσο χαμηλότερη είναι η τιμή, τόσο μεγαλύτερη είναι η προτεραιότητα της διαδικασίας.nice -n 10 long-running-command # 以较低优先级运行一个长时间运行的命令
jobs
: Εμφανίζει μια λίστα εργασιών στην τρέχουσα περίοδο λειτουργίας τερματικού, συμπεριλαμβανομένων των διεργασιών που εκτελούνται στο παρασκήνιο. jobs # 列出当前会话的后台作业
bg
καιfg
:bg
Βάλτε τη διαδικασία που έχει ανασταλεί να εκτελεστεί στο παρασκήνιο,fg
Επαναφέρετε τη διαδικασία παρασκηνίου στο προσκήνιο.bg # 将最近一个挂起的作业放到后台运行
fg # 将后台作业调到前台运行
kill
: Στείλτε ένα σήμα στην καθορισμένη διεργασία, που συνήθως χρησιμοποιείται για την εξάλειψη της διαδικασίας. kill PID # 杀死指定的进程ID
Ειδοποίηση,kill
Η εντολή αποστέλλεται από προεπιλογήSIGTERM
Σήμα, το οποίο μπορεί να χρησιμοποιηθεί εάν η διαδικασία δεν ανταποκρίνεται-9
χρήσηSIGKILL
Το σήμα σκοτώνει με δύναμη τη διαδικασία:
kill -9 PID # 强制杀死进程
SIGTERM
Το σήμα (Τερματισμός σήματος) είναι ένα τυπικό σήμα που χρησιμοποιείται σε λειτουργικά συστήματα Unix και παρόμοια με Unix για να ζητήσει τον τερματισμό της διαδικασίας. Αυτό το σήμα αποστέλλεται συνήθως όταν το σύστημα ή ο χρήστης θέλει να τερματίσει με χάρη μια διαδικασία.καιSIGKILL
Τα σήματα είναι διαφορετικά,SIGTERM
Τα σήματα μπορούν να συλληφθούν και να χειριστούν μια διαδικασία, επιτρέποντας στη διαδικασία να καθαριστεί πριν την έξοδο. (από το διαδίκτυο)
Το παρακάτω είναι nvidia-smi
Μερικές βασικές εντολές χρήσης εντολών:
nvidia-smi
nvidia-smi -l 1
Αυτή η εντολή θα ενημερώνει τις πληροφορίες κατάστασης κάθε 1 δευτερόλεπτο.
nvidia-smi -h
nvidia-smi pmon
nvidia-smi --id=0 --ex_pid=12345
Αυτό θα τερματίσει αναγκαστικά τη διαδικασία με το PID 12345 στο GPU ID 0.
nvidia-smi -pm 1
nvidia-smi -i 0 -pm 1
Η πρώτη εντολή θα θέσει όλες τις GPU σε λειτουργία απόδοσης, η δεύτερη εντολή στοχεύει μόνο τη GPU με ID 0.
nvidia-smi --id=0 -r
Αυτό θα επανεκκινήσει την GPU με ID 0.
nvidia-smi -h
Ακολουθεί μια εισαγωγή στις πληροφορίες GPU μέσω μιας εικόνας:
Εδώ είναι ένα εργαλείοTMUX
,TMUX
είναι ένας τερματικός πολυπλέκτης. Διευκολύνει την εναλλαγή μεταξύ πολλών ακροδεκτών, την αποσύνδεσή τους (αυτό δεν σκοτώνει τους ακροδέκτες, συνεχίζουν να λειτουργούν στο παρασκήνιο) και τη επανασύνδεσή τους σε άλλους ακροδέκτες. Γιατί να εισαγάγετε αυτό το εργαλείο;Γιατί θα γίνει αργότεραXtuner
Όταν ρυθμίζετε το μοντέλο, θα χρειαστεί πολύς χρόνοςTmux
Μπορεί να λύσει την κατάσταση όπου το πρόγραμμα σκοτώνεται και διακόπτεται Εδώ είναι πώς να το εγκαταστήσετε και να το χρησιμοποιήσετε.
Επειδή η μηχανή ανάπτυξης χρησιμοποιεί το λειτουργικό σύστημα ubuntu, μπορείτε να χρησιμοποιήσετεlsb_release -a
Εντολή για προβολή πληροφοριών συστήματος ubuntu:
και μετά χρησιμοποιήστεapt install tmux
Εντολή για εγκατάσταση tmux Μπορείτε να τη χρησιμοποιήσετε αφού ολοκληρωθεί η εγκατάσταση.tmux
Μπορείτε να χρησιμοποιήσετε το tmux με την εντολή Αν θέλετε να βγείτε από το tmux, μπορείτε να χρησιμοποιήσετε το ".Ctrl+d"πλήκτρο συντόμευσης.
Στο μηχάνημα ανάπτυξης, μόνο τα αρχεία κάτω από τη διαδρομή /root αποθηκεύονται μόνιμα το λογισμικό που είναι εγκατεστημένο σε άλλες διαδρομές θα επαναφέρεται μετά την επανεκκίνηση.
Μπορείτε να δείτε συγκεκριμένες μεθόδους χρήσης στη διεύθυνση:
https://www.ruanyifeng.com/blog/2019/10/tmux.html
Το Conda είναι ένα σύστημα διαχείρισης πακέτων ανοιχτού κώδικα και διαχείρισης περιβάλλοντος που τρέχει σε Windows, macOS και Linux. Εγκαθιστά γρήγορα, εκτελεί και ενημερώνει πακέτα λογισμικού και τις εξαρτήσεις τους. Χρησιμοποιώντας το Conda μπορείτε εύκολα να δημιουργήσετε, να αποθηκεύσετε, να φορτώσετε και να αλλάξετε διαφορετικά περιβάλλοντα στον τοπικό σας υπολογιστή.
Είναι ήδη εγκατεστημένο στο μηχάνημα ανάπτυξηςconda
, μπορούμε να το χρησιμοποιήσουμε απευθείας, ενώ υπάρχει και ένα ενσωματωμένο στη μηχανή ανάπτυξηςconda
Σειράstudio-conda
, θα παρουσιάσουμε παρακάτωconda
Βασική χρήση του καιstudio-conda
Τρόπος χρήσης και εισαγωγήςstudio-conda
Πώς επιτυγχάνεται;
Θα το παρουσιάσουμε στα ακόλουθα μέρη:
μπορούμε να χρησιμοποιήσουμεconda --version
για να δείτε την τρέχουσα μηχανή ανάπτυξηςconda
πληροφορίες έκδοσης:
όταν θέλουμε να χρησιμοποιήσουμεconda
Θα είναι πολύ αργό κατά την εγκατάσταση του πακέτου Μπορούμε να ρυθμίσουμε τον οικιακό κατοπτρισμό για να βελτιώσουμε την ταχύτητα εγκατάστασης.
#设置清华镜像
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/pro
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
Συνήθως όμως χρησιμοποιούμεpip
Εγκαθιστώντας το πακέτο, θα το παρουσιάσουμε αργότεραpip
καιconda
διαφορά.
Αν θέλουμε να δούμε τις πληροφορίες διαμόρφωσης του conda, μπορούμε να χρησιμοποιήσουμεconda config --show
εντολή, εάν είναι η προεπιλεγμένη ρύθμιση της μηχανής ανάπτυξης, θα επιστρέψει: (μέρος των πληροφοριών)
Αυτές οι διαμορφώσεις είναι μέσαConda
Η διαμόρφωση περιβάλλοντος θα επηρεάσει τις μεθόδους και τα αποτελέσματα της εγκατάστασης του πακέτου λογισμικού, τις ενημερώσεις, τη διαχείριση περιβάλλοντος και άλλες λειτουργίες.
Αυτό το μέρος είναιconda
中非常重要的一部分,掌握了这一部分大家就可以将开发环境玩转到飞起了😀。
μπορούμε να χρησιμοποιήσουμεconda create -n name python``=3.10
Δημιουργήστε ένα εικονικό περιβάλλον, που σημαίνει ότι δημιουργείται ένα εικονικό περιβάλλον με Python έκδοση 3.10 και όνομα.Μετά τη δημιουργία, μπορείτε.conda
κάτω από τον κατάλογοenvs
Βρέθηκε στον κατάλογο.
Όταν δεν έχει καθοριστεί η έκδοση python, θα δημιουργηθεί αυτόματα ένα εικονικό περιβάλλον που βασίζεται στην πιο πρόσφατη έκδοση python. Ταυτόχρονα, μπορούμε να εγκαταστήσουμε τα απαραίτητα πακέτα δημιουργώντας το εικονικό περιβάλλον:conda create -n name numpy matplotlib python=3.10
(Αλλά δεν σας συνιστώ να το χρησιμοποιήσετε με αυτόν τον τρόπο)
Οι συνήθεις παράμετροι για τη δημιουργία ενός εικονικού περιβάλλοντος είναι οι εξής:
Αν θέλουμε να δούμε ποια εικονικά περιβάλλοντα έχουμε, μπορούμε να χρησιμοποιήσουμε την ακόλουθη εντολή:
conda env list
conda info -e
conda info --envs
Ταυτόχρονα, μπορούμε να δούμε και τον κατάλογο όπου βρίσκεται το περιβάλλον.
Αφού δημιουργήσουμε το εικονικό περιβάλλον μπορούμε να χρησιμοποιήσουμεconda activate name
εντολή για την ενεργοποίηση του εικονικού περιβάλλοντος, πώς να ελέγξετε εάν ο διακόπτης είναι επιτυχής;Είναι εύκολο, απλά κοιτάξτε(base)
Είτε γίνεται το όνομα του δημιουργημένου εικονικού περιβάλλοντος.
Εάν θέλετε να βγείτε από το εικονικό περιβάλλον, μπορείτε να χρησιμοποιήσετε:
conda activate
conda deactivate
Και οι δύο εντολές θα επιστρέψουνbase
περιβάλλον γιατίbase
Είναι το βασικό περιβάλλον της conda Αν παρατηρήσετε προσεκτικά,base
Ο κατάλογος περιβάλλοντος είναι υψηλότερου επιπέδου από άλλους καταλόγους εικονικού περιβάλλοντος.
Εάν θέλετε να διαγράψετε ένα εικονικό περιβάλλον, μπορείτε να χρησιμοποιήσετεconda remove --name name --all
, εάν διαγράψετε μόνο ένα ή ορισμένα πακέτα στο εικονικό περιβάλλον, μπορείτε να χρησιμοποιήσετεconda remove --name name package_name
Η εξαγωγή ενός εικονικού περιβάλλοντος είναι πολύ απαραίτητη για ένα συγκεκριμένο περιβάλλον, επειδή οι εξαρτήσεις ορισμένων πακέτων λογισμικού είναι πολύ περίπλοκες και θα είναι ενοχλητικό να το αναδημιουργήσετε και να το ρυθμίσετε μόνοι σας Εάν εξάγουμε το διαμορφωμένο περιβάλλον, μπορούμε να το επαναφέρουμε την επόμενη φορά. και μπορείτε επίσης να μοιραστείτε τη διαμόρφωση με άλλους.
#获得环境中的所有配置
conda env export --name myenv > myenv.yml
#重新还原环境
conda env create -f myenv.yml
Για παράδειγμα θα το κάνουμεxtuner0.1.17
Το εικονικό περιβάλλον εξάγεται και οι πληροφορίες διαμόρφωσης είναι οι εξής:
Αυτά περιλαμβάνουνόνομα περιβάλλοντος、Η θέση του διαδικτυακού αποθετηρίου για πακέτα εικονικού περιβάλλοντοςκαιΕξαρτήσεις εικονικού περιβάλλοντος . Αργότερα θα χρησιμοποιήσουμε προηγμένες μεθόδους χρήσης για γρήγορη επαναφορά του εικονικού περιβάλλοντος.
Σε αυτό το μέρος παρουσιάζουμε μερικάconda
καιpip
Μερικές διαφορές:
Ρόδα Είναι μια μορφή πακέτου εγκατάστασης Python.
Είναι μια προμεταγλωττισμένη μορφή δυαδικής διανομής, παρόμοια με τα μεταγλωττισμένα δυαδικά στο conda.
Τα κύρια πλεονεκτήματα της μορφής Wheel περιλαμβάνουν:
- Γρήγορη εγκατάσταση: Επειδή έχει γίνει εκ των προτέρων μεταγλώττιση, δεν χρειάζεται να περάσετε από τη διαδικασία μεταγλώττισης όπως εγκατάσταση πηγαίου κώδικα κατά την εγκατάσταση, εξοικονομώντας χρόνο.
- Συνέπεια: Διασφαλίζει ότι τα αποτελέσματα εγκατάστασης είναι συνεπή σε διαφορετικά συστήματα και περιβάλλοντα.
Για παράδειγμα, εάν θέλετε να εγκαταστήσετε μια μεγάλη βιβλιοθήκη Python, η χρήση της μορφής Wheel μπορεί να αποφύγει προβλήματα εγκατάστασης που προκαλούνται από διαφορές στα περιβάλλοντα μεταγλώττισης σε διαφορετικά μηχανήματα. Επιπλέον, για εκείνα τα συστήματα που δεν έχουν περιβάλλον μεταγλώττισης ή έχουν αδύναμες δυνατότητες μεταγλώττισης, η μορφή Wheel μπορεί να κάνει τη διαδικασία εγκατάστασης πιο ομαλή.
Αυτό το μέρος είναι ένα εκτεταμένο μέρος, γιατί νομίζω ότι αυτό το μέρος είναι πολύ ενδιαφέρον και πολύ πρακτικό, οπότε αν σας ενδιαφέρει, μπορείτε να το μάθετε.
Ας παρουσιάσουμε πρώταstudio-conda
, η οποία είναι μια ενσωματωμένη εντολή της μηχανής ανάπτυξης και υλοποιείται μέσω ενός σεναρίου Shell. Τι είναι ένα σενάριο Shell;
Σενάριο Shell Ένα αρχείο κειμένου που περιέχει μια σειρά από εντολές διατεταγμένες με συγκεκριμένη σειρά για την αυτοματοποίηση εργασιών σε περιβάλλον Unix/Linux ή παρόμοιο λειτουργικό σύστημα.
Τα σενάρια Shell είναι συνήθως γραμμένα στη γλώσσα Shell Οι κοινές γλώσσες Shell όπως Bash, Sh, κ.λπ. είναι οι βασικές εντολές Linux που εισαγάγαμε νωρίτερα, οι οποίες ανήκουν στη γλώσσα Shell.
Έχει τα ακόλουθα σημαντικά χαρακτηριστικά:
Οτιstudio-conda
Είναι μέρος του αυτοματισμού Το αρχείο διαμόρφωσης του περιβάλλοντος bash του χρήστη root στο μηχάνημα ανάπτυξης είναι.bashrc
, αλλά στην πραγματικότητα το κύριο αρχείο ρυθμίσεων είναι/share/.aide/config/bashrc
, υπάρχουν ορισμένες εντολές γραμμένες σε αυτό το αρχείο που μας επιτρέπουν να εκτελούμε ορισμένες λειτουργίες πιο γρήγορα, όπως:
export no_proxy='localhost,127.0.0.1,0.0.0.0,172.18.47.140'
export PATH=/root/.local/bin:$PATH
export HF_ENDPOINT='https://hf-mirror.com'
alias studio-conda="/share/install_conda_env.sh"
alias studio-smi="/share/studio-smi"
export
χρησιμοποιείται για τον ορισμό μεταβλητών περιβάλλοντος.alias
είναι η αντιγραφή ενός αρχείου sh σε μια μεταβλητή Αυτό μπορεί να εκτελεστεί στο τερματικό ως εντολή μαςstudio-conda
Αυτό είναι.
εδώstudio-smi
Χρησιμοποιείται για τον έλεγχο της χρήσης εικονικής μνήμης όταν ανοίγουμε/share/studio-smi
Μπορείτε να δείτε το αρχείο:
#!/bin/bash
if command -v vgpu-smi &> /dev/null
then
echo "Running studio-smi by vgpu-smi"
vgpu-smi
else
echo "Running studio-smi by nvidia-smi"
nvidia-smi
fi
Αυτή η δέσμη ενεργειών χρησιμοποιείται για να ελέγξει αν υπάρχει α vgpu-smi
εντολή, εάν υπάρχει, θα εκτελεστείvgpu-smi
για εμφάνιση πληροφοριών κατάστασης για μια εικονική GPU (vGPU), εάν δεν υπάρχει, θα εκτελεστείnvidia-smi
για να εμφανίσετε πληροφορίες κατάστασης GPU NVIDIA. Οπως φαίνεται παρακάτω:
nvidia-smi
είναι ένα εργαλείο για την παρακολούθηση και τη διαχείριση φυσικών συσκευών GPU NVIDIA καιvgpu-smi
Σχεδιασμένο για να παρακολουθεί και να διαχειρίζεται πόρους GPU που είναι εικονικοποιημένοι μέσω της τεχνολογίας NVIDIA vGPU.
βλέπουμε/share/install_conda_env.sh
Τα περιεχόμενα του αρχείου έχουν ως εξής:
#!/bin/bash
# clone internlm-base conda env to user's conda env
# created by xj on 01.07.2024
# modifed by xj on 01.19.2024 to fix bug of conda env clone
# modified by ljy on 01.26.2024 to extend
XTUNER_UPDATE_DATE=`cat /share/repos/UPDATE | grep xtuner |awk -F= '{print $2}'`
HOME_DIR=/root
CONDA_HOME=$HOME_DIR/.conda
SHARE_CONDA_HOME=/share/conda_envs
SHARE_HOME=/share
list() {
cat <<-EOF
预设环境 描述
internlm-base pytorch:2.0.1, pytorch-cuda:11.7
xtuner Xtuner(源码安装: main $(echo -e "033[4mhttps://github.com/InternLM/xtuner/tree/main033[0m"), 更新日期:$XTUNER_UPDATE_DATE)
pytorch-2.1.2 pytorch:2.1.2, pytorch-cuda:11.8
EOF
}
help() {
cat <<-EOF
说明: 用于快速clone预设的conda环境
使用:
1. studio-conda env -l/list 打印预设的conda环境列表
2. studio-conda <target-conda-name> 快速clone: 默认拷贝internlm-base conda环境
3. studio-conda -t <target-conda-name> -o <origin-conda-name> 将预设的conda环境拷贝到指定的conda环境
EOF
}
clone() {
source=$1
target=$2
if [[ -z "$source" || -z "$target" ]]; then
echo -e "033[31m 输入不符合规范 033[0m"
help
exit 1
fi
if [ ! -d "${SHARE_CONDA_HOME}/$source" ]; then
echo -e "033[34m 指定的预设环境: $source不存在033[0m"
list
exit 1
fi
if [ -d "${CONDA_HOME}/envs/$target" ]; then
echo -e "033[34m 指定conda环境的目录: ${CONDA_HOME}/envs/$target已存在, 将清空原目录安装 033[0m"
wait_echo&
wait_pid=$!
rm -rf "${CONDA_HOME}/envs/$target"
kill $wait_pid
fi
echo -e "033[34m [1/2] 开始安装conda环境: <$target>. 033[0m"
sleep 3
tar --skip-old-files -xzvf /share/pkgs.tar.gz -C ${CONDA_HOME}
wait_echo&
wait_pid=$!
conda create -n $target --clone ${SHARE_CONDA_HOME}/${source}
if [ $? -ne 0 ]; then
echo -e "033[31m 初始化conda环境: ${target}失败 033[0m"
exit 10
fi
kill $wait_pid
# for xtuner, re-install dependencies
case "$source" in
xtuner)
source_install_xtuner $target
;;
esac
echo -e "033[34m [2/2] 同步当前conda环境至jupyterlab kernel 033[0m"
lab add $target
source $CONDA_HOME/bin/activate $target
cd $HOME_DIR
echo -e "033[32m conda环境: $target安装成功! 033[0m"
echo """
============================================
ALL DONE!
============================================
"""
}
······
dispatch $@
ένας από αυτούς*list
*()
Περίμενε, είναι όλαstudio-conda
λειτουργία, η οποία μπορεί να υλοποιήσει ορισμένες λειτουργίες, για παράδειγμα, μπορούμε να χρησιμοποιήσουμεstudio-conda env list
Για να δείτε το προεπιλεγμένο περιβάλλον:
σε*clone
*()
Η κύρια λειτουργία της συνάρτησης είναι η αντιγραφή του περιβάλλοντος, αλλά μπορεί να αντιγραφεί μόνο από το προεπιλεγμένο περιβάλλον.
tar --skip-old-files -xzvf /share/pkgs.tar.gz -C ${CONDA_HOME}
conda create -n $target --clone ${SHARE_CONDA_HOME}/${source}
Αποσυμπιέστε το συμπιεσμένο πακέτο του προκαθορισμένου περιβάλλοντος και, στη συνέχεια, δημιουργήστε ένα εικονικό περιβάλλον μέσω του κλώνου να το καταλάβεις, αν δεν μπορείς να το καταλάβεις, δεν είναι και μεγάλο πρόβλημα.
Πώς λοιπόν προσθέτουμε το δικό μας δημιουργημένο περιβάλλονstudio-conda
Τι γίνεται με τη μέση;
Το πρώτο βήμα είναι να δημιουργήσετε ένα νέο περιβάλλον conda στο /share/conda_envs
conda create -p /share/conda_envs/xxx python=3.1x
Το δεύτερο βήμα είναι να αντιγράψετε τα αρχεία στο /root/.conda/pkgs στον τοπικό υπολογιστή στο /share/pkgs, να τα συμπιέσετε ξανά και να τα αντικαταστήσετε (αυτό το βήμα είναι να αποθηκεύσετε τα μεγάλα δημόσια πακέτα κατά τη διαδικασία δημιουργίας conda για να αποφύγετε τις επαναλαμβανόμενες λήψεις)
cp -r -n /root/.conda/pkgs/* /share/pkgs/
cd /share && tar -zcvf pkgs.tar.gz pkgs
Το τρίτο βήμα είναι να ενημερώσετε τη συνάρτηση λίστας στο install_conda_env.sh και να προσθέσετε νέα περιγραφή περιβάλλοντος conda.
Η παραπάνω είναι η μέθοδος που παρέχει η μηχανή ανάπτυξης από προεπιλογή Στην πραγματικότητα, υπάρχει μια άλλη μέθοδος, την οποία χρησιμοποιήσαμε νωρίτεραconda
Εξάγονταιxtuner0.1.17
Αρχεία διαμόρφωσης για εικονικά περιβάλλοντα, μπορούμε να χρησιμοποιήσουμεconda env create -f xtuner0.1.17.yml
εντολή για επαναφορά του εικονικού περιβάλλοντος.Ας γράψουμε ένα απλό σενάριο Shell για την υλοποίηση αυτής της λειτουργίας: Δημιουργούμεtest.sh
αρχείο, γράψτε το ακόλουθο περιεχόμενο:
#!/bin/bash
# 定义导出环境的函数
export_env() {
local env_name=$1
echo "正在导出环境: $env_name"
# 导出环境到当前目录下的env_name.yml文件
conda env export -n "$env_name" > "$env_name.yml"
echo "环境导出完成。"
}
# 定义还原环境的函数
restore_env() {
local env_name=$1
echo "正在还原环境: $env_name"
# 从当前目录下的env_name.yml文件还原环境
conda env create -n "$env_name" -f "$env_name.yml"
echo "环境还原完成。"
}
# 检查是否有足够的参数
if [ $# -ne 2 ]; then
echo "使用方法: $0 <操作> <环境名>"
echo "操作可以是 'export' 或 'restore'"
exit 1
fi
# 根据参数执行操作
case "$1" in
export)
export_env "$2"
;;
restore)
restore_env "$2"
;;
*)
echo "未知操作: $1"
exit 1
;;
esac
Αφού ολοκληρώσουμε τη δημιουργία του σεναρίου Shell, πρέπει να εκχωρήσουμε δικαιώματα στο σενάριο Μπορείτε να χρησιμοποιήσετε την εντολή:chmod +x test.sh
, μετά εισάγετε./test.sh restore xtuner0.1.17
Και πατήστε Enter για να επαναφέρετε το εικονικό περιβάλλον.
Ωστόσο, αυτό δεν διαφέρει πολύ από την άμεση χρήση, εάν αυτή η λειτουργία συγκριθεί με τη λειτουργία στη μηχανή ανάπτυξης,studio-conda
Ο συνδυασμός των εντολών θα είναι πολύ βολικός, αλλά οι μέθοδοι αντιγραφής του περιβάλλοντος είναι διαφορετικές.Επομένως, εάν θέλετε να το εφαρμόσετε, πρέπει/share/install_conda_env.sh
Η λογική του αρχείου τροποποιείται.
Εντάξει, το παραπάνω είναι όλο το περιεχόμενο του επιπέδου μας. Ελπίζω ότι το παραπάνω περιεχόμενο θα είναι χρήσιμο για όλους στο μέλλον Γνωρίστε το Linux, θα είναι χρήσιμο για εμάς να μάθουμε τα μεγάλα μοντέλα δεν έχουν μεγάλη επίδραση, αλλά εάν μάθετε καλά το Linux, θα κάνει την εκμάθηση μεγάλων μοντέλων πολύ ομαλή. Τέλος, μην ξεχάσετε να ολοκληρώσετε τα επίπεδα που ορίσαμε νωρίτερα!
Σύνδεσμος ιστολογίου:linux
Εκτελέστε προσεκτικά! ! ! !Όλα τα δεδομένα θα χαθούν. Αυτό είναι διαθέσιμο μόνο στην πλατφόρμα InternStudio.
rm -rf /root
, θα χρειαστούν περίπου 10 λεπτά για να περιμένετεln -s /share /root/share
Για να περάσετε την αποστολή επιπέδου, πρέπει να τραβήξετε στιγμιότυπα οθόνης σε βασικά βήματα:
λεπτομέρειες αποστολής | Χρόνος που απαιτείται για την ολοκλήρωση | |
---|---|---|
Αποστολή | Ολοκληρώστε τη σύνδεση SSH και τη χαρτογράφηση θυρών και εκτελέστεhello_world.py | 10 λεπτά |
Προαιρετική εργασία 1 | Ολοκληρώστε τις βασικές εντολές Linux στη μηχανή ανάπτυξης | 10 λεπτά |
Προαιρετική εργασία 2 | Χρησιμοποιήστε το VSCODE για να συνδεθείτε απομακρυσμένα με το μηχάνημα ανάπτυξης και να δημιουργήσετε ένα περιβάλλον conda | 10 λεπτά |
Προαιρετική εργασία 3 | Δημιουργία και εκτέλεσηtest.sh έγγραφο | 10 λεπτά |