Xây dựng ứng dụng mô tả hình ảnh AI thế hệ mới với Claude 3.5 Sonnet của Anthropic trên Amazon Bedrock và AWS CDK
Giới thiệu
Việc tạo ra mô tả hình ảnh là một yêu cầu phổ biến trong các ứng dụng thuộc nhiều ngành nghề khác nhau. Một ví dụ điển hình là việc gắn thẻ hình ảnh với siêu dữ liệu mô tả để cải thiện khả năng tìm kiếm trong kho lưu trữ nội dung của tổ chức. Các nền tảng thương mại điện tử cũng sử dụng mô tả hình ảnh tự động tạo ra để cung cấp cho khách hàng thêm thông tin chi tiết về sản phẩm. Ngoài ra, chú thích hình ảnh mô tả còn giúp tăng cường khả năng tiếp cận cho người dùng khiếm thị.
Với những tiến bộ trong lĩnh vực trí tuệ nhân tạo (AI) thế hệ mới và các mô hình đa phương thức, việc tạo ra mô tả hình ảnh giờ đây đã trở nên đơn giản hơn. Amazon Bedrock cung cấp quyền truy cập vào họ mô hình Claude 3 của Anthropic, tích hợp các khả năng thị giác máy tính mới, cho phép Claude của Anthropic hiểu và phân tích hình ảnh. Điều này mở ra những khả năng mới cho tương tác đa phương thức. Tuy nhiên, việc xây dựng một ứng dụng trọn gói thường yêu cầu cơ sở hạ tầng đáng kể và làm chậm quá trình phát triển.
Kết hợp sức mạnh của Generative AI CDK Constructs và Amazon Bedrock
Generative AI CDK Constructs kết hợp với Amazon Bedrock mang đến một sự kết hợp mạnh mẽ để đẩy nhanh quá trình phát triển ứng dụng. Sự tích hợp này cung cấp các mẫu cơ sở hạ tầng và API có thể tái sử dụng, cho phép truy cập liền mạch vào các mô hình nền tảng (FM) tiên tiến từ Amazon và các công ty khởi nghiệp hàng đầu. Amazon Bedrock là một dịch vụ được quản lý đầy đủ, cung cấp sự lựa chọn các FM hiệu năng cao từ các công ty AI hàng đầu như AI21 Labs, Anthropic, Cohere, Meta, Mistral AI, Stability AI và Amazon thông qua một API duy nhất, cùng với một loạt các khả năng để xây dựng ứng dụng AI thế hệ mới với tính bảo mật, quyền riêng tư và AI có trách nhiệm. Generative AI CDK Constructs có thể đẩy nhanh quá trình phát triển ứng dụng bằng cách cung cấp các mẫu cơ sở hạ tầng có thể tái sử dụng, cho phép bạn tập trung thời gian và công sức vào các khía cạnh độc đáo của ứng dụng.
Bài viết này sẽ đi sâu vào quá trình xây dựng và triển khai một ứng dụng mẫu có khả năng tạo ra mô tả đa ngôn ngữ cho nhiều hình ảnh với giao diện người dùng (UI) Streamlit, AWS Lambda được hỗ trợ bởi Amazon Bedrock SDK, và AWS AppSync được điều khiển bởi Generative AI CDK Constructs mã nguồn mở.
Mô hình đa phương thức
Hệ thống AI đa phương thức là một loại AI tiên tiến có thể xử lý và phân tích dữ liệu từ nhiều phương thức cùng một lúc, bao gồm văn bản, hình ảnh, âm thanh và video. Không giống như các mô hình AI truyền thống được đào tạo trên một loại dữ liệu duy nhất, AI đa phương thức tích hợp các nguồn dữ liệu đa dạng để phát triển sự hiểu biết toàn diện hơn về thông tin phức tạp.
Claude 3 của Anthropic trên Amazon Bedrock là một mô hình đa phương thức hàng đầu với khả năng thị giác máy tính để phân tích hình ảnh và tạo ra đầu ra văn bản mô tả. Claude 3 của Anthropic rất giỏi trong việc diễn giải các tài sản trực quan phức tạp như biểu đồ, đồ thị, sơ đồ, báo cáo, và hơn thế nữa. Mô hình kết hợp thị giác máy tính với xử lý ngôn ngữ để cung cấp các bản tóm tắt văn bản sắc thái về thông tin chính được trích xuất từ hình ảnh. Điều này cho phép Claude 3 của Anthropic phát triển sự hiểu biết sâu hơn về dữ liệu trực quan so với AI một phương thức truyền thống.
Vào tháng 3 năm 2024, Amazon Bedrock đã cung cấp quyền truy cập vào họ mô hình Claude 3 của Anthropic. Ba mô hình trong họ này bao gồm Claude 3 Haiku (mô hình nhanh nhất và nhỏ gọn nhất cho khả năng phản hồi gần như tức thì), Claude 3 Sonnet (mô hình cân bằng lý tưởng giữa kỹ năng và tốc độ), và Claude 3 Opus (phiên bản thông minh nhất cho hiệu suất hàng đầu trong các tác vụ phức tạp). Vào tháng 6 năm 2024, Amazon Bedrock đã thông báo hỗ trợ cho Claude 3.5 của Anthropic. Ứng dụng mẫu trong bài viết này hỗ trợ Claude 3.5 Sonnet và cả ba mô hình Claude 3.
Generative AI CDK Constructs
Generative AI CDK Constructs, một phần mở rộng của AWS Cloud Development Kit (AWS CDK), là một khung phát triển mã nguồn mở để định nghĩa cơ sở hạ tầng đám mây dưới dạng mã (IaC) và triển khai nó thông qua AWS CloudFormation.
Các Construct là các khối xây dựng cơ bản của ứng dụng AWS CDK. Thư viện AWS Construct phân loại các construct thành ba cấp độ: Cấp độ 1 (construct cấp thấp nhất không có trừu tượng hóa), Cấp độ 2 (ánh xạ trực tiếp đến các tài nguyên AWS CloudFormation đơn lẻ), và Cấp độ 3 (các mẫu có mức trừu tượng hóa cao nhất).
Thư viện Generative AI CDK Constructs cung cấp các khối xây dựng mô-đun để tích hợp liền mạch các dịch vụ và tài nguyên AWS vào các giải pháp sử dụng khả năng AI thế hệ mới. Bằng cách sử dụng Amazon Bedrock để truy cập FM và kết hợp với các dịch vụ AWS không máy chủ như Lambda và AWS AppSync, các construct AWS CDK này đơn giản hóa quá trình lắp ráp cơ sở hạ tầng đám mây cho AI thế hệ mới. Bạn có thể cấu hình và triển khai các giải pháp một cách nhanh chóng để tạo nội dung bằng cách sử dụng các trừu tượng hóa trực quan. Cách tiếp cận này giúp tăng năng suất và giảm thời gian đưa ra thị trường cho việc cung cấp các ứng dụng sáng tạo được hỗ trợ bởi những tiến bộ mới nhất trong AI thế hệ mới trên AWS Cloud.
Tổng quan về giải pháp
Ứng dụng mẫu trong bài viết này sử dụng construct aws-summarization-appsync-stepfn
từ thư viện Generative AI CDK Constructs. Construct aws-summarization-appsync-stepfn
cung cấp một kiến trúc không máy chủ sử dụng AWS AppSync, AWS Step Functions và Amazon EventBridge để cung cấp dịch vụ tóm tắt hình ảnh không đồng bộ. Construct này cung cấp một giải pháp có khả năng mở rộng và dựa trên sự kiện để xử lý và tạo mô tả cho tài sản hình ảnh.
AWS AppSync đóng vai trò là điểm nhập cảnh, hiển thị API GraphQL cho phép khách hàng khởi tạo yêu cầu tóm tắt và mô tả hình ảnh. API sử dụng các đột biến đăng ký, cho phép chạy không đồng bộ các yêu cầu. Sự tách rời này thúc đẩy các thực tiễn tốt nhất cho các hệ thống dựa trên sự kiện, kết hợp lỏng lẻo.
EventBridge đóng vai trò là bus sự kiện, tạo điều kiện cho việc giao tiếp giữa AWS AppSync và Step Functions. Khi khách hàng gửi yêu cầu thông qua API GraphQL, một sự kiện sẽ được phát ra đến EventBridge, kích hoạt một lần chạy của luồng công việc Step Functions.
Step Functions dàn dựng việc chạy của ba hàm Lambda, mỗi hàm chịu trách nhiệm cho một tác vụ cụ thể trong quá trình tóm tắt hình ảnh:
- Bộ xác thực đầu vào: Hàm Lambda này thực hiện xác thực đầu vào, đảm bảo rằng các yêu cầu được cung cấp tuân thủ định dạng mong đợi. Nó cũng xử lý việc tải lên các tài sản hình ảnh đầu vào lên xô Amazon Simple Storage Service (Amazon S3) được chỉ định cho các tài sản thô.
- Bộ đọc tài liệu: Hàm Lambda này truy xuất các tài sản hình ảnh thô từ xô tài sản đầu vào, thực hiện kiểm tra điều tiết hình ảnh bằng Amazon Rekognition, và tải lên các tài sản đã xử lý lên một xô S3 được chỉ định cho các tệp đã được chuyển đổi. Sự tách biệt giữa các tài sản thô và đã xử lý tạo điều kiện cho việc kiểm toán và quản lý phiên bản.
- Tạo tóm tắt: Hàm Lambda này tạo ra một bản tóm tắt văn bản hoặc mô tả cho các tài sản hình ảnh đã được xử lý, sử dụng các mô hình học máy (ML) hoặc các kỹ thuật phân tích hình ảnh khác.
Bộ dàn dựng luồng công việc Step Functions sử dụng trạng thái Map, cho phép chạy song song nhiều tài sản hình ảnh. Khả năng xử lý đồng thời này cung cấp tối ưu hóa sử dụng tài nguyên và giảm thiểu độ trễ, mang đến một giải pháp tóm tắt hình ảnh có khả năng mở rộng và hiệu quả cao.
Amazon Cognito xử lý xác thực và ủy quyền người dùng, cung cấp quản lý truy cập bảo mật và dịch vụ nhận dạng cho người dùng của ứng dụng. Điều này đảm bảo rằng chỉ những người dùng đã được xác thực và ủy quyền mới có thể truy cập và tương tác với dịch vụ tóm tắt hình ảnh. Giải pháp tích hợp các tính năng khả năng quan sát thông qua tích hợp với Amazon CloudWatch và AWS X-Ray.
Giao diện người dùng (UI) cho ứng dụng được triển khai bằng cách sử dụng khung mã nguồn mở Streamlit, cung cấp trải nghiệm hiện đại và phản hồi nhanh cho việc tương tác với dịch vụ tóm tắt hình ảnh. Bạn có thể truy cập mã nguồn của dự án trong kho lưu trữ GitHub công khai.
Kiến trúc và luồng công việc
Hình sau đây hiển thị kiến trúc để cung cấp trường hợp sử dụng này:
[Hình minh họa kiến trúc]
Luồng công việc để tạo mô tả hình ảnh bao gồm các bước sau:
- Người dùng tải lên hình ảnh đầu vào vào một xô S3 được chỉ định cho tài sản đầu vào.
- Việc tải lên kích hoạt API đột biến tóm tắt hình ảnh được hiển thị bởi AWS AppSync. Điều này sẽ khởi tạo luồng công việc không máy chủ.
- AWS AppSync xuất bản một sự kiện đến EventBridge để kích hoạt bước tiếp theo trong luồng công việc.
- EventBridge định tuyến sự kiện đến một máy trạng thái Step Functions.
- Máy trạng thái Step Functions gọi một hàm Lambda xác thực các tham số yêu cầu đầu vào.
- Sau khi xác thực thành công, máy trạng thái Step Functions gọi một hàm Lambda bộ đọc tài liệu. Hàm này chạy kiểm tra điều tiết hình ảnh bằng Amazon Rekognition. Nếu không phát hiện nội dung không an toàn hoặc rõ ràng, nó sẽ đẩy hình ảnh vào một xô tài sản đã chuyển đổi S3.
- Một hàm Lambda tạo tóm tắt được gọi, hàm này đọc hình ảnh đã được chuyển đổi. Nó sử dụng thư viện Amazon Bedrock để gọi mô hình Anthropic’s Claude 3 Sonnet, chuyển các byte hình ảnh làm đầu vào.
- Anthropic’s Claude 3 Sonnet tạo ra một mô tả văn bản cho hình ảnh đầu vào.
- Bộ tạo tóm tắt xuất bản mô tả được tạo ra thông qua đăng ký AWS AppSync. Ứng dụng UI Streamlit lắng nghe các sự kiện từ đăng ký này và hiển thị mô tả được tạo ra cho người dùng sau khi nhận được.
Hình minh họa luồng công việc của máy trạng thái Step Functions:
[Hình minh họa luồng công việc Step Functions]
Điều kiện tiên quyết
Để triển khai giải pháp này, bạn cần đáp ứng các điều kiện tiên quyết sau:
- Tài khoản AWS
- AWS Command Line Interface (AWS CLI) được cài đặt và cấu hình thông tin đăng nhập của bạn:
aws configure --profile [your-profile]
AWS Access Key ID [None]: xxxxxx
AWS Secret Access Key [None]:yyyyyyyyyy
Default region name [None]: us-east-1
Default output format [None]: json
- Node.js phiên bản v18.12.1
- Python phiên bản 3.9 trở lên
- AWS CDK phiên bản 2.68.0
- jq phiên bản jq-1.6
- Docker desktop được cài đặt
Xây dựng và triển khai giải pháp
Thực hiện các bước sau để thiết lập giải pháp:
- Clone kho lưu trữ GitHub:
git clone https://github.com/aws-samples/generative-ai-cdk-constructs-samples.git
- Chuyển đến thư mục giải pháp mẫu:
cd samples/image-description
- Cập nhật biến
stage
thành một giá trị duy nhất:
cd lib
const stage= <Unique value>
- Cài đặt tất cả các phụ thuộc:
npm install
- Khởi tạo tài nguyên AWS CDK trên tài khoản AWS. Thay thế
ACCOUNT_ID
vàREGION
bằng giá trị của riêng bạn:
cdk bootstrap aws://ACCOUNT_ID/REGION
- Triển khai giải pháp:
cdk deploy
Lệnh trên sẽ triển khai stack trong tài khoản của bạn. Việc triển khai sẽ mất khoảng 5 phút để hoàn tất.
- Cấu hình
client_app
:
cd client_app
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
- Trong thư mục
/client_app
, tạo một tệp mới có tên.env
với nội dung sau. Thay thế giá trị thuộc tính bằng giá trị lấy được từ đầu ra stack.
COGNITO_DOMAIN="<ImageDescriptionStack.CognitoDomain>"
REGION="<ImageDescriptionStack.Region>"
USER_POOL_ID="<ImageDescriptionStack.UserPoolId>"
CLIENT_ID="<ImageDescriptionStack.ClientId>"
CLIENT_SECRET="COGNITO_CLIENT_SECRET"
IDENTITY_POOL_ID="<ImageDescriptionStack.IdentityPoolId>"
APP_URI="http://localhost:8501/"
AUTHENTICATED_ROLE_ARN="<ImageDescriptionStack.AuthenticatedRoleArn>"
GRAPHQL_ENDPOINT = "<ImageDescriptionStack.GraphQLEndpoint>"
S3_INPUT_BUCKET = "<ImageDescriptionStack.InputsAssetsBucket>"
S3_PROCESSED_BUCKET = "<ImageDescriptionStack.processedAssetsBucket>"
COGNITO_CLIENT_SECRET
là một giá trị bí mật có thể được lấy từ bảng điều khiển Amazon Cognito. Điều hướng đến nhóm người dùng được tạo bởi stack. Trong Tích hợp ứng dụng, điều hướng đến Ứng dụng khách và phân tích, và chọn Tên ứng dụng khách. Trong Thông tin ứng dụng khách, chọn Hiển thị bí mật khách hàng và sao chép giá trị của bí mật khách hàng.
- Chạy
client_app
:
streamlit run Home.py
Khi ứng dụng khách đang hoạt động, nó sẽ mở cổng trình duyệt 8501 (http://localhost:8501/Home).
Kiểm thử giải pháp
Để kiểm thử giải pháp, chúng ta tải lên một số hình ảnh mẫu và tạo ra các mô tả trong các ứng dụng khác nhau. Thực hiện các bước sau:
- Trong UI Streamlit, chọn Đăng nhập và đăng ký người dùng lần đầu tiên. [Hình minh họa trang đăng nhập]
- Sau khi người dùng được đăng ký và đăng nhập, chọn Mô tả hình ảnh trong ngăn điều hướng. [Hình minh họa trang chủ]
- Tải lên nhiều hình ảnh và chọn cấu hình mô hình ưa thích (Anthropic’s Claude 3.5 Sonnet hoặc Anthropic’s Claude 3), sau đó chọn Gửi. [Hình minh họa trang tải lên hình ảnh] Hình ảnh được tải lên và mô tả được tạo ra sẽ được hiển thị trong ngăn giữa.
- Đặt ngôn ngữ thành tiếng Pháp trong ngăn bên trái và tải lên một hình ảnh mới, sau đó chọn Gửi. [Hình minh họa trang hiển thị mô tả bằng tiếng Pháp] Mô tả hình ảnh được tạo ra bằng tiếng Pháp.
Dọn dẹp
Để tránh phát sinh phí không mong muốn, hãy xóa các tài nguyên bạn đã tạo:
- Xóa tất cả dữ liệu khỏi các xô S3.
- Chạy
CDK destroy
. - Xóa các xô S3.
Kết luận
Bài viết này đã thảo luận về cách tích hợp Amazon Bedrock với Generative AI CDK Constructs. Giải pháp này cho phép phát triển và triển khai nhanh chóng cơ sở hạ tầng đám mây được điều chỉnh cho ứng dụng mô tả hình ảnh bằng cách sử dụng sức mạnh của AI thế hệ mới, đặc biệt là Claude 3 của Anthropic. Generative AI CDK Constructs trừu tượng hóa các phức tạp của cơ sở hạ tầng, do đó giúp đẩy nhanh tiến độ phát triển.
Thư viện Generative AI CDK Constructs cung cấp một bộ construct toàn diện, trao quyền cho các nhà phát triển để tăng cường và nâng cao khả năng AI thế hệ mới trong ứng dụng của họ, mở ra vô vàn khả năng cho sự đổi mới.

0 comments Blogger 0 Facebook
Đăng nhận xét