Tạo giá trị từ dữ liệu doanh nghiệp: Các phương pháp hay nhất cho Text2SQL và AI tổng quát | Dịch vụ web của Amazon

Tạo giá trị từ dữ liệu doanh nghiệp: Các phương pháp hay nhất cho Text2SQL và AI tổng quát | Dịch vụ web của Amazon

Generative AI đã mở ra rất nhiều tiềm năng trong lĩnh vực AI. Chúng tôi đang thấy nhiều cách sử dụng, bao gồm tạo văn bản, tạo mã, tóm tắt, dịch thuật, chatbot, v.v. Một lĩnh vực đang phát triển như vậy là sử dụng xử lý ngôn ngữ tự nhiên (NLP) để mở ra những cơ hội mới để truy cập dữ liệu thông qua các truy vấn SQL trực quan. Thay vì xử lý mã kỹ thuật phức tạp, người dùng doanh nghiệp và nhà phân tích dữ liệu có thể đặt câu hỏi liên quan đến dữ liệu và thông tin chi tiết bằng ngôn ngữ đơn giản. Mục tiêu chính là tự động tạo các truy vấn SQL từ văn bản ngôn ngữ tự nhiên. Để thực hiện điều này, dữ liệu nhập văn bản được chuyển đổi thành biểu diễn có cấu trúc và từ biểu diễn này, một truy vấn SQL có thể được sử dụng để truy cập cơ sở dữ liệu sẽ được tạo.

Trong bài đăng này, chúng tôi giới thiệu về văn bản trong SQL (Text2SQL) và khám phá các trường hợp sử dụng, thách thức, mẫu thiết kế và các phương pháp hay nhất. Cụ thể, chúng tôi thảo luận về những điều sau đây:

  • Tại sao chúng ta cần Text2SQL
  • Các thành phần chính của Text to SQL
  • Nhắc nhở cân nhắc về mặt kỹ thuật đối với ngôn ngữ tự nhiên hoặc Chuyển văn bản sang SQL
  • Tối ưu hóa và thực tiễn tốt nhất
  • Mô hình kiến ​​trúc

Tại sao chúng ta cần Text2SQL?

Ngày nay, một lượng lớn dữ liệu có sẵn trong phân tích dữ liệu truyền thống, kho dữ liệu và cơ sở dữ liệu, điều này có thể không dễ truy vấn hoặc hiểu đối với đa số thành viên tổ chức. Mục tiêu chính của Text2SQL là làm cho việc truy vấn cơ sở dữ liệu trở nên dễ tiếp cận hơn đối với những người dùng không rành về kỹ thuật, những người có thể cung cấp truy vấn của họ bằng ngôn ngữ tự nhiên.

NLP SQL cho phép người dùng doanh nghiệp phân tích dữ liệu và nhận câu trả lời bằng cách nhập hoặc nói các câu hỏi bằng ngôn ngữ tự nhiên, chẳng hạn như sau:

  • “Hiển thị tổng doanh số của từng sản phẩm trong tháng trước”
  • “Sản phẩm nào tạo ra nhiều doanh thu hơn?”
  • “Có bao nhiêu phần trăm khách hàng đến từ mỗi khu vực?”

nền tảng Amazon là một dịch vụ được quản lý hoàn toàn cung cấp nhiều lựa chọn về mô hình nền tảng (FM) hiệu suất cao thông qua một API duy nhất, cho phép dễ dàng xây dựng và mở rộng quy mô các ứng dụng Gen AI. Nó có thể được tận dụng để tạo các truy vấn SQL dựa trên các câu hỏi tương tự như các câu hỏi được liệt kê ở trên và truy vấn dữ liệu có cấu trúc của tổ chức cũng như tạo ra các phản hồi bằng ngôn ngữ tự nhiên từ dữ liệu phản hồi truy vấn.

Các thành phần chính để chuyển văn bản sang SQL

