Λογότυπο Zephyrnet

Το Knowledge Bases for Amazon Bedrock υποστηρίζει πλέον το φιλτράρισμα μεταδεδομένων για τη βελτίωση της ακρίβειας ανάκτησης | Υπηρεσίες Ιστού της Amazon

Ημερομηνία:

At AWS re: Εφευρέστε 2023, ανακοινώσαμε τη γενική διαθεσιμότητα του Βάσεις γνώσεων για το Amazon Bedrock. Με το Knowledge Bases for Amazon Bedrock, μπορείτε να συνδέσετε με ασφάλεια μοντέλα θεμελίωσης (FM). Θεμέλιο του Αμαζονίου στα δεδομένα της εταιρείας σας χρησιμοποιώντας ένα πλήρως διαχειριζόμενο μοντέλο Augmented Generation (RAG).

Για εφαρμογές που βασίζονται σε RAG, η ακρίβεια των αποκρίσεων που δημιουργούνται από τα FM εξαρτάται από το πλαίσιο που παρέχεται στο μοντέλο. Τα συμφραζόμενα ανακτώνται από διανυσματικά καταστήματα με βάση ερωτήματα χρήστη. Στη λειτουργία που κυκλοφόρησε πρόσφατα για τις Γνωσιακές Βάσεις για το Amazon Bedrock, υβριδική αναζήτηση, μπορείτε να συνδυάσετε τη σημασιολογική αναζήτηση με την αναζήτηση λέξεων-κλειδιών. Ωστόσο, σε πολλές περιπτώσεις, μπορεί να χρειαστεί να ανακτήσετε έγγραφα που έχουν δημιουργηθεί σε μια καθορισμένη περίοδο ή έχουν επισημανθεί με ορισμένες κατηγορίες. Για να κάνετε πιο συγκεκριμένα τα αποτελέσματα αναζήτησης, μπορείτε να φιλτράρετε με βάση τα μεταδεδομένα του εγγράφου για να βελτιώσετε την ακρίβεια ανάκτησης, η οποία με τη σειρά της οδηγεί σε πιο σχετικές γενιές FM που ευθυγραμμίζονται με τα ενδιαφέροντά σας.

Σε αυτήν την ανάρτηση, συζητάμε τη νέα προσαρμοσμένη δυνατότητα φιλτραρίσματος μεταδεδομένων στις Γνωσιακές Βάσεις για το Amazon Bedrock, την οποία μπορείτε να χρησιμοποιήσετε για να βελτιώσετε τα αποτελέσματα αναζήτησης προ-φιλτράροντας τις ανακτήσεις σας από καταστήματα διανυσμάτων.

Επισκόπηση φιλτραρίσματος μεταδεδομένων

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

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

Για να χρησιμοποιήσετε τη δυνατότητα φιλτραρίσματος μεταδεδομένων, πρέπει να παρέχετε αρχεία μεταδεδομένων μαζί με τα αρχεία δεδομένων προέλευσης με το ίδιο όνομα με το αρχείο δεδομένων προέλευσης και .metadata.json κατάληξη. Τα μεταδεδομένα μπορεί να είναι συμβολοσειρά, αριθμός ή Boolean. Το παρακάτω είναι ένα παράδειγμα του περιεχομένου του αρχείου μεταδεδομένων:

{
    "metadataAttributes" : { 
        "tag" : "project EVE",
        "year" :  2016,
        "team": "ninjas"
    }
}

Η δυνατότητα φιλτραρίσματος μεταδεδομένων των Γνωσιακών Βάσεων για το Amazon Bedrock είναι διαθέσιμη στις Περιφέρειες AWS των ΗΠΑ Ανατολικά (Ν. Βιρτζίνια) και των Δυτικών ΗΠΑ (Όρεγκον).

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

  • Έγγραφο chatbot για μια εταιρεία λογισμικού – Αυτό επιτρέπει στους χρήστες να βρίσκουν πληροφορίες προϊόντος και οδηγούς αντιμετώπισης προβλημάτων. Τα φίλτρα στο λειτουργικό σύστημα ή στην έκδοση της εφαρμογής, για παράδειγμα, μπορούν να βοηθήσουν στην αποφυγή ανάκτησης απαρχαιωμένων ή άσχετων εγγράφων.
  • Συνομιλητική αναζήτηση της εφαρμογής ενός οργανισμού – Αυτό επιτρέπει στους χρήστες να αναζητούν έγγραφα, kanban, μεταγραφές καταγραφής συσκέψεων και άλλα στοιχεία. Χρησιμοποιώντας φίλτρα μεταδεδομένων σε ομάδες εργασίας, επιχειρηματικές μονάδες ή αναγνωριστικά έργων, μπορείτε να εξατομικεύσετε την εμπειρία συνομιλίας και να βελτιώσετε τη συνεργασία. Ένα παράδειγμα θα ήταν, "Ποια είναι η κατάσταση του έργου Sphinx και οι κίνδυνοι που εγείρονται", όπου οι χρήστες μπορούν να φιλτράρουν έγγραφα για ένα συγκεκριμένο έργο ή τύπο πηγής (όπως μηνύματα ηλεκτρονικού ταχυδρομείου ή έγγραφα συνάντησης).
  • Έξυπνη αναζήτηση για προγραμματιστές λογισμικού – Αυτό επιτρέπει στους προγραμματιστές να αναζητούν πληροφορίες για μια συγκεκριμένη έκδοση. Τα φίλτρα στην έκδοση έκδοσης, τον τύπο του εγγράφου (όπως κώδικας, αναφορά API ή πρόβλημα) μπορούν να βοηθήσουν στον εντοπισμό των σχετικών εγγράφων.

