Νοημοσύνη δεδομένων Πλάτωνα.
Κάθετη Αναζήτηση & Αι.

Η Schneider Electric αξιοποιεί τα Retrieval Augmented LLMs στο SageMaker για να εξασφαλίσει ενημερώσεις σε πραγματικό χρόνο στα συστήματα ERP τους | Υπηρεσίες Ιστού της Amazon

Ημερομηνία:

Αυτή η ανάρτηση γράφτηκε από κοινού με τον Anthony Medeiros, Διευθυντή Μηχανικής και Αρχιτεκτονικής Λύσεων για την Τεχνητή Νοημοσύνη της Βόρειας Αμερικής και τον Blake Santschi, Διευθυντή Business Intelligence, από τη Schneider Electric. Επιπλέον ειδικοί της Schneider Electric περιλαμβάνουν τους Jesse Miller, Somik Chowdhury, Shaswat Babhulgaonkar, David Watkins, Mark Carlson και Barbara Sleczkowski. 

Τα συστήματα Enterprise Resource Planning (ERP) χρησιμοποιούνται από εταιρείες για τη διαχείριση πολλών επιχειρηματικών λειτουργιών όπως η λογιστική, οι πωλήσεις ή η διαχείριση παραγγελιών σε ένα σύστημα. Συγκεκριμένα, χρησιμοποιούνται συνήθως για την αποθήκευση πληροφοριών που σχετίζονται με λογαριασμούς πελατών. Διαφορετικοί οργανισμοί μέσα σε μια εταιρεία ενδέχεται να χρησιμοποιούν διαφορετικά συστήματα ERP και η συγχώνευσή τους είναι μια πολύπλοκη τεχνική πρόκληση σε κλίμακα που απαιτεί γνώσεις σε συγκεκριμένο τομέα.

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

Η απόφαση σύνδεσης βασίζεται στις πιο πρόσφατες πληροφορίες που είναι διαθέσιμες δημόσια στο Διαδίκτυο ή στα μέσα ενημέρωσης και ενδέχεται να επηρεαστεί από πρόσφατες εξαγορές, νέα της αγοράς ή αναδιάρθρωση τμημάτων. Ένα παράδειγμα σύνδεσης λογαριασμών θα ήταν ο προσδιορισμός της σχέσης μεταξύ της Amazon και της θυγατρικής της, Whole Foods Market [πηγή].

Η Schneider Electric αναπτύσσει μεγάλα γλωσσικά μοντέλα για τις δυνατότητές τους να απαντούν σε ερωτήσεις σε διάφορους τομείς της γνώσης, η ημερομηνία που εκπαιδεύτηκε το μοντέλο περιορίζει τις γνώσεις του. Αντιμετώπισαν αυτήν την πρόκληση χρησιμοποιώντας ένα μοντέλο ανοιχτού κώδικα μεγάλης γλώσσας Retriever-Augmented Generation που διατίθεται στο Amazon SageMaker JumpStart να επεξεργάζεται μεγάλες ποσότητες εξωτερικής γνώσης που αντλείται και να παρουσιάζει εταιρικές ή δημόσιες σχέσεις μεταξύ των αρχείων ERP.

Στις αρχές του 2023, όταν η Schneider Electric αποφάσισε να αυτοματοποιήσει μέρος της διαδικασίας σύνδεσης λογαριασμών της χρησιμοποιώντας τεχνητή νοημοσύνη (AI), η εταιρεία συνεργάστηκε με το Εργαστήριο Λύσεων Μηχανικής Μάθησης AWS (MLSL). Με την τεχνογνωσία της MLSL στη συμβουλευτική και εκτέλεση ML, η Schneider Electric μπόρεσε να αναπτύξει μια αρχιτεκτονική τεχνητής νοημοσύνης που θα μείωνε τη μη αυτόματη προσπάθεια στις ροές εργασιών σύνδεσης και θα παρείχε ταχύτερη πρόσβαση δεδομένων στις μεταγενέστερες ομάδες ανάλυσης.

Παραγωγική τεχνητή νοημοσύνη