Hệ thống chuyển văn bản sang SQL bao gồm một số giai đoạn để chuyển đổi các truy vấn ngôn ngữ tự nhiên thành SQL có thể chạy được:

  • Xử lý ngôn ngữ tự nhiên:
    • Phân tích truy vấn đầu vào của người dùng
    • Trích xuất các yếu tố chính và ý định
    • Chuyển đổi sang định dạng có cấu trúc
  • Tạo SQL:
    • Ánh xạ các chi tiết được trích xuất thành cú pháp SQL
    • Tạo truy vấn SQL hợp lệ
  • Truy vấn cơ sở dữ liệu:
    • Chạy truy vấn SQL do AI tạo trên cơ sở dữ liệu
    • Truy xuất kết quả
    • Trả kết quả cho người dùng

Một khả năng đáng chú ý của Mô hình ngôn ngữ lớn (LLM) là tạo mã, bao gồm Ngôn ngữ truy vấn có cấu trúc (SQL) cho cơ sở dữ liệu. Các LLM này có thể được tận dụng để hiểu câu hỏi bằng ngôn ngữ tự nhiên và tạo ra truy vấn SQL tương ứng làm đầu ra. LLM sẽ được hưởng lợi bằng cách áp dụng các cài đặt tinh chỉnh và học tập trong ngữ cảnh khi có nhiều dữ liệu hơn được cung cấp.

Sơ đồ sau minh họa luồng Text2SQL cơ bản.

Luồng quy trình cấp cao của văn bản SQL 2

Cân nhắc kỹ thuật kịp thời cho ngôn ngữ tự nhiên sang SQL

Lời nhắc rất quan trọng khi sử dụng LLM để dịch ngôn ngữ tự nhiên sang truy vấn SQL và có một số điều quan trọng cần cân nhắc đối với kỹ thuật nhắc nhở.

Hiệu quả kỹ thuật nhanh chóng là chìa khóa để phát triển ngôn ngữ tự nhiên cho các hệ thống SQL. Lời nhắc rõ ràng, dễ hiểu cung cấp hướng dẫn tốt hơn cho mô hình ngôn ngữ. Việc cung cấp ngữ cảnh mà người dùng đang yêu cầu một truy vấn SQL cùng với các chi tiết lược đồ cơ sở dữ liệu có liên quan sẽ giúp mô hình diễn giải ý định một cách chính xác. Việc bao gồm một số ví dụ có chú thích về lời nhắc ngôn ngữ tự nhiên và các truy vấn SQL tương ứng sẽ giúp hướng dẫn mô hình tạo ra đầu ra tuân thủ cú pháp. Ngoài ra, việc kết hợp Thế hệ tăng cường truy xuất (RAG), trong đó mô hình truy xuất các mẫu tương tự trong quá trình xử lý, sẽ cải thiện hơn nữa độ chính xác của ánh xạ. Những lời nhắc được thiết kế tốt nhằm cung cấp cho mô hình đầy đủ hướng dẫn, ngữ cảnh, ví dụ và khả năng tăng cường truy xuất là rất quan trọng để dịch ngôn ngữ tự nhiên sang truy vấn SQL một cách đáng tin cậy.

Sau đây là ví dụ về lời nhắc cơ sở với mã trình bày của cơ sở dữ liệu từ báo cáo nghiên cứu chuyên sâu Nâng cao khả năng chuyển văn bản sang SQL trong vài lần quay của các mô hình ngôn ngữ lớn: Nghiên cứu về chiến lược thiết kế nhanh chóng.

/* Given the following database schema : */
CREATE TABLE IF NOT EXISTS " gymnast " ( " Gymnast_ID " int , " Floor_Exercise_Points " real , " Pommel_Horse_Points " real , " Rings_Points " real , " Vault_Points " real , " Parallel_Bars_Points " real , " Horizontal_Bar_Points " real , " Total_Points " real , PRIMARY KEY ( " Gymnast_ID " ) , FOREIGN KEY ( " Gymnast_ID " ) REFERENCES " people " ( " People_ID " ) ) ; CREATE TABLE IF NOT EXISTS " people " ( " People_ID " int , " Name " text , " Age " real , " Height " real , " Hometown " text , PRIMARY KEY ( " People_ID " ) ) ; /* Answer the following : Return the total points of the gymnast with the lowest age .
*/ select t1 . total_points from gymnast as t1 join people as t2 on t1 . gymnast_id = t2 .
people_id order by t2 . age asc limit 1

