Chuyển đến nội dung chính
Trí tuệ Nhân tạo

Nâng cao Mô hình Ngôn ngữ Lớn với Đồ thị Tri thức

Khám phá cách tích hợp đồ thị tri thức với mô hình ngôn ngữ lớn giúp khắc phục các điểm yếu phổ biến của LLM như ảo giác và dữ liệu lỗi thời. Tìm hiểu cách cộng hưởng này mang lại các ứng dụng AI chính xác hơn, theo thời gian thực và theo miền.
Arun Nanda's photo
Arun Nanda
Đã cập nhật · 14 phút đọc

Khám phá cùng AI

ChatGPTClaudePerplexity

Tạo tài khoản miễn phí của bạn

Luyện tập và Lộ trình tiến trình của bạn.

Tiếp Tục Với Google
Bằng cách tiếp tục, bạn chấp nhận Điều khoản sử dụng, Chính sách bảo mật và việc dữ liệu của bạn được lưu trữ tại Hoa Kỳ.

Các mô hình ngôn ngữ lớn (LLM) đã chứng tỏ hữu ích trong nhiều ứng dụng, từ tạo nội dung đến hệ thống Hỏi & Đáp. Cơ chế attention giúp các mô hình dựa trên transformer tạo ra câu văn mạch lạc và có thể hội thoại. 

Tuy nhiên, LLM gặp khó khăn với thông tin dựa trên sự kiện/tri thức, và hiện tượng ảo giác là vấn đề phổ biến. Đồ thị tri thức (KG) giúp tổ chức và biểu diễn thông tin một cách trực quan. Kết hợp LLM và KG là một hướng tiếp cận đầy hứa hẹn để giải quyết những vấn đề thường gặp của LLM và khiến chúng hữu ích hơn cho các ứng dụng truy xuất thông tin. 

Trong bài viết này, tôi trình bày các nguyên lý cơ bản của KG và LLM trước khi thảo luận cách chúng phối hợp với nhau. Chúng ta cũng sẽ xem các ví dụ thực tế và những công cụ thường dùng để kết hợp KG với LLM. 

Đồ thị Tri thức là gì?

Đồ thị tri thức (KG) lưu trữ một cơ sở tri thức bằng các cấu trúc dữ liệu dạng đồ thị để biểu diễn và lưu trữ thông tin nền tảng. Các nút của đồ thị biểu diễn thực thể, như đối tượng, địa điểm, con người, v.v. Các cạnh biểu diễn mối quan hệ (như “là khách hàng”, “sinh ra ở”, v.v.) giữa các thực thể khác nhau. 

KG còn được gọi là mạng ngữ nghĩa vì chúng lưu trữ thông tin về cách các thực thể khác nhau có liên hệ với nhau. 

Các đặc điểm của đồ thị tri thức gồm: 

  • Quan hệ ngữ nghĩa: Chỉ các kết nối giữa hai nút (thực thể) dựa trên ý nghĩa (ngữ nghĩa) của các thực thể. Ví dụ, một người và một địa điểm có thể liên hệ qua quan hệ ngữ nghĩa “sinh sống tại”. 
  • Cấu trúc có thể truy vấn: Thông tin trong đồ thị tri thức thường (nhưng không phải luôn) được lưu trong cơ sở dữ liệu đồ thị. Nó được truy cập hiệu quả bằng các ngôn ngữ truy vấn đồ thị như SPARQL và Cypher. Những ngôn ngữ này giúp việc viết và chạy các truy vấn như “tìm các kết nối bậc 3 của một người ở thành phố X” trở nên hiệu quả. Cơ sở dữ liệu quan hệ và dạng tài liệu kém hiệu quả khi xử lý các truy vấn như vậy. 
  • Khả năng mở rộng để xử lý lượng thông tin lớn: Cơ sở tri thức tích hợp lượng lớn thông tin từ nhiều nguồn, có xu hướng tăng dần theo thời gian. Do đó, đồ thị tri thức được thiết kế để có khả năng mở rộng nhằm xử lý độ phức tạp của dữ liệu nền. 

