τα στοιχεία επικοινωνίας μου
Ταχυδρομείο[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Η χρήση βάσεων δεδομένων γραφημάτων ή γραφημάτων γνώσης σε εφαρμογές μεγάλων μοντέλων έχει γίνει όλο και πιο δημοφιλής πρόσφατα. Τα γραφήματα έχουν φυσικά πλεονεκτήματα στην αναπαράσταση και αποθήκευση διαφορετικών και αλληλένδετων πληροφοριών και μπορούν εύκολα να συλλάβουν σύνθετες σχέσεις και χαρακτηριστικά μεταξύ διαφορετικών τύπων δεδομένων, παρέχοντας έτσι καλύτερα υποστήριξη περιβάλλοντος ή δεδομένων για μεγάλα μοντέλα. Σε αυτό το άρθρο, ας ρίξουμε μια ματιά στον τρόπο χρήσης βάσεων δεδομένων γραφημάτων ή γραφημάτων γνώσης σε εφαρμογές μεγάλων μοντέλων.
Αυτό το άρθρο είναι απλώς μια απλή εισαγωγή και εμπειρία.Δεν έχει σημασία αν δεν γνωρίζετε τη βάση δεδομένων γραφημάτων ή το neo4j, απλώς ακολουθήστε τα βήματα σε αυτό το άρθρο . Αυτό το άρθρο μπορεί να σας βοηθήσει να κατανοήσετε τη μέθοδο εφαρμογής του γραφήματος γνώσης στο RAG Μόλις αποκτήσετε την εμπειρία, μπορείτε να μάθετε πώς να χρησιμοποιείτε τη βάση δεδομένων γραφημάτων αργότερα, εάν χρειαστεί.
Το γράφημα γνώσης είναι μια δομημένη σημασιολογική βάση γνώσης που αποθηκεύει και αναπαριστά οντότητες (όπως άτομα, μέρη, οργανισμούς κ.λπ.) και σχέσεις μεταξύ οντοτήτων (όπως σχέσεις ατόμων, σχέσεις γεωγραφικής τοποθεσίας κ.λπ.) με τη μορφή γραφημάτων. Τα γραφήματα γνώσης χρησιμοποιούνται συχνά για τη βελτίωση της σημασιολογικής κατανόησης των μηχανών αναζήτησης, παρέχοντας πλουσιότερες πληροφορίες και πιο ακριβή αποτελέσματα αναζήτησης.
Τα κύρια χαρακτηριστικά του γραφήματος γνώσης περιλαμβάνουν:
1. Οντότητα : Η βασική μονάδα στο γράφημα γνώσης, που αντιπροσωπεύει ένα αντικείμενο ή μια έννοια στον πραγματικό κόσμο.
2. Σχέση: Η σχέση μεταξύ οντοτήτων, όπως "ανήκει σε", "βρίσκεται σε", "δημιουργός" κ.λπ.
3. Ιδιότητα: Περιγραφικές πληροφορίες που διαθέτει η οντότητα, όπως η ηλικία του ατόμου, το γεωγραφικό μήκος και πλάτος της τοποθεσίας κ.λπ.
4. Δομή γραφήματος: Το γράφημα γνώσης οργανώνει δεδομένα με τη μορφή γραφήματος, συμπεριλαμβανομένων κόμβων (οντότητες) και ακμών (σχέσεις).
5. *Σημασιολογικό Δίκτυο: Ένα γράφημα γνώσης μπορεί να θεωρηθεί ως ένα σημασιολογικό δίκτυο στο οποίο οι κόμβοι και οι ακμές έχουν σημασιολογική σημασία.
6. Συμπέρασμα: Τα γραφήματα γνώσης μπορούν να χρησιμοποιηθούν για συλλογισμό, δηλαδή για εξαγωγή νέων πληροφοριών μέσω γνωστών οντοτήτων και σχέσεων.
Τα γραφήματα γνώσης χρησιμοποιούνται ευρέως στη βελτιστοποίηση μηχανών αναζήτησης (SEO), στα συστήματα συστάσεων, στην επεξεργασία φυσικής γλώσσας (NLP), στην εξόρυξη δεδομένων και σε άλλους τομείς. Για παράδειγμα, το Γράφημα γνώσης της Google, τα Wikidata, το DBpedia κ.λπ. είναι όλα γνωστά παραδείγματα γραφημάτων γνώσης.
Ως μορφή οργάνωσης δεδομένων, η σημασία του γραφήματος γνώσης είναι να παρέχει έναν αποτελεσματικό και διαισθητικό τρόπο αναπαράστασης και διαχείρισης πολύπλοκων σχέσεων δεδομένων. Εμφανίζει δεδομένα σε δομημένη μορφή μέσω των κόμβων και των άκρων της δομής του γραφήματος, ενισχύει τη σημασιολογική ικανότητα έκφρασης των δεδομένων και καθιστά τη σχέση μεταξύ οντοτήτων σαφή και ξεκάθαρη. Τα γραφήματα γνώσης βελτιώνουν σημαντικά την ακρίβεια της ανάκτησης πληροφοριών, ειδικά στον τομέα της επεξεργασίας φυσικής γλώσσας, επιτρέποντας στις μηχανές να κατανοούν καλύτερα και να ανταποκρίνονται σε πολύπλοκα ερωτήματα των χρηστών. Τα γραφήματα γνώσης διαδραματίζουν βασικό ρόλο σε έξυπνες εφαρμογές, όπως συστήματα συστάσεων, έξυπνες απαντήσεις ερωτήσεων κ.λπ.
Μετά τη βαρετή εισαγωγή, ας ρίξουμε μια ματιά στην περίπτωση του γραφήματος γνώσης RAG+ και ας το εφαρμόσουμε μόνοι μας.
Η ακόλουθη περίπτωση προέρχεται από την επίσημη τεκμηρίωση της LangChain: https://python.langchain.com/v0.1/docs/integrations/graphs/neo4j_cypher/#refresh-graph-schema-information
(1) Πρώτα πρέπει να εγκαταστήσετε μια βάση δεδομένων γραφημάτων, εδώ χρησιμοποιούμε το neo4j.
Εντολή εγκατάστασης python:
pip install neo4j
(2) Καταχωρίστε έναν επίσημο λογαριασμό, συνδεθείτε και δημιουργήστε μια παρουσία βάσης δεδομένων. (Εάν θέλετε να το χρησιμοποιήσετε για εκμάθηση, απλώς επιλέξτε το δωρεάν.)
Μετά τη δημιουργία μιας διαδικτυακής παρουσίας βάσης δεδομένων, η σελίδα έχει ως εξής:
Τώρα μπορείτε να χρησιμοποιήσετε αυτήν τη βάση δεδομένων στον κώδικά σας.
(1) Αφού δημιουργήσετε την παρουσία της βάσης δεδομένων, θα πρέπει να λάβετε τον σύνδεσμο, το όνομα χρήστη και τον κωδικό πρόσβασης των δεδομένων Ο παλιός κανόνας είναι να τα τοποθετήσετε στη μεταβλητή περιβάλλοντος και στη συνέχεια να φορτώσετε τη μεταβλητή περιβάλλοντος μέσω της Python:
neo4j_url = os.getenv('NEO4J_URI')
neo4j_username = os.getenv('NEO4J_USERNAME')
neo4j_password = os.getenv('NEO4J_PASSWORD')
(2) Σύνδεση βάσης δεδομένων
Το LangChain ενσωματώνει τη διεπαφή neo4j και χρειάζεται μόνο να εισαγάγουμε την κλάση Neo4jGraph για να τη χρησιμοποιήσουμε.
from langchain_community.graphs import Neo4jGraph
graph = Neo4jGraph(url=neo4j_url, username=neo4j_username, password=neo4j_password)
(3) Ερώτηση και συμπλήρωση δεδομένων
Μπορείτε να χρησιμοποιήσετε τη διεπαφή ερωτήματος για να υποβάλετε ερωτήματα και να επιστρέψετε αποτελέσματα. Η γλώσσα της δήλωσης ερωτήματος είναι η γλώσσα ερωτήματος Cypher.
result = graph.query(
"""
MERGE (m:Movie {name:"Top Gun", runtime: 120})
WITH m
UNWIND ["Tom Cruise", "Val Kilmer", "Anthony Edwards", "Meg Ryan"] AS actor
MERGE (a:Actor {name:actor})
MERGE (a)-[:ACTED_IN]->(m)
"""
)
print(result)
# 输出:[]
Η έξοδος του παραπάνω κώδικα είναι []
。
(4) Ανανεώστε τις αρχιτεκτονικές πληροφορίες του γραφήματος
graph.refresh_schema()
print(graph.schema)
Από τα αποτελέσματα, το σχήμα περιέχει πληροφορίες όπως τύπους κόμβων, χαρακτηριστικά και σχέσεις μεταξύ τύπων και είναι η αρχιτεκτονική του γραφήματος.
Μπορούμε επίσης να συνδεθούμε στην ιστοσελίδα neo4j για να προβάλουμε τα δεδομένα που είναι αποθηκευμένα στη βάση δεδομένων γραφημάτων:
(5) Τώρα που υπάρχουν δεδομένα στη βάση δεδομένων γραφημάτων, μπορούμε να ρωτήσουμε.
Η κλάση GraphCypherQAChain είναι ενσωματωμένη στο LangChain, το οποίο μπορεί εύκολα να αναζητηθεί χρησιμοποιώντας τη βάση δεδομένων γραφημάτων. Ο παρακάτω κώδικας:
chain = GraphCypherQAChain.from_llm(
ChatOpenAI(temperature=0), graph=graph, verbose=True
)
result = chain.invoke({"query": "Who played in Top Gun?"})
print(result)
Διαδικασία εκτέλεσης και αποτελέσματα:
Πρώτα, η φυσική γλώσσα (Ποιος έπαιξε στο Top Gun;) μετατρέπεται σε μια δήλωση ερωτήματος γραφήματος μέσω ενός μεγάλου μοντέλου, στη συνέχεια η εντολή ερωτήματος εκτελείται μέσω neo4j, επιστρέφονται τα αποτελέσματα και, τέλος, μετατρέπεται σε φυσική γλώσσα μέσω του μεγάλου μοντέλο και έξοδο στον χρήστη.
Στον παραπάνω κώδικα, χρησιμοποιούμε την κλάση GraphCypherQAChain του LangChain, η οποία είναι το ερώτημα της βάσης δεδομένων γραφημάτων και η αλυσίδα ερωτήσεων και απαντήσεων που παρέχονται από τη LangChain.Έχει πολλές παραμέτρους που μπορούν να ρυθμιστούν, όπως η χρήσηexclude_types
Για να ορίσετε ποιοι τύποι κόμβων ή σχέσεις αγνοούνται:
chain = GraphCypherQAChain.from_llm(
graph=graph,
cypher_llm=ChatOpenAI(temperature=0, model="gpt-3.5-turbo"),
qa_llm=ChatOpenAI(temperature=0, model="gpt-3.5-turbo-16k"),
verbose=True,
exclude_types=["Movie"],
)
Η έξοδος είναι παρόμοια με την ακόλουθη:
Node properties are the following:
Actor {name: STRING}
Relationship properties are the following:
The relationships are the following:
Υπάρχουν πολλές παρόμοιες παράμετροι διαθέσιμες, μπορείτε να ανατρέξετε στην επίσημη τεκμηρίωση: https://python.langchain.com/v0.1/docs/integrations/graphs/neo4j_cypher/#use-separate-llms-for-cypher-and- γενιά απαντήσεων
Ακολουθεί ο πηγαίος κώδικας εκτέλεσης του GraphCypherQAChain Ας ρίξουμε μια σύντομη ματιά στη διαδικασία εκτέλεσής του.
(1)cypher_generation_chain
: Μετατροπή φυσικής γλώσσας σε δηλώσεις ερωτήματος γραφήματος.
(2)extract_cypher
: Καταργήστε τη δήλωση ερωτήματος Αυτό συμβαίνει επειδή τα μεγάλα μοντέλα ενδέχεται να επιστρέψουν ορισμένες πρόσθετες πληροφορίες περιγραφής και να χρειαστεί να αφαιρεθούν.
(3)cypher_query_corrector
: Διορθώστε τη δήλωση ερωτήματος.
(4)graph.query
: Εκτελέστε δηλώσεις ερωτήματος, βάση δεδομένων γραφημάτων ερωτημάτων και λήψη περιεχομένου
(5)self.qa_chain
: Με βάση το περιεχόμενο της αρχικής ερώτησης και ερωτήματος, το μεγάλο μοντέλο χρησιμοποιείται και πάλι για την οργάνωση των απαντήσεων και των αποτελεσμάτων στον χρήστη σε φυσική γλώσσα.
def _call( self,
inputs: Dict[str, Any],
run_manager: Optional[CallbackManagerForChainRun] = None,) -> Dict[str, Any]:
"""Generate Cypher statement, use it to look up in db and answer question."""
......
generated_cypher = self.cypher_generation_chain.run(
{"question": question, "schema": self.graph_schema}, callbacks=callbacks
)
# Extract Cypher code if it is wrapped in backticks
generated_cypher = extract_cypher(generated_cypher)
# Correct Cypher query if enabled
if self.cypher_query_corrector:
generated_cypher = self.cypher_query_corrector(generated_cypher)
......
# Retrieve and limit the number of results
# Generated Cypher be null if query corrector identifies invalid schema
if generated_cypher:
context = self.graph.query(generated_cypher)[: self.top_k]
else:
context = []
if self.return_direct:
final_result = context
else:
......
result = self.qa_chain(
{"question": question, "context": context},
callbacks=callbacks,
)
final_result = result[self.qa_chain.output_key]
chain_result: Dict[str, Any] = {self.output_key: final_result}
......
return chain_result
Ως ενθουσιώδης βετεράνος του Διαδικτύου, αποφάσισα να μοιραστώ τις πολύτιμες γνώσεις μου για την τεχνητή νοημοσύνη με όλους. Όσο για το πόσα μπορείτε να μάθετε, εξαρτάται από την επιμονή και την ικανότητά σας στη μελέτη. Έχω μοιραστεί σημαντικά υλικά για μεγάλα μοντέλα τεχνητής νοημοσύνης, όπως χάρτες τεχνητής νοημοσύνης μεγάλου μοντέλου εισαγωγής, βιβλία και εγχειρίδια εκμάθησης μεγάλων μοντέλων τεχνητής νοημοσύνης υψηλής ποιότητας, εκπαιδευτικά βίντεο, πρακτική μάθηση και άλλα ηχογραφημένα βίντεο δωρεάν.
Αυτή η πλήρης έκδοση υλικού εκμάθησης τεχνητής νοημοσύνης μεγάλου μοντέλου έχει μεταφορτωθεί στο CSDN.保证100%免费
】
Το ταξίδι μάθησης στην εποχή των μεγάλων μοντέλων τεχνητής νοημοσύνης: από τα βασικά μέχρι την αιχμή, κατακτήστε τις βασικές δεξιότητες της τεχνητής νοημοσύνης!
Αυτή η συλλογή 640 αναφορών καλύπτει πολλές πτυχές, όπως θεωρητική έρευνα, τεχνική υλοποίηση και βιομηχανική εφαρμογή μεγάλων μοντέλων τεχνητής νοημοσύνης. Είτε είστε επιστημονικός ερευνητής, μηχανικός ή ενθουσιώδης που ενδιαφέρεται για μεγάλα μοντέλα τεχνητής νοημοσύνης, αυτή η συλλογή αναφορών θα σας προσφέρει πολύτιμες πληροφορίες και έμπνευση.
Με την ταχεία ανάπτυξη της τεχνολογίας τεχνητής νοημοσύνης, τα μεγάλα μοντέλα τεχνητής νοημοσύνης έχουν γίνει ένα καυτό θέμα στο σημερινό επιστημονικό και τεχνολογικό πεδίο. Αυτά τα μεγάλης κλίμακας προεκπαιδευμένα μοντέλα, όπως τα GPT-3, BERT, XLNet, κ.λπ., αλλάζουν την κατανόησή μας για την τεχνητή νοημοσύνη με τις ισχυρές τους δυνατότητες κατανόησης γλώσσας και παραγωγής. Τα παρακάτω βιβλία PDF είναι πολύ καλοί πόροι εκμάθησης.
Ως απλός άνθρωπος, η είσοδος στην εποχή των μεγάλων μοντέλων απαιτεί συνεχή μάθηση και εξάσκηση για τη συνεχή βελτίωση των δεξιοτήτων και του γνωστικού του επιπέδου .