Όταν σκέφτεστε τις ιδανικές διακοπές, περιλαμβάνει μηχανική μάθηση; Ψάχνετε για διασκεδαστικούς νέους τρόπους για να κάνετε αναζητήσεις ομοιότητας σε ενσωματώσεις που έχετε δημιουργήσει χρησιμοποιώντας μοντέλα τελευταίας τεχνολογίας στο lakehouse;

Αναρωτιέστε τι είναι το lakehouse; Δεν έχετε ξανακούσει για ενσωμάτωση; Αν κάποιο από αυτά είναι αλήθεια, σας έχω καλά νέα — ήρθατε στο σωστό μέρος.

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

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

Επιχειρηματικό πρόβλημα

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

Το πρόβλημα είναι πώς προβλέπετε τη ζήτηση για αυτά τα νέα προϊόντα; Οι πιθανότητες είναι ότι μπορεί να εφαρμόζετε μια λίστα κανόνων ή επιχειρηματικής λογικής προκειμένου να περιορίσετε την κατηγορία στην οποία ταιριάζει καλύτερα το προϊόν σας. Υπάρχει καλύτερος τρόπος για να καταλάβετε πόσο καλά θα αποδώσουν;

Ένας άλλος τρόπος με τον οποίο μπορεί να σκέφτεστε αυτά τα προϊόντα είναι από τη σκοπιά του σχεδιασμού. Πόσο όμοια είναι τα νέα προϊόντα με την προηγούμενη κυκλοφορία σας; Είναι πολύ παρόμοια; Ίσως τα σχέδια να μην είναι τόσο καινοτόμα και προοδευτικά όσο θα μπορούσαν να είναι.

Ή μήπως αυτά τα προϊόντα διαφέρουν πολύ από τις προηγούμενες γενιές; Θα απογοητευτούν οι πελάτες με ένα σχέδιο στο οποίο ήταν πιστό και παρέσυρε λίγο πολύ;

Από την άποψη του καθαρού όγκου, πώς χειρίζεστε την ενσωμάτωση αυτών των νέων SKU στην παραγωγή;

Αυτές είναι μερικές από τις ερωτήσεις που θα αντιμετωπίσουμε σε αυτήν την ανάρτηση ενώ αξιοποιούμε ένα Databricks lakehouse.

Οραματιζόμαστε μια σύγχρονη προσέγγιση

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

Μια αρχιτεκτονική lakehouse στα Databricks καλύπτει όλες αυτές τις ανάγκες. Ένα lakehouse λαμβάνει τις καλύτερες πτυχές μιας αποθήκης δεδομένων, όπως ερωτήματα υψηλής απόδοσης και ελέγχους ασφαλείας, και παντρεύει αυτά με τα πλεονεκτήματα μιας λίμνης δεδομένων, όπως φθηνή, επεκτάσιμη αποθήκευση και υποστήριξη για μη δομημένα δεδομένα που χρησιμοποιούνται στη μηχανική εκμάθηση. Δείτε αυτές τις αναρτήσεις για περισσότερες λεπτομέρειες σχετικά με την εφαρμογή μιας αρχιτεκτονικής lakehouse:

Για να ξεκινήσετε με την κατασκευή του lakehouse μας, θα χρησιμοποιήσουμε τα Databricks για να εργαστούμε με τις εικόνες και το κείμενό μας στο χώρο αποθήκευσης blob. Θα δημιουργήσουμε ένα πλαίσιο ανοιχτού κώδικα χρησιμοποιώντας το Towhee για τη δημιουργία ενσωματώσεων για μη δομημένα δεδομένα και εισάγοντας τις προκύπτουσες ενσωματώσεις σε μια διανυσματική βάση δεδομένων που ονομάζεται Milvus για να πραγματοποιήσουμε τις αναζητήσεις ομοιότητας. Προκειμένου να γίνει πιο εύκολη η παραγωγή, θα σας δείξουμε πώς να τυλίξετε αυτήν τη διαδικασία σε έναν αγωγό Delta Live Tables (DLT), όπως φαίνεται παρακάτω, έτσι ώστε τα μη δομημένα δεδομένα που έρχονται πρόσφατα να υποβάλλονται σε αυτόματη επεξεργασία.