Το Generative AI και τα μεγάλα γλωσσικά μοντέλα (LLM) μεταμορφώνουν τον τρόπο με τον οποίο οι επιχειρηματικές οργανώσεις είναι σε θέση να επιλύουν παραδοσιακά πολύπλοκες προκλήσεις που σχετίζονται με την επεξεργασία και την κατανόηση της φυσικής γλώσσας. Μερικά από τα πλεονεκτήματα που προσφέρουν τα LLM περιλαμβάνουν τη δυνατότητα κατανόησης μεγάλων τμημάτων κειμένου και απάντησης σε σχετικές ερωτήσεις παράγοντας απαντήσεις που μοιάζουν με τον άνθρωπο. Το AWS διευκολύνει τους πελάτες να πειραματιστούν και να παράγουν φόρτους εργασίας LLM, καθιστώντας διαθέσιμες πολλές επιλογές μέσω του Amazon SageMaker JumpStart, Θεμέλιο του Αμαζονίου, να Amazon Titan.

Εξωτερική Απόκτηση Γνώσης

Τα LLM είναι γνωστά για την ικανότητά τους να συμπιέζουν την ανθρώπινη γνώση και έχουν επιδείξει αξιοσημείωτες ικανότητες στην απάντηση ερωτήσεων σε διάφορους τομείς της γνώσης, αλλά οι γνώσεις τους περιορίζονται από την ημερομηνία εκπαίδευσης του μοντέλου. Αντιμετωπίζουμε αυτό το όριο πληροφοριών συνδέοντας το LLM με ένα API Αναζήτησης Google για να παραδώσουμε ένα ισχυρό Επαυξημένο LLM ανάκτησης (RAG) που αντιμετωπίζει τις προκλήσεις της Schneider Electric. Το RAG είναι σε θέση να επεξεργάζεται μεγάλες ποσότητες εξωτερικής γνώσης που αντλείται από την αναζήτηση Google και να παρουσιάζει εταιρικές ή δημόσιες σχέσεις μεταξύ των εγγραφών ERP.

Δείτε το παρακάτω παράδειγμα:

Ερώτηση: Ποια είναι η μητρική εταιρεία της One Medical;
Ερώτημα Google: «Μητρική εταιρεία One Medical» → πληροφορίες → LLM
Απάντηση: One Medical, θυγατρική της Amazon…

Το προηγούμενο παράδειγμα (λαμβανόμενο από τη βάση δεδομένων πελατών της Schneider Electric) αφορά μια εξαγορά που συνέβη τον Φεβρουάριο του 2023 και, επομένως, δεν θα μπορούσε να εντοπιστεί μόνο από το LLM λόγω περιορισμών στη γνώση. Η ενίσχυση του LLM με την αναζήτηση Google εγγυάται τις πιο ενημερωμένες πληροφορίες.

Μοντέλο Flan-T5

Σε αυτό το έργο χρησιμοποιήσαμε το μοντέλο Flan-T5-XXL από το Flan-T5 οικογένεια μοντέλων.

Τα μοντέλα Flan-T5 είναι ρυθμισμένα με οδηγίες και επομένως είναι ικανά να εκτελούν διάφορες εργασίες NLP μηδενικής λήψης. Στην κατάντη εργασία μας δεν χρειαζόταν να συμπεριλάβουμε μια τεράστια ποσότητα παγκόσμιας γνώσης, αλλά μάλλον να αποδίδουμε καλά στην απάντηση ερωτήσεων, δεδομένου ενός πλαισίου κειμένων που παρέχονται μέσω των αποτελεσμάτων αναζήτησης, και ως εκ τούτου, το μοντέλο Τ11 παραμέτρων 5Β είχε καλή απόδοση.

Το JumpStart παρέχει βολική ανάπτυξη αυτής της οικογένειας μοντέλων μέσω Στούντιο Amazon SageMaker και το SageMaker SDK. Αυτό περιλαμβάνει Flan-T5 Small, Flan-T5 Base, Flan-T5 Large, Flan-T5 XL και Flan-T5 XXL. Επιπλέον, το JumpStart παρέχει μερικές εκδόσεις του Flan-T5 XXL σε διαφορετικά επίπεδα κβαντισμού. Αναπτύξαμε το Flan-T5-XXL σε ένα τελικό σημείο για χρήση συμπερασμάτων Amazon SageMaker Studio Jumpstart.

Διαδρομή για το Flan-T5 SageMaker JumpStart

Ανάκτηση Augmented LLM με LangChain

