Chào mừng quý độc giả của Kalera News! Hôm nay, chúng ta sẽ cùng Sylvie, tổng biên tập của Kalera, đi sâu vào một bản phát hành đáng chú ý từ Hugging Face: Gia đình Ettin Reranker. Đây là một bước tiến quan trọng trong việc tối ưu hóa các hệ thống tìm kiếm AI, mang lại hiệu suất vượt trội cùng với tốc độ xử lý ấn tượng. ✨
Tom Aarsen từ Hugging Face đã giới thiệu sáu mô hình CrossEncoder reranker mới thuộc dòng Ettin, được xây dựng trên các bộ mã hóa Ettin ModernBERT và được huấn luyện bằng một công thức chưng cất tiên tiến. Các mô hình này, từ 17 triệu đến 1 tỷ tham số, đều đạt hiệu suất hàng đầu trong phân khúc kích thước của chúng, đi kèm với dữ liệu và công thức huấn luyện đầy đủ. Đây là tin vui cho các nhà phát triển và nghiên cứu AI! 🤖
Reranker là gì và vì sao cần ghép đôi với Embedder? 🤔
Một reranker (hay còn gọi là pointwise cross-encoder) là một mô hình thần kinh nhận một cặp (truy vấn, tài liệu) và xuất ra một điểm số liên quan duy nhất. Không giống như các mô hình nhúng (embedding model) mã hóa truy vấn và tài liệu riêng biệt, reranker cho phép hai văn bản tương tác với nhau qua mọi lớp transformer. Mã hóa chung này chính xác hơn nhưng cũng tốn kém hơn, vì mô hình phải chạy một lần cho mỗi cặp (truy vấn, tài liệu) thay vì chỉ một lần cho mỗi văn bản.
Trong các hệ thống sản xuất, mô hình phổ biến là truy xuất-rồi-xếp hạng lại (retrieve-then-rerank): một mô hình nhúng nhanh chóng truy xuất K ứng cử viên hàng đầu (chi phí thấp), sau đó một cross-encoder sẽ sắp xếp lại K ứng cử viên đó với độ chính xác cao. Tổng chi phí được giữ trong giới hạn trong khi thứ hạng cuối cùng gần hơn nhiều với kết quả mà một lượt quét cross-encoder toàn diện sẽ tạo ra.
Chi tiết Kiến trúc Độc đáo 🏗️
Tất cả sáu reranker Ettin đều chia sẻ kiến trúc và chỉ khác nhau về kích thước của backbone. Backbone là một trong sáu bộ mã hóa Ettin từ bộ công cụ Ettin của Đại học Johns Hopkins, dựa trên kiểu ModernBERT với cơ chế attention không đệm (unpadded attention), mã hóa vị trí RoPE và GeGLU. Các mô hình này được tiền huấn luyện với 2 nghìn tỷ token trên dữ liệu bản quyền mở, hỗ trợ ngữ cảnh lên tới 8192 token – một lợi thế lớn cho việc xếp hạng lại tài liệu dài.
Đáng chú ý, các reranker này sử dụng một đầu phân loại 4-module được xây dựng từ các thành phần mô-đun của Sentence Transformers, cho phép sử dụng đầu vào không đệm để tận dụng tối đa Flash Attention 2, mang lại tốc độ xử lý nhanh hơn đáng kể.
| Mô hình | Backbone | Hidden size | Layers | Tham số (bao gồm head) | |---|---|---|---|---| | cross-encoder/ettin-reranker-17m-v1 | jhu-clsp/ettin-encoder-17m | 256 | 7 | 17.6M | | cross-encoder/ettin-reranker-32m-v1 | jhu-clsp/ettin-encoder-32m | 384 | 10 | 32.8M | | cross-encoder/ettin-reranker-68m-v1 | jhu-clsp/ettin-encoder-68m | 512 | 19 | 68.6M | | cross-encoder/ettin-reranker-150m-v1 | jhu-clsp/ettin-encoder-150m | 768 | 22 | 150.9M | | cross-encoder/ettin-reranker-400m-v1 | jhu-clsp/ettin-encoder-400m | 1024 | 28 | 401.6M | | cross-encoder/ettin-reranker-1b-v1 | jhu-clsp/ettin-encoder-1b | 1792 | 28 | 1.00B |
Tất cả sáu mô hình đều được phát hành theo giấy phép Apache 2.0, giống với các bộ mã hóa Ettin gốc. Đây là một điểm cộng lớn cho việc triển khai và sử dụng rộng rãi.
Hướng dẫn sử dụng Đơn giản 💡
Các mô hình được phát hành là các mô hình CrossEncoder chuẩn của Sentence Transformers. Bạn có thể sử dụng chúng chỉ với vài dòng mã:
```python from sentence_transformers import CrossEncoder
model = CrossEncoder("cross-encoder/ettin-reranker-32m-v1") scores = model.predict([ ("Apple được thành lập ở đâu?", "Apple Inc. được thành lập tại Cupertino, California vào năm 1976 bởi Steve Jobs, Steve Wozniak và Ronald Wayne."), ("Apple được thành lập ở đâu?", "Táo Fuji là một giống táo được phát triển vào cuối những năm 1930 và đưa ra thị trường vào năm 1962."), ]) print(scores) # [11.393298 2.968891] <- điểm càng cao càng liên quan hơn ```
Để đạt được thông lượng cao nhất, bạn nên cài đặt kernels và đặt model_kwargs={"dtype": "bfloat16", "attn_implementation": "flash_attention_2"}. Các mô hình Ettin Reranker hỗ trợ tới 8K token ngữ cảnh, rất hữu ích cho việc xếp hạng lại tài liệu dài.
Pipeline truy xuất-rồi-xếp hạng lại từ đầu đến cuối:
```python from sentence_transformers import SentenceTransformer, CrossEncoder
Truy xuất nhanh với embedder tĩnh (dưới mili giây trên CPU cho mỗi truy vấn)
embedder = SentenceTransformer("sentence-transformers/static-retrieval-mrl-en-v1") reranker = CrossEncoder("cross-encoder/ettin-reranker-68m-v1")
corpus = [ "Apple Inc. được thành lập tại Cupertino, California vào năm 1976 bởi Steve Jobs, Steve Wozniak và Ronald Wayne.", "Táo Fuji là một giống táo được phát triển vào cuối những năm 1930.", "Steve Jobs giới thiệu iPhone vào năm 2007 tại Macworld.", "Máy tính Macintosh được Apple bán ra từ năm 1984 trở đi.", # ... hàng ngàn hoặc hàng triệu tài liệu khác trong sản xuất ] query = "Apple được thành lập ở đâu?"
Bước 1: mã hóa + truy xuất top-100
query_emb = embedder.encode_query(query, convert_to_tensor=True) corpus_emb = embedder.encode_document(corpus, convert_to_tensor=True) scores = embedder.similarity(query_emb, corpus_emb)[0] top_k_idx = scores.topk(min(100, len(corpus))).indices.tolist()
Bước 2: xếp hạng lại
top_k_docs = [corpus[i] for i in top_k_idx] ranked = reranker.rank(query, top_k_docs, top_k=5, return_documents=True) for r in ranked: print(f"({r['score']:.2f}): {r['text']}") # (11.63): Apple Inc. được thành lập tại Cupertino, California vào năm 1976 bởi Steve Jobs, Steve Wozniak và Ronald Wayne. # (4.71): Steve Jobs giới thiệu iPhone vào năm 2007 tại Macworld. # (1.96): Táo Fuji là một giống táo được phát triển vào cuối những năm 1930. # (1.49): Máy tính Macintosh được Apple bán ra từ năm 1984 trở đi. ```
Kết quả Đánh giá Vượt trội 🏆
#### Hiệu suất trên MTEB(eng, v2) Retrieval
Các mô hình Ettin Reranker đã được kiểm tra trên toàn bộ chuẩn MTEB(eng, v2) Retrieval và cho thấy hiệu suất đáng kinh ngạc. Đặc biệt, mô hình 1 tỷ tham số của Ettin (cross-encoder/ettin-reranker-1b-v1) đạt điểm NDCG@10 là 0.6114, gần như khớp hoàn hảo với mô hình thầy giáo mạnh mẽ mixedbread-ai/mxbai-rerank-large-v2 (1.54B tham số) với 0.6115.
Điều này cho thấy quá trình chưng cất đã thành công trong việc thu hẹp khoảng cách với mô hình thầy giáo, tạo ra một mô hình học trò nhẹ hơn nhưng vẫn duy trì độ chính xác cao.
Thậm chí, mô hình nhỏ nhất, 17M, đã vượt trội so với ms-marco-MiniLM-L12-v2 (33M) với +0.051 NDCG@10 (0.5576 so với 0.5066) trên MTEB. Đây là một cải tiến đáng kể với số lượng tham số chỉ bằng một nửa. Mô hình 150M của Ettin cũng là reranker mạnh nhất trong phân khúc dưới 600M, vượt qua nhiều đối thủ mạnh khác.
#### Tốc độ xử lý Ấn tượng ⚡
Bên cạnh chất lượng, tốc độ cũng là yếu tố then chốt đối với một reranker. Các mô hình Ettin Reranker đã được benchmark trên NVIDIA H100 80GB, RTX 3090 và CPU Intel Core i7-13700K.
Điểm nổi bật: * Mô hình 17M của Ettin là reranker nhanh nhất trong toàn bộ so sánh trên H100, đạt 7517 cặp/giây, gần gấp đôi thông lượng của ms-marco-MiniLM-L6-v2. Trên RTX 3090, nó còn nhanh hơn với 9008 cặp/giây. * Mô hình 150M của Ettin chạy ở mức 3237 cặp/giây trên H100, nhanh hơn 2.3 lần so với các đối thủ kiến trúc tương đồng khác (Alibaba-NLP/gte-reranker-modernbert-base và ibm-granite/granite-embedding-reranker-english-r2). Điều này là nhờ việc sử dụng đầu vào không đệm với Flash Attention 2, giúp tiết kiệm đáng kể tài nguyên tính toán. * Mô hình 1B của Ettin đạt 928 cặp/giây trên H100, nhanh hơn 2.4 lần so với mô hình thầy giáo 1.54B mxbai-rerank-large-v2 (387 cặp/giây) trong khi vẫn giữ được điểm MTEB tương đương. Đây là một minh chứng rõ ràng cho hiệu quả của quá trình chưng cất.
Động lực chính tạo nên tốc độ này là sự kết hợp giữa bfloat16 và Flash Attention 2 với đầu vào không đệm. Các mô hình Ettin Reranker được thiết kế để tận dụng tối đa điều này, mang lại hiệu suất vượt trội.
Quy trình Đào tạo Thông minh 🧑💻
Công thức đào tạo cho sáu reranker Ettin rất đơn giản và hiệu quả. Nó được khởi tạo từ train-sentence-transformers Agent Skill mới trong Sentence Transformers v5.5.0.
Công thức chưng cất: * Mô hình thầy giáo: mixedbread-ai/mxbai-rerank-large-v2 (1.54B tham số). * Hàm mất mát (Loss): MSELoss trên logits thô của mô hình thầy giáo. * Dữ liệu đào tạo: Khoảng 143 triệu bộ ba (truy vấn, tài liệu, điểm_thầy_giáo) được tổng hợp từ hai nguồn chính: dữ liệu tiền đào tạo của LightOn và dữ liệu truy xuất được xếp hạng lại từ LightOn.
Các mô hình được đào tạo trong 1 epoch với bf16=True, sử dụng NanoBEIR để đánh giá hiệu suất trong quá trình đào tạo. Chỉ có learning rate và kích thước batch trên mỗi thiết bị thay đổi giữa các mô hình, cho thấy sự ổn định và dễ mở rộng của công thức.
Kết luận của Sylvie 🎯
Dòng Ettin Reranker-v1, được đào tạo bằng một công thức duy nhất, đơn giản, đã thiết lập một tiêu chuẩn mới về hiệu suất cho các reranker ở mọi kích thước lên tới 1 tỷ tham số. Kỹ thuật chưng cất MSE điểm từ một mô hình thầy giáo mạnh mẽ, kết hợp với bộ dữ liệu đa dạng, đã cho thấy khả năng mở rộng tuyệt vời từ 17M đến 1B tham số. Đây là một đóng góp cực kỳ giá trị cho cộng đồng AI, đặc biệt là trong lĩnh vực tìm kiếm và truy xuất thông tin.
Chúng tôi tin rằng các mô hình Ettin Reranker sẽ là lựa chọn hàng đầu cho các nhà phát triển muốn nâng cao chất lượng và tốc độ của hệ thống tìm kiếm của mình. Đừng ngần ngại thử nghiệm và tận dụng những cải tiến này nhé! 🌟
Tài liệu tham khảo: * Mô hình: * cross-encoder/ettin-reranker-17m-v1 * cross-encoder/ettin-reranker-32m-v1 * cross-encoder/ettin-reranker-68m-v1 * cross-encoder/ettin-reranker-150m-v1 * cross-encoder/ettin-reranker-400m-v1 * cross-encoder/ettin-reranker-1b-v1 * Dữ liệu: cross-encoder/ettin-reranker-v1-data * Tập lệnh huấn luyện: Có sẵn trong bài đăng blog gốc tại Hugging Face.
Nếu bạn xây dựng bất cứ điều gì dựa trên những mô hình này, hãy chia sẻ với chúng tôi tại Kalera News nhé! Chúng tôi rất mong được thấy những ứng dụng sáng tạo từ cộng đồng.