Đồ thị tri thức đã tồn tại từ những năm 1980. Tuy nhiên, chúng trở nên nổi tiếng và được sử dụng rộng rãi sau khi Google Knowledge Graph được phổ biến vào năm 2012.  Một số ví dụ hiện đại về KG gồm: 

  • Google Knowledge Graph: Cung cấp nội dung cho hộp xem nhanh nằm trên đầu kết quả tìm kiếm Google. KG của Google kết nối con người, địa điểm, đối tượng và các sự kiện/tri thức được phát hiện bằng cách thu thập dữ liệu trên internet. Vào tháng 5/2020, KG này được biết có 500 tỷ sự kiện/tri thức về 5 tỷ thực thể. 
  • Wikidata: Một KG đa ngôn ngữ mã nguồn mở cung cấp dữ liệu cho Wikipedia. Các dự án khác cũng có thể sử dụng KG của Wikidata theo giấy phép công cộng Creative Commons. Dù là KG, Wikidata được triển khai như một cơ sở dữ liệu tài liệu. Tính đến giữa năm 2024, Wikidata có hơn 1,5 tỷ bộ ba ngữ nghĩa. Một bộ ba ngữ nghĩa có hai nút (chủ ngữ và tân ngữ) và một cạnh giữa chúng, biểu thị mối quan hệ của chúng. 
  • Đồ thị xã hội Facebook: KG của Facebook biểu diễn thông tin mạng xã hội—người dùng Facebook, bạn bè của họ, bạn của bạn, sở thích, lượt thích, hoạt động, tương tác xã hội, các địa điểm đã ghé thăm, v.v. Nó giúp Facebook gợi ý bạn bè mới, cá nhân hóa bảng tin, quảng cáo, và hơn thế nữa. 

Resource Description Framework (RDF)

Trong bối cảnh cơ sở dữ liệu đồ thị, bạn cũng nên hiểu về Resource Description Framework (RDF). 

RDF là một đặc tả để biểu diễn dữ liệu có cấu trúc dạng đồ thị trên web. Nó biểu diễn dữ liệu dưới dạng các bộ ba. Một bộ ba gồm một chủ ngữ (một tài nguyên trên web), một tân ngữ (một tài nguyên khác), và một vị ngữ định nghĩa mối quan hệ giữa chúng. 

RDF biểu diễn chủ ngữ, tân ngữ và vị ngữ bằng URI. Cấu trúc liên kết này tạo thành một đồ thị có hướng và có nhãn. Do đó, RDF là nền tảng của web ngữ nghĩa. Nó hữu ích để xây dựng KG bao quát các mối quan hệ giữa nhiều tài nguyên trên web. 

AI tạo sinh và Mô hình Ngôn ngữ Lớn (LLM) là gì?

AI tạo sinh (GenAI) chỉ các mô hình phần mềm có thể tạo (sinh) nội dung mới dựa trên lời nhắc của người dùng. Các hệ GenAI khác nhau có thể tạo văn bản, hình ảnh, âm nhạc, mã nguồn và hơn thế nữa. Transformers, diffusers và GAN là ví dụ phổ biến về các mô hình GenAI.

Mô hình ngôn ngữ lớn (LLM) thường là các mô hình dựa trên transformer, được huấn luyện bằng kỹ thuật học sâu trên các tập dữ liệu văn bản lớn. Chúng có thể tạo đầu ra văn bản cho các tác vụ như hoàn thành câu, tạo tóm tắt, dịch thuật, sinh văn bản mới, v.v.

Cách Đồ thị Tri thức và LLM hoạt động cùng nhau

Giờ hãy xem cách đồ thị tri thức có thể được dùng để nâng cao LLM. 

Đồ thị tri thức để hiểu ngữ cảnh

LLM có khả năng tạo văn bản trôi chảy, nhưng chúng không tự đánh giá được tính chính xác về mặt sự kiện/tri thức. Phần lớn trường hợp, tập dữ liệu huấn luyện ban đầu không có thông tin (chẳng hạn một sổ tay hướng dẫn cụ thể) liên quan đến một tác vụ thực tế (như trả lời câu hỏi của người dùng về cách dùng một công cụ cụ thể). 