Như được minh họa trong ví dụ này, việc học vài lần dựa trên lời nhắc cung cấp cho mô hình một số ví dụ được chú thích trong chính lời nhắc. Điều này thể hiện ánh xạ mục tiêu giữa ngôn ngữ tự nhiên và SQL cho mô hình. Thông thường, lời nhắc sẽ chứa khoảng 2–3 cặp hiển thị truy vấn ngôn ngữ tự nhiên và câu lệnh SQL tương đương. Một số ví dụ này hướng dẫn mô hình tạo các truy vấn SQL tuân thủ cú pháp từ ngôn ngữ tự nhiên mà không yêu cầu dữ liệu đào tạo mở rộng.

Tinh chỉnh so với kỹ thuật nhanh chóng

Khi xây dựng ngôn ngữ tự nhiên cho các hệ thống SQL, chúng ta thường thảo luận về việc liệu việc tinh chỉnh mô hình có phải là kỹ thuật phù hợp hay không hay liệu kỹ thuật nhắc nhở hiệu quả có phải là hướng đi hay không. Cả hai phương pháp đều có thể được xem xét và lựa chọn dựa trên bộ yêu cầu phù hợp:

    • Tinh chỉnh – Mô hình cơ sở được huấn luyện trước trên một kho văn bản tổng quát lớn và sau đó có thể sử dụng tinh chỉnh dựa trên hướng dẫn, sử dụng các ví dụ được gắn nhãn để cải thiện hiệu suất của mô hình nền tảng được đào tạo trước trên văn bản-SQL. Điều này điều chỉnh mô hình cho phù hợp với nhiệm vụ mục tiêu. Tinh chỉnh trực tiếp huấn luyện mô hình ở tác vụ cuối nhưng yêu cầu nhiều ví dụ về văn bản-SQL. Bạn có thể sử dụng tính năng tinh chỉnh có giám sát dựa trên LLM của mình để cải thiện hiệu quả của việc chuyển văn bản sang SQL. Đối với điều này, bạn có thể sử dụng một số bộ dữ liệu như Spider, WikiSQL, CHỌN, BIRD-SQL, hoặc là CoSQL.
    • Kỹ thuật nhanh chóng – Mô hình được đào tạo để hoàn thành các lời nhắc được thiết kế để nhắc cú pháp SQL mục tiêu. Khi tạo SQL từ ngôn ngữ tự nhiên bằng LLM, việc cung cấp hướng dẫn rõ ràng trong lời nhắc là điều quan trọng để kiểm soát đầu ra của mô hình. Trong lời nhắc chú thích các thành phần khác nhau như trỏ đến cột, lược đồ và sau đó hướng dẫn loại SQL cần tạo. Chúng hoạt động giống như các hướng dẫn cho mô hình biết cách định dạng đầu ra SQL. Lời nhắc sau đây hiển thị một ví dụ trong đó bạn trỏ các cột trong bảng và hướng dẫn tạo truy vấn MySQL:
Table offices, columns = [OfficeId, OfficeName]
Table employees, columns = [OfficeId, EmployeeId,EmployeeName]
Create a MySQL query for all employees in the Machine Learning Department

Một cách tiếp cận hiệu quả cho các mô hình chuyển văn bản sang SQL là trước tiên hãy bắt đầu với LLM cơ sở mà không cần tinh chỉnh theo nhiệm vụ cụ thể nào. Sau đó, những lời nhắc được soạn thảo kỹ lưỡng có thể được sử dụng để điều chỉnh và điều khiển mô hình cơ sở để xử lý ánh xạ văn bản sang SQL. Kỹ thuật nhanh chóng này cho phép bạn phát triển khả năng mà không cần phải tinh chỉnh. Nếu kỹ thuật nhắc nhở trên mô hình cơ sở không đạt đủ độ chính xác, thì việc tinh chỉnh trên một tập hợp nhỏ các ví dụ văn bản-SQL có thể được khám phá cùng với kỹ thuật nhắc nhở tiếp theo.

