Apa itu Pra-pemrosesan AI?

Apa itu Pra-pemrosesan AI?

Praproses AI adalah semua yang Anda lakukan pada data mentah sebelum (dan terkadang selama) pelatihan atau inferensi sehingga model benar-benar dapat belajar darinya. Bukan hanya “pembersihan”. Ini adalah pembersihan, pembentukan, penskalaan, pengkodean, penambahan, dan pengemasan data ke dalam representasi yang konsisten yang tidak akan secara diam-diam mengganggu model Anda di kemudian hari. [1]

Artikel yang mungkin ingin Anda baca setelah ini:

🔗 Cara menguji model AI untuk kinerja di dunia nyata
Metode praktis untuk mengevaluasi akurasi, kekokohan, dan bias dengan cepat.

🔗 Apa itu text-to-speech (kecerdasan buatan) dan bagaimana cara kerjanya?
Menjelaskan dasar-dasar TTS, penggunaan utama, dan keterbatasan umum saat ini.

🔗 Bisakah AI membaca tulisan tangan kursif dengan akurat saat ini?
Membahas tantangan pengenalan, alat terbaik, dan kiat akurasi.

🔗 Seberapa akurat AI dalam tugas-tugas umum?
Menjelaskan faktor akurasi, tolok ukur, dan keandalan di dunia nyata.


Praproses AI dalam bahasa sederhana (dan apa yang bukan praproses AI) 🤝

Praproses AI adalah transformasi input mentah (tabel, teks, gambar, log) menjadi fitur yang siap digunakan model. Jika data mentah diibaratkan garasi yang berantakan, praproses adalah Anda memberi label pada kotak-kotak, membuang barang-barang yang rusak, dan menumpuk barang-barang sehingga Anda dapat berjalan melewatinya tanpa cedera.

Bukan modelnya itu sendiri yang penting. Tapi hal-hal yang memungkinkan model itu ada:

  • mengubah kategori menjadi angka (one-hot, ordinal, dll.) [1]

  • mengubah rentang angka besar menjadi rentang yang masuk akal (standarisasi, min-max, dll.) [1]

  • tokenisasi teks menjadi ID input (dan biasanya mask perhatian) [3]

  • mengubah ukuran/memotong gambar dan menerapkan transformasi deterministik vs acak dengan tepat [4]

  • membangun alur kerja yang dapat diulang sehingga input pelatihan dan “kehidupan nyata” tidak menyimpang secara halus [2]

Satu catatan praktis kecil: "pra-pemrosesan" mencakup apa pun yang terjadi secara konsisten sebelum model melihat input . Beberapa tim membagi ini menjadi "rekayasa fitur" versus "pembersihan data", tetapi dalam kehidupan nyata batasan tersebut menjadi kabur.

 

Praproses AI

Mengapa pra-pemrosesan AI lebih penting daripada yang diakui orang 😬

Sebuah model adalah pencocok pola, bukan pembaca pikiran. Jika input Anda tidak konsisten, model akan mempelajari aturan yang tidak konsisten. Itu bukan filosofis, itu sangat harfiah.

Praproses membantu Anda:

  • Meningkatkan stabilitas pembelajaran dengan menempatkan fitur ke dalam representasi yang dapat digunakan oleh estimator secara andal (terutama ketika penskalaan/pengkodean terlibat). [1]

  • Kurangi kebisingan dengan membuat realitas yang berantakan terlihat seperti sesuatu yang dapat digeneralisasikan oleh model (alih-alih menghafal artefak aneh).

  • Mencegah mode kegagalan senyap seperti kebocoran dan ketidaksesuaian kereta/pelayanan (jenis yang terlihat “luar biasa” dalam validasi dan kemudian gagal total di produksi). [2]

  • Percepat iterasi karena transformasi yang berulang jauh lebih baik daripada kode yang berantakan di notebook setiap saat.

Selain itu, di sinilah sebenarnya banyak "kinerja model" berasal. Bahkan... sangat banyak. Terkadang terasa tidak adil, tapi itulah kenyataan 🙃


Apa yang membuat pipeline pra-pemrosesan AI yang baik ✅