LangChain είναι δημοφιλές και ταχέως αναπτυσσόμενο πλαίσιο που επιτρέπει την ανάπτυξη εφαρμογών που υποστηρίζονται από LLM. Βασίζεται στην έννοια του αλυσίδες, τα οποία είναι συνδυασμοί διαφορετικών στοιχείων που έχουν σχεδιαστεί για τη βελτίωση της λειτουργικότητας των LLM για μια δεδομένη εργασία. Για παράδειγμα, μας επιτρέπει να προσαρμόσουμε προτρέπει και ενσωματώστε τα LLM με διαφορετικά εργαλεία όπως εξωτερικές μηχανές αναζήτησης ή πηγές δεδομένων. Στην περίπτωσή μας, χρησιμοποιήσαμε το Google Serper συστατικό για αναζήτηση στον Ιστό και ανέπτυξε το μοντέλο Flan-T5-XXL που είναι διαθέσιμο σε Amazon SageMaker Studio Jumpstart. Το LangChain εκτελεί τη συνολική ενορχήστρωση και επιτρέπει στις σελίδες των αποτελεσμάτων αναζήτησης να τροφοδοτούνται στο στιγμιότυπο Flan-T5-XXL.

Το Retrieval-Augmented Generation (RAG) αποτελείται από δύο βήματα:

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

Για την περίπτωση χρήσης της Schneider Electric, το RAG προχωρά ως εξής:

  1. Το όνομα της εταιρείας συνδυάζεται με μια ερώτηση όπως "Ποιος είναι η μητρική εταιρεία του X", όπου X είναι η δεδομένη εταιρεία) και μεταβιβάζεται σε ένα ερώτημα google χρησιμοποιώντας το Serper AI
  2. Οι εξαγόμενες πληροφορίες συνδυάζονται με την άμεση και αρχική ερώτηση και διαβιβάζονται στο LLM για απάντηση.

Το παρακάτω διάγραμμα απεικονίζει αυτή τη διαδικασία.

Ροή εργασιών RAG

Χρησιμοποιήστε τον ακόλουθο κώδικα για να δημιουργήσετε ένα τελικό σημείο:

# Spin FLAN-T5-XXL Sagemaker Endpoint
llm = SagemakerEndpoint(...)

Εργαλείο άμεσης αναζήτησης:

search = GoogleSerperAPIWrapper()
search_tool = Tool( name="Search", func=search.run, description="useful for when you need to ask with search", verbose=False)

Στον παρακάτω κώδικα, ενώνουμε τα στοιχεία ανάκτησης και αύξησης:

my_template = """
Answer the following question using the information. n
Question : {question}? n
Information : {search_result} n
Answer: """
prompt_template = PromptTemplate( input_variables=["question", 'search_result'], template=my_template)
question_chain = LLMChain( llm=llm, prompt=prompt_template, output_key="answer") def search_and_reply_company(company): # Retrieval search_result = search_tool.run(f"{company} parent company") # Augmentation output = question_chain({ "question":f"Who is the parent company of {company}?", "search_result": search_result}) return output["answer"] search_and_reply_company("Whole Foods Market") "Amazon"

Το Prompt Engineering

Ο συνδυασμός του πλαισίου και της ερώτησης ονομάζεται προτροπή. Παρατηρήσαμε ότι η γενική προτροπή που χρησιμοποιήσαμε (παραλλαγές σχετικά με το αίτημα για τη μητρική εταιρεία) είχε καλή απόδοση για τους περισσότερους δημόσιους τομείς (τομείς), αλλά δεν γενικεύτηκε καλά στην εκπαίδευση ή την υγειονομική περίθαλψη, καθώς η έννοια της μητρικής εταιρείας δεν έχει νόημα εκεί. Για την εκπαίδευση χρησιμοποιήσαμε το "Χ" ενώ για την υγειονομική περίθαλψη χρησιμοποιήσαμε το "Y".

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

my_template_options = """
Answer the following question using the information. n
Question :  {question}? n
Information : {search_result} n
Options :n {options} n
Answer: """ prompt_template_options = PromptTemplate(
input_variables=["question", 'search_result', 'options'],
template=my_template_options)
question_chain = LLMChain( llm=llm, prompt=prompt_template_options, output_key="answer") my_options = """
- healthcare
- education
- oil and gas
- banking
- pharma
- other domain """ def search_and_reply_domain(company):
search_result = search_tool.run(f"{company} ")
output = question_chain({ "question":f"What is the domain of {company}?", "search_result": search_result, "options":my_options})
return output["answer"] search_and_reply_domain("Exxon Mobil") "oil and gas"