Có thể cần phải kết hợp giữa tinh chỉnh và kỹ thuật nhanh chóng nếu chỉ kỹ thuật nhanh chóng trên mô hình được đào tạo trước thô không đáp ứng được yêu cầu. Tuy nhiên, tốt nhất ban đầu bạn nên thử kỹ thuật nhanh chóng mà không cần tinh chỉnh, vì điều này cho phép lặp lại nhanh chóng mà không cần thu thập dữ liệu. Nếu điều này không mang lại hiệu suất phù hợp thì việc tinh chỉnh cùng với kỹ thuật kịp thời là bước khả thi tiếp theo. Cách tiếp cận tổng thể này tối đa hóa hiệu quả trong khi vẫn cho phép tùy chỉnh nếu các phương pháp hoàn toàn dựa trên lời nhắc là không đủ.

Tối ưu hóa và các phương pháp hay nhất

Tối ưu hóa và các biện pháp thực hành tốt nhất là điều cần thiết để nâng cao hiệu quả và đảm bảo các nguồn lực được sử dụng một cách tối ưu và đạt được kết quả phù hợp theo cách tốt nhất có thể. Các kỹ thuật này giúp cải thiện hiệu suất, kiểm soát chi phí và đạt được kết quả chất lượng tốt hơn.

Khi phát triển hệ thống chuyển văn bản sang SQL bằng LLM, các kỹ thuật tối ưu hóa có thể cải thiện hiệu suất và hiệu quả. Sau đây là một số lĩnh vực chính cần xem xét:

  • Bộ nhớ đệm – Để cải thiện độ trễ, kiểm soát chi phí và tiêu chuẩn hóa, bạn có thể lưu trữ SQL được phân tích cú pháp và lời nhắc truy vấn được nhận dạng từ LLM chuyển văn bản sang SQL. Điều này tránh việc xử lý lại các truy vấn lặp đi lặp lại.
  • Giám sát – Phải thu thập nhật ký và số liệu xung quanh việc phân tích cú pháp truy vấn, nhận dạng lời nhắc, tạo SQL và kết quả SQL để giám sát hệ thống LLM chuyển văn bản sang SQL. Điều này cung cấp khả năng hiển thị cho ví dụ tối ưu hóa đang cập nhật lời nhắc hoặc xem lại phần tinh chỉnh với tập dữ liệu được cập nhật.
  • Chế độ xem cụ thể hóa so với bảng – Các khung nhìn cụ thể hóa có thể đơn giản hóa việc tạo SQL và cải thiện hiệu suất cho các truy vấn chuyển văn bản sang SQL phổ biến. Việc truy vấn trực tiếp các bảng có thể dẫn đến SQL phức tạp và cũng dẫn đến các vấn đề về hiệu suất, bao gồm việc tạo liên tục các kỹ thuật hiệu suất như chỉ mục. Ngoài ra, bạn có thể tránh các vấn đề về hiệu suất khi cùng một bảng được sử dụng cho các lĩnh vực ứng dụng khác cùng một lúc.
  • Đang làm mới dữ liệu – Các chế độ xem cụ thể hóa cần được làm mới theo lịch để cập nhật dữ liệu cho các truy vấn chuyển văn bản sang SQL. Bạn có thể sử dụng các phương pháp làm mới hàng loạt hoặc tăng dần để cân bằng chi phí.
  • Danh mục dữ liệu trung tâm – Tạo danh mục dữ liệu tập trung cung cấp một khung nhìn tổng thể duy nhất cho các nguồn dữ liệu của tổ chức và sẽ giúp LLM chọn các bảng và lược đồ phù hợp để cung cấp phản hồi chính xác hơn. Vectơ nhúng được tạo từ danh mục dữ liệu trung tâm có thể được cung cấp cho LLM cùng với thông tin được yêu cầu để tạo ra các phản hồi SQL chính xác và có liên quan.

Bằng cách áp dụng các phương pháp tối ưu hóa tốt nhất như lưu vào bộ nhớ đệm, giám sát, chế độ xem cụ thể hóa, làm mới theo lịch trình và danh mục trung tâm, bạn có thể cải thiện đáng kể hiệu suất và hiệu quả của hệ thống chuyển văn bản sang SQL bằng cách sử dụng LLM.

Mô hình kiến ​​trúc

Hãy xem xét một số mẫu kiến ​​trúc có thể được triển khai cho quy trình làm việc chuyển văn bản sang SQL.

Kỹ thuật nhanh chóng

