aedev.net
  • Trang chủ
  • AI
  • Mobile
  • Flutter
  • React Native
  • Backend
  • DevOps
  • Hướng dẫn
No Result
View All Result
SAVED POSTS
aedev.net
  • Trang chủ
  • AI
  • Mobile
  • Flutter
  • React Native
  • Backend
  • DevOps
  • Hướng dẫn
No Result
View All Result
aedev.net
No Result
View All Result
Minh họa các khái niệm AI, mạng nơ-ron và lập trình trên máy tính

Zero-shot classification: multi_label thay đổi ý nghĩa score như thế nào?

Suong Nguyen by Suong Nguyen
29/10/2026
in AI
0
585
SHARES
3.2k
VIEWS
Summarize with ChatGPTShare to Facebook

Một ticket có thể vừa liên quan đăng nhập, vừa liên quan thanh toán. Nếu bạn chọn nhãn bằng score của một pipeline zero-shot, cần hiểu pipeline đang buộc các nhãn cạnh tranh hay đánh giá từng nhãn riêng. Cùng tên trường scores chưa có nghĩa các con số có thể so trực tiếp.

Bài này đọc hành vi của ZeroShotClassificationPipeline trong Transformers 4.57.1, đối chiếu ngày 29/10/2026. Đây là phiên bản được ghim để giải thích công thức, không phải tuyên bố bản mới nhất. Ví dụ tính toán dùng Python tiêu chuẩn, không tải model, không đo chất lượng phân loại tiếng Việt.

Hai câu hỏi nghiệp vụ khác nhau

Nếu mỗi ticket bắt buộc vào đúng một hàng đợi, câu hỏi là: trong danh sách này, nhãn nào phù hợp nhất? Chế độ multi_label=False với từ hai nhãn trở lên chuẩn hóa các logit entailment qua toàn bộ nhãn ứng viên. Tổng score bằng một, nên các nhãn cạnh tranh với nhau.

Nếu ticket được gắn nhiều tag, câu hỏi lại là: từng nhãn có phù hợp với văn bản hay không? Với multi_label=True, pipeline so entailment với contradiction riêng cho mỗi nhãn. Tổng score giữa các nhãn có thể lớn hơn một. Tham số này thay đổi cách tính score, không chỉ đổi số nhãn được trả về. Tài liệu pipeline theo phiên bản mô tả rõ hai chế độ.

Trong cách làm NLI, văn bản là premise và mỗi nhãn được đưa vào một câu giả thuyết. Model đánh giá quan hệ giữa hai câu. Tên nhãn và mẫu câu vì thế cũng là một phần của cấu hình cần lưu khi đánh giá.

Tự tính với logit giả lập

Để nhìn rõ mẫu số, dùng hai nhãn A và B với logit entailment lần lượt là 2 và 1. Logit contradiction của cả hai bằng 0. Đây là dữ liệu toán học tự tạo, không phải output từ model hay ticket thật.

from math import exp

def softmax(values):
    peak = max(values)
    weights = [exp(value - peak) for value in values]
    total = sum(weights)
    return [weight / total for weight in weights]

entailment = [2.0, 1.0]
contradiction = [0.0, 0.0]

single = softmax(entailment)
multi = [
    softmax([negative, positive])[1]
    for negative, positive in zip(contradiction, entailment)
]

print([round(value, 4) for value in single])
print([round(value, 4) for value in multi])
print(round(sum(single), 4), round(sum(multi), 4))

Trên Python 3.9.6, đoạn này in [0.7311, 0.2689], [0.8808, 0.7311] và 1.0 1.6119. Hàm trừ giá trị lớn nhất trước khi lấy mũ để phép tính minh họa ổn định hơn với số lớn. Đây là kiểm tra công thức, chưa chứng minh pipeline thực tế cho đúng những logit ấy.

Giả sử bạn dùng ngưỡng 0.7: bộ score đầu chỉ giữ A, bộ thứ hai giữ cả A và B. Đổi chế độ nhưng giữ nguyên ngưỡng cũ có thể thay đổi quyết định dù model và văn bản chưa đổi.

Thêm nhãn cũng làm thay đổi phép so sánh

Thêm nhãn C có logit entailment 2 vào chế độ cạnh tranh:

print([round(value, 4) for value in softmax([2.0, 1.0, 2.0])])

Kết quả minh họa là [0.4223, 0.1554, 0.4223]. A giảm score dù logit giả định của A giữ nguyên, vì mẫu số đã có thêm C. Đừng giải thích mức giảm này thành việc model vừa kém tự tin hơn trên cùng một hợp đồng nhãn.

Với một nhãn ứng viên duy nhất, mã nguồn phiên bản này dùng nhánh so entailment/contradiction kể cả khi multi_label=False. Vì vậy kiểm thử với một nhãn không đại diện cho chế độ cạnh tranh nhiều nhãn. Có thể đối chiếu điều kiện này trong mã nguồn zero-shot v4.57.1.

Cách đưa vào một lượt đánh giá thật

Lưu cùng kết quả: model và revision, phiên bản thư viện, danh sách nhãn, hypothesis_template, multi_label, quy tắc chọn nhãn và bộ dữ liệu đánh giá. Khi so hai lượt, kiểm tra những trường này trước khi so score.

