pip install refuel-autolabel
https://docs.refuel.ai/
Akses ke dataset berlabel besar, bersih dan beragam adalah komponen penting untuk setiap upaya pembelajaran mesin untuk menjadi sukses. LLMS yang canggih seperti GPT-4 dapat secara otomatis memberi label data dengan akurasi tinggi, dan pada sebagian kecil dari biaya dan waktu dibandingkan dengan pelabelan manual.
Autolabel adalah pustaka Python untuk memberi label, membersihkan dan memperkaya kumpulan data teks dengan model bahasa besar (LLM) pilihan Anda.
Lihatlah laporan teknis kami untuk mempelajari lebih lanjut tentang kinerja refuelllm-V2 di tolok ukur kami. Anda dapat meniru benchmark sendiri dengan mengikuti langkah -langkah di bawah ini
cd autolabel / benchmark
curl https : // autolabel - benchmarking . s3 . us - west - 2. amazonaws . com / data . zip - o data . zip
unzip data . zip
python benchmark . py - - model $ model - - base_dir benchmark - results
python results . py - - eval_dir benchmark - results
cat results . csv
Anda dapat membandingkan model yang relevan dengan mengganti $ model dengan nama model yang diperlukan untuk dibandingkan. Jika itu adalah model API yang di-host seperti gpt-3.5-turbo
, gpt-4-1106-preview
, claude-3-opus-20240229
, gemini-1.5-pro-preview-0409
atau model yang didukung autolabel lainnya, cukup tulis nama model. Jika model yang akan dibandingkan adalah model yang didukung VLLM maka lulus jalur lokal atau jalur pelukan yang sesuai dengan model. Ini akan menjalankan tolok ukur bersama dengan petunjuk yang sama untuk semua model.
results.csv
akan berisi baris dengan setiap model yang dibandingkan sebagai baris. Lihatlah benchmark/results.csv
Sebagai contoh.
Autolabel menyediakan proses 3 langkah sederhana untuk memberi label data:
Mari kita bayangkan kita sedang membangun model ML untuk menganalisis analisis sentimen dari tinjauan film. Kami memiliki set data ulasan film yang ingin kami label terlebih dahulu. Untuk kasus ini, inilah contoh dataset dan konfigurasi contoh:
{
"task_name" : "MovieSentimentReview" ,
"task_type" : "classification" ,
"model" : {
"provider" : "openai" ,
"name" : "gpt-3.5-turbo"
},
"dataset" : {
"label_column" : "label" ,
"delimiter" : ","
},
"prompt" : {
"task_guidelines" : "You are an expert at analyzing the sentiment of movie reviews. Your job is to classify the provided movie review into one of the following labels: {labels}" ,
"labels" : [
"positive" ,
"negative" ,
"neutral"
],
"few_shot_examples" : [
{
"example" : "I got a fairly uninspired stupid film about how human industry is bad for nature." ,
"label" : "negative"
},
{
"example" : "I loved this movie. I found it very heart warming to see Adam West, Burt Ward, Frank Gorshin, and Julie Newmar together again." ,
"label" : "positive"
},
{
"example" : "This movie will be played next week at the Chinese theater." ,
"label" : "neutral"
}
],
"example_template" : "Input: {example} n Output: {label}"
}
}
Inisialisasi agen pelabelan dan lewati konfigurasi:
from autolabel import LabelingAgent , AutolabelDataset
agent = LabelingAgent ( config = 'config.json' )
Pratinjau Contoh Prompt yang akan dikirim ke LLM:
ds = AutolabelDataset ( 'dataset.csv' , config = config )
agent . plan ( ds )
Cetakan ini:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100/100 0:00:00 0:00:00
┌──────────────────────────┬─────────┐
│ Total Estimated Cost │ $0.538 │
│ Number of Examples │ 200 │
│ Average cost per example │ 0.00269 │
└──────────────────────────┴─────────┘
─────────────────────────────────────────
Prompt Example:
You are an expert at analyzing the sentiment of movie reviews. Your job is to classify the provided movie review into one of the following labels: [positive, negative, neutral]
Some examples with their output answers are provided below:
Example: I got a fairly uninspired stupid film about how human industry is bad for nature.
Output:
negative
Example: I loved this movie. I found it very heart warming to see Adam West, Burt Ward, Frank Gorshin, and Julie Newmar together again.
Output:
positive
Example: This movie will be played next week at the Chinese theater.
Output:
neutral
Now I want you to label the following example:
Input: A rare exception to the rule that great literature makes disappointing films.
Output:
─────────────────────────────────────────────────────────────────────────────────────────
Akhirnya, kita dapat menjalankan pelabelan pada subset atau keseluruhan dataset:
ds = agent . run ( ds )
Output DataFrame berisi kolom label:
ds . df . head ()
text ... MovieSentimentReview_llm_label
0 I was very excited about seeing this film , ant ... ... negative
1 Serum is about a crazy doctor that finds a ser ... ... negative
4 I loved this movie . I knew it would be chocked ... ... positive
...
Bahan Bakar menyediakan akses ke LLM open source yang di-host untuk pelabelan, dan untuk memperkirakan keyakinan ini bermanfaat, karena Anda dapat mengkalibrasi ambang kepercayaan untuk tugas pelabelan Anda, dan kemudian merutekan label yang kurang percaya diri kepada manusia, sementara Anda masih mendapatkan manfaat pelabelan otomatis untuk contoh-contoh yang percaya diri.
Untuk menggunakan LLMS yang di -host, Anda dapat meminta akses di sini.
Lihatlah peta jalan umum kami untuk mempelajari lebih lanjut tentang perbaikan yang sedang berlangsung dan direncanakan ke Perpustakaan Autolabel.
Kami selalu mencari saran dan kontribusi dari masyarakat. Bergabunglah dengan diskusi tentang perselisihan atau buka masalah GitHub untuk melaporkan bug dan meminta fitur.
Autolabel adalah proyek yang berkembang pesat. Kami menyambut kontribusi di semua formulir - laporan bug, permintaan tarik dan ide untuk meningkatkan perpustakaan.