Sơ đồ sau minh họa kiến ​​trúc để tạo truy vấn bằng LLM bằng kỹ thuật nhắc nhở.

minh họa kiến ​​trúc để tạo truy vấn bằng LLM bằng kỹ thuật nhắc nhở

Trong mẫu này, người dùng tạo hoạt động học tập vài lần dựa trên lời nhắc để cung cấp cho mô hình các ví dụ được chú thích trong chính lời nhắc, bao gồm chi tiết bảng và lược đồ cũng như một số truy vấn mẫu cùng với kết quả của nó. LLM sử dụng lời nhắc được cung cấp để trả về SQL do AI tạo, được xác thực rồi chạy trên cơ sở dữ liệu để nhận kết quả. Đây là mẫu đơn giản nhất để bắt đầu sử dụng kỹ thuật nhanh chóng. Đối với điều này, bạn có thể sử dụng nền tảng Amazon or mô hình nền tảng in Khởi động Amazon SageMaker.

Trong mẫu này, người dùng tạo một quá trình học vài lần dựa trên lời nhắc để cung cấp cho mô hình các ví dụ được chú thích trong chính lời nhắc, bao gồm chi tiết bảng và lược đồ cũng như một số truy vấn mẫu cùng với kết quả của nó. LLM sử dụng lời nhắc được cung cấp để trả về SQL do AI tạo ra đã được xác thực và chạy dựa trên cơ sở dữ liệu để nhận kết quả. Đây là mẫu đơn giản nhất để bắt đầu sử dụng kỹ thuật nhanh chóng. Đối với điều này, bạn có thể sử dụng nền tảng Amazon là một dịch vụ được quản lý hoàn toàn cung cấp nhiều lựa chọn về mô hình nền tảng (FM) hiệu suất cao từ các công ty AI hàng đầu thông qua một API duy nhất, cùng với một loạt khả năng mà bạn cần để xây dựng các ứng dụng AI tổng quát có tính bảo mật, quyền riêng tư và AI có trách nhiệm hoặc Mô hình nền tảng JumpStart cung cấp các mô hình nền tảng tiên tiến cho các trường hợp sử dụng như viết nội dung, tạo mã, trả lời câu hỏi, viết quảng cáo, tóm tắt, phân loại, truy xuất thông tin, v.v.

Kỹ thuật nhanh chóng và tinh chỉnh

Sơ đồ sau minh họa kiến ​​trúc để tạo truy vấn bằng LLM bằng cách sử dụng kỹ thuật nhanh chóng và tinh chỉnh.

minh họa kiến ​​trúc để tạo truy vấn bằng LLM bằng cách sử dụng kỹ thuật nhanh chóng và tinh chỉnh

Quy trình này tương tự như mẫu trước đó, chủ yếu dựa vào kỹ thuật nhanh chóng nhưng có thêm một quy trình tinh chỉnh trên tập dữ liệu theo miền cụ thể. LLM được tinh chỉnh được sử dụng để tạo các truy vấn SQL với giá trị trong ngữ cảnh tối thiểu cho lời nhắc. Đối với điều này, bạn có thể sử dụng SageMaker JumpStart để tinh chỉnh LLM trên tập dữ liệu dành riêng cho miền giống như cách bạn huấn luyện và triển khai bất kỳ mô hình nào trên Amazon SageMaker.

Kỹ thuật nhanh chóng và RAG

Sơ đồ sau minh họa kiến ​​trúc để tạo truy vấn bằng LLM bằng cách sử dụng kỹ thuật nhắc nhở và RAG.

minh họa kiến ​​trúc để tạo truy vấn bằng LLM bằng kỹ thuật nhắc nhở và RAG