Επισκόπηση λύσεων

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

Προετοιμάστε ένα σύνολο δεδομένων για Γνωσιακές Βάσεις για το Amazon Bedrock

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

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

Στο δείγμα δεδομένων μας, το έγγραφο κάθε παιχνιδιού είναι ένα ξεχωριστό αρχείο CSV (για παράδειγμα, s3://$bucket_name/video_game/$game_id.csv) με τις ακόλουθες στήλες:

title, description, genres, year, publisher, score

Τα μεταδεδομένα κάθε παιχνιδιού έχουν το επίθημα .metadata.json (για παράδειγμα, s3://$bucket_name/video_game/$game_id.csv.metadata.json) με το ακόλουθο σχήμα:

{
  "metadataAttributes": {
    "id": number, 
    "genres": string,
    "year": number,
    "publisher": string,
    "score": number
  }
}

Δημιουργήστε μια βάση γνώσεων για το Amazon Bedrock

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

  • Στις Ρύθμιση πηγής δεδομένων σελίδα, κάτω Στρατηγική τεμαχισμού, Επιλέξτε Χωρίς τεμαχισμό, επειδή έχετε ήδη προεπεξεργαστεί τα έγγραφα στο προηγούμενο βήμα.
  • Στο Μοντέλο ενσωματώσεων τμήμα, επιλέξτε Titan G1 Embeddings – Κείμενο.
  • Στο Διανυσματική βάση δεδομένων τμήμα, επιλέξτε Γρήγορη δημιουργία ενός νέου διανυσματικού καταστήματος. Η δυνατότητα φιλτραρίσματος μεταδεδομένων είναι διαθέσιμη για όλα τα υποστηριζόμενα διανυσματικά καταστήματα.

Συγχρονίστε το σύνολο δεδομένων με τη βάση γνώσεων

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

Ερώτημα με φιλτράρισμα μεταδεδομένων στην κονσόλα Amazon Bedrock

Για να χρησιμοποιήσετε τις επιλογές φιλτραρίσματος μεταδεδομένων στην κονσόλα Amazon Bedrock, ολοκληρώστε τα ακόλουθα βήματα:

  1. Στην κονσόλα Amazon Bedrock, επιλέξτε Βάσεις γνώσεων στο παράθυρο πλοήγησης.
  2. Επιλέξτε τη βάση γνώσεων που δημιουργήσατε.
  3. Επιλέξτε Δοκιμαστική βάση γνώσεων.
  4. Επιλέξτε διαμορφώσεις εικονίδιο και, στη συνέχεια, αναπτύξτε το Φίλτρα.
  5. Εισαγάγετε μια συνθήκη χρησιμοποιώντας τη μορφή: πλήκτρο = τιμή (για παράδειγμα, είδη = Στρατηγική) και πατήστε εισάγετε.
  6. Για να αλλάξετε το κλειδί, την τιμή ή τον τελεστή, επιλέξτε τη συνθήκη.
  7. Συνεχίστε με τις υπόλοιπες συνθήκες (για παράδειγμα, (είδη = Στρατηγική ΚΑΙ έτος >= 2023) Ή (βαθμολογία >= 9))
  8. Όταν τελειώσετε, εισαγάγετε το ερώτημά σας στο πλαίσιο μηνύματος και, στη συνέχεια, επιλέξτε τρέξιμο.

Για αυτήν την ανάρτηση, εισάγουμε το ερώτημα "Ένα παιχνίδι στρατηγικής με ωραία γραφικά που κυκλοφόρησε μετά το 2023".

Ερώτημα με φιλτράρισμα μεταδεδομένων χρησιμοποιώντας το SDK

Για να χρησιμοποιήσετε το SDK, δημιουργήστε πρώτα τον πελάτη για το Πράκτορες για το Amazon Bedrock χρόνος εκτέλεσης:

import boto3

bedrock_agent_runtime = boto3.client(
    service_name = "bedrock-agent-runtime"
)

Στη συνέχεια, κατασκευάστε το φίλτρο (ακολουθούν μερικά παραδείγματα):

# genres = Strategy
single_filter= {
    "equals": {
        "key": "genres",
        "value": "Strategy"
    }
}

# genres = Strategy AND year >= 2023
one_group_filter= {
    "andAll": [
        {
            "equals": {
                "key": "genres",
                "value": "Strategy"
            }
        },
        {
            "GreaterThanOrEquals": {
                "key": "year",
                "value": 2023
            }
        }
    ]
}

# (genres = Strategy AND year >=2023) OR score >= 9
two_group_filter = {
    "orAll": [
        {
            "andAll": [
                {
                    "equals": {
                        "key": "genres",
                        "value": "Strategy"
                    }
                },
                {
                    "GreaterThanOrEquals": {
                        "key": "year",
                        "value": 2023
                    }
                }
            ]
        },
        {
            "GreaterThanOrEquals": {
                "key": "score",
                "value": "9"
            }
        }
    ]
}

Περάστε το φίλτρο σε retrievalConfiguration του API ανάκτησης or RetrieveAndGenerate API:

retrievalConfiguration={
        "vectorSearchConfiguration": {
            "filter": metadata_filter
        }
    }

Ο παρακάτω πίνακας παραθέτει μερικές απαντήσεις με διαφορετικές συνθήκες φιλτραρίσματος μεταδεδομένων.

Απορία Φιλτράρισμα μεταδεδομένων Έγγραφα που ανακτήθηκαν Παρατηρήσεις
"Ένα παιχνίδι στρατηγικής με ωραία γραφικά που κυκλοφόρησε μετά το 2023" Εκτός

* Viking Saga: The Sea Raider, έτος:2023, είδη: Στρατηγική

* Μεσαιωνικό Κάστρο: Πολιορκία και κατάκτηση, έτος:2022, είδη: Στρατηγική
* Fantasy Kingdoms: Chronicles of Eldoria, έτος:2023, είδη: Στρατηγική

* Cybernetic Revolution: Rise of the Machines, έτος:2022, είδη: Στρατηγική
* Steampunk Chronicles: Clockwork Empires, έτος:2021, είδη: Πόλη-Κτίριο

2/5 παιχνίδια πληρούν την προϋπόθεση (είδος = Στρατηγική και έτος >= 2023)
On * Viking Saga: The Sea Raider, έτος:2023, είδη: Στρατηγική
* Fantasy Kingdoms: Chronicles of Eldoria, έτος:2023, είδη: Στρατηγική
2/2 παιχνίδια πληρούν την προϋπόθεση (είδος = Στρατηγική και έτος >= 2023)

Εκτός από τα προσαρμοσμένα μεταδεδομένα, μπορείτε επίσης να φιλτράρετε χρησιμοποιώντας προθέματα S3 (τα οποία είναι ενσωματωμένα μεταδεδομένα, επομένως δεν χρειάζεται να παρέχετε αρχεία μεταδεδομένων). Για παράδειγμα, εάν οργανώσετε τα έγγραφα του παιχνιδιού σε προθέματα ανά εκδότη (για παράδειγμα, s3://$bucket_name/video_game/$publisher/$game_id.csv), μπορείτε να φιλτράρετε με τον συγκεκριμένο εκδότη (για παράδειγμα, neo_tokyo_games) χρησιμοποιώντας την ακόλουθη σύνταξη:

publisher_filter = {
    "startsWith": {
                    "key": "x-amz-bedrock-kb-source-uri",
                    "value": "s3://$bucket_name/video_game/neo_tokyo_games/"
                }
}

εκκαθάριση

Για να καθαρίσετε τους πόρους σας, ακολουθήστε τα παρακάτω βήματα:

  1. Διαγράψτε τη βάση γνώσεων:
    1. Στην κονσόλα Amazon Bedrock, επιλέξτε Βάσεις γνώσεων υπό Ορχήστρα στο παράθυρο πλοήγησης.
    2. Επιλέξτε τη βάση γνώσεων που δημιουργήσατε.
    3. Σημειώστε το Διαχείριση ταυτότητας και πρόσβασης AWS (IAM) όνομα ρόλου υπηρεσίας στο Επισκόπηση γνωσιακής βάσης τμήμα.
    4. Στο Διανυσματική βάση δεδομένων ενότητα, σημειώστε τη συλλογή ARN.
    5. Επιλέξτε Διαγραφή, μετά πληκτρολογήστε delete για επιβεβαίωση.
  2. Διαγράψτε τη διανυσματική βάση δεδομένων:
    1. Στις Amazon OpenSearch Service κονσόλα, επιλέξτε Συλλογές υπό Χωρίς διακομιστή στο παράθυρο πλοήγησης.
    2. Εισαγάγετε τη συλλογή ARN που αποθηκεύσατε στη γραμμή αναζήτησης.
    3. Επιλέξτε τη συλλογή και επιλέξτε Διαγραφή.
    4. Εισαγάγετε επιβεβαίωση στη γραμμή επιβεβαίωσης και, στη συνέχεια, επιλέξτε Διαγραφή.
  3. Διαγραφή του ρόλου υπηρεσίας IAM:
    1. Στην κονσόλα IAM, επιλέξτε ρόλους στο παράθυρο πλοήγησης.
    2. Αναζητήστε το όνομα του ρόλου που σημειώσατε νωρίτερα.
    3. Επιλέξτε το ρόλο και επιλέξτε Διαγραφή.
    4. Εισαγάγετε το όνομα του ρόλου στην προτροπή επιβεβαίωσης και διαγράψτε τον ρόλο.
  4. Διαγράψτε το δείγμα δεδομένων:
    1. Στην κονσόλα Amazon S3, μεταβείτε στον κάδο S3 που χρησιμοποιήσατε.
    2. Επιλέξτε το πρόθεμα και τα αρχεία και, στη συνέχεια, επιλέξτε Διαγραφή.
    3. Εισαγάγετε την οριστική διαγραφή στο μήνυμα επιβεβαίωσης για διαγραφή.

Συμπέρασμα

Σε αυτήν την ανάρτηση, καλύψαμε τη δυνατότητα φιλτραρίσματος μεταδεδομένων στις Γνωσιακές Βάσεις για το Amazon Bedrock. Μάθατε πώς να προσθέτετε προσαρμοσμένα μεταδεδομένα σε έγγραφα και να τα χρησιμοποιείτε ως φίλτρα κατά την ανάκτηση και την υποβολή ερωτημάτων στα έγγραφα χρησιμοποιώντας την κονσόλα Amazon Bedrock και το SDK. Αυτό βοηθά στη βελτίωση της ακρίβειας του περιβάλλοντος, καθιστώντας τις απαντήσεις ερωτημάτων ακόμη πιο σχετικές, επιτυγχάνοντας παράλληλα μείωση του κόστους αναζήτησης στη διανυσματική βάση δεδομένων.

Για πρόσθετους πόρους, ανατρέξτε στα ακόλουθα:


Σχετικά με τους Συγγραφείς

Κόρβους Λι είναι Senior GenAI Labs Solutions Architect με έδρα το Λονδίνο. Είναι παθιασμένος με το σχεδιασμό και την ανάπτυξη πρωτοτύπων που χρησιμοποιούν γενετική τεχνητή νοημοσύνη για την επίλυση προβλημάτων πελατών. Επίσης, παρακολουθεί τις τελευταίες εξελίξεις στη γενετική τεχνητή νοημοσύνη και τις τεχνικές ανάκτησης, εφαρμόζοντάς τις σε σενάρια πραγματικού κόσμου.

Ahmed Ewis είναι Senior Solutions Architect στο AWS GenAI Labs, βοηθώντας τους πελάτες να δημιουργήσουν πρωτότυπα τεχνητής νοημοσύνης για την επίλυση επιχειρηματικών προβλημάτων. Όταν δεν συνεργάζεται με πελάτες, του αρέσει να παίζει με τα παιδιά του και να μαγειρεύει.

Κρις Πεκόρα είναι Generative AI Data Scientist στο Amazon Web Services. Είναι παθιασμένος με την κατασκευή καινοτόμων προϊόντων και λύσεων, ενώ παράλληλα εστιάζει στην επιστήμη που έχει εμμονή με τους πελάτες. Όταν δεν εκτελεί πειράματα και δεν παρακολουθεί τις τελευταίες εξελίξεις στο GenAI, του αρέσει να περνά χρόνο με τα παιδιά του.

spot_img

Τελευταία Νοημοσύνη

spot_img