Một LLM được truy cập thông tin theo ngữ cảnh và theo miền có thể dùng tri thức đó để xây dựng phản hồi có ý nghĩa và chính xác. KG cho phép LLM truy cập có lập trình đến thông tin phù hợp và có căn cứ, nhờ đó phản hồi tốt hơn với câu hỏi của người dùng. 

LLM để truy vấn và giao tiếp với đồ thị tri thức

Đồ thị tri thức giỏi trong việc tổ chức, lưu trữ và truy xuất thông tin theo ngữ nghĩa. Tuy nhiên, chúng chỉ có thể được truy cập qua các ngôn ngữ truy vấn chuyên biệt như SPARQL (một ngôn ngữ truy vấn cơ sở dữ liệu để thao tác và truy xuất dữ liệu lưu theo định dạng RDF). 

Đầu ra của KG cũng ở dạng mã và người dùng cần đào tạo cụ thể để diễn giải. LLM lấp đầy khoảng trống này bằng cách chuyển yêu cầu ngôn ngữ tự nhiên của người dùng sang ngôn ngữ truy vấn và tạo văn bản dễ đọc từ đầu ra của KG. Nhờ đó, người dùng không chuyên có thể tương tác với KG. 

Tích hợp tri thức động

Văn bản do LLM tạo phụ thuộc vào tập dữ liệu huấn luyện, vốn thường đã lỗi thời vào thời điểm LLM được đưa vào sản xuất. Liên tục huấn luyện lại LLM trên thông tin cập nhật tốn nhiều tài nguyên và do vậy không thực tế. 

Tuy nhiên, KG, như bất kỳ cơ sở dữ liệu nào khác, có thể dễ dàng được cập nhật theo thời gian thực. Chỉ cần một lượng nhỏ chi phí tính toán để cập nhật các kết nối giữa các nút dựa trên thông tin mới. Vì vậy, bằng cách tích hợp với KG, LLM có thể truy cập thông tin được cập nhật theo thời gian thực và cung cấp phản hồi mới nhất. 

Quy trình ví dụ

Các bước dưới đây phác thảo quy trình ví dụ sử dụng chung KG và LLM để cung cấp phản hồi cập nhật cho câu hỏi của người dùng. 

  1. Người dùng nhập câu hỏi của họ bằng ngôn ngữ tự nhiên.
  2. LLM tạo một truy vấn ngôn ngữ lập trình dựa trên yêu cầu của người dùng.
  3. KG nhận truy vấn từ LLM và trả về thông tin liên quan được định dạng dưới dạng dữ liệu thô (ví dụ JSON). 
  4. LLM tạo phản hồi ngôn ngữ tự nhiên dựa trên đầu ra của KG.
  5. Người dùng nhận phản hồi của họ bằng ngôn ngữ tự nhiên. 

Hình dưới đây cho thấy sơ đồ phác họa các bước này: 

Quy trình LLM + KG

Hình 1: Quy trình LLM + KG (hình minh họa của tác giả)

Các trường hợp sử dụng Đồ thị Tri thức trong AI tạo sinh

Có nhiều trường hợp sử dụng nhờ tích hợp KG và GenAI. Hãy cùng điểm qua những trường hợp thú vị nhất. 

AI hội thoại nâng cao

KG cung cấp một kho tri thức có cấu trúc và được cập nhật mà chatbot có thể truy cập theo lập trình để lấy thông tin hiện thời và cung cấp phản hồi phù hợp hơn cho câu hỏi của người dùng. 

KG bổ sung cho nền tảng tri thức mặc định của chatbot, vốn dựa trên tập dữ liệu huấn luyện. Chatbot học cách xây dựng câu từ tập huấn luyện và lấy thông tin đặc thù ứng dụng từ KG. Nhờ đó, việc dùng KG cũng cho phép sử dụng cùng một kiến trúc chatbot cho các ứng dụng khác nhau mà không cần huấn luyện lại.

Gợi ý cá nhân hóa

LLM đã được dùng làm động cơ gợi ý. 

Ví dụ, một LLM có thể phân tích nội dung một bài viết và gợi ý các bài liên quan. LLM cũng được dùng để tạo hệ thống tương tác, nơi người dùng có thể “trò chuyện với” động cơ gợi ý.