“Versi praproses yang baik” biasanya memiliki kualitas-kualitas berikut:

  • Dapat direproduksi : input yang sama → output yang sama (tidak ada keacakan misterius kecuali jika itu adalah penambahan yang disengaja).

  • Konsistensi pelatihan dan penyajian : apa pun yang Anda lakukan pada waktu pelatihan diterapkan dengan cara yang sama pada waktu inferensi (parameter yang sama, peta kategori yang sama, konfigurasi tokenizer yang sama, dll.). [2]

  • Aman dari kebocoran : tidak ada dalam evaluasi/pengujian yang memengaruhi penyesuaian . (Lebih lanjut tentang jebakan ini nanti.) [2]

  • Teramati : Anda dapat memeriksa apa yang berubah (statistik fitur, data yang hilang, jumlah kategori) sehingga proses debugging tidak lagi berdasarkan intuisi semata.

Jika praproses Anda berupa tumpukan sel notebook bernama final_v7_really_final_ok … Anda pasti tahu bagaimana rasanya. Ia berfungsi sampai akhirnya tidak berfungsi lagi 😬


Blok bangunan inti dari pra-pemrosesan AI 🧱

Anggaplah pra-pemrosesan sebagai sekumpulan blok bangunan yang Anda gabungkan menjadi sebuah alur kerja.

1) Pembersihan dan validasi 🧼

Tugas-tugas umum:

  • hapus duplikat

  • menangani nilai yang hilang (menghapus, mengisi, atau menyatakan nilai yang hilang secara eksplisit)

  • menegakkan tipe, satuan, dan rentang

  • mendeteksi input yang salah format

  • menstandarkan format teks (spasi, aturan huruf besar/kecil, kekhasan Unicode)

Bagian ini memang tidak glamor, tetapi ini mencegah kesalahan-kesalahan yang sangat bodoh. Saya mengatakan itu dengan penuh kasih sayang.

2) Pengkodean data kategorikal 🔤

Sebagian besar model tidak dapat langsung menggunakan string mentah seperti "red" atau "premium_user" .

Pendekatan umum:

  • Pengkodean satu panas (kategori → kolom biner) [1]

  • Pengkodean ordinal (kategori → ID bilangan bulat) [1]

Hal terpenting bukanlah mana yang Anda pilih, melainkan pemetaannya tetap konsisten dan tidak “berubah bentuk” antara pelatihan dan inferensi. Itulah mengapa Anda mendapatkan model yang terlihat baik secara offline dan berperilaku buruk secara online. [2]

3) Penskalaan dan normalisasi fitur 📏

Skala menjadi penting ketika fitur-fitur tersebut berada pada rentang yang sangat berbeda.

Dua karya klasik:

  • Standardisasi : menghilangkan rata-rata dan menskalakan ke varians unit [1]

  • Penskalaan min-max : menskalakan setiap fitur ke dalam rentang yang ditentukan [1]

Bahkan ketika Anda menggunakan model yang "cukup memadai," penskalaan sering kali membuat alur kerja lebih mudah dipahami—dan lebih sulit untuk rusak secara tidak sengaja.

4) Rekayasa fitur (alias kecurangan yang bermanfaat) 🧪

Di sinilah Anda mempermudah pekerjaan model dengan membuat sinyal yang lebih baik:

  • rasio (klik / tayangan)

  • jendela bergulir (N hari terakhir)

  • jumlah (kejadian per pengguna)

  • transformasi logaritma untuk distribusi berekor tebal

Ada seninya di sini. Terkadang Anda membuat sebuah fitur, merasa bangga… dan ternyata tidak menghasilkan apa-apa. Atau lebih buruk lagi, malah merugikan. Itu normal. Jangan terlalu terikat secara emosional pada fitur-fitur tersebut - fitur-fitur itu tidak akan membalas cinta Anda 😅

5) Memisahkan data dengan cara yang tepat ✂️

Ini terdengar jelas sampai akhirnya tidak lagi:

  • pembagian acak untuk data iid

  • pemisahan berdasarkan waktu untuk deret waktu

  • pemisahan berkelompok ketika entitas berulang (pengguna, perangkat, pasien)

Dan yang terpenting: pisahkan sebelum melakukan praproses yang belajar dari data . Jika langkah praproses Anda “mempelajari” parameter (seperti rata-rata, kosakata, peta kategori), maka parameter tersebut harus dipelajari hanya dari pelatihan. [2]


Praproses AI berdasarkan tipe data: tabel, teks, gambar 🎛️

Praproses berubah bentuk tergantung pada apa yang Anda masukkan ke dalam model.

Data tabular (lembar kerja, log, basis data) 📊

Langkah-langkah umum:

  • strategi nilai yang hilang

  • pengkodean kategorikal [1]

  • penskalaan kolom numerik [1]

  • penanganan outlier (aturan domain mengalahkan "pemotongan acak" hampir setiap saat)

  • fitur turunan (agregasi, lag, statistik bergulir)

