Keuntungan:
- Keupayaan untuk menyediakan saluran paip data (pengumpulan, pengesahan, pembersihan, transformasi, pemisahan, versi) dan meletakkan pengesahan skema pada permulaan saluran paip
- Keupayaan untuk membuat nilai yang hilang dan keputusan pelabelan berdasarkan makna medan dan pembahagian untuk mengelakkan kebocoran data (kumpulan dan temporal)
- Keupayaan untuk mencipta pangkalan data yang boleh dihasilkan semula dengan menetapkan versi data dan benih rawak
Kuasa sebenar setiap sistem pembelajaran mesin terletak pada data, bukan model. Jurutera yang berpengalaman tahu: "sampah masuk, sampah keluar" — malah model paling canggih yang diberi data buruk akan menghasilkan hasil yang buruk. Dalam unit ini, kami mewujudkan saluran paip data (talian paip data: rantaian langkah yang menjadikan data mentah sedia untuk latihan model) dari hujung ke hujung dan belajar di mana langkah baris ini kami boleh menggunakan kecerdasan buatan dengan selamat.
Langkah-langkah talian data
Barisan data biasanya melalui perhentian ini:
- Pengumpulan (pengingesan): Menarik data daripada sumber (pangkalan data, API, fail log, strim acara).
- Pengesahan: Menyemak sama ada data mematuhi skema, jenis dan julat yang dijangkakan.
- Pembersihan: Mengendalikan nilai yang hilang, rekod pendua, outlier dan ketidakkonsistenan.
- Transformasi: Mengubah data mentah kepada atribut — seperti menukar pembolehubah kategori kepada nombor, menghasilkan "hari dalam seminggu" daripada tarikh.
- Pemisahan: Memisahkan kepada set latihan, pengesahan dan ujian.
- Versi: Merakam model yang dilatih dengan data yang mana.
Kecerdasan buatan menjimatkan masa dengan menjana draf dan idea kod, terutamanya dalam langkah 2, 3 dan 4. Tetapi keputusan seperti rekod yang hendak dibuang, nilai yang tiada untuk diisi dan caranya, adalah milik jurutera yang mengetahui data; kerana pembersihan yang tidak betul boleh menyuntik bias tersembunyi ke dalam model.
Pengesahan data: pertahanan awal talian
Ralat yang paling mahal bermula bukan dalam pengeluaran, tetapi di mana langkah pengesahan dilangkau. Pengesahan skema secara automatik menyemak sama ada setiap kumpulan data yang masuk mematuhi struktur yang dijangkakan. Sebagai contoh, adakah lajur umur antara 0-120, adakah medan e-mel kosong, adakah bilangan lajur telah berubah?
Petua: Letakkan pengesahan pada permulaan baris. Lebih cepat data yang rosak ditangkap, lebih murah untuk dibaiki. Ralat skema yang ditangkap dalam pengeluaran adalah berkali-kali lebih mahal daripada yang ditangkap dalam fasa latihan.
Tulis skema pengesahan dengan pandera (atau Jangkaan Hebat) untuk skema data berikut. Lajur dan peraturan:- user_id: integer, cannot be null, unique- age: integer, cannot be from 0-120- signup_date: date, cannot be in the future- country: categorical, from the set {TR, DE, US, UK}- balance: decimal, cannot be negative Menghasilkan mesej ralat yang bermakna untuk setiap pelanggaran peraturan. Tunjukkan ujian dengan contoh garis putus-putus di hujung kod.
Pembersihan: manusialah yang menentukan
Nilai yang hilang adalah realiti bagi setiap set data. Cara untuk mengendalikan:
- Pemadaman: Membuang baris/lajur dengan kadar hilang yang sangat tinggi. Tetapi terdapat risiko kehilangan maklumat dan berat sebelah.
- Imputasi: Imputasi dengan min, median, nilai paling kerap, atau ramalan berasaskan model.
- Bendera: Menyimpan maklumat "telah hilang" dalam lajur bendera yang berasingan — kadangkala maklumat yang hilang itu sendiri ialah isyarat.
Mana satu betul bergantung pada masalah. Dalam set data perubatan, maklumat "nilai darah tidak diukur" harus dipelihara dan bukannya dipadamkan; Kerana keengganan doktor untuk mengambil ukuran adalah isyarat. AI boleh memberi anda pilihan dan kod; Anda pilih mana yang sesuai dengan realiti lapangan.
Gesaan lemah / Gesaan kuat
Gesaan lemah: "Isi nilai yang tiada."
Gesaan kuat: "Terdapat nilai yang tiada dalam lajur berikut: pendapatan (12% tiada, pengagihan condong ke kanan), last_login (30% tiada). Cadangkan mengisi pendapatan dengan median, tetapi terangkan sebab median dan bukan min. Untuk last_login, anggap nilai yang hilang mungkin ketara (pengguna mungkin tidak pernah log masuk); pertimbangkan untuk menjana pendekatan tidak_log masuk dan bukannya tidak pernah_log masuk. model."
Perbezaan: gesaan kuat memberikan maklumat pengedaran dan makna kawasan; kecerdasan buatan menghasilkan sokongan keputusan dan bukannya pengisian mekanikal.
Pelabelan: kualiti diukur
Dalam pembelajaran terselia (pembelajaran di mana contoh diberikan dengan jawapan yang betul), apa yang dipelajari model ialah label (label: jawapan yang betul untuk setiap contoh). Kualiti label menetapkan siling — jika orang melabel secara tidak konsisten, model belajar secara tidak konsisten.
Perjanjian antara annotator mengukur kadar di mana orang yang berbeza memberikan label yang sama kepada sampel yang sama; Ia dinyatakan oleh pekali seperti Kappa Cohen. Pematuhan yang rendah menunjukkan sama ada tugas itu tidak jelas atau arahannya lemah.
Kecerdasan buatan membantu dalam pelabelan dalam dua cara: (1) merangka garis panduan anotasi, (2) pra-pelabelan dan meminta manusia sahaja membetulkannya. Tetapi pra-pelabelan dengan LLM mempunyai masalah: ralat sistematik model boleh bocor ke dalam keseluruhan set label. Itulah sebabnya manusia sentiasa menyemak beberapa label LLM.
Perhatian: Jangan anggap label yang dihasilkan oleh LLM sebagai "kebenaran asas". Periksa sampel dengan manusia dan ukur kesesuaian LLM-manusia. Jika pematuhan rendah, pra-pelabelan akan mendatangkan lebih banyak mudarat daripada kebaikan.
Pembahagian data: mengelakkan kebocoran
Kesilapan yang paling berbahaya apabila membahagikan data kepada latihan/pengesahan/pengujian ialah kebocoran data: pencampuran maklumat ujian ke dalam latihan. Contoh:
- Rekod pengguna yang sama termasuk dalam latihan dan ujian (kebocoran kumpulan).
- Menggunakan masa depan dalam latihan dan masa lalu dalam ujian dalam siri masa (kebocoran sementara).
- Mengira parameter penskalaan (normalisasi) daripada semua data dan kemudian membahagikan.
Pemisahan sementara adalah penting untuk masalah yang melibatkan masa: berlatih dengan masa lalu, menguji pada masa hadapan. Pemisahan rawak memberikan manfaat "masa hadapan" yang tidak akan berlaku dalam pengeluaran dan meningkatkan metrik.
Versi data dan kebolehulangan
"Data apa yang kami latih model ini?" Dapat menjawab soalan beberapa bulan kemudian adalah ciri kejuruteraan ML yang serius. Pemberian versi data menyimpan setiap petikan data dengan ID (teg cincang atau versi). Alat seperti data versi DVC (Data Version Control) seperti kod.
Untuk menghasilkan semula hasil model, tiga perkara mesti diperbaiki: versi data, versi kod dan benih rawak. Tidak mustahil untuk mengatakan "Saya mendapat keputusan yang sama" tanpa trio ini. Kami akan mendalami Kebolehulangan dalam unit 11; tetapi menetapkan benih dalam saluran paip data bermula dari sini.
tiga kes mini
Kes 1 - Pengesahan skema hari disimpan. Apabila pasukan menukar medan harga sistem huluan daripada sen kepada lira, semua harga turun 100 kali ganda. Pengesahan skema menolak kumpulan sebagai "harga di luar julat" dan model tidak dilatih dengan data yang rosak. Tanpa pengesahan, ralat hanya akan diperhatikan dalam pengeluaran, dengan ramalan yang salah.
Kes 2 - Bias pengisian yang salah. Dalam model kredit, nilai pendapatan yang hilang diisi dengan min. Tetapi pendapatan yang hilang kebanyakannya dalam kumpulan berpendapatan rendah; purata buatan "diperkayakan" kumpulan ini, dan model itu menawarkan mereka had yang tidak adil tinggi. Selesaikan masalah dengan median + bendera ketiadaan.
Kes 3 - Kebocoran sementara. Model ramalan permintaan kelihatan hebat pada set ujian (95% ketepatan) tetapi ranap dalam pengeluaran. Sebab: kerana pemisahan rawak, model itu telah melihat masa hadapan. Beralih kepada binning temporal menurunkan ketepatan ujian kepada 78% — tetapi itu adalah prestasi sebenar dan mengekalkannya dalam pengeluaran.
Templat yang boleh disalin
Pisahkan set data berikut kepada tiga set: latihan/pengesahan/ujian. Kekangan: Ini adalah siri masa; Gunakan pemisahan TEMPORAL (latih pada masa lalu, ujian pada masa hadapan). Cegah kebocoran kelompok: mempunyai `customer_id` yang sama sahaja dalam satu kelompok. Kira parameter penskalaan SAHAJA daripada set latihan, kemudian gunakan untuk semua. Cetak bilangan baris yang tinggal dalam kod pada setiap langkah dan tambahkan penegasan yang menyemak tiada kebocoran.
Tulis draf garis panduan anotasi untuk tugas pelabelan ini.Tugas: [cth. Label ulasan pelanggan positif/negatif/neutral]Jelaskan kes sempadan: sindiran, emosi bercampur-campur, cara melabel ulasan tidak berkaitan dengan produk? Berikan 5 contoh dan 3 kes kelebihan sukar yang akan meningkatkan konsistensi merentas penanda.
Hasilkan senarai semak kebolehulangan untuk saluran data ini:- Bagaimanakah versi data harus diperbaiki?- Benih rawak yang manakah harus ditetapkan di mana?- Apakah metadata (cincang data, kiraan baris, tarikh) yang perlu dilog? Pangkalan kod saya: [bahasa/perpustakaan]
Semak kod pembersihan ini untuk kebocoran data. Lihat ini secara khusus: adakah parameter penskalaan/pengekodan dikira SEBELUM membelah? Adakah sebarang statistik dikira daripada semua data atau hanya latihan? Kod: [kod]
Jadual keputusan: strategi nilai hilang
Status
Pendekatan yang disyorkan
kenapa
Taburan berangka, condong
isi dengan median
Purata dipengaruhi oleh outlier
Berangka, simetri
isi dengan purata
Melindungi maklumat
Kekurangan mungkin ketara
Lajur bendera + isi
Kekurangan adalah isyarat
Kadar hilang > 60%
Nilai/buang lajur
Kebisingan terlalu banyak
kategori
Kategori "Tidak diketahui".
Tidak mewujudkan majoriti buatan
Kesilapan biasa
- Melangkau pengesahan. Tanpa kawalan skema, data yang rosak menyelinap masuk secara senyap.
- Penskalaan sebelum membelah. Ia membocorkan statistik ujian ke dalam pendidikan.
- Menggunakan pemisahan rawak dalam siri masa. Ia menghasilkan metrik tinggi palsu.
- Mempercayai label LLM secara membuta tuli. Ralat sistematik merebak ke seluruh data.
- Tidak menyimpan versi data. Anda tidak boleh mengeluarkan semula hasilnya.
- Pengisian mekanikal dengan purata. Ia mengabaikan maksud medan, menambah berat sebelah.
Secara ringkasnya
Saluran paip data ialah asas kepada sistem ML dan memerlukan lebih banyak usaha daripada model. Letakkan pengesahan di bahagian atas; membuat keputusan pembersihan dan pelabelan dengan pengetahuan domain; mengelakkan kebocoran (kumpulan dan temporal) dalam petak; betulkan versi data dan benih. AI menjana kod dan idea pada baris ini, tetapi terpulang kepada anda untuk memutuskan data mana yang hendak diproses dan bagaimana — kerana setiap keputusan yang salah di sini meresap ke dalam model sebagai kecacatan tersembunyi.
Tugasan permohonan
Tulis skema pengesahan (pandera/Jangkaan Hebat) pada set data anda sendiri dan tambahkan baris yang buruk dengan sengaja dan tunjukkan bahawa ia telah ditangkap. Kemudian bahagikan data secara sementara atau mengikut kelompok, kira parameter penskalaan daripada latihan sahaja dan sahkan tiada kebocoran dengan penegasan. Tulis versi data dan kiraan baris ke fail metadata.
senarai semak
- [ ] Pengesahan skema berjalan di bahagian atas baris.
- [ ] Saya memilih strategi nilai yang hilang berdasarkan makna medan, saya tidak mengisinya secara mekanikal.
- [ ] Saya mengukur kualiti label (pematuhan); Saya menyemak tag LLM manusia.
- [ ] Saya menghalang kebocoran kumpulan dan temporal dalam anak tetingkap.
- [ ] Penskalaan/pengekodan dikira daripada set latihan sahaja.
- [ ] Versi data, bilangan baris dan benih yang direkodkan.