Trong mẫu này, chúng tôi sử dụng Truy xuất thế hệ tăng cường sử dụng các cửa hàng nhúng vector, như Phần mềm nhúng Amazon Titan or Nhúng liền mạch, On nền tảng Amazon từ một danh mục dữ liệu trung tâm, như Keo AWS Danh mục dữ liệucủa cơ sở dữ liệu trong một tổ chức. Các phần nhúng vectơ được lưu trữ trong cơ sở dữ liệu vectơ như Công cụ Vector cho Amazon OpenSearch Serverless, Dịch vụ cơ sở dữ liệu quan hệ của Amazon (Amazon RDS) dành cho PostgreSQL với pgvector phần mở rộng hoặc Amazon Kendra. LLM sử dụng các vectơ nhúng để chọn cơ sở dữ liệu, bảng và cột phù hợp từ bảng nhanh hơn khi tạo truy vấn SQL. Việc sử dụng RAG rất hữu ích khi dữ liệu và thông tin liên quan cần được LLM truy xuất được lưu trữ trong nhiều hệ thống cơ sở dữ liệu riêng biệt và LLM cần có khả năng tìm kiếm hoặc truy vấn dữ liệu từ tất cả các hệ thống khác nhau này. Đây là nơi việc cung cấp các phần nhúng vectơ của danh mục dữ liệu tập trung hoặc thống nhất cho LLM mang lại thông tin chính xác và toàn diện hơn được LLM trả về.

Kết luận

Trong bài đăng này, chúng tôi đã thảo luận về cách chúng tôi có thể tạo ra giá trị từ dữ liệu doanh nghiệp bằng cách sử dụng ngôn ngữ tự nhiên để tạo SQL. Chúng tôi đã xem xét các thành phần chính, tối ưu hóa và các phương pháp hay nhất. Chúng tôi cũng đã học các mẫu kiến ​​trúc từ kỹ thuật nhanh chóng cơ bản đến tinh chỉnh và RAG. Để tìm hiểu thêm, hãy tham khảo nền tảng Amazon để dễ dàng xây dựng và mở rộng quy mô các ứng dụng AI tổng quát bằng các mô hình nền tảng


Về các tác giả

Tạo giá trị từ dữ liệu doanh nghiệp: Các phương pháp hay nhất cho Text2SQL và AI tổng quát | Dịch vụ web của Amazon PlatoThông minh dữ liệu Blockchain. Tìm kiếm dọc. Ái.Randy DeFauw là Kiến trúc sư giải pháp chính cấp cao tại AWS. Anh ấy có bằng MSEE của Đại học Michigan, nơi anh ấy làm việc về thị giác máy tính cho xe tự hành. Ông cũng có bằng MBA của Đại học Bang Colorado. Randy đã đảm nhiệm nhiều vị trí khác nhau trong lĩnh vực công nghệ, từ kỹ thuật phần mềm đến quản lý sản phẩm. Trong không gian Dữ liệu lớn vào năm 2013 và tiếp tục khám phá lĩnh vực đó. Anh ấy đang tích cực làm việc với các dự án trong không gian ML và đã trình bày tại nhiều hội nghị bao gồm Strata và GlueCon.

Tạo giá trị từ dữ liệu doanh nghiệp: Các phương pháp hay nhất cho Text2SQL và AI tổng quát | Dịch vụ web của Amazon PlatoThông minh dữ liệu Blockchain. Tìm kiếm dọc. Ái.Nitin Eusebius là Kiến trúc sư giải pháp doanh nghiệp cấp cao tại AWS, có kinh nghiệm về Kỹ thuật phần mềm, Kiến trúc doanh nghiệp và AI/ML. Anh ấy rất đam mê khám phá các khả năng của AI có thể tạo ra. Anh cộng tác với khách hàng để giúp họ xây dựng các ứng dụng có kiến ​​trúc tốt trên nền tảng AWS và tận tâm giải quyết các thách thức công nghệ cũng như hỗ trợ hành trình đám mây của họ.

Tạo giá trị từ dữ liệu doanh nghiệp: Các phương pháp hay nhất cho Text2SQL và AI tổng quát | Dịch vụ web của Amazon PlatoThông minh dữ liệu Blockchain. Tìm kiếm dọc. Ái.Arghya Banerjee là Kiến trúc sư giải pháp cấp cao tại AWS ở Khu vực Vịnh San Francisco, tập trung vào việc giúp khách hàng áp dụng và sử dụng Đám mây AWS. Arghya tập trung vào Dữ liệu lớn, Hồ dữ liệu, Truyền phát, Phân tích hàng loạt cũng như các dịch vụ và công nghệ AI/ML.

Dấu thời gian:

Thêm từ Học máy AWS