ΕΛ/ΛΑΚ | creativecommons.gr | mycontent.ellak.gr |
freedom

Σημασιολογική ταξινόμηση με χρήση προεκπαιδευμένου νευρωνικού δικτύου

Η πρωτοβουλία Dataproducts της ΕΕΛΛΑΚ ξεκίνησε με σκοπό να αποκτήσουμε τεχνογνωσία πάνω στα προεκπαιδευμένα μοντέλα που βρίσκονται στο Hugging Face.

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

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

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

Photo by Markus Winkler on Unsplash

Χαρακτηριστικά διεπαφής χρήστη

Τα χαρακτηριστικά της διεπαφής χρήστη περιλαμβάνουν:

  1. Κατάλογο διαθέσιμων συνόλων δεδομένων
  2. Λεπτομέρειες κάθε συνόλου δεδομένων
  3. Δημιουργία νέων οργανισμών
  4. Κατάλογο συνόλων δεδομένων που έχουν υποβληθεί από συγκεκριμένο οργανισμό
  5. Δημιουργία νέας καταχώϱισης συνόλου δεδομένων
  6. Απόκτηση κατηγοριοποίησης από το μοντέλο για σύνολο δεδομένων
  7. Συμπερίληψη προβλεπόμενων κατηγοριών στον κατάλογο διαθέσιμων datasets
  8. Αξιολόγηση προβλεπόμενων κατηγοριών από χρήστη
  9. Δημιουργία αρχείου CSV με τα δεδομένα για τα σύνολα δεδομένων από όλους τους οργανισμούς

Ενσωμάτωση του νευρωνικού δικτύου στην εφαρμογή

Στην απόκτηση κατηγοριοποίησης (χαρακτηριστικό 6 στον παραπάνω κατάλογο) καλείται το προεκπαιδευμένο νευρωνικό δίκτυο RoBERTa, με μία κεφαλή για κατηγοριοποίηση με πολλαπλές ετικέτες.

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

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

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

Εκπαίδευση από τη γραμμή εντολών

Όσον αφορά την περαιτέρω εκπαίδευση του μοντέλου, γράψαμε ένα Python script που τρέχει στη γραμμή εντολών και καλεί την προεκπαιδευμένη RoBERTa από τη βιβλιοθήκη Hugging Face με μία κεφαλή για ταξινόμηση σε πολλαπλές κατηγορίες.

Τα δεδομένα μπορούν να εισαχθούν με το χέρι στα πηγαία αρχεία του script με την μορφή “λίστα λεξικών της Python” και εφόσον το ζητήσουμε (“ανανέωσε τα δεδομένα”) το πρόγραμμα τα μετατρέπει σε δυαδική μορφή αποθήκευσης της Python.

Από τη γραμμή εντολών μπορούμε να ρυθμίσουμε αρκετές παραμέτρους της εκπαίδευσης, όπως:

  1. Χρήση παράλληλων νημάτων επεξεργασίας
  2. Αριθμό διεργασιών
  3. Αριθμό εποχών
  4. Μέγεθος Batch
  5. Ρυθμό μάθησης
  6. Αριθμό ετικετών εκροής
  7. Κατώφλι απόφασης
  8. Ανανέωση των πηγαίων αρχείων δεδομένων
  9. Επιλογή αποθήκευσης του εκπαιδευμένου μοντέλου

Επιπλέον παρατηρήσεις

  • Η επαγωγή των προβλεπόμενων ετικετών μεταφέρθηκε σε διακριτό Flask API για λόγους ενθυλάκωσης και καλών πρακτικών κατανομής των εργασιών.
  • Η διαχείριση των πηγαίων αρχείων δεδομένων από το ίδιο το πρόγραμμα διασφαλίζει ευελιξία και καθιστά πιό εύκολη την παρακολούθηση εκδόσεων των δεδομένων εκπαίδευσης (Data version control). Η λύση αυτή είναι επαρκής για μια μικρή ομάδα με ευχέρεια στην Python και εξυπηρετεί σε ροές εργασιών που χρησιμοποιούν JSON. Δεν κρίναμε απαραίτητο για το δικό μας σενάριο να δημιουργήσουμε μια πιο φιλική προς το χρήστη διεπαφή εισαγωγής δεδομένων.
  • Σε δοκιμαστικό στάδιο χρησιμοποιούμε το Shiny Server για αυτόματη απόκτηση, οπτικοποίηση και περιγραφική ανάλυση των μεταδεδομένων από την βάση δεδομένων της εφαρμογής.
  • Τα διαφορετικά μέρη της εφαρμογής διατηρούνται σε έναν αριθμό από Gitlab repos της ΕΕΛΑΚ

Συμπέρασμα και επόμενα βήματα

Με αυτό το άρθρο εξηγούμε πως εκπαιδεύσαμε και εντάξαμε σε μια εφαρμογή που απευθύνεται σε έναν τελικό χρήστη, ένα back end που περιλαμβάνει τόσο την σημασιολογική επαγωγή μέσω ενός προεκπαιδευμένου νευρωνικού δικτύου από το αποθετήριο Hugging Face όσο και μια δεύτερη υποδομή περαιτέρω στατιστικής επεξεργασίας και οπτικοποίησης των δεδομένων.

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

Εργαλεία που χρησιμοποιούνται στο Data Products

Leave a Comment