Οι ειδικές προτροπές του κλάδου αύξησαν τη συνολική απόδοση από 55% σε 71% ακρίβειας. Συνολικά, η προσπάθεια και ο χρόνος που επενδύθηκαν για να αναπτυχθούν αποτελεσματικά προτρέπει φαίνεται να βελτιώνουν σημαντικά την ποιότητα της απόκρισης LLM.

RAG με δεδομένα σε πίνακα (SEC-10k)

Οι καταθέσεις SEC 10K είναι μια άλλη αξιόπιστη πηγή πληροφοριών για θυγατρικές και υποδιαιρέσεις που υποβάλλονται ετησίως από εισηγμένες εταιρείες. Αυτά τα αρχεία είναι διαθέσιμα απευθείας στο SEC EDGAR ή μέσω  CorpWatch API.

Υποθέτουμε ότι οι πληροφορίες δίνονται σε μορφή πίνακα. Παρακάτω είναι ένα ψευδο csv σύνολο δεδομένων που μιμείται την αρχική μορφή του συνόλου δεδομένων SEC-10K. Είναι δυνατή η συγχώνευση πολλών csv πηγές δεδομένων σε ένα συνδυασμένο πλαίσιο δεδομένων pandas:

# A pseudo dataset similar by schema to the CorpWatch API dataset
df.head()

index	relation_id source_cw_id	target_cw_id	parent subsidiary 1 90 22569 37 AMAZON WHOLE FOODS MARKET
873 1467 22569 781 AMAZON TWITCH
899 1505 22569 821 AMAZON ZAPPOS
900 1506 22569 821 AMAZON ONE MEDICAL
901 1507 22569 821 AMAZON WOOT!

Το LangChain παρέχει ένα στρώμα αφαίρεσης για τα πάντα create_pandas_dataframe_agent. Υπάρχουν δύο βασικά πλεονεκτήματα στη χρήση LangChain/LLM για αυτήν την εργασία:

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

Περιστρέφουμε το τελικό σημείο όπως παραπάνω και δημιουργούμε τον πράκτορα:

# Create pandas dataframe agent
agent = create_pandas_dataframe_agent(llm, df, varbose=True)

Στον παρακάτω κώδικα, κάνουμε ερώτημα για τη σχέση γονέα/θυγατρικής και ο πράκτορας μεταφράζει το ερώτημα στη γλώσσα pandas:

# Example 1
query = "Who is the parent of WHOLE FOODS MARKET?"
agent.run(query) #### output
> Entering new AgentExecutor chain...
Thought: I need to find the row with WHOLE FOODS MARKET in the subsidiary column
Action: python_repl_ast
Action Input: df[df['subsidiary'] == 'WHOLE FOODS MARKET']
Observation:
source_cw_id	target_cw_id	parent subsidiary
22569 37 AMAZON WHOLE FOODS MARKET
Thought: I now know the final answer
Final Answer: AMAZON
> Finished chain.
# Example 2
query = "Who are the subsidiaries of Amazon?"
agent.run(query)
#### output
> Entering new AgentExecutor chain...
Thought: I need to find the row with source_cw_id of 22569
Action: python_repl_ast
Action Input: df[df['source_cw_id'] == 22569]
...
Thought: I now know the final answer
Final Answer: The subsidiaries of Amazon are Whole Foods Market, Twitch, Zappos, One Medical, Woot!...> Finished chain. 'The subsidiaries of Amazon are Whole Foods Market, Twitch, Zappos, One Medical, Woot!.'

Συμπέρασμα

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