KG có thể tổ chức và lưu trữ thông tin về hành vi người dùng, sở thích, tương tác, v.v. LLM có thể phân tích thông tin này và dùng để tạo phản hồi phù hợp. Nhờ đó, người dùng nhận được gợi ý cá nhân hóa dựa trên ưu tiên riêng của họ. 

Nghiên cứu khoa học và ứng dụng theo miền

Trong các lĩnh vực dựa trên tri thức như y học, tài chính và pháp luật, LLM kết hợp với KG cải thiện khả năng truy cập thông tin. 

Trong y học, chúng gợi ý chẩn đoán có thể dựa trên triệu chứng và tiền sử bệnh nhân. Trong tài chính, chúng hỗ trợ nhà phân tích bằng cách giúp truy cập thông tin liên quan từ các báo cáo tài chính dễ dàng hơn. Trong pháp luật, chúng hỗ trợ luật sư bằng cách truy xuất các án lệ, phán quyết liên quan và cung cấp tóm tắt các tài liệu pháp lý lớn. 

Truy xuất tri thức theo thời gian thực

Kết hợp Mô hình Ngôn ngữ Lớn với Đồ thị Tri thức là yếu tố then chốt trong các ứng dụng thời gian thực như tổng hợp tin tức và phân tích thị trường chứng khoán. 

Các LLM truyền thống không biết về những sự kiện chưa xảy ra trong thời gian huấn luyện. Vì thế, chúng không thể đưa ra phản hồi có ý nghĩa cho các câu hỏi dựa trên thời sự. 

KG hiệu quả trong xử lý và tổ chức thông tin mới theo thời gian thực. Do đó, chúng cung cấp hậu trường tin học cho LLM để xử lý các ứng dụng dựa trên thời sự (tổng hợp tin) và môi trường thay đổi nhanh (ví dụ thị trường chứng khoán). 

Công cụ và Khung triển khai Đồ thị Tri thức trong AI tạo sinh

Các phần trước đã bàn về nguyên lý cơ bản của LLM và KG. Phần này giới thiệu các công cụ và thư viện dùng để tích hợp KG và LLM. 

Công cụ cơ sở dữ liệu đồ thị

KG thường được triển khai bằng các cơ sở dữ liệu đồ thị như:

Neo4j

Một cơ sở dữ liệu đồ thị chuyên dụng (chỉ làm việc với đồ thị). Neo4j sử dụng Cypher, một ngôn ngữ truy vấn đồ thị khai báo, để chèn và truy xuất thông tin. Cypher có phong cách tương tự SQL, giúp nhà phát triển dễ học hơn. 

Neo4j quản lý hiệu quả dữ liệu phức tạp có nhiều liên kết vì động cơ lưu trữ dữ liệu nền của nó được xây dựng từ đầu để phù hợp với các trường hợp sử dụng cơ sở dữ liệu đồ thị. Đây là lựa chọn phổ biến vì nó kết nối được với các nguồn dữ liệu bên ngoài như Apache Kafka và dễ mở rộng theo chiều ngang.

ArangoDB

ArangoDB là cơ sở dữ liệu đồ thị đa mô hình. Ngoài đồ thị, nó còn hỗ trợ tài liệu JSON và kho khóa-giá trị. Điều này cho phép người dùng bổ sung đồ thị bằng những thông tin khó chuyển đổi sang dạng đồ thị. 

Nhờ tính linh hoạt này, nó thường được ưa chuộng cho các ứng dụng doanh nghiệp xử lý nhiều loại dữ liệu. Nó dùng Arango Query Language (AQL) để làm việc xuyên suốt các kiểu dữ liệu. Bên dưới, ArangoDB sử dụng RocksDB làm động cơ lưu trữ dữ liệu. 

Amazon Neptune

Neptune của Amazon hỗ trợ mô hình đồ thị thuộc tính và RDF (Resource Description Framework). Nó sử dụng các ngôn ngữ truy vấn SPARQL và Gremlin. Nó tích hợp liền mạch vào hạ tầng AWS để vận hành như một cơ sở dữ liệu đồ thị được quản lý hoàn toàn, trở thành lựa chọn phổ biến để tích hợp với hạ tầng hiện có cho ứng dụng doanh nghiệp. 