Αυτό σημαίνει ότι, καθώς η επιχείρησή σας κλιμακώνεται και κερδίζει όγκο, μπορείτε να προσαρμόσετε αξιόπιστα την ικανότητά σας να εξάγετε την εγγενή σημασιολογία των μη δομημένων στοιχείων δεδομένων σας σε εικόνες, κείμενο, ήχο ή βίντεο, έτσι ώστε να μπορεί να εφαρμοστεί σε όλες τις περιπτώσεις χρήσης μηχανικής εκμάθησης με νόημα. Αυτή η διαδικασία μπορεί να κατασκευαστεί περαιτέρω με την εφαρμογή μιας διαδικασίας DevOps που εκμεταλλεύεται τις ροές εργασίας CI/CD με Databricks Repos.

Απορρόφηση μη δομημένων δεδομένων

Ένα από τα βασικά πλεονεκτήματα του Databricks Lakehouse είναι η δυνατότητα υποστήριξης πολλαπλών τύπων δεδομένων όπως δομημένο, αδόμητο, ημι-δομημένο και ροή. Σε αυτήν την περίπτωση, θα μετατρέψουμε τα ακατέργαστα δεδομένα εικόνας και κειμένου σε πίνακες Delta που μπορούν να χρησιμοποιηθούν κατάντη όταν εφαρμόζουμε ερωτήματα SQL και μοντέλα Μηχανικής Μάθησης σε αυτούς.

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

Υπάρχουν πολλές επιλογές όταν πρόκειται για τη φόρτωση των δεδομένων σας σε πίνακες Delta, με τις πιο αξιοσημείωτες από αυτές να είναι η εντολή Copy Into και Autoloader. Το "Copy Into" είναι το πλέον κατάλληλο για μαζική μετατροπή δεδομένων, ενώ το Autoloader είναι το καταλληλότερο για το χειρισμό των νεοαφιχθέντων αρχείων στη θέση αποθήκευσης στο cloud.

~~~~~~~~~~~~~~~~~~~~~~~~Δείτε τον κωδικό [ΕΔΩ]!~~~~~~~~~~~~ ~~~~~~~~~~~~

Στο παράδειγμά μας θα αξιοποιήσουμε το Autoloader, γνωστό και ως "cloudfiles", στο πλαίσιο ενός αγωγού "DLT". Ας ορίσουμε τον χάλκινο πίνακα DLT μας (βλ. αρχιτεκτονική μενταγιόν) για τα ακατέργαστα δεδομένα εικόνας:

Τι είναι οι ενσωματώσεις;

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

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

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

Δημιουργία ενσωματώσεων με Towhee

Μόλις εγκατασταθεί το Towhee, μπορούμε να χρησιμοποιήσουμε τις ενσωματωμένες σωληνώσεις μοντέλων για να αντλήσουμε ενσωματώσεις από τα μη δομημένα δεδομένα μας. Σε αυτό το συγκεκριμένο παράδειγμα, θα αξιοποιήσουμε το BLIP γνωστό και ως Bootstrapping Language-Image Pre-training for Unified Vision-Language Understanding and Generation.

Το BLIP επιδιώκει να αντιμετωπίσει τα κενά σε άλλους τύπους μοντέλων επεξεργασίας εικόνας και κειμένου προσφέροντας ένα Πολυτροπικό μείγμα κωδικοποιητή-αποκωδικοποιητή (MED). Αυτή η νέα μεθοδολογία επιτρέπει ένα ευέλικτο πλαίσιο μάθησης μεταφοράς που μπορεί να χρησιμοποιηθεί για εκμάθηση αντίθεσης εικόνας-κειμένου, αντιστοίχιση εικόνας-κειμένου και μοντελοποίηση γλώσσας υπό όρους εικόνας. Σε συνδυασμό με τα επίπεδα για την επισήμανση και το φιλτράρισμα εικόνων, τα θορυβώδη δεδομένα υπότιτλων εντοπίζονται και αφαιρούνται πιο εύκολα, οδηγώντας σε βελτιώσεις στην απόδοση του μοντέλου.