Εκτός από το ερώτημα της Αναζήτησης Google, σύνολα δεδομένων που περιγράφουν λεπτομερώς τις εταιρικές δομές, όπως τα αρχεία SEC 10K, μπορούν να χρησιμοποιηθούν για την περαιτέρω ενίσχυση του LLM με αξιόπιστες πληροφορίες. Η ομάδα της Schneider Electric θα μπορεί επίσης να επεκτείνει και να σχεδιάσει τις δικές της προτροπές, μιμούμενοι τον τρόπο με τον οποίο ταξινομούν ορισμένους λογαριασμούς του δημόσιου τομέα, βελτιώνοντας περαιτέρω την ακρίβεια του αγωγού. Αυτές οι δυνατότητες θα επιτρέψουν στη Schneider Electric να διατηρεί ενημερωμένες και ακριβείς οργανωτικές δομές των πελατών της και να ξεκλειδώνει τη δυνατότητα να κάνει αναλύσεις πέρα ​​από αυτά τα δεδομένα.


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

Αντώνης Μεδέιρος είναι Διευθυντής Μηχανικής και Αρχιτεκτονικής Λύσεων στη Schneider Electric. Ειδικεύεται στην παροχή πρωτοβουλιών AI/ML υψηλής αξίας σε πολλές επιχειρηματικές λειτουργίες στη Βόρεια Αμερική. Με 17 χρόνια εμπειρίας στη Schneider Electric, φέρνει πλήθος γνώσεων στον κλάδο και τεχνικής εξειδίκευσης στην ομάδα.

Blake Sanstchi είναι Διευθυντής Business Intelligence στη Schneider Electric, επικεφαλής μιας ομάδας ανάλυσης που επικεντρώνεται στην υποστήριξη του οργανισμού πωλήσεων μέσω πληροφοριών που βασίζονται σε δεδομένα.

Τζόσουα ΛέβιΤζόσουα Λέβι είναι Ανώτερος Διευθυντής Εφαρμοσμένης Επιστήμης στο εργαστήριο λύσεων μηχανικής μάθησης της Amazon, όπου βοηθά τους πελάτες να σχεδιάσουν και να δημιουργήσουν λύσεις AI/ML για την επίλυση βασικών επιχειρηματικών προβλημάτων.

Κόστα Μπελζ είναι Ανώτερος Εφαρμοσμένος Επιστήμονας με AWS MLSL με εστίαση στο Generative AI και στην επεξεργασία εγγράφων. Είναι παθιασμένος με τη δημιουργία εφαρμογών χρησιμοποιώντας Γραφήματα Γνώσης και NLP. Έχει περίπου 10 χρόνια εμπειρίας στην κατασκευή λύσεων δεδομένων και τεχνητής νοημοσύνης για τη δημιουργία αξίας για πελάτες και επιχειρήσεις.

Aude Genevay είναι Applied Scientist στο Amazon GenAI Incubator, όπου βοηθά τους πελάτες να λύσουν βασικά επιχειρηματικά προβλήματα μέσω ML και AI. Προηγουμένως ήταν ερευνήτρια στη θεωρητική ML και της αρέσει να εφαρμόζει τις γνώσεις της για να παρέχει λύσεις αιχμής στους πελάτες.

Md Sirajus Salekin είναι Εφαρμοσμένος Επιστήμονας στο AWS Machine Learning Solution Lab. Βοηθά τους πελάτες της AWS να επιταχύνουν την επιχείρησή τους δημιουργώντας λύσεις AI/ML. Τα ερευνητικά του ενδιαφέροντα είναι η πολυτροπική μηχανική μάθηση, η γενετική τεχνητή νοημοσύνη και οι εφαρμογές ML στην υγειονομική περίθαλψη.

Ζιχέν Γουάνγκ, PhD, είναι Senior Applied Scientist στο AWS. Με αρκετά χρόνια ερευνητικής εμπειρίας στην ανάπτυξη ML και στατιστικών μεθόδων χρησιμοποιώντας βιολογικά και ιατρικά δεδομένα, συνεργάζεται με πελάτες σε διάφορους κλάδους για να λύσει τα προβλήματα ML τους.

Άντον Γκρίντιν είναι Αρχιτέκτονας της Principal Solutions που υποστηρίζει τους Παγκόσμιους Βιομηχανικούς Λογαριασμούς, με έδρα τη Νέα Υόρκη. Διαθέτει περισσότερα από 15 χρόνια εμπειρίας στη δημιουργία ασφαλών εφαρμογών και κορυφαίων ομάδων μηχανικών.

spot_img

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

spot_img

Συνομιλία με μας

Γεια σου! Πώς μπορώ να σε βοηθήσω?