Thư viện tích hợp

LLM và cơ sở dữ liệu đồ thị bổ trợ cho nhau nhưng nói chung không thể giao tiếp trực tiếp. Ở các đoạn sau, chúng tôi thảo luận các thư viện và khung tích hợp dùng để dẫn dữ liệu từ KG vào LLM và ngược lại. 

RDFlib

RDFlib là gói Python mã nguồn mở để làm việc với dữ liệu RDF. Nó có các hàm thao tác và truy vấn đồ thị RDF. Điều này tạo thuận lợi cho việc tích hợp với đồ thị tri thức. Nó cho phép lưu dữ liệu RDF trong bộ nhớ, trên đĩa, hoặc từ xa qua các đầu mút SPARQL. Một đầu mút SPARQL, tương tự đầu mút API, có thể nhận và xử lý truy vấn SPARQL từ xa. 

RDFlib làm việc với cấu trúc dữ liệu dạng đồ thị gồm các bộ ba chủ ngữ–vị ngữ–tân ngữ. Mỗi thành phần của bộ ba là một URI hoặc giá trị literal. Nó có các hàm để phân tích và tuần tự hóa bộ ba, XML và các kiểu dữ liệu khác như JSON-LD.

PyTorch Geometric 

PyTorch Geometric (PyG) là một thư viện dựa trên PyTorch được thiết kế để tạo và huấn luyện Mạng Nơ-ron Đồ thị (GNN). GNN là kiến trúc mạng nơ-ron vận hành trên đồ thị và có thể nhận cấu trúc dữ liệu đồ thị làm đầu vào. PyG có các hàm áp dụng kỹ thuật học sâu cho đồ thị. 

PyG đi kèm nhiều kiến trúc GNN dựng sẵn có thể triển khai trực tiếp hoặc mở rộng thêm qua API truyền thông điệp (message passing). 

PyG được cho là phù hợp cho các ứng dụng quy mô lớn với hàng triệu nút trên nhiều loại nút và cạnh khác nhau. Tiểu lĩnh vực này còn được gọi là học sâu hình học. 

Các mạng nơ-ron truyền thống giỏi mã hóa các quan hệ tuyến tính, nhưng dữ liệu thế giới thực có xu hướng phức tạp và đa chiều. Đồ thị thể hiện tốt hơn các kết nối bậc cao nơi bất kỳ nút nào cũng có thể liên quan đến bất kỳ nút nào khác. Điều này khiến đồ thị phù hợp hơn để lưu trữ các mối quan hệ phức tạp của thế giới thực. 

LangChain

LangChain ra mắt năm 2022 như một khung tích hợp mô hình ngôn ngữ. Nó hỗ trợ xây dựng ứng dụng người dùng bằng cách xâu chuỗi LLM với các công cụ liên quan khác, như trình bao bọc API, script shell, trình thu thập web, trình đọc PDF, Google Docs, cơ sở dữ liệu quan hệ, cơ sở dữ liệu vector và cơ sở dữ liệu đồ thị (bao gồm KG). Do đó, nó thường được dùng để tạo các ứng dụng liên quan đến LLM. 

OpenAI API

OpenAI API loại bỏ sự phức tạp khi xây dựng pipeline bằng các công cụ như PyG. OpenAI API có thể nhận truy vấn ngôn ngữ tự nhiên của người dùng, hiểu nó và trả về một truy vấn có cấu trúc trong một ngôn ngữ lập trình (ví dụ SPARQL). Truy vấn này được đưa vào KG, nơi trả về dữ liệu liên quan. Dữ liệu này được gửi lại cho OpenAI API cùng với ngữ cảnh của truy vấn gốc. LLM của OpenAI tạo phản hồi ngôn ngữ tự nhiên dựa trên dữ liệu thu từ KG. 

OpenAI API cho phép bạn chọn từ nhiều LLM khác nhau, tùy thuộc vào tác vụ và ngân sách. Nhờ vậy, bạn không cần triển khai LLM hoặc các pipeline dữ liệu để giao tiếp với KG. 

