Jawaban singkat: Praproses AI adalah serangkaian langkah berulang yang mengubah data mentah dengan variabilitas tinggi menjadi input model yang konsisten, termasuk pembersihan, pengkodean, penskalaan, tokenisasi, dan transformasi gambar. Hal ini penting karena jika input pelatihan dan input produksi berbeda, model dapat gagal tanpa menimbulkan kesalahan. Jika suatu langkah "mempelajari" parameter, terapkan hanya pada data pelatihan untuk menghindari kebocoran data.
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]
Poin-poin penting:
Definisi : Praproses mengubah tabel mentah, teks, gambar, dan log menjadi fitur yang siap digunakan dalam model.
Konsistensi : Terapkan transformasi yang sama selama pelatihan dan inferensi untuk mencegah kegagalan ketidaksesuaian.
Kebocoran : Sesuaikan scaler, encoder, dan tokeniser hanya pada data pelatihan.
Reproduksibilitas : Bangun pipeline dengan statistik yang dapat diperiksa, bukan urutan sel notebook ad-hoc.
Pemantauan produksi : Melacak penyimpangan dan pergeseran agar input tidak secara bertahap mengikis kinerja.
Artikel-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.

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()ataufit_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_transformtetap 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 😬
Pertanyaan yang Sering Diajukan (FAQ)
Secara sederhana, apa itu pra-pemrosesan AI?
Praproses AI adalah serangkaian langkah berulang yang mengubah data mentah yang bising dan memiliki varians tinggi menjadi input yang konsisten yang dapat dipelajari oleh model. Ini dapat mencakup pembersihan, validasi, pengkodean kategori, penskalaan nilai numerik, tokenisasi teks, dan penerapan transformasi gambar. Tujuannya adalah untuk memastikan pelatihan dan inferensi produksi melihat input yang "sama jenisnya", sehingga model tidak menyimpang ke perilaku yang tidak dapat diprediksi di kemudian hari.
Mengapa pra-pemrosesan AI sangat penting dalam produksi?
Praproses sangat penting karena model sensitif terhadap representasi input. Jika data pelatihan diskalakan, dienkode, ditokenisasi, atau ditransformasikan secara berbeda dari data produksi, Anda dapat mengalami kegagalan ketidaksesuaian antara data pelatihan dan data yang disajikan, yang tampak baik secara offline tetapi gagal secara diam-diam saat online. Pipeline praproses yang kuat juga mengurangi noise, meningkatkan stabilitas pembelajaran, dan mempercepat iterasi karena Anda tidak perlu lagi mengurai kekacauan kode dalam notebook.
Bagaimana cara menghindari kebocoran data saat melakukan pra-pemrosesan?
Aturan sederhana berlaku: apa pun yang memiliki penyesuaian (fit step) harus disesuaikan hanya pada data pelatihan. Itu termasuk scaler, encoder, dan tokeniser yang mempelajari parameter seperti rata-rata, peta kategori, atau kosakata. Anda membagi data terlebih dahulu, menyesuaikannya pada data pelatihan, lalu mentransformasi data validasi/pengujian menggunakan transformer yang telah disesuaikan. Kebocoran data dapat membuat validasi terlihat "ajaib" bagus dan kemudian gagal dalam penggunaan produksi.
Apa saja langkah-langkah pra-pemrosesan yang paling umum untuk data tabular?
Untuk data tabular, alur kerja standar mencakup pembersihan dan validasi (tipe, rentang, nilai yang hilang), pengkodean kategorikal (one-hot atau ordinal), dan penskalaan numerik (standardisasi atau min-max). Banyak alur kerja menambahkan rekayasa fitur berbasis domain seperti rasio, jendela bergulir, atau penghitungan. Kebiasaan praktisnya adalah mendefinisikan grup kolom secara eksplisit (numerik vs kategorikal vs pengidentifikasi) agar transformasi Anda tetap konsisten.
Bagaimana cara kerja pra-pemrosesan untuk model teks?
Praproses teks biasanya berarti tokenisasi menjadi token/subkata, mengubahnya menjadi ID input, dan menangani padding/pemotongan untuk pengelompokan. Banyak alur kerja transformer juga membuat mask perhatian bersamaan dengan ID. Pendekatan umum adalah menggunakan konfigurasi tokenizer yang diharapkan dari model daripada berimprovisasi, karena perbedaan kecil dalam pengaturan tokenizer dapat menyebabkan hasil "model berhasil dilatih tetapi berperilaku tidak terduga".
Apa yang berbeda dari pra-pemrosesan gambar untuk pembelajaran mesin?
Praproses gambar biasanya memastikan bentuk dan penanganan piksel yang konsisten: pengubahan ukuran/pemotongan, normalisasi, dan pemisahan yang jelas antara transformasi deterministik dan acak. Untuk evaluasi, transformasi harus deterministik agar metrik dapat dibandingkan. Untuk pelatihan, augmentasi acak (seperti pemotongan acak) dapat meningkatkan ketahanan, tetapi keacakan harus sengaja dibatasi pada bagian pelatihan, bukan dibiarkan secara tidak sengaja selama evaluasi.
Apa yang membuat alur kerja pra-pemrosesan menjadi "baik" dan bukan rapuh?
Pipeline pra-pemrosesan AI yang baik bersifat dapat direproduksi, aman dari kebocoran data, dan dapat diamati. Dapat direproduksi berarti input yang sama menghasilkan output yang sama kecuali jika keacakan merupakan penambahan yang disengaja. Aman dari kebocoran data berarti langkah-langkah penyesuaian tidak pernah menyentuh validasi/pengujian. Dapat diamati berarti Anda dapat memeriksa statistik seperti data yang hilang, jumlah kategori, dan distribusi fitur sehingga proses debugging didasarkan pada bukti, bukan intuisi. Pipeline selalu lebih baik daripada rangkaian notebook ad-hoc.
Bagaimana cara menjaga konsistensi antara pra-pemrosesan pelatihan dan inferensi?
Kuncinya adalah menggunakan kembali artefak yang telah dipelajari secara persis pada saat inferensi: parameter scaler, pemetaan encoder, dan konfigurasi tokenizer. Anda juga memerlukan kontrak input (kolom, tipe, dan rentang yang diharapkan) agar data produksi tidak secara diam-diam berubah menjadi bentuk yang tidak valid. Konsistensi bukan hanya "lakukan langkah-langkah yang sama" - tetapi "lakukan langkah-langkah yang sama dengan parameter dan pemetaan yang telah disesuaikan yang sama."
Bagaimana cara saya memantau masalah pra-pemrosesan seperti pergeseran dan kemiringan dari waktu ke waktu?
Meskipun dengan alur kerja yang solid, data produksi tetap berubah. Pendekatan umum adalah memantau perubahan distribusi fitur dan memberikan peringatan jika terjadi penyimpangan antara data pelatihan dan data yang disajikan (produksi menyimpang dari data pelatihan) dan pergeseran inferensi (produksi berubah seiring waktu). Pemantauan dapat dilakukan secara ringan (pemeriksaan distribusi dasar) atau terkelola (seperti Vertex AI Model Monitoring). Tujuannya adalah untuk mendeteksi pergeseran input sejak dini - sebelum pergeseran tersebut secara perlahan mengikis kinerja model.
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)