Hướng dẫn nhúng văn bản

Tác vụ Trình nhúng văn bản MediaPipe cho phép bạn tạo bản trình bày dạng số của dữ liệu văn bản để nắm bắt ý nghĩa ngữ nghĩa. Chức năng này thường được dùng để so sánh mức độ tương đồng về mặt ngữ nghĩa của hai đoạn văn bản bằng cách sử dụng các kỹ thuật so sánh toán học, chẳng hạn như Tính tương đồng Cosin. Nhiệm 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 số của dữ liệu văn bản dưới dạng danh sách vectơ tính năng có nhiều chiều, còn gọi là vectơ nhúng, ở dạng dấu phẩy động hoặc lượng tử hoá.

Hãy dùng thử!

Bắt đầu

Hãy bắt đầu sử dụng tác vụ này bằng cách làm theo một trong những hướng dẫn triển khai sau 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 của tác vụ này, bao gồm cả mô hình được đề xuất và mã ví dụ với các lựa chọn cấu hình được đề xuất:

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, đầ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ợ quá trình mã hoá ngoài biểu đồ cho các mô hình mà không cần quá trình mã hoá trong biểu đồ.
  • Nhúng phép tính độ tương đồng – Hàm hiệu dụng tích hợp sẵn để tính toán độ tương đồng cos giữa hai vectơ tính năng.
  • Lượng tử hoá – Hỗ trợ lượng tử vô hướng cho các vectơ đối tượng.
Dữ liệu đầu vào của việc cần làm Kết quả đầu ra của nhiệm vụ
Trình nhúng văn bản chấp nhận loại dữ liệu đầu vào sau:
  • Chuỗi
Trình nhúng văn bản xuất ra danh sách các nội dung nhúng bao gồm:
  • Nhúng: chính vectơ đối tượng ở dạng dấu phẩy động hoặc lượng tử vô hướng.
  • Chỉ mục đầu: chỉ mục cho đầu tạo ra tính năng nhúng này.
  • Tên phần đầu (không bắt buộc): tên của phần đầu tạo ra lượt nhúng này.

Lựa chọn về cấu hình

Tác vụ này có các chế độ cấu hình sau:

Tên lựa chọn Nội dung mô tả Khoảng giá trị Giá trị mặc định
l2_normalize Liệu có chuẩn hoá vectơ tính năng được trả về với chuẩn L2 hay không. Chỉ sử dụng lựa chọn này nếu mô hình chưa chứa thành phần TFLite Op L2_NORMALIZATION gốc. Trong hầu hết các trường hợp, trường hợp này đã được chuẩn hoá và do đó, việc chuẩn hoá L2 có thể đạt được thông qua khả năng dự đoán TFLite mà không cần đến tuỳ chọn này. Boolean False
quantize Liệu hoạt động nhúng được trả về có phải được lượng tử hoá thành byte thông qua lượng tử hoá vô hướng hay không. Các hoạt động nhúng được ngầm giả định là chuẩn đơn vị và do đó, mọi thứ nguyên đều đảm bảo có giá trị trong [-1.0, 1.0]. Hãy sử dụng tuỳ chọn l2_normalize nếu bạn không muốn làm vậy. Boolean False

Mô hình

Chúng tôi đưa ra một mô hình mặc định, được đề xuất khi bạn bắt đầu phát triển bằng tác vụ này.

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.

Xem xét các cặp câu sau:

  • ("đó là một hành trình thú vị và thường ảnh hưởng đến hành trình", "một chuyến đi tuyệt vời và tuyệt vời")
  • ("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ẹo quảng cáo hay", "Chúng tôi cần kiểm tra kỹ chi tiết trong kế hoạch của mình")

Các lượt nhúng văn bản trong 2 cặp đầu tiên sẽ có độ tương đồng về mặt vũ trụ cao hơn so với các lượt nhúng trong cặp thứ ba vì 2 cặp câu đầu tiên lần lượt có chung một chủ đề là "cảm xúc về chuyến đi" và "ý kiến điện thoại", trong khi cặp câu thứ ba không có chung một chủ đề.

Xin lưu ý rằng mặc dù hai câu trong cặp thứ hai có quan điểm đối lập, nhưng lại có điểm tương đồng cao vì có cùng một chủ đề.

Tên mẫu thiết bị Hình dạng dữ liệu đầu vào Loại lượng tử hoá Phiên bản
Bộ mã hoá câu phổ quát chuỗi, chuỗi, chuỗi Không có (float32) Mới nhất

Điểm chuẩn nhiệm vụ

Dưới đây là các đ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ễ của CPU Độ trễ của GPU
Bộ mã hoá câu phổ quát 18,21 mili giây -