Hub documentation

Widgets

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Widgets

Widget là gì?

Nhiều kho mô hình có một widget cho phép bất kỳ ai chạy suy luận trực tiếp trong trình duyệt. Các widget này được hỗ trợ bởi Inference Providers, cung cấp cho các nhà phát triển khả năng truy cập hàng trăm mô hình machine learning một cách liền mạch và thống nhất, dựa trên các đối tác suy luận serverless của chúng tôi.

Dưới đây là một số ví dụ về các mô hình phổ biến hiện nay:

Bạn có thể khám phá thêm các mô hình và widget của chúng trên trang mô hình hoặc thử chúng một cách tương tác trong Inference Playground.

Bật widget

Widgets được hiển thị khi mô hình được lưu trữ bởi ít nhất một Inference Provider, đảm bảo hiệu suất và độ tin cậy tối ưu cho suy luận của mô hình. Các Provider tự chủ trong việc lựa chọn và kiểm soát các mô hình mà họ triển khai.

Loại widget được hiển thị (chuyển văn bản thành hình ảnh, nhận dạng giọng nói tự động, v.v.) được suy ra từ pipeline_tag của mô hình, một thẻ đặc biệt mà Hub cố gắng tính toán tự động cho tất cả các mô hình. Ngoại lệ duy nhất là widget conversational, được hiển thị trên tất cả các mô hình có pipeline_tag là text-generation hoặc image-text-to-text. Chúng tôi chọn chỉ hiển thị một widget cho mỗi mô hình để đơn giản hóa.

Đối với một số thư viện, chẳng hạn như transformers, loại mô hình có thể được suy luận tự động dựa trên các tệp cấu hình (config.json). Kiến trúc có thể xác định loại: ví dụ, AutoModelForTokenClassification tương ứng với token-classification. Nếu bạn quan tâm đến điều này, bạn có thể xem mã giả trong gist này.

Đối với hầu hết các trường hợp sử dụng khác, chúng ta sử dụng các thẻ mô hình để xác định loại tác vụ của mô hình. Ví dụ, nếu có tag: text-classification trong metadata của model card, pipeline_tag suy ra sẽ là text-classification.

Bạn luôn có thể ghi đè thủ công loại pipeline của mình bằng pipeline_tag: xxx trong metadata thẻ mô hình. (Bạn cũng có thể sử dụng trình chỉnh sửa metadata GUI để thực hiện điều này).

Làm thế nào để tôi kiểm soát đầu vào ví dụ của widget mô hình?

Bạn có thể chỉ định đầu vào của widget trong phần metadata của model card:

widget:
  - text: "This new restaurant has amazing food and great service!"
    example_title: "Positive Review"
  - text: "I'm really disappointed with this product. Poor quality and overpriced."
    example_title: "Negative Review"
  - text: "The weather is nice today."
    example_title: "Neutral Statement"

Bạn có thể cung cấp nhiều hơn một đầu vào mẫu. Trong menu thả xuống các ví dụ của widget, chúng sẽ hiển thị dưới dạng Example 1, Example 2, v.v. Tùy chọn, bạn cũng có thể cung cấp example_title.

widget:
  - text: "Is this review positive or negative? Review: Best cast iron skillet you will ever buy."
    example_title: "Sentiment analysis"
  - text: "Barack Obama nominated Hilary Clinton as his secretary of state on Monday. He chose her because she had ..."
    example_title: "Coreference resolution"
  - text: "On a shelf, there are five books: a gray book, a red book, a purple book, a blue book, and a black book ..."
    example_title: "Logic puzzles"
  - text: "The two men running to become New York City's next mayor will face off in their first debate Wednesday night ..."
    example_title: "Reading comprehension"

Hơn nữa, bạn có thể chỉ định các đầu vào ví dụ không phải văn bản trong metadata của model card. Xem tại đây để biết danh sách đầy đủ các định dạng đầu vào mẫu cho tất cả các loại widget. Đối với các loại widget thị giác & âm thanh, hãy cung cấp đầu vào ví dụ bằng src thay vì text.

Ví dụ, cho phép người dùng chọn từ hai tệp âm thanh mẫu cho các tác vụ nhận dạng giọng nói tự động bằng cách:

widget:
  - src: https://example.org/somewhere/speech_samples/sample1.flac
    example_title: Speech sample 1
  - src: https://example.org/somewhere/speech_samples/sample2.flac
    example_title: Speech sample 2

Lưu ý rằng bạn cũng có thể bao gồm các tệp ví dụ trong kho lưu trữ mô hình của mình và sử dụng chúng như sau:

widget:
  - src: https://huggingface.co/username/model_repo/resolve/main/sample1.flac
    example_title: Custom Speech Sample 1