Saran praktis: definisikan grup kolom secara eksplisit (numerik vs kategorikal vs pengidentifikasi). Diri Anda di masa depan akan berterima kasih.

Data teks (NLP) 📝

Praproses teks sering meliputi:

  • tokenisasi menjadi token/subkata

  • konversi ke ID input

  • penambahan/pemotongan

  • membangun masker perhatian untuk pengelompokan [3]

Aturan kecil yang menyelamatkan Anda dari kesulitan: untuk pengaturan berbasis transformer, ikuti pengaturan tokenizer yang diharapkan dari model dan jangan berkreasi tanpa aturan kecuali Anda punya alasan. Berkreasi tanpa aturan hanya akan menghasilkan hasil "modelnya bisa dilatih tetapi hasilnya aneh."

Gambar (penglihatan komputer) 🖼️

Praproses tipikal:

  • mengubah ukuran/memotong agar bentuknya konsisten

  • transformasi deterministik untuk evaluasi

  • transformasi acak untuk augmentasi pelatihan (misalnya, pemotongan acak) [4]

Satu detail yang terlewatkan oleh orang-orang: “transformasi acak” bukan hanya sekadar suasana hati—transformasi ini benar-benar mengambil sampel parameter setiap kali dipanggil. Bagus untuk keragaman pelatihan, buruk untuk evaluasi jika Anda lupa mematikan keacakan. [4]


Jebakan yang sering menjebak semua orang: kebocoran data 🕳️🐍

Kebocoran terjadi ketika informasi dari data evaluasi menyelinap ke dalam data pelatihan—seringkali melalui pra-pemrosesan. Hal ini dapat membuat model Anda tampak luar biasa selama validasi, tetapi kemudian mengecewakan Anda di dunia nyata.

Pola kebocoran umum:

  • penskalaan menggunakan statistik seluruh dataset (bukan hanya pelatihan) [2]

  • membangun peta kategori menggunakan pelatihan+pengujian bersama [2]

  • fit() atau fit_transform() apa pun yang “melihat” set uji [2]

Aturan praktis (sederhana, brutal, efektif):

  • Segala sesuatu yang memiliki yang pas seharusnya hanya pas saat pelatihan.

  • Kemudian Anda melakukan transformasi validasi/pengujian menggunakan transformer yang telah disesuaikan. [2]

Dan jika Anda menginginkan pemeriksaan “seberapa buruknya?”: dokumentasi scikit-learn sendiri menunjukkan contoh kebocoran di mana urutan praproses yang salah menghasilkan akurasi sekitar 0,76 pada target acak—kemudian turun kembali menjadi ~ 0,5 setelah kebocoran diperbaiki. Begitulah meyakinkannya kesalahan yang terlihat akibat kebocoran. [2]


Membawa pra-pemrosesan ke produksi tanpa kekacauan 🏗️

Banyak model gagal dalam produksi bukan karena modelnya "buruk", tetapi karena realitas input berubah—atau alur kerja Anda berubah.

Praproses yang berorientasi pada produksi biasanya meliputi:

  • Artefak yang disimpan (pemetaan encoder, parameter scaler, konfigurasi tokenizer) sehingga inferensi menggunakan transformasi yang dipelajari persis sama [2]

  • Kontrak input yang ketat (kolom/tipe/rentang yang diharapkan)

  • Pemantauan terhadap kemiringan dan pergeseran , karena data produksi akan berubah-ubah [5]

Jika Anda menginginkan definisi konkret: Pemantauan Model AI Vertex Google membedakan antara penyimpangan pelatihan dan penyajian (distribusi produksi menyimpang dari pelatihan) dan pergeseran inferensi (distribusi produksi berubah seiring waktu), dan mendukung pemantauan baik untuk fitur kategorikal maupun numerik. [5]

Karena kejutan itu mahal. Dan bukan kejutan yang menyenangkan.


Tabel perbandingan: alat pra-pemrosesan + pemantauan umum (dan untuk siapa alat tersebut) 🧰

