Việc xác định văn bản được diễn giải có giá trị kinh doanh trong nhiều trường hợp sử dụng. Ví dụ: bằng cách xác định các cách diễn giải câu, một hệ thống tóm tắt văn bản có thể loại bỏ thông tin dư thừa. Một ứng dụng khác là xác định các tài liệu đạo văn. Trong bài đăng này, chúng tôi tinh chỉnh một Ôm mặt bật máy biến áp Amazon SageMaker để xác định các cặp câu được diễn giải trong một vài bước.
Một mô hình thực sự mạnh mẽ có thể xác định văn bản được diễn giải khi ngôn ngữ được sử dụng có thể hoàn toàn khác và cũng xác định được sự khác biệt khi ngôn ngữ được sử dụng có mức độ trùng lặp từ vựng cao. Trong bài đăng này, chúng tôi tập trung vào khía cạnh thứ hai. Cụ thể, chúng tôi xem liệu chúng tôi có thể đào tạo một mô hình có thể xác định sự khác biệt giữa hai câu có mức độ trùng lặp từ vựng cao và nghĩa rất khác nhau hoặc trái ngược nhau hay không. Ví dụ: các câu sau đây có cùng từ giống hệt nhau nhưng nghĩa trái ngược nhau:
- Tôi đáp chuyến bay từ New York đến Paris
- Tôi đáp chuyến bay từ Paris đến New York
Tổng quan về giải pháp
Chúng tôi hướng dẫn bạn qua các bước cấp cao sau:
- Thiết lập môi trường.
- Chuẩn bị dữ liệu.
- Mã hóa tập dữ liệu.
- Tinh chỉnh mô hình.
- Triển khai mô hình và thực hiện suy luận.
- Đánh giá hiệu quả mô hình.
Nếu bạn muốn bỏ qua việc thiết lập môi trường, bạn có thể sử dụng sổ ghi chép sau trên GitHub và chạy mã trong SageMaker.
Hugging Face và AWS đã công bố mối quan hệ hợp tác vào đầu năm 2022 để giúp việc đào tạo các mô hình Hugging Face trên SageMaker trở nên dễ dàng hơn. Chức năng này có sẵn thông qua sự phát triển của Hugging Face Bộ chứa AWS Deep Learning (DLC). Các thùng chứa này bao gồm Máy biến áp ôm mặt, Mã thông báo và thư viện Bộ dữ liệu, cho phép chúng tôi sử dụng các tài nguyên này cho các công việc đào tạo và suy luận. Để biết danh sách các hình ảnh DLC có sẵn, hãy xem Hình ảnh các thùng chứa Deep Learning có sẵn. Chúng được bảo trì và cập nhật thường xuyên với các bản vá bảo mật. Bạn có thể tìm thấy nhiều ví dụ về cách huấn luyện mô hình Mặt ôm với các DLC này và Ôm Face Python SDK trong những điều sau đây Repo GitHub.
Bộ dữ liệu PAWS
Nhận thấy việc thiếu các bộ dữ liệu cặp câu hiệu quả thể hiện sự trùng lặp từ vựng cao mà không phải là diễn giải, bản gốc bàn chân bộ dữ liệu được phát hành vào năm 2019 nhằm cung cấp cho cộng đồng xử lý ngôn ngữ tự nhiên (NLP) một nguồn tài nguyên mới để đào tạo và đánh giá các mô hình phát hiện diễn giải. Các cặp câu PAWS được tạo theo hai bước bằng cách sử dụng Wikipedia và Cặp câu hỏi Quora (QQP) bộ dữ liệu. Đầu tiên, một mô hình ngôn ngữ hoán đổi các từ trong một cặp câu với cùng một Túi từ (BOW) để tạo ra một cặp câu. Sau đó, bước dịch ngược sẽ tạo ra các phiên bản có độ trùng lặp BOW cao nhưng sử dụng một trật tự từ khác. Bộ dữ liệu PAWS cuối cùng chứa tổng cộng 108,000 cặp được gắn nhãn con người và 656,000 cặp được dán nhãn ồn ào.
Trong bài đăng này, chúng tôi sử dụng PAWS-Wiki được gắn nhãn (Bản chính thức) tập dữ liệu từ Hugging Face. Hugging Face đã thực hiện phân tách dữ liệu cho chúng tôi, kết quả là có 49,000 cặp câu trong tập dữ liệu huấn luyện và 8,000 cặp câu cho mỗi cặp đối với tập dữ liệu kiểm tra và xác thực. Hai ví dụ về cặp câu từ tập dữ liệu huấn luyện được hiển thị trong ví dụ sau. Nhãn 1 chỉ ra rằng hai câu là diễn giải của nhau.
Câu 1 | Câu 2 | nhãn |
Dù hoán đổi cho nhau nhưng các chi tiết thân vỏ trên 2 xe không giống nhau. | Tuy giống nhau nhưng các bộ phận trên thân xe không thể hoán đổi cho nhau. | 0 |
Katz sinh ra ở Thụy Điển vào năm 1947 và chuyển đến thành phố New York khi mới 1 tuổi. | Katz sinh năm 1947 tại Thụy Điển và chuyển đến New York khi mới một tuổi. | 1 |
Điều kiện tiên quyết
Bạn cần hoàn thành các điều kiện tiên quyết sau:
- Đăng ký tài khoản AWS nếu bạn chưa có. Để biết thêm thông tin, xem Thiết lập điều kiện tiên quyết của Amazon SageMaker.
- Bắt đầu sử dụng Các phiên bản máy tính xách tay SageMaker.
- Thiết lập quyền Quản lý truy cập và nhận dạng AWS (IAM) quyền. Để biết thêm thông tin, xem Vai trò của SageMaker.
Thiết lập môi trường
Trước khi bắt đầu kiểm tra và chuẩn bị dữ liệu để tinh chỉnh mô hình, chúng ta cần thiết lập môi trường của mình. Hãy bắt đầu bằng cách tạo một phiên bản sổ ghi chép SageMaker. Chọn một Khu vực AWS trong tài khoản AWS của bạn và làm theo hướng dẫn để tạo một phiên bản sổ ghi chép SageMaker. Phiên bản sổ ghi chép có thể mất vài phút để khởi động.
Khi phiên bản sổ ghi chép đang chạy, hãy chọn conda_pytorch_p38
như loại hạt nhân của bạn. Để sử dụng bộ dữ liệu Hugging Face, trước tiên chúng ta cần cài đặt và nhập thư viện Hugging Face:
Tiếp theo, hãy thiết lập phiên SageMaker. Chúng tôi sử dụng mặc định Dịch vụ lưu trữ đơn giản của Amazon (Amazon S3) được liên kết với phiên SageMaker để lưu trữ tập dữ liệu PAWS và các tạo phẩm mô hình:
Chuẩn bị dữ liệu
Chúng tôi có thể tải phiên bản Hugging Face của bộ dữ liệu PAWS với load_dataset()
yêu cầu. Cuộc gọi này tải xuống và nhập tập lệnh xử lý PAWS Python từ kho lưu trữ Hugging Face GitHub, sau đó tải xuống tập dữ liệu PAWS từ URL gốc được lưu trữ trong tập lệnh và lưu trữ dữ liệu dưới dạng bảng Mũi tên trên ổ đĩa. Xem đoạn mã sau:
Trước khi chúng tôi bắt đầu tinh chỉnh mô hình BERT được đào tạo trước của mình, hãy xem phân phối lớp mục tiêu của chúng tôi. Đối với trường hợp sử dụng của chúng tôi, bộ dữ liệu PAWS có nhãn nhị phân (0 cho biết cặp câu không phải là cách diễn giải và 1 cho biết nó đúng như vậy). Hãy tạo một biểu đồ cột để xem phân phối lớp, như được hiển thị trong đoạn mã sau. Chúng tôi thấy rằng có một vấn đề nhỏ về mất cân bằng lớp trong tập huấn luyện của chúng tôi (56% mẫu âm tính so với 44% mẫu dương tính). Tuy nhiên, sự mất cân bằng đủ nhỏ để tránh sử dụng các kỹ thuật giảm thiểu sự mất cân bằng lớp.
Token hóa tập dữ liệu
Trước khi chúng tôi có thể bắt đầu tinh chỉnh, chúng tôi cần mã hóa tập dữ liệu của mình. Để bắt đầu, giả sử chúng ta muốn tinh chỉnh và đánh giá roberta-base
máy biến thế. chúng tôi đã chọn roberta-base
bởi vì nó là một máy biến áp đa năng đã được đào tạo trước trên một kho dữ liệu tiếng Anh lớn và thường cho thấy hiệu suất cao trong nhiều nhiệm vụ NLP. Mô hình ban đầu được giới thiệu trong bài báo RoBERTa: Phương pháp tiếp cận tiền đào tạo BERT được tối ưu hóa mạnh mẽ.
Chúng tôi thực hiện mã thông báo trên các câu với một roberta-base
mã thông báo từ Hugging Face, sử dụng Mã hóa cặp byte cấp byte để chia tài liệu thành mã thông báo. Để biết thêm chi tiết về RoBERTa tokenizer, hãy tham khảo RobertaTokenizer. Vì đầu vào của chúng tôi là các cặp câu nên chúng tôi cần mã hóa đồng thời cả hai câu. Vì hầu hết các mô hình BERT đều yêu cầu đầu vào có độ dài đầu vào được mã hóa cố định, nên chúng tôi đặt các tham số sau: max_len=128
và truncation=True
. Xem mã sau đây:
Bước tiền xử lý cuối cùng để tinh chỉnh mô hình BERT của chúng tôi là chuyển đổi tập dữ liệu xác thực và đào tạo được mã hóa thành các tenxơ PyTorch và tải chúng lên bộ chứa S3 của chúng tôi:
Tinh chỉnh mô hình
Bây giờ chúng tôi đã hoàn tất việc chuẩn bị dữ liệu, chúng tôi đã sẵn sàng tinh chỉnh roberta-base
mô hình về nhiệm vụ xác định diễn giải. Chúng ta có thể sử dụng lớp Công cụ ước tính khuôn mặt ôm SageMaker để bắt đầu quá trình tinh chỉnh theo hai bước. Bước đầu tiên là chỉ định các siêu tham số đào tạo và định nghĩa số liệu. Biến định nghĩa chỉ số cho Công cụ ước tính khuôn mặt ôm những loại chỉ số cần trích xuất từ nhật ký đào tạo của mô hình. Ở đây, chúng tôi chủ yếu quan tâm đến việc trích xuất các chỉ số của bộ xác thực ở mỗi giai đoạn đào tạo.
Bước thứ hai là khởi tạo Công cụ ước tính khuôn mặt ôm và bắt đầu quá trình tinh chỉnh với .fit()
phương pháp:
Quá trình tinh chỉnh mất khoảng 30 phút bằng cách sử dụng các siêu tham số được chỉ định.
Triển khai mô hình và thực hiện suy luận
SageMaker cung cấp nhiều tùy chọn triển khai tùy thuộc vào trường hợp sử dụng của bạn. Đối với các điểm cuối thời gian thực, liên tục đưa ra một dự đoán tại một thời điểm, chúng tôi khuyên bạn nên sử dụng Dịch vụ lưu trữ thời gian thực của SageMaker. Nếu bạn có khối lượng công việc có thời gian nhàn rỗi giữa các lần tăng lưu lượng truy cập và có thể chịu được khởi động nguội, chúng tôi khuyên bạn nên sử dụng Suy luận không máy chủ. Điểm cuối serverless tự động khởi chạy tài nguyên điện toán và thay đổi quy mô tùy thuộc vào lưu lượng truy cập, loại bỏ nhu cầu chọn loại phiên bản hoặc quản lý chính sách thay đổi quy mô. Chúng tôi trình bày cách triển khai mô hình Hugging Face tinh chỉnh của chúng tôi cho cả điểm cuối suy luận thời gian thực và điểm cuối Suy luận không có máy chủ.
Triển khai đến điểm cuối suy luận thời gian thực
Bạn có thể triển khai một đối tượng đào tạo lên lưu trữ suy luận thời gian thực trong SageMaker bằng cách sử dụng .deploy()
phương pháp. Để biết danh sách đầy đủ các tham số được chấp nhận, hãy tham khảo Người mẫu ôm mặt. Để bắt đầu, hãy triển khai mô hình cho một phiên bản, bằng cách chuyển vào các tham số sau: initial_instance_count
, instance_type
và endpoint_name
. Xem mã sau đây:
Mô hình mất vài phút để triển khai. Sau khi mô hình được triển khai, chúng tôi có thể gửi các bản ghi mẫu từ tập dữ liệu thử nghiệm chưa nhìn thấy đến điểm cuối để suy luận.
Triển khai đến điểm cuối Serverless Inference
Để triển khai đối tượng đào tạo của chúng tôi lên một điểm cuối không có máy chủ, trước tiên chúng tôi cần chỉ định tệp cấu hình không có máy chủ với memory_size_in_mb
và max_concurrency
tranh luận:
memory_size_in_mb
xác định tổng kích thước RAM của điểm cuối serverless của bạn; kích thước RAM tối thiểu là 1024 MB (1 GB) và nó có thể mở rộng tối đa 6144 MB (6 GB). Nói chung, bạn nên đặt mục tiêu chọn kích thước bộ nhớ ít nhất lớn bằng kích thước mô hình của bạn. max_concurrency
xác định hạn ngạch cho số lượng lệnh gọi đồng thời có thể được xử lý cùng lúc (tối đa 50 lệnh gọi đồng thời) cho một điểm cuối.
Chúng tôi cũng cần cung cấp URI hình ảnh suy luận Hugging Face mà bạn có thể truy xuất bằng cách sử dụng mã sau:
Bây giờ chúng ta có tệp cấu hình serverless, chúng ta có thể tạo một điểm cuối serverless theo cách giống như điểm cuối suy luận thời gian thực của chúng ta, bằng cách sử dụng .deploy()
phương pháp:
Điểm cuối sẽ được tạo trong vài phút.
Thực hiện suy luận mô hình
Để đưa ra dự đoán, chúng ta cần tạo cặp câu bằng cách thêm [CLS]
và [SEP]
mã thông báo đặc biệt và sau đó gửi đầu vào đến các điểm cuối của mô hình. Cú pháp cho suy luận thời gian thực và suy luận không có máy chủ giống nhau:
Qua các ví dụ sau, chúng ta có thể thấy mô hình có khả năng phân loại chính xác cặp câu đầu vào có chứa câu được diễn giải hay không.
Sau đây là một ví dụ suy luận thời gian thực.
Sau đây là một ví dụ về Serverless Inference.
Đánh giá hiệu suất mô hình
Để đánh giá mô hình, hãy mở rộng mã trước đó và gửi tất cả 8,000 bản ghi thử nghiệm chưa từng thấy tới điểm cuối thời gian thực:
Tiếp theo, chúng ta có thể tạo báo cáo phân loại bằng các dự đoán được trích xuất:
Chúng tôi nhận được điểm kiểm tra sau đây.
Chúng ta có thể quan sát rằng roberta-base
có điểm F1 trung bình vĩ mô kết hợp là 92% và hoạt động tốt hơn một chút trong việc phát hiện các câu là diễn giải. Các roberta-base
mô hình hoạt động tốt, nhưng bạn nên tính toán hiệu suất mô hình bằng cách sử dụng ít nhất một mô hình khác.
Bảng sau so sánh roberta-base
kết quả hiệu suất trên cùng một bộ thử nghiệm đối với một máy biến áp tinh chỉnh khác được gọi là paraphrase-mpnet-base-v2
, một biến thể câu được đào tạo trước đặc biệt cho nhiệm vụ xác định cụm từ diễn giải. Cả hai mô hình đều được đào tạo trên phiên bản ml.p3.8xlarge.
Kết quả cho thấy rằng roberta-base
có điểm F1 cao hơn 1% với thời gian đào tạo và suy luận rất giống nhau khi sử dụng dịch vụ lưu trữ suy luận thời gian thực trên SageMaker. Tuy nhiên, sự khác biệt về hiệu suất giữa các mô hình là tương đối nhỏ, roberta-base
cuối cùng là người chiến thắng vì nó có chỉ số hiệu suất tốt hơn một chút và thời gian đào tạo và suy luận gần như giống hệt nhau.
Độ chính xác | Nhớ lại | Điểm F1 | Thời gian đào tạo (có tính phí) | Thời gian suy luận (bộ kiểm tra đầy đủ) | |
cơ sở roberta | 0.92 | 0.93 | 0.92 | 18 phút | 2 phút |
diễn giải-mpnet- cơ sở-v2 |
0.92 | 0.91 | 0.91 | 17 phút | 2 phút |
Làm sạch
Khi sử dụng xong các điểm cuối của mô hình, bạn có thể xóa chúng để tránh phát sinh phí trong tương lai:
Kết luận
Trong bài đăng này, chúng tôi đã thảo luận về cách xây dựng nhanh mô hình nhận dạng diễn giải bằng cách sử dụng máy biến áp Hugging Face trên SageMaker. Chúng tôi tinh chỉnh hai máy biến áp được đào tạo trước, roberta-base
và paraphrase-mpnet-base-v2
, sử dụng tập dữ liệu PAWS (chứa các cặp câu có mức độ trùng lặp từ vựng cao). Chúng tôi đã trình diễn và thảo luận về các lợi ích của việc triển khai suy luận theo thời gian thực so với việc triển khai Suy luận không có máy chủ, tính năng sau này là một tính năng mới nhằm vào các khối lượng công việc tăng đột biến và loại bỏ nhu cầu quản lý các chính sách mở rộng quy mô. Trong một bộ thử nghiệm chưa từng thấy với 8,000 bản ghi, chúng tôi đã chứng minh rằng cả hai mẫu xe đều đạt được điểm F1 cao hơn 90%.
Để mở rộng giải pháp này, hãy xem xét những điều sau:
- Hãy thử tinh chỉnh với tập dữ liệu tùy chỉnh của riêng bạn. Nếu không có đủ nhãn đào tạo, bạn có thể đánh giá hiệu suất của mô hình tinh chỉnh giống như mô hình được trình bày trong bài đăng này trên tập dữ liệu thử nghiệm tùy chỉnh.
- Tích hợp mô hình tinh chỉnh này vào một ứng dụng hạ nguồn yêu cầu thông tin về việc liệu hai câu (hoặc khối văn bản) có phải là diễn giải của nhau hay không.
Chúc bạn xây dựng vui vẻ!
Về các tác giả
Bala Krishnamoorthy là Nhà khoa học dữ liệu của Dịch vụ chuyên nghiệp AWS, nơi anh thích áp dụng công nghệ máy học để giải quyết các vấn đề kinh doanh của khách hàng. Anh ấy chuyên về các trường hợp sử dụng xử lý ngôn ngữ tự nhiên và đã làm việc với khách hàng trong các ngành như phần mềm, tài chính và chăm sóc sức khỏe. Trong thời gian rảnh rỗi, anh ấy thích thử những món ăn mới, xem phim hài và phim tài liệu, tập luyện tại Orange Theory và ở trên mặt nước (chèo ván, lặn với ống thở và hy vọng sẽ sớm lặn).
Ivan Cui là Nhà khoa học dữ liệu của Dịch vụ Chuyên nghiệp AWS, nơi anh ấy giúp khách hàng xây dựng và triển khai các giải pháp sử dụng máy học trên AWS. Ông đã làm việc với khách hàng trong nhiều ngành khác nhau, bao gồm phần mềm, tài chính, dược phẩm và chăm sóc sức khỏe. Khi rảnh rỗi, anh ấy thích đọc sách, dành thời gian cho gia đình và tối đa hóa danh mục đầu tư chứng khoán của mình.
- Coinsmart. Sàn giao dịch Bitcoin và tiền điện tử tốt nhất Châu Âu.
- Platoblockchain. Web3 Metaverse Intelligence. Khuếch đại kiến thức. TRUY CẬP MIỄN PHÍ.
- CryptoHawk. Radar Altcoin. Dùng thử miễn phí.
- Nguồn: https://aws.amazon.com/bloss/machine-learning/identify-paraphrased-text-with-hugging-face-on-amazon-sagemaker/
- '
- "
- 000
- 10
- 100
- 2019
- 2022
- 84
- Giới thiệu
- truy cập
- Tài khoản
- đạt được
- ngang qua
- Tất cả
- Đã
- đàn bà gan dạ
- công bố
- Một
- Các Ứng Dụng
- Nộp đơn
- khoảng
- đối số
- có sẵn
- AWS
- được
- Lợi ích
- thân hình
- biên giới
- xây dựng
- kinh doanh
- cuộc gọi
- có khả năng
- xe ô tô
- trường hợp
- tải
- Chọn
- City
- tốt nghiệp lớp XNUMX
- phân loại
- mã
- Cột
- kết hợp
- cộng đồng
- hoàn toàn
- Tính
- sự tự tin
- Container
- chứa
- có thể
- tạo
- tạo ra
- khách hàng
- khách hàng
- khách hàng
- dữ liệu
- nhà khoa học dữ liệu
- chứng minh
- chứng minh
- Tùy
- triển khai
- triển khai
- triển khai
- chi tiết
- Phát hiện
- Phát triển
- khác nhau
- phân phối
- phim tài liệu
- tài liệu
- Tải xuống
- lái xe
- hiệu quả
- Điểm cuối
- Tiếng Anh
- Môi trường
- thành lập
- đánh giá
- ví dụ
- triển lãm
- Mở rộng
- Đối mặt
- gia đình
- Đặc tính
- tài chính
- Tên
- chuyến bay
- Tập trung
- theo
- tiếp theo
- thực phẩm
- Miễn phí
- Full
- chức năng
- chức năng
- tương lai
- mục đích chung
- nói chung
- tạo ra
- GitHub
- tốt
- lớn hơn
- chăm sóc sức khỏe
- cao
- giúp
- tại đây
- Cao
- cao hơn
- lưu trữ
- Độ đáng tin của
- Hướng dẫn
- HTTPS
- Xác định
- xác định
- xác định
- Bản sắc
- hình ảnh
- bao gồm
- Bao gồm
- các ngành công nghiệp
- thông tin
- đầu vào
- cài đặt, dựng lên
- quan tâm
- vấn đề
- IT
- việc làm
- Nhãn
- Ngôn ngữ
- lớn
- phóng
- học tập
- Thư viện
- Danh sách
- tải
- máy
- học máy
- LÀM CHO
- quản lý
- Bộ nhớ
- Metrics
- ML
- kiểu mẫu
- mô hình
- chi tiết
- hầu hết
- nhiều
- Tự nhiên
- tiêu cực
- Newyork
- thành phố new york
- máy tính xách tay
- Cung cấp
- tối ưu hóa
- Các lựa chọn
- gọi món
- Nền tảng khác
- riêng
- Giấy
- paris
- Công ty
- Đi qua
- Các bản vá lỗi
- hiệu suất
- kinh nguyệt
- Dược phẩm
- Điểm
- Chính sách
- danh mục đầu tư
- tích cực
- thực hành
- dự đoán
- Dự đoán
- vấn đề
- quá trình
- xử lý
- chuyên nghiệp
- cho
- câu hỏi
- Quora
- RAM
- rand
- Reading
- thời gian thực
- giới thiệu
- hồ sơ
- phát hành
- báo cáo
- kho
- yêu cầu
- tài nguyên
- Thông tin
- Kết quả
- trở lại
- chạy
- chạy
- Quy mô
- mở rộng quy mô
- Nhà khoa học
- an ninh
- chọn
- Không có máy chủ
- DỊCH VỤ
- định
- thiết lập
- tương tự
- Đơn giản
- Kích thước máy
- nhỏ
- Phần mềm
- rắn
- giải pháp
- Giải pháp
- động SOLVE
- đặc biệt
- chuyên
- đặc biệt
- Chi
- Quay
- chia
- Bắt đầu
- bắt đầu
- bắt đầu
- cổ phần
- là gắn
- hàng
- Sau đó
- cung cấp
- Thụy Điển
- hệ thống
- Mục tiêu
- nhiệm vụ
- kỹ thuật
- nói
- thử nghiệm
- Thông qua
- thời gian
- Mã thông báo
- được mã hóa
- Tokens
- hàng đầu
- ngọn đuốc
- giao thông
- Hội thảo
- Dịch
- us
- sử dụng
- xác nhận
- giá trị
- nhiều
- Xem
- Nước
- Điều gì
- liệu
- Wikipedia
- ở trong
- không có
- từ
- làm việc
- đang làm việc
- tập thể dục