Μπορούμε να τυλίξουμε το μοντέλο BLIP σε ένα Pandas UDF το οποίο μπορεί στη συνέχεια να χρησιμοποιηθεί για να ενεργοποιήσει τη δημιουργία ενσωμάτωσης εικόνας και κειμένου σε μια ροή DLT pipeline. Ακολουθεί ένα παράδειγμα του Pandas UDF για τη γενιά ενσωμάτωσης εικόνας:

Αυτοματοποίηση αυτής της διαδικασίας με DLT

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

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

Διανυσματικές αναζητήσεις Performant

Χάρη στο lakehouse μας, μπορέσαμε να δημιουργήσουμε ενσωματώσεις στα μη δομημένα δεδομένα μας. Κάθε φορά που το Autoloader επεξεργάζεται πρόσφατα ανερχόμενα μη δομημένα δεδομένα για να δημιουργήσει μια ενσωμάτωση, μπορούμε να συλλάβουμε αυτό το διάνυσμα καθώς και να επιστρέφουμε τα πάνω «N» πιο παρόμοια διανύσματα ενδιαφέροντος.

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

Πώς θα το κάνουμε λοιπόν; Χρειαζόμαστε κάπου να αποθηκεύσουμε αυτές τις ενσωματώσεις, ώστε να μπορούμε να διατηρήσουμε μια λίστα για τις μελλοντικές μας αναζητήσεις. Εισαγάγετε τη διανυσματική βάση δεδομένων μας, Milvus.

Το Milvus όχι μόνο μας παρέχει ένα μέρος για να αποθηκεύουμε τις ενσωματώσεις μας, αλλά μας επιτρέπει να εφαρμόζουμε μετρήσεις ομοιότητας. Οι μετρήσεις ομοιότητας μας επιτρέπουν να λάβουμε ένα μέγεθος με το οποίο δύο διανύσματα είναι παρόμοια μεταξύ τους. Αυτό έχει τα πλεονεκτήματά του σε σχέση με τις ετικέτες ή τις λέξεις-κλειδιά που προσφέρουν μόνο μια δυαδική επιλογή για οποιαδήποτε δεδομένη επιχειρηματική λογική. Ρίξτε μια ματιά στο σημειωματάριο Hello Milvus για το πώς να ξεκινήσετε ή αυτή τη δημοσίευση του συναδέλφου μου για μια ακόμη πιο εμπεριστατωμένη ματιά στην ενοποίηση με τα Databricks.

Εφαρμογή του Πλαισίου Ενσωμάτωσης

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

Προσδιορισμός Παρόμοιων Προϊόντων

  1. Ανεβάστε τις δημιουργημένες ενσωματώσεις στο Milvus
  2. Βαθμολογήστε πρόσφατα μη δομημένα δεδομένα
  3. Βρείτε κορυφαία "N" παρόμοια αντικείμενα

Πρόβλεψη για νέα προϊόντα

  1. Βρείτε κορυφαία "N" παρόμοια αντικείμενα (δείτε παραπάνω)
  2. Δημιουργήστε σταθμισμένες τάσεις ζήτησης και εποχικότητα
  3. Κλιμακώστε ανάλογα το μέγεθος της ζήτησης

Σχεδιασμός Καινοτόμων Προϊόντων

  1. Δημιουργήστε πολλά νέα σχέδια προϊόντων
  2. Δημιουργήστε ενσωματώσεις για το καθένα
  3. Αξιολογήστε με βάση μια γραμμή βάσης για να ταξινομήσετε τις ομοιότητες παραγγελιών

Γρήγορη αύξηση του εύρους των τρόπων εισαγωγής για τα μοντέλα ML σας

  1. Χρησιμοποιήστε ενσωματώσεις + άλλες δυνατότητες για παραδοσιακά μοντέλα ML για να βελτιώσετε την παλινδρόμηση, την ταξινόμηση και άλλες εργασίες που μπορεί να ωφεληθούν από εισόδους πολλαπλών μέσων.

Υπάρχουν πολλά περισσότερα που μπορείτε να κάνετε με αυτό το πλαίσιο. Μείνετε συντονισμένοι καθώς εξετάζουμε πιο συγκεκριμένες περιπτώσεις χρήσης σε μελλοντικές αναρτήσεις!

Συνδεθείτε μαζί μου στο LinkedIn