Alat/perpustakaan Terbaik untuk Harga Mengapa ini berhasil (dan sedikit kejujuran)
praproses scikit-learn Pipeline ML tabular Bebas Encoder dan scaler yang solid (OneHotEncoder, StandardScaler, dll.) dan perilaku yang dapat diprediksi [1]
Tokenisasi Wajah Berpelukan persiapan input NLP Bebas Menghasilkan ID input + mask perhatian secara konsisten di seluruh run/model [3]
torchvision mengubah Transformasi visi + peningkatan Bebas Cara bersih untuk mencampur transformasi deterministik dan acak dalam satu pipeline [4]
Pemantauan Model AI Vertex Deteksi penyimpangan/kemiringan pada produksi Berbayar (cloud) Monitor memiliki fitur kemiringan/penyimpangan dan peringatan ketika ambang batas terlampaui [5]

(Ya, tabel ini masih memuat opini. Tapi setidaknya opininya jujur ​​😅)


Daftar periksa pra-pemrosesan praktis yang benar-benar dapat Anda gunakan 📌

Sebelum pelatihan

  • Tetapkan skema input (tipe, satuan, rentang yang diizinkan)

  • Audit nilai yang hilang dan duplikat

  • Pisahkan data dengan cara yang tepat (acak / berdasarkan waktu / dikelompokkan)

  • Lakukan praproses pada pelatihan saja ( fit / fit_transform tetap pada pelatihan) [2]

  • Simpan artefak praproses agar inferensi dapat menggunakannya kembali [2]

Selama pelatihan

  • Terapkan augmentasi acak hanya jika sesuai (biasanya hanya pembagian pelatihan) [4]

  • Pertahankan praproses evaluasi deterministik [4]

  • Lacak perubahan pra-pemrosesan seperti perubahan model (karena memang demikian adanya)

Sebelum penempatan

  • Pastikan inferensi menggunakan jalur praproses dan artefak yang identik [2]

  • Siapkan pemantauan pergeseran/kemiringan (bahkan pemeriksaan distribusi fitur dasar pun sangat membantu) [5]


Analisis mendalam: kesalahan umum dalam pra-pemrosesan (dan cara menghindarinya) 🧯

Kesalahan 1: “Saya akan menormalkan semuanya dengan cepat saja” 😵

Jika Anda menghitung parameter penskalaan pada seluruh dataset, Anda membocorkan informasi evaluasi. Lakukan fitting pada data pelatihan, transformasikan sisanya. [2]

Kesalahan 2: kategori yang berantakan 🧩

Jika pemetaan kategori Anda bergeser antara pelatihan dan inferensi, model Anda dapat secara diam-diam salah membaca dunia. Pertahankan pemetaan tetap melalui artefak yang tersimpan. [2]

Kesalahan 3: penambahan acak yang menyelinap ke dalam evaluasi 🎲

Transformasi acak sangat bagus dalam pelatihan, tetapi tidak boleh “diam-diam diaktifkan” ketika Anda mencoba mengukur kinerja. (Acak berarti acak.) [4]


Kesimpulan Akhir 🧠✨

Praproses AI adalah seni yang terstruktur untuk mengubah realitas yang berantakan menjadi input model yang konsisten. Ini mencakup pembersihan, pengkodean, penskalaan, tokenisasi, transformasi gambar, dan—yang terpenting—alur kerja dan artefak yang dapat diulang.

  • Lakukan praproses dengan sengaja, bukan secara sembarangan. [2]

  • Pisahkan terlebih dahulu, terapkan transformasi hanya pada pelatihan, hindari kebocoran. [2]

  • Gunakan praproses yang sesuai dengan modalitas (tokenisasi untuk teks, transformasi untuk gambar). [3][4]

  • Pantau penyimpangan/pergeseran produksi agar model Anda tidak perlahan-lahan melenceng ke arah yang tidak masuk akal. [5]

Dan jika Anda menemui kesulitan, tanyakan pada diri sendiri:
“Apakah langkah pra-pemrosesan ini masih masuk akal jika saya menjalankannya besok pada data yang benar-benar baru?”
Jika jawabannya “uhh… mungkin?”, itu petunjuknya 😬


Referensi

[1] API scikit-learn:
sklearn.preprocessing (encoder, scaler, normalisasi) [2] scikit-learn: Kesalahan umum - Kebocoran data dan cara menghindarinya
[3] Dokumentasi Hugging Face Transformers: Tokenizer (ID input, mask perhatian)
[4] Dokumentasi PyTorch Torchvision: Transformasi (Ubah Ukuran/Normalisasi + transformasi acak)
[5] Dokumentasi Google Cloud Vertex AI: Gambaran umum Pemantauan Model (kemiringan & pergeseran fitur)

Temukan AI Terbaru di Toko Asisten AI Resmi

Tentang Kami

Kembali ke blog