Quy trình tích hợp ví dụ

Phần này cung cấp minh họa cấp cao về một pipeline tích hợp bằng giả mã. 

Chúng tôi dùng Neo4j, LangChain và OpenAI API để mô tả các bước tạo chatbot dựa trên RAG. LLM tạo phản hồi dựa trên thông tin lưu trong KG. 

## Import relevant packages 

# Handling chat prompts
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.prompts.prompt import PromptTemplate
from langchain_openai import ChatOpenAI

# Implementing the Runnable protocol for chaining components
from langchain_core.runnables import (
    RunnableBranch,
    RunnableLambda,
    RunnableParallel,
    RunnablePassthrough,

# Processing text inputs in the chat
from langchain_core.messages import AIMessage, HumanMessage
from langchain_core.output_parsers import StrOutputParser

# Working with Neo4j graphs
from neo4j import GraphDatabase
from langchain_community.graphs import Neo4jGraph
from langchain_experimental.graph_transformers import LLMGraphTransformer

# Vector embeddings for the LLM
from langchain_openai import OpenAIEmbeddings
from langchain_community.vectorstores import Neo4jVector

# Load data from a source like Wiki, PDF documents, etc. 
from langchain.document_loaders import WikipediaLoader

# Create a Neo4jGraph to store the KG
graph = Neo4jGraph()

# Load the document(s) based on which to build the KG. In this snippet, we use Wiki. In practice, this is a business-specific document
raw_documents = WikipediaLoader(...).load() 

# Split the document into tokens
documents = create_tokens(raw_documents)

# Instantiate the LLM
llm = ChatOpenAI(model_name="...", …) 
llm_transformer = LLMGraphTransformer(llm=llm)

# Use the LLM to convert the tokenized documents into graph entities
graph_docs = llm_transformer.convert_to_graph_documents(documents)

# Add the graph entities to the Neo4j graph
graph.add_graph_documents(graph_docs, …) 

# Create a retriever to run on the graph
graph.query(
    "CREATE FULLTEXT INDEX entity IF NOT EXISTS FOR (e:__Entity__) ON EACH [e.id]")

# Create a class to extract entities from the text corresponding to nodes from the graph 
class Entities(BaseModel):
    names: List[str] = Field(
        ...,
        description="All the person, organization, or business entities that appear in the text",
    )

# Create a prompt template 
prompt = ChatPromptTemplate.from_messages(
    [
        (
            "system",
            "You are extracting organization and person entities from the text.",
        ),
        (
            "human",
            "Use the given format to extract information from the following "
            "input: {question}",
        ),
    ]
)

# Create a chain by piping the prompt to the LLM with the Entities class. 
# This chain identifies entities in a given prompt string
entity_chain = prompt | llm.with_structured_output(Entities)


# Create a structured retriever to extract the entities in the query. Given a text query, it retrieves all the relevant nodes in the neighborhood of the entities in that query. 

def structured_retriever(question: str) -> str:
    result = ""
    entities = entity_chain.invoke({"question": question})
    for entity in entities.names:
        response = graph.query(
        # CYPHER QUERY TEMPLATE, 
        {"query": generate_full_text_query(entity)})
        result += el['output'] for el in response
    return result

# Chain together the different components 
chain = (
    RunnableParallel(
        {
            "context": _search_query | retriever,
            "question": RunnablePassthrough(),
        }
    )
    | prompt
    | llm
    | StrOutputParser()
)

# Invoke the chain
chain.invoke({"question": "The user’s question goes here"})

Thực tiễn tốt nhất khi Kết hợp Đồ thị Tri thức và LLM

KG mở rộng năng lực của LLM và khiến chúng phù hợp với các trường hợp sử dụng thực tế. Để đạt hiệu năng tốt nhất, tôi khuyến nghị các thực tiễn sau.

Duy trì đồ thị luôn cập nhật

KG chứa kho thông tin dựa trên đó LLM xây dựng phản hồi. Do vậy, cần liên tục cập nhật cơ sở dữ liệu đồ thị với thông tin mới nhất. Một KG lỗi thời sẽ dẫn đến LLM đưa ra câu trả lời lỗi thời. 

Tối ưu hiệu quả truy vấn

LLM và KG là phần mềm phức tạp với yêu cầu tính toán nặng. Như đã nêu ở phần trước, xâu chuỗi LLM và KG gồm nhiều bước, từ token hóa câu hỏi của người dùng, tạo truy vấn đồ thị phù hợp đến truy xuất thông tin từ KG và tạo văn bản từ đó. 

Điều này có thể dẫn đến kém hiệu quả và độ trễ giữa truy vấn và phản hồi. Các phương pháp tối ưu hóa, như giải thích dưới đây, giúp giảm thiểu độ trễ. 

  • Bộ nhớ đệm (cache) lưu trữ dữ liệu truy cập thường xuyên trong các đơn vị bộ nhớ tốc độ cao. Điều này tránh phải tính toán lại các kết quả dùng nhiều.
    • Kết quả truy vấn: Kho khóa-giá trị có thể dùng để lưu kết quả các truy vấn phổ biến đến KG
    • Embedding của LLM: Có thể lưu đệm các vector embedding cho các truy vấn đầu vào phổ biến để tránh truy cập lặp lại API LLM. Điều này tiết kiệm cả thời gian và chi phí. 
  • Tối ưu hóa truy vấn bao gồm viết lại truy vấn cơ sở dữ liệu và dùng chỉ mục phù hợp để truy cập cơ sở dữ liệu hiệu quả hơn. 
    • Chỉ mục giúp truy cập nhanh các phần tử đồ thị như nút, quan hệ và thuộc tính của chúng. Loại chỉ mục đúng (trên dữ liệu dùng thường xuyên) sẽ tăng tốc truy vấn và tra cứu quan hệ. 
    • Tham số hóa truy vấn tạo và lưu đệm các phiên bản tối ưu và tham số hóa của các cấu trúc truy vấn phổ biến bằng cách dùng placeholder cho các thuật ngữ truy vấn của người dùng. Điều này giúp thực thi và trả lời nhanh hơn. 
    • Truy vấn bất đồng bộ đảm bảo LLM không phải chờ KG trả về phản hồi. LLM có thể phát ra nhiều truy vấn cơ sở dữ liệu và xử lý các phản hồi ngay khi chúng được trả về. 
    • Cân bằng tải giúp phân phối câu hỏi người dùng qua các cơ sở dữ liệu bản sao và các mô hình ngôn ngữ. Xác định xem LLM hay KG là nút thắt và mở rộng theo chiều ngang thành phần đó để các thành phần chuỗi khác có thể tiếp tục xử lý. 

Giảm kích thước mô hình ngôn ngữ

LLM là các mô hình tốn bộ nhớ và thường cần phần cứng đắt tiền để chạy. Việc giảm kích thước mô hình AI bằng các kỹ thuật như Distillation và Quantization cho LLM là hữu ích:

  • LLM Distillation là kỹ thuật sử dụng một mô hình nhỏ hơn, gọi là mô hình học trò, để tái tạo phản hồi của mô hình lớn hơn (thầy). Chỉ mô hình thầy được huấn luyện trên tập dữ liệu gốc, còn mô hình trò chỉ được huấn luyện để khớp phản hồi của thầy trên số lượng lớn đầu vào. Quy trình này gọi là chưng cất tri thức (knowledge distillation) và rẻ hơn nhiều so với huấn luyện từ đầu. Tuy nhiên, hiệu năng của mô hình trò có thể không đáng tin cậy cho các truy vấn mới mà nó chưa được huấn luyện. 
  • Lượng tử hóa LLM liên quan đến việc giảm độ chính xác của trọng số mô hình. Phần lớn yêu cầu bộ nhớ và tính toán của mô hình AI đến từ các phép nhân ma trận quy mô lớn trên trọng số mô hình. Trọng số của các mô hình nền tảng thường được biểu diễn dưới dạng số thực dấu phẩy động 32-bit hoặc 16-bit. Người ta quan sát thấy rằng giảm độ chính xác của trọng số xuống số nguyên 8-bit (trong một số trường hợp, thậm chí thấp hơn xuống 1-bit) vẫn cho hiệu năng tương đương với kích thước và chi phí chỉ bằng một phần nhỏ. 

Đánh giá hiệu năng LLM

Bạn nên đảm bảo mô hình ngôn ngữ đã chọn hoạt động tốt với loại truy vấn nó được kỳ vọng xử lý. 

Các công cụ như MLFlow giúp đánh giá hiệu năng LLM trên nhiều tác vụ. Cũng như nhu cầu của người dùng thay đổi và phát triển, thông tin lưu trong đồ thị tri thức cũng thay đổi theo thời gian. Do đó, điều cốt yếu là định kỳ đánh giá lại hiệu năng của LLM sau khi triển khai. Có thể cần tinh chỉnh mô hình trên tập dữ liệu cập nhật, dùng phiên bản mô hình mới hơn, hoặc thậm chí triển khai một mô hình mới. 

Tinh chỉnh LLM với dữ liệu theo miền

LLM lấy thông tin từ KG và năng lực ngôn ngữ, lập luận từ tập dữ liệu huấn luyện của nó. 

Các LLM nền tảng được huấn luyện trên tập dữ liệu tổng quát lớn, thường lấy văn bản từ khắp internet. Tinh chỉnh LLM trên tập dữ liệu theo miền giúp nâng cao khả năng lập luận trong miền đó và cho phép nó xây dựng câu với cấu trúc, thuật ngữ phù hợp. Ví dụ, để dùng LLM trả lời câu hỏi y khoa bằng một KG y khoa, tôi đặc biệt khuyến nghị tinh chỉnh LLM nền trên một tập văn bản y khoa. 

Kết luận

Trong bài viết này, chúng ta đã thảo luận các nguyên lý cơ bản của Mô hình Ngôn ngữ Lớn (LLM) và Đồ thị Tri thức (KG) và cách chúng bổ trợ cho nhau. Chúng ta cũng giới thiệu một số công cụ thường dùng để sử dụng LLM và KG cùng nhau nhằm xây dựng ứng dụng hướng người dùng. Cuối cùng, chúng ta minh họa ở cấp cao cách dùng kết hợp Neo4j và OpenAI thông qua LangChain.

Sau khi hiểu các khái niệm nền tảng này, bạn có thể áp dụng các công cụ trong thực tế:


Arun Nanda's photo
Author
Arun Nanda
LinkedIn

Arun là cựu nhà sáng lập startup, yêu thích xây dựng những điều mới mẻ. Hiện tại, anh đang khám phá các nền tảng kỹ thuật và toán học của Trí tuệ Nhân tạo. Anh thích chia sẻ những gì mình học được, vì thế anh viết về chúng.

Bên cạnh DataCamp, bạn có thể đọc các bài viết của anh trên Medium, Airbyte và Vultr.

Chủ đề
Trí tuệ Nhân tạo

Tìm hiểu thêm về LLM với các khóa học này!

Khóa học

Các khái niệm về Large Language Models (LLMs)

2 giờ
113.4K
Khám phá toàn bộ tiềm năng của LLM với khóa học khái niệm của chúng tôi, bao gồm các ứng dụng LLM, phương pháp đào tạo, cân nhắc đạo đức và nghiên cứu mới nhất.
Xem chi tiếtBắt Đầu Khóa Học

Tạo tài khoản miễn phí của bạn

Luyện tập và Lộ trình tiến trình của bạn.

Tiếp Tục Với Google
Bằng cách tiếp tục, bạn chấp nhận Điều khoản sử dụng, Chính sách bảo mật và việc dữ liệu của bạn được lưu trữ tại Hoa Kỳ.
Xem thêm
Liên quan

blog

Claude Opus 4.6: Tính năng, Điểm chuẩn, Bài kiểm tra thực hành và hơn thế nữa

Mô hình mới nhất của Anthropic dẫn đầu ở mã hóa tác tử và lập luận phức tạp. Thêm vào đó, nó có cửa sổ ngữ cảnh 1M.
Matt Crabtree's photo

Matt Crabtree

10 phút

Xem thêm