Xây dựng ứng dụng Generative AI trên AWS với deepset
Table of Contents
- Giới thiệu
- Lý do sự quan tâm về Generative AI
- Các ứng dụng của Generative AI
- Ứng dụng Text to Image
- Ứng dụng Text Summarization
- Ứng dụng Question Answering
- Mô hình cơ bản trong Generative AI
- Mô hình Foundational
- Số lượng tham số
- Mức độ phức tạp của nhiệm vụ
- Sử dụng Generative AI trong doanh nghiệp
- Fine-tuning
- Sử dụng mô hình thay thế
- Hệ sinh thái Generative AI
- Giới thiệu về mô hình AWS Offering
- Generative AI as a Service
- Amazon CodeWhisper
- Amazon Bedrock
- Amazon SageMaker
- Sử dụng EC2, ECS và EKS
- Xây dựng ứng dụng Generative AI với Haystack
- Các thành phần của Haystack
- Sử dụng Prompt Templates và Prompt Node
- Cài đặt hệ thống Retrieval Augmentation
- Xây dựng ứng dụng Generative AI quy mô lớn với Kubernetes
- Tải lên dữ liệu vào hệ thống
- Tra cứu và trả lời câu hỏi
- Sử dụng GPU và Auto Scaling
- Kết luận
- Tài liệu tham khảo
Giới thiệu
Chào mừng mọi người đến với buổi hội thảo hôm nay về xây dựng ứng dụng Generative AI trên AWS, với sự tham gia của Deepset. Hôm nay chúng ta có Hai diễn giả nổi tiếng là Juana và Dimitri, cùng với bản thân mình - Mia Tran, tôi là chuyên gia machine learning và kiến trúc sư giải pháp tại AWS, tôi giúp khách hàng bắt đầu hành trình machine learning trên AWS. Trước khi bắt đầu buổi hội thảo, tôi muốn hỏi mọi người có ai quan tâm đến Generative AI không? Có rất tốt! Vậy đã có ai bắt đầu xây dựng ứng dụng Generative AI chưa? Cũng rất tốt! Mọi người đã sử dụng mô hình từ Deepset chưa? Tuyệt vời!
Trong buổi hội thảo hôm nay, chúng ta sẽ tìm hiểu về Generative AI trên AWS và nghe câu chuyện từ Deepset. Nhưng trước tiên, hãy cùng tìm hiểu vì sao Generative AI thu hút nhiều sự chú ý.
Lý do sự quan tâm về Generative AI
Generative AI đang nhận được sự quan tâm lớn vì những tiềm năng và khả năng của nó. Đã có rất nhiều dự án nổi tiếng sử dụng Generative AI và nhận được sự quan tâm từ cộng đồng. Nếu chúng ta nhìn vào các con số và đồ thị, chúng ta sẽ thấy sự tăng trưởng đáng kể. Dự án saber/diffusion đã thu hút 40K ngôi sao trên GitHub trong vòng 90 ngày đầu tiên, và hiện tại đã có tới 53k ngôi sao. Cả thế giới đều đang bắt đầu nói về Generative AI và sự hấp dẫn của nó. Các ứng dụng của Generative AI như text to image, text summarization và question answering đã trở thành xu hướng và thu hút sự quan tâm của hàng triệu người dùng.
Các ứng dụng của Generative AI
Generative AI có rất nhiều ứng dụng mà chúng ta đã biết. Một trong số đó là trang web của Amazon, nơi kết quả tìm kiếm được tạo ra từ mô hình sinh tồn. Mỗi ngày, hàng trăm người dùng hoặc thậm chí hàng triệu người dùng sử dụng trợ lý ảo Alexa của Amazon để trải nghiệm các ứng dụng trò chuyện dựa trên mô hình Generative AI. Mô hình sinh tồn là một phần quan trọng trong việc tạo ra nội dung có thể bao gồm văn bản, hình ảnh, âm thanh và video. Đây là những ứng dụng phổ biến mà chúng ta thường thấy và được sử dụng bởi các mô hình Generative AI.
Tuy nhiên, bạn có thể tự hỏi làm thế nào bạn có thể sử dụng mô hình Generative AI trong kinh doanh của mình? Điều đó dẫn đến phần tiếp theo của buổi hội thảo - Fine-tuning.
Fine-tuning
Fine-tuning là quá trình điều chỉnh mô hình Generative AI để phù hợp với nhu cầu của doanh nghiệp. Thông qua việc tinh chỉnh, bạn có thể huấn luyện mô hình của mình sử dụng dữ liệu riêng của doanh nghiệp và thu thập thuật ngữ và từ ngữ chuyên ngành mà bạn thường sử dụng. Fine-tuning cho phép mô hình hiểu rõ hơn về ngữ cảnh và nâng cao khả năng thực hiện nhiệm vụ.
Sử dụng mô hình thay thế
Trước đây, để thực hiện một nhiệm vụ, chúng ta cần sử dụng từ ba đến năm mô hình khác nhau. Tuy nhiên, với Generative AI, chỉ một mô hình duy nhất có thể đảm nhận vai trò của tất cả những mô hình trước đây. Điều này giúp giảm thiểu sự phức tạp và tăng hiệu quả cho việc triển khai Generative AI trong doanh nghiệp.
Hệ sinh thái Generative AI
Generative AI không chỉ là một mô hình, nó còn là một hệ sinh thái. Có ba loại khách hàng chúng tôi hay thấy trong lĩnh vực này: nhà sản xuất, nhà cung cấp giải pháp và người dùng cuối. Nhà sản xuất là những công ty lớn như AI21, Deepset, và chúng đang cung cấp các mô hình cơ bản cho thị trường. Nhà cung cấp giải pháp sử dụng các mô hình cơ bản này để xây dựng các ứng dụng cụ thể cho khách hàng. Cuối cùng, người dùng cuối có thể là cá nhân hoặc doanh nghiệp sử dụng các ứng dụng Generative AI.
Hệ sinh thái Generative AI trên nền tảng AWS cung cấp nhiều lớp dịch vụ như Generative AI as a Service, Amazon CodeWhisper, Amazon Bedrock và Amazon SageMaker. Ngoài ra, bạn cũng có thể sử dụng các Frameworks machine learning khác như EC2, ECS và EKS để huấn luyện và triển khai mô hình Generative AI của mình.
Xây dựng ứng dụng Generative AI với Haystack
Haystack là một Framework NLP hoàn toàn mã nguồn mở được xây dựng trên Python. Nó sử dụng các thành phần tự đẩy để xây dựng các ứng dụng NLP. Haystack cho phép bạn linh hoạt kết hợp các thành phần này dựa trên loại ứng dụng NLP bạn muốn xây dựng.
Một trong những thành phần quan trọng của Haystack là bộ trích xuất (retriever) và bộ đọc (reader). Bộ đọc là một mô hình trích xuất, nhiệm vụ của nó là trích xuất câu trả lời dựa trên một đoạn văn bản cụ thể. Tuy nhiên, chúng ta muốn có khả năng tương tự với mô hình Generative AI để tạo ra những câu trả lời giống con người dựa trên thông tin được lưu trữ trong hệ thống.
Với Haystack, chúng ta có thể sử dụng một chiến lược gọi là "retrieval augmentation" để đạt được mục tiêu này. Chiến lược này cho phép chúng ta sử dụng bộ trích xuất để lấy thông tin cần thiết từ cơ sở dữ liệu và lồng vào trong yêu cầu của mô hình Generative AI để tạo ra những câu trả lời chính xác.
Xây dựng ứng dụng Generative AI quy mô lớn với Kubernetes
Việc xây dựng ứng dụng Generative AI quy mô lớn đòi hỏi khả năng xử lý công việc hàng triệu và thậm chí hàng trăm nghìn công việc. Điều này đặt ra một thách thức về tốc độ xử lý. Để đáp ứng yêu cầu này, chúng tôi sử dụng Kubernetes để tự động mở rộng và quản lý việc triển khai.
Trong quá trình xây dựng ứng dụng Generative AI quy mô lớn, chúng ta cần tải lên dữ liệu vào hệ thống. Hãy tưởng tượng chúng ta có hàng triệu tài liệu cần tải lên, việc này yêu cầu sự tăng trưởng liên tục và hiệu suất là rất quan trọng. Chúng ta có thể sử dụng công cụ như Kubernetes và AWS S3 để tải lên dữ liệu một cách nhanh chóng và tăng cường hiệu suất xử lý.
Sau đó, chúng ta cần xử lý các yêu cầu từ người dùng. Phương pháp "retrieval augmentation" được sử dụng ở đây, trong đó chúng ta tìm kiếm các tài liệu liên quan và sử dụng chúng như một ngữ cảnh để sinh câu trả lời từ mô hình Generative AI. Vì đây là quy trình yêu cầu tương tác nhanh, chúng ta cần sử dụng các tài nguyên GPU để đảm bảo hiệu suất và độ trễ thấp.
Để cấu hình và quản lý việc sử dụng GPU, chúng ta có thể sử dụng các thành phần như NVIDIA Device Plugin. Đồng thời, chúng ta cũng cần cấu hình Auto Scaling để đảm bảo hệ thống linh hoạt và tự động mở rộng dựa trên lưu lượng và tải của hệ thống.
Kết luận
Trong buổi hội thảo hôm nay, chúng ta đã tìm hiểu về Generative AI và sự quan tâm lớn đối với nó. Chúng ta đã thấy các ứng dụng thực tế của Generative AI và cách sử dụng nó trong doanh nghiệp. Chúng ta cũng đã được giới thiệu về các dịch vụ và công cụ của AWS để xây dựng và triển khai Generative AI.
Ngoài ra, chúng ta đã tìm hiểu về cách sử dụng Haystack để xây dựng ứng dụng Generative AI và cách xử lý công việc quy mô lớn sử dụng Kubernetes.
Hy vọng những kiến thức và thông tin chúng ta đã chia sẻ trong buổi hội thảo này sẽ giúp bạn hiểu rõ hơn về Generative AI và cách áp dụng nó trong doanh nghiệp của bạn.
Tài liệu tham khảo
- Generative AI on AWS: Link
- Haystack GitHub repository: Link
- OpenAI models from Deepset: Link
- NVIDIA Device Plugin for Kubernetes: Link