Nếu sản phẩm có trường hợp không thuộc nhãn nào, cần thiết kế cách từ chối và đánh giá riêng các ca đó. Chế độ cạnh tranh vẫn phân phối score trong danh sách bạn cung cấp. Một nhãn đứng đầu không tự chứng minh nó đúng với nghiệp vụ.

Với nội dung tiếng Việt, chọn model có phạm vi ngôn ngữ phù hợp và kiểm tra trên dữ liệu đã gán nhãn. Model card BART MNLI giúp hiểu cách chuyển NLI thành phân loại; bài này không dùng nó làm bằng chứng chất lượng tiếng Việt. Score cũng chưa phải xác suất đã hiệu chuẩn cho dữ liệu của bạn.

Lỗi thường gặp và giới hạn

  • Chỉ lấy phần tử đầu mà quên labels và scores đã được sắp theo score. Luôn ghép nhãn với đúng score tương ứng.
  • Đổi danh sách nhãn hoặc mẫu câu nhưng coi hai lượt là cùng cấu hình.
  • Bật multi-label rồi mặc định mọi nhãn trên 0.5 đều đáng tin. Ngưỡng cần được chọn và kiểm tra bằng dữ liệu nghiệp vụ.
  • Báo kết quả tính tay là benchmark model. Hai việc này kiểm tra hai lớp khác nhau.

Hãy chốt câu hỏi một nhãn hay nhiều nhãn trước, rồi mới chọn ngưỡng và metric. Khi hợp đồng nhãn được giữ ổn định, kết quả đánh giá sẽ dễ giải thích và tái kiểm tra hơn.

Nguồn tham khảo

  • Hugging Face: Pipelines 4.57.1
  • Transformers: zero-shot classification v4.57.1
  • Meta: facebook/bart-large-mnli model card

Tags: AIHugging FacePhân loại văn bản
SummarizeShare234
Suong Nguyen

Suong Nguyen

Related Stories

Minh họa các khái niệm AI, mạng nơ-ron và lập trình trên máy tính

Chấm câu trả lời AI tiếng Việt: kiểm tra Unicode NFC trước khi dùng exact match

by Suong Nguyen
28/10/2026
0

Phân biệt chuỗi nhìn giống nhau với chuỗi bằng nhau, xây metric NFC có phiên bản và giữ lại các khác biệt thực sự về dấu tiếng Việt.

Minh họa các khái niệm AI, mạng nơ-ron và lập trình trên máy tính

Chia tập đánh giá AI theo nhóm: tránh để cùng khách hàng xuất hiện ở cả hai phía

by Suong Nguyen
27/10/2026
0

Dùng ví dụ Python nhỏ để phát hiện nhóm dữ liệu bị chia chéo giữa train và test, rồi lưu một kế hoạch chia có thể kiểm tra...

Minh họa các khái niệm AI, mạng nơ-ron và lập trình trên máy tính

Đánh giá truy hồi RAG bằng Recall@k và MRR trước khi sửa prompt

by Suong Nguyen
26/10/2026
0

Tính Recall@k và MRR trên danh sách ID tự tạo để phân biệt thiếu tài liệu liên quan với xếp hạng tài liệu quá thấp.

Minh họa các khái niệm AI, mạng nơ-ron và lập trình trên máy tính

Cosine similarity và dot product: vì sao cùng vector lại xếp hạng khác?

by Suong Nguyen
25/10/2026
0

Tự tính cosine similarity bằng Python để hiểu ảnh hưởng của độ dài vector và kiểm tra cách xếp hạng trong tìm kiếm embedding.

0 0 votes
Article Rating
Subscribe
Login
Notify of
guest
guest
0 Comments
Oldest
Newest Most Voted
AE Dev

AE Dev mang đến các bài viết về lập trình, mobile app, backend, frontend, WordPress và công nghệ, phù hợp cho developer muốn học hỏi và cập nhật kiến thức thực tế.

Recent Posts

  • React Native TextInput: bàn phím numeric không thay thế validation
  • Phỏng vấn JavaScript: vì sao tách method thành callback lại mất this?
  • Android NumberFormat: tách locale, mã tiền tệ và giá trị cần hiển thị

Categories

  • AI
  • Backend
  • Đánh giá
  • DevOps
  • Flutter
  • Hướng dẫn
  • Lập trình Mobile
  • Phỏng vấn
  • React Native
  • Uncategorized

Weekly Newsletter

  • Buy JNews
  • Support Forum
  • Pre-sale Question
  • Contact Us

© 2026 AE Dev - Blog công nghệ, lập trình và chia sẻ kiến thức IT.

Welcome Back!

Login to your account below

Forgotten Password?

Retrieve your password

Please enter your username or email address to reset your password.

Log In
No Result
View All Result
  • Trang chủ
  • AI
  • Mobile
  • React Native
  • Backend
  • DevOps
  • Hướng dẫn
  • Flutter

© 2026 AE Dev - Blog công nghệ, lập trình và chia sẻ kiến thức IT.

wpDiscuz
0
0
Would love your thoughts, please comment.x
()
x
| Reply