Hub documentation
Argilla
Argilla
Argilla là công cụ cộng tác dành cho các kỹ sư AI và chuyên gia trong lĩnh vực cần xây dựng các bộ dữ liệu chất lượng cao cho dự án của họ.
Argilla có thể được sử dụng để thu thập phản hồi từ con người cho nhiều dự án AI khác nhau như NLP truyền thống (phân loại văn bản, NER, v.v.), LLM (RAG, điều chỉnh sở thích, v.v.) hoặc các mô hình đa phương thức (chuyển văn bản thành hình ảnh, v.v.). Cách tiếp cận lập trình của Argilla cho phép bạn xây dựng các quy trình làm việc để đánh giá liên tục và cải thiện mô hình. Mục tiêu của Argilla là đảm bảo công việc dữ liệu của bạn mang lại hiệu quả bằng cách lặp lại nhanh chóng trên đúng dữ liệu và mô hình.
Mọi người xây dựng những gì với Argilla?
Cộng đồng sử dụng Argilla để tạo ra các dataset mã nguồn mở và mô hình tuyệt vời.
Bộ dữ liệu và mô hình mã nguồn mở
Argilla cũng đã đóng góp một số mô hình và bộ dữ liệu cho mã nguồn mở.
- Dữ liệu UltraFeedback đã được làm sạch được sử dụng để tinh chỉnh các mô hình Notus và Notux. Bộ dữ liệu UltraFeedback gốc đã được tuyển chọn bằng các bộ lọc Argilla UI để tìm và báo cáo một lỗi trong mã tạo dữ liệu gốc. Dựa trên quy trình tuyển chọn dữ liệu này, Argilla đã xây dựng phiên bản mới của bộ dữ liệu UltraFeedback và tinh chỉnh Notus, vượt trội hơn Zephyr trên một số benchmark.
- dataset Intel Orca DPO của distilabeled được sử dụng để tinh chỉnh mô hình OpenHermes cải tiến. Dataset này được xây dựng bằng cách kết hợp việc tuyển chọn thủ công trong Argilla với phản hồi từ AI của distilabel, dẫn đến một phiên bản cải tiến của dataset Intel Orca và vượt trội hơn các mô hình được tinh chỉnh trên dataset gốc.
Ví dụ Trường hợp sử dụng
Các nhóm AI từ những công ty như the Red Cross, Loris.ai và Prolific sử dụng Argilla để nâng cao chất lượng và hiệu quả của các dự án AI. Họ đã chia sẻ trải nghiệm của mình tại buổi gặp mặt cộng đồng AI của chúng tôi.
- AI vì lợi ích cộng đồng: bài thuyết trình của Hội Chữ thập đỏ giới thiệu cách các chuyên gia trong lĩnh vực của Hội Chữ thập đỏ và nhóm AI đã hợp tác bằng cách phân loại và chuyển hướng các yêu cầu từ những người tị nạn của cuộc khủng hoảng Ukraine nhằm tối ưu hóa quy trình hỗ trợ của Hội Chữ thập đỏ.
- Hỗ trợ khách hàng: trong buổi gặp mặt Loris, họ đã trình bày cách đội ngũ AI của họ sử dụng học tương phản không giám sát và few-shot để giúp họ nhanh chóng xác thực và thu thập các mẫu có nhãn cho một lượng lớn bộ phân loại đa nhãn.
- Các nghiên cứu: showcase từ Prolific đã công bố việc tích hợp với nền tảng của chúng tôi. Họ sử dụng nó để chủ động phân phối các dự án thu thập dữ liệu cho đội ngũ nhân viên chú thích của mình. Điều này cho phép Prolific thu thập dữ liệu chất lượng cao cho các nghiên cứu một cách nhanh chóng và hiệu quả.
Yêu cầu tiên quyết
Trước tiên đăng nhập bằng tài khoản Hugging Face của bạn:
hf auth login
Hãy đảm bảo bạn đã cài đặt argilla>=2.0.0:
pip install -U argilla
Cuối cùng, bạn sẽ cần triển khai máy chủ và giao diện người dùng của Argilla, điều này có thể thực hiện dễ dàng trên Hugging Face Hub.
Nhập và xuất các bộ dữ liệu và bản ghi
Hướng dẫn này cho thấy cách nhập và xuất bộ dữ liệu của bạn vào Hugging Face Hub.
Trong Argilla, bạn có thể nhập/xuất hai thành phần chính của một tập dữ liệu:
- Toàn bộ cấu hình của bộ dữ liệu được định nghĩa trong
rg.Settings. Điều này hữu ích nếu bạn muốn chia sẻ tác vụ phản hồi của mình hoặc khôi phục nó sau đó trong Argilla. - Các bản ghi được lưu trữ trong bộ dữ liệu, bao gồm
Metadata,Vectors,SuggestionsvàResponses. Điều này hữu ích nếu bạn muốn sử dụng các bản ghi của bộ dữ liệu bên ngoài Argilla.
Đẩy bộ dữ liệu Argilla lên Hugging Face Hub
Bạn có thể đẩy (push) một dataset từ Argilla lên Hugging Face Hub. Điều này hữu ích nếu bạn muốn chia sẻ dataset của mình với cộng đồng hoặc kiểm soát phiên bản (version control) nó. Bạn có thể đẩy dataset lên Hugging Face Hub bằng cách sử dụng phương thức rg.Dataset.to_hub.
import argilla as rg
client = rg.Argilla(api_url="<api_url>", api_key="<api_key>")
dataset = client.datasets(name="my_dataset")
dataset.to_hub(repo_id="<repo_id>")Có hoặc không có bản ghi
Ví dụ ở trên sẽ đẩy Settings và các bản ghi của bộ dữ liệu lên hub. Nếu bạn chỉ muốn đẩy cấu hình của bộ dữ liệu, bạn có thể đặt tham số with_records thành False. Điều này hữu ích nếu bạn chỉ quan tâm đến một mẫu bộ dữ liệu cụ thể hoặc bạn muốn thực hiện các thay đổi trong cài đặt và/hoặc các bản ghi của bộ dữ liệu.
dataset.to_hub(repo_id="<repo_id>", with_records=False)Tải bộ dữ liệu Argilla từ Hugging Face Hub
Bạn có thể kéo một dataset từ Hugging Face Hub sang Argilla. Điều này hữu ích nếu bạn muốn khôi phục một dataset cùng với cấu hình của nó. Bạn có thể kéo dataset từ Hugging Face Hub bằng phương thức rg.Dataset.from_hub.
import argilla as rg
client = rg.Argilla(api_url="<api_url>", api_key="<api_key>")
dataset = rg.Dataset.from_hub(repo_id="<repo_id>")Phương thức rg.Dataset.from_hub tải cấu hình và các bản ghi từ kho dữ liệu. Nếu bạn chỉ muốn tải các bản ghi, bạn có thể truyền một đối tượng datasets.Dataset vào phương thức rg.Dataset.log. Điều này cho phép bạn cấu hình bộ dữ liệu của riêng mình và tái sử dụng các bộ dữ liệu Hub hiện có.
Có hoặc không có bản ghi
Ví dụ trên sẽ lấy Settings và các bản ghi của bộ dữ liệu từ hub. Nếu bạn chỉ muốn lấy cấu hình của bộ dữ liệu, bạn có thể đặt tham số with_records thành False. Điều này hữu ích nếu bạn chỉ quan tâm đến một mẫu bộ dữ liệu cụ thể hoặc muốn thực hiện các thay đổi trong cài đặt và/hoặc các bản ghi của bộ dữ liệu.
dataset = rg.Dataset.from_hub(repo_id="<repo_id>", with_records=False)Với cấu hình của bộ dữ liệu, bạn có thể thực hiện các thay đổi đối với bộ dữ liệu. Ví dụ, bạn có thể điều chỉnh cài đặt của bộ dữ liệu cho một tác vụ khác:
dataset.settings.questions = [rg.TextQuestion(name="answer")]Sau đó, bạn có thể ghi lại các bản ghi của tập dữ liệu bằng phương thức load_dataset của gói datasets và truyền tập dữ liệu vào phương thức rg.Dataset.log.
hf_dataset = load_dataset("<repo_id>")
dataset.log(hf_dataset)