Tác vụ Trình nhúng văn bản MediaPipe cho phép bạn tạo một bản trình bày dạng số của dữ liệu văn bản để ghi lại ý nghĩa ngữ nghĩa của dữ liệu đó. Chức năng này thường được dùng để so sánh mức độ tương đồng ngữ nghĩa của hai đoạn văn bản bằng các kỹ thuật so sánh toán học như Cosine Similarity (Mức độ tương đồng theo cosin). Tác vụ này hoạt động trên dữ liệu văn bản bằng mô hình học máy (ML) và xuất ra một bản trình bày dạng số của dữ liệu văn bản dưới dạng danh sách các vectơ đặc điểm có chiều cao, còn gọi là vectơ nhúng, ở dạng dấu phẩy động hoặc dạng lượng tử.
Bắt đầu
Bắt đầu sử dụng tác vụ này bằng cách làm theo một trong các hướng dẫn triển khai sau đây cho nền tảng mục tiêu của bạn. Các hướng dẫn dành riêng cho nền tảng này sẽ hướng dẫn bạn cách triển khai cơ bản cho tác vụ này, bao gồm cả mô hình được đề xuất và ví dụ về mã với các tuỳ chọn cấu hình được đề xuất:
- Android – Ví dụ về mã – Hướng dẫn
- Python – Ví dụ về mã – Hướng dẫn
- Web – Ví dụ về mã – Hướng dẫn
Thông tin chi tiết về việc cần làm
Phần này mô tả các tính năng, dữ liệu đầu vào, dữ liệu đầu ra và tuỳ chọn cấu hình của tác vụ này.
Tính năng
- Xử lý văn bản đầu vào – Hỗ trợ tạo mã thông báo ngoài biểu đồ cho các mô hình không có mã thông báo trong biểu đồ.
- Tính toán độ tương đồng nhúng – Hàm tiện ích tích hợp để tính toán độ tương đồng cosin giữa hai vectơ đặc điểm.
- Lượng tử hoá – Hỗ trợ lượng tử hoá vô hướng cho các vectơ đặc điểm.
Dữ liệu đầu vào của việc cần làm | Kết quả của tác vụ |
---|---|
Trình nhúng văn bản chấp nhận loại dữ liệu đầu vào sau:
|
Trình nhúng văn bản sẽ xuất ra danh sách các phần nhúng bao gồm:
|
Tuỳ chọn cấu hình
Tác vụ này có các tuỳ chọn cấu hình sau:
Tên tuỳ chọn | Mô tả | Phạm vi giá trị | Giá trị mặc định |
---|---|---|---|
l2_normalize |
Liệu có chuẩn hoá vectơ đặc điểm được trả về bằng chuẩn L2 hay không. Chỉ sử dụng tuỳ chọn này nếu mô hình chưa chứa thao tác L2_NORMALIZATION TFLite gốc. Trong hầu hết các trường hợp, đây đã là trường hợp và việc chuẩn hoá L2 được thực hiện thông qua suy luận TFLite mà không cần tuỳ chọn này. | Boolean |
False |
quantize |
Liệu nội dung nhúng được trả về có được lượng tử hoá thành byte thông qua lượng tử hoá vô hướng hay không. Các phần nhúng được giả định ngầm là đơn vị chuẩn và do đó, mọi phương diện đều được đảm bảo có giá trị trong [-1.0, 1.0]. Sử dụng tuỳ chọn l2_normalize nếu không phải như vậy. | Boolean |
False |
Mô hình
Chúng tôi cung cấp một mô hình mặc định, được đề xuất khi bạn bắt đầu phát triển bằng nhiệm vụ này.
Mô hình Bộ mã hoá câu tổng quát (nên dùng)
Mô hình này sử dụng cấu trúc bộ mã hoá kép và được huấn luyện trên nhiều tập dữ liệu câu hỏi-câu trả lời.
Hãy xem xét các cặp câu sau:
- ("đây là một hành trình hấp dẫn và thường gây xúc động", "thật là một chuyến đi tuyệt vời và thú vị")
- ("Tôi thích điện thoại của mình", "Tôi ghét điện thoại của mình")
- ("Nhà hàng này có một mánh lới tuyệt vời", "Chúng ta cần kiểm tra kỹ thông tin chi tiết về kế hoạch của mình")
Các văn bản nhúng trong hai cặp đầu tiên sẽ có độ tương đồng cosine cao hơn so với các văn bản nhúng trong cặp thứ ba vì hai cặp câu đầu tiên có chung chủ đề là "cảm xúc về chuyến đi" và "ý kiến về điện thoại", trong khi cặp câu thứ ba không có chủ đề chung.
Xin lưu ý rằng mặc dù hai câu trong cặp thứ hai có cảm xúc trái ngược nhau, nhưng chúng có điểm tương đồng cao vì có chung một chủ đề.
Tên mẫu thiết bị | Hình dạng đầu vào | Loại lượng tử hoá | Phiên bản |
---|---|---|---|
Universal Sentence Encoder | string, string, string | Không có (float32) | Mới nhất |
Điểm chuẩn tác vụ
Dưới đây là điểm chuẩn tác vụ cho toàn bộ quy trình dựa trên các mô hình được huấn luyện trước ở trên. Kết quả về độ trễ là độ trễ trung bình trên Pixel 6 khi sử dụng CPU / GPU.
Tên mô hình | Độ trễ CPU | Độ trễ GPU |
---|---|---|
Bộ mã hoá câu chung | 18,21 mili giây | - |