Tôi đã viết trước đó về
Hồ dữ liệu hiện đại, đôi khi được gọi là data lakehouse, là một nửa là data lake và một nửa là kho dữ liệu dựa trên Open Table Format Specification (OTF). Cả hai đều được xây dựng trên lưu trữ đối tượng hiện đại.
Đồng thời, chúng tôi đã suy nghĩ sâu sắc về cách các tổ chức có thể xây dựng cơ sở hạ tầng dữ liệu AI có thể hỗ trợ mọi nhu cầu AI/ML của bạn — không chỉ lưu trữ dữ liệu thô của các bộ đào tạo, bộ xác thực và bộ kiểm tra của bạn. Nói cách khác, nó phải chứa các tính toán cần thiết để đào tạo các mô hình ngôn ngữ lớn, công cụ MLOps, đào tạo phân tán, v.v. Do kết quả của dòng suy nghĩ này, chúng tôi đã biên soạn một bài báo khác về cách sử dụng hồ dữ liệu hiện đại
Nguồn:
Cả hai bài báo đó đều không đề cập đến các nhà cung cấp hoặc công cụ cụ thể. Bây giờ tôi muốn thảo luận về các nhà cung cấp và công cụ cần thiết để xây dựng hồ dữ liệu hiện đại. Trong danh sách top 10 này, mỗi mục là một khả năng cần thiết để hỗ trợ AI tạo sinh.
Hồ dữ liệu doanh nghiệp được xây dựng trên lưu trữ đối tượng. Không phải lưu trữ đối tượng theo kiểu cũ, dựa trên thiết bị phục vụ cho các trường hợp sử dụng lưu trữ giá rẻ và chuyên sâu, mà là kho lưu trữ đối tượng gốc Kubernetes, hiện đại, hiệu suất cao, được xác định bằng phần mềm, là nền tảng của ngăn xếp GenAI hiện đại. Chúng có sẵn dưới dạng dịch vụ (AWS, GCP, Azure) hoặc tại chỗ hoặc kết hợp/cả hai, chẳng hạn như MinIO. Các hồ dữ liệu này phải hỗ trợ khối lượng công việc phát trực tuyến, phải có mã hóa và mã hóa xóa hiệu quả cao, cần lưu trữ siêu dữ liệu nguyên tử với đối tượng và hỗ trợ các công nghệ như tính toán Lambda. Vì các giải pháp thay thế hiện đại này là gốc đám mây, chúng sẽ tích hợp với toàn bộ ngăn xếp các công nghệ gốc đám mây khác — từ tường lửa đến khả năng quan sát đến quản lý người dùng và quyền truy cập — ngay khi xuất xưởng.
Lưu trữ đối tượng cũng là giải pháp lưu trữ cơ bản cho kho dữ liệu dựa trên OTP. Sử dụng lưu trữ đối tượng cho kho dữ liệu có vẻ lạ, nhưng kho dữ liệu được xây dựng theo cách này đại diện cho thế hệ kho dữ liệu tiếp theo. Điều này có thể thực hiện được nhờ các thông số kỹ thuật OTF do Netflix, Uber và Databricks biên soạn, giúp việc sử dụng lưu trữ đối tượng trong kho dữ liệu trở nên liền mạch.
Các OTF — Apache Iceberg, Apache Hudi và Delta Lake — được viết ra vì không có sản phẩm nào trên thị trường có thể xử lý được nhu cầu dữ liệu của người sáng tạo. Về cơ bản, tất cả chúng đều làm (theo những cách khác nhau) là định nghĩa một kho dữ liệu có thể được xây dựng trên lưu trữ đối tượng. Lưu trữ đối tượng cung cấp sự kết hợp giữa khả năng mở rộng và hiệu suất cao mà các giải pháp lưu trữ khác không có. Vì đây là các thông số kỹ thuật hiện đại, chúng có các tính năng nâng cao mà các kho dữ liệu kiểu cũ không có như tiến hóa phân vùng, tiến hóa lược đồ và phân nhánh không sao chép.
Hai đối tác của MinIO có thể chạy kho dữ liệu dựa trên OTF trên MinIO là Dremio và Starburst.
MLOps đối với máy học giống như DevOps đối với phát triển phần mềm truyền thống. Cả hai đều là một tập hợp các thực hành và nguyên tắc nhằm cải thiện sự hợp tác giữa các nhóm kỹ thuật (Dev hoặc ML) và các nhóm vận hành CNTT (Ops). Mục tiêu là hợp lý hóa vòng đời phát triển bằng cách sử dụng tự động hóa, từ lập kế hoạch và phát triển đến triển khai và vận hành. Một trong những lợi ích chính của các phương pháp tiếp cận này là cải tiến liên tục.
Các kỹ thuật và tính năng của MLOps liên tục phát triển. Bạn muốn một công cụ được hỗ trợ bởi một bên lớn, đảm bảo rằng công cụ này liên tục được phát triển và cải tiến và sẽ cung cấp hỗ trợ lâu dài. Mỗi công cụ này đều sử dụng MinIO để lưu trữ các hiện vật được sử dụng trong suốt vòng đời của mô hình.
Khung học máy của bạn là thư viện (thường dành cho Python) mà bạn sử dụng để tạo mô hình và viết mã để đào tạo chúng. Các thư viện này có nhiều tính năng vì chúng cung cấp một bộ sưu tập các hàm mất mát, trình tối ưu hóa, công cụ chuyển đổi dữ liệu và các lớp dựng sẵn khác nhau cho mạng nơ-ron. Tính năng quan trọng nhất mà hai thư viện này cung cấp là một tenxơ. Tenxơ là các mảng đa chiều có thể được di chuyển lên GPU. Chúng cũng có tính năng tự động phân biệt, được sử dụng trong quá trình đào tạo mô hình.
Hai nền tảng học máy phổ biến nhất hiện nay là PyTorch (của Facebook) và Tensorflow (của Google).
Đào tạo mô hình phân tán là quá trình đào tạo đồng thời các mô hình học máy trên nhiều thiết bị hoặc nút tính toán. Phương pháp này tăng tốc quá trình đào tạo, đặc biệt là khi cần các tập dữ liệu lớn để đào tạo các mô hình phức tạp.
Trong đào tạo mô hình phân tán, tập dữ liệu được chia thành các tập con nhỏ hơn và mỗi tập con được xử lý song song bởi các nút khác nhau. Các nút này có thể là các máy riêng lẻ trong một cụm, các quy trình riêng lẻ hoặc các pod riêng lẻ trong một cụm Kubernetes. Chúng có thể có quyền truy cập vào GPU. Mỗi nút xử lý độc lập tập con dữ liệu của mình và cập nhật các tham số mô hình cho phù hợp. Năm thư viện bên dưới giúp các nhà phát triển tránh khỏi hầu hết sự phức tạp của đào tạo phân tán. Bạn có thể chạy chúng cục bộ nếu bạn không có cụm, nhưng bạn sẽ cần một cụm để thấy thời gian đào tạo giảm đáng kể.
Một trung tâm mô hình không thực sự là một phần của kiến trúc tham chiếu hồ dữ liệu hiện đại, nhưng tôi vẫn đưa nó vào vì nó rất quan trọng để nhanh chóng bắt đầu với AI tạo sinh. Hugging Face đã trở thành nơi để tìm kiếm các mô hình ngôn ngữ lớn. Hugging Face lưu trữ một trung tâm mô hình nơi các kỹ sư có thể tải xuống các mô hình được đào tạo trước và chia sẻ các mô hình mà họ tự tạo. Hugging Face cũng là tác giả của các thư viện Transformers và Datasets, hoạt động với các mô hình ngôn ngữ lớn (LLM) và dữ liệu được sử dụng để đào tạo và tinh chỉnh chúng.
Có những trung tâm mô hình khác. Tất cả các nhà cung cấp đám mây lớn đều có cách để tải lên và chia sẻ mô hình, nhưng Hugging Face, với bộ sưu tập mô hình và thư viện, đã trở thành người dẫn đầu trong lĩnh vực này.
Một khuôn khổ ứng dụng giúp kết hợp LLM vào một ứng dụng. Sử dụng LLM không giống với sử dụng API chuẩn. Cần phải thực hiện nhiều công việc để biến yêu cầu của người dùng thành thứ mà LLM có thể hiểu và xử lý. Ví dụ: nếu bạn xây dựng một ứng dụng trò chuyện và muốn sử dụng Retrieval Augmented Generation (RAG), thì bạn sẽ cần mã hóa yêu cầu, biến mã thông báo thành vectơ, tích hợp với cơ sở dữ liệu vectơ (được mô tả bên dưới), tạo lời nhắc và sau đó gọi LLM của bạn. Một khuôn khổ ứng dụng cho AI tạo sinh sẽ cho phép bạn liên kết các hành động này lại với nhau. Khuôn khổ ứng dụng được sử dụng rộng rãi nhất hiện nay là LangChain. Nó có tích hợp với các công nghệ khác, ví dụ, thư viện Hugging Face Transformer và thư viện Unstructured để xử lý tài liệu. Nó có nhiều tính năng và có thể hơi phức tạp khi sử dụng, vì vậy, dưới đây là một số lựa chọn thay thế cho những người không có yêu cầu phức tạp và muốn thứ gì đó đơn giản hơn LangChain.
Hầu hết các tổ chức không có một kho lưu trữ duy nhất với các tài liệu sạch và chính xác. Thay vào đó, các tài liệu được phân bổ khắp tổ chức trong nhiều cổng thông tin nhóm ở nhiều định dạng. Bước đầu tiên khi chuẩn bị cho AI tạo sinh là xây dựng một đường ống chỉ lấy các tài liệu đã được chấp thuận để sử dụng với AI tạo sinh và đặt chúng vào cơ sở dữ liệu vector của bạn. Đây có thể là nhiệm vụ khó khăn nhất của giải pháp AI tạo sinh đối với các tổ chức toàn cầu lớn.
Một đường ống tài liệu sẽ chuyển đổi tài liệu thành văn bản, phân đoạn tài liệu và chạy văn bản đã phân đoạn qua mô hình nhúng để biểu diễn vectơ của nó có thể được lưu vào cơ sở dữ liệu vectơ. May mắn thay, một số thư viện nguồn mở có thể thực hiện việc này cho nhiều định dạng tài liệu phổ biến. Một số thư viện được liệt kê bên dưới. Các thư viện này có thể được sử dụng với LangChain để xây dựng đường ống xử lý tài liệu đầy đủ.
Cơ sở dữ liệu vector tạo điều kiện cho tìm kiếm ngữ nghĩa. Để hiểu cách thực hiện điều này đòi hỏi nhiều kiến thức nền tảng về toán học và rất phức tạp. Tuy nhiên, tìm kiếm ngữ nghĩa dễ hiểu về mặt khái niệm. Giả sử bạn muốn tìm tất cả các tài liệu thảo luận về bất kỳ điều gì liên quan đến "trí tuệ nhân tạo". Để thực hiện điều này trên cơ sở dữ liệu thông thường, bạn sẽ cần tìm kiếm mọi từ viết tắt, từ đồng nghĩa và thuật ngữ liên quan có thể có của "trí tuệ nhân tạo". Truy vấn của bạn sẽ trông giống như thế này:
SELECT snippet FROM MyCorpusTable WHERE (text like '%artificial intelligence%' OR text like '%ai%' OR text like '%machine learning%' OR text like '%ml%' OR ... and on and on ...
Không chỉ tìm kiếm tương tự thủ công này khó khăn và dễ xảy ra lỗi, mà bản thân quá trình tìm kiếm cũng rất chậm. Một cơ sở dữ liệu vector có thể tiếp nhận một yêu cầu như bên dưới và chạy truy vấn nhanh hơn và chính xác hơn. Khả năng chạy truy vấn ngữ nghĩa nhanh chóng và chính xác là điều quan trọng nếu bạn muốn sử dụng Retrieval Augmented Generation.
{ Get { MyCorpusTable(nearText: {concepts: ["artificial intelligence"]}) {snippet} } }
Bốn cơ sở dữ liệu vector phổ biến được liệt kê dưới đây.
Luôn là một ý tưởng hay khi có các công cụ cho phép bạn sắp xếp dữ liệu và trực quan hóa dữ liệu theo nhiều cách khác nhau. Các thư viện Python được liệt kê bên dưới cung cấp khả năng thao tác và trực quan hóa dữ liệu. Chúng có vẻ giống như các công cụ bạn chỉ cần cho AI truyền thống, nhưng chúng cũng hữu ích với AI tạo sinh. Ví dụ, nếu bạn đang thực hiện phân tích tình cảm hoặc phát hiện cảm xúc, thì bạn nên kiểm tra các tập huấn luyện, xác thực và kiểm tra của mình để đảm bảo bạn có phân phối phù hợp trên tất cả các lớp của mình.
Bạn có thể thấy: 10 khả năng có thể tìm thấy trong kiến trúc tham chiếu hồ dữ liệu hiện đại, cùng với các sản phẩm và thư viện cụ thể của nhà cung cấp cho từng khả năng. Dưới đây là bảng tóm tắt các công cụ này.