Nhưng tiện lợi hơn nữa, nếu tệp nằm trong kho mô hình tương ứng, bạn chỉ cần sử dụng tên tệp hoặc đường dẫn tệp bên trong kho:

widget:
  - src: sample1.flac
    example_title: Custom Speech Sample 1

hoặc nếu nó được đặt lồng bên trong kho:

widget:
  - src: nested/directory/sample1.flac

Chúng tôi cung cấp các đầu vào mẫu cho một số ngôn ngữ và hầu hết các loại widget trong tệp default-widget-inputs.ts. Nếu một số ví dụ còn thiếu, chúng tôi hoan nghênh các PR từ cộng đồng để bổ sung chúng!

Kết quả đầu ra mẫu

Như một phần mở rộng cho các đầu vào ví dụ, đối với mỗi ví dụ widget, bạn cũng có thể tùy chọn mô tả đầu ra tương ứng của mô hình, trực tiếp trong thuộc tính output.

Điều này hữu ích khi mô hình chưa được hỗ trợ bởi Inference Providers, để trang mô hình vẫn có thể giới thiệu cách mô hình hoạt động và kết quả mà nó tạo ra.

Ví dụ, đối với một mô hình automatic-speech-recognition:

widget:
  - src: sample1.flac
    output:
      text: "Hello my name is Julien"

Thuộc tính output phải là một từ điển YAML đại diện cho định dạng đầu ra từ Inference Providers.

Đối với một mô hình xuất ra văn bản, hãy xem ví dụ ở trên.

Đối với một mô hình xuất ra nhãn (ví dụ như một mô hình text-classification), kết quả đầu ra nên có dạng như sau:

widget:
  - text: "I liked this movie"
    output:
      - label: POSITIVE
        score: 0.8
      - label: NEGATIVE
        score: 0.2

Cuối cùng, đối với một mô hình xuất ra hình ảnh, âm thanh hoặc bất kỳ loại tài sản nào khác, kết quả đầu ra nên bao gồm thuộc tính url liên kết đến tên tệp hoặc đường dẫn bên trong repo, hoặc một URL từ xa. Ví dụ, đối với một mô hình text-to-image:

widget:
  - text: "picture of a futuristic tiger, artstation"
    output:
      url: images/tiger.jpg

Chúng ta cũng có thể hiển thị các kết quả mẫu trong giao diện Hugging Face, chẳng hạn như với một mô hình text-to-image để hiển thị một thư viện các hình ảnh sinh ra ấn tượng.

Khả dụng của Widget và Hỗ trợ từ Nhà cung cấp

Không phải tất cả các model đều có widget khả dụng. Tính khả dụng của widget phụ thuộc vào:

  1. Hỗ trợ tác vụ: Tác vụ của mô hình phải được hỗ trợ bởi ít nhất một nhà cung cấp trong mạng lưới Inference Providers
  2. Khả năng cung cấp của nhà cung cấp: Ít nhất một nhà cung cấp phải đang phục vụ mô hình cụ thể
  3. Cấu hình mô hình: Mô hình phải có các tệp metadata và cấu hình phù hợp

Để xem danh sách đầy đủ các tác vụ được hỗ trợ, hãy xem trang tài liệu chuyên biệt của chúng tôi.

Danh sách tất cả các nhà cung cấp và các tác vụ mà họ hỗ trợ có sẵn tại trang tài liệu này.

Đối với các model không có hỗ trợ từ provider, bạn vẫn có thể giới thiệu tính năng bằng cách sử dụng kết quả mẫu trong model card của bạn.

Bạn cũng có thể nhấp vào Yêu cầu hỗ trợ từ nhà cung cấp ngay trên trang mô hình để khuyến khích các nhà cung cấp triển khai mô hình, nếu có đủ sự quan tâm từ cộng đồng.

Khám phá các Mô hình với Inference Playground

Trước khi tích hợp các mô hình vào ứng dụng của bạn, bạn có thể kiểm tra chúng một cách tương tác bằng Inference Playground. Playground cho phép bạn:

  • Thử nghiệm các mô hình hoàn thành trò chuyện khác nhau với các prompt tùy chỉnh
  • So sánh các phản hồi giữa các mô hình khác nhau
  • Thử nghiệm với các tham số suy luận như nhiệt độ, số token tối đa và nhiều hơn
  • Tìm kiếm mô hình hoàn hảo cho trường hợp sử dụng cụ thể của bạn

Playground sử dụng cùng cơ sở hạ tầng Inference Providers hỗ trợ cho các widget, vì vậy bạn có thể kỳ vọng hiệu suất và khả năng tương tự khi tích hợp các mô hình vào ứng dụng của riêng mình.

Inference Playground
Update on GitHub