Proyek deep learning berdiri di atas tiga artefak yang kebanyakan tidak kita tulis sendiri: dataset dari pihak lain, bobot model yang diunduh dari hub publik, dan kode pustaka yang dipasang lewat pip. Setiap artefak membawa lisensinya masing-masing — kontrak hukum yang menentukan boleh atau tidaknya dipakai komersial, wajib atau tidaknya atribusi, dan menular atau tidaknya ketentuan ke karya turunan. Kesalahan di sini tidak menghasilkan galat teknis yang mudah dilacak; kesalahan muncul bertahun kemudian sebagai klaim hukum setelah produk sukses. Chapter penutup materi inti Course ini memetakan lisensi yang paling sering dijumpai, memisahkan aturan ketiga jenis artefak, lalu mendemonstrasikan filter lisensi sederhana pada katalog fiktif.
Peta Lisensi yang Paling Sering Dijumpai #
| Lisensi | Komersial | Atribusi | Share-alike | Khas untuk | Catatan penting |
|---|---|---|---|---|---|
| MIT | ya | ya (licensi disertakan) | tidak | kode, bobot model | ringkas, hampir tanpa syarat |
| Apache-2.0 | ya | ya (NOTICE disertakan) | tidak | kode, bobot model | plus perlindungan paten eksplisit |
| CC-BY-4.0 | ya | ya | tidak | dataset | kredit sumber wajib |
| CC-BY-SA-4.0 | ya | ya | ya | dataset | karya turunan lisensinya sama |
| CC-BY-NC-4.0 | tidak | ya | tidak | dataset | NC = non-komersial |
| CC0-1.0 | ya | tidak | tidak | dataset | dilepas ke domain publik |
| ODbL-1.0 | ya | ya | ya | database | turunan data wajib ODbL |
| GPL-3.0 | ya | ya | ya | kode, bobot model | software yang menaut wajib GPL |
Dua rujukan resmi memuat teks lengkapnya: creativecommons.org untuk keluarga CC, dan opensource.org untuk lisensi open source perangkat lunak. Tabel di atas adalah ringkasan navigasi, bukan nasihat hukum — bila produk Anda bernilai komersial, keputusan akhir sebaiknya melibatkan pihak yang berwenang memberi nasihat hukum.
Tiga Artefak, Tiga Aturan #
Satu proyek memuat ketiga artefak sekaligus dan lisensinya tidak saling mengikuti otomatis:
- Dataset diatur lisensi data (CC-BY, CC-BY-NC, ODbL). Model yang dilatih pada dataset berlisensi share-alike dapat dianggap karya turunan oleh penerbit — titik yang masih diperdebatkan dan alasan kuat untuk memilih hati-hati.
- Bobot model diatur lisensi yang dipilih penerbitnya — banyak di Hugging Face Hub memakai Apache-2.0 atau lisensi khusus komunitas. Field
licensepada model card adalah tempat pertama memeriksanya. - Kode (pustaka, skrip training) mengikuti lisensi perangkat lunak: MIT dan Apache-2.0 lazim dan longgar; GPL menuntut karya yang menaut kode tersebut ikut terbuka dengan lisensi sama.
Demo: Filter Katalog Sebelum Proyek Dimulai #
Berkas lisensi_katalog.py mendefinisikan katalog mini sepuluh artefak fiktif — dataset dan model dengan lisensi beragam — lalu menyaring mana yang boleh dipakai produk komersial. Setiap entri menyimpan tiga kewajiban utama (izin komersial, atribusi, share-alike) sehingga filter sekaligus mencetak kewajiban yang melekat pada tiap artefak lolos:
"""Katalog mini artefak deep learning: memeriksa lisensi sebelum
memakai dataset dan model untuk produk komersial.
Setiap entri menyimpan tiga kewajiban utama lisensi: izin komersial,
kewajiban atribusi, dan kewajiban share-alike. Seluruh nama dataset
dan model di bawah ini fiktif.
"""
KATALOG = [
# nama, tipe, lisensi, komersial, atribusi, share_alike
("korpus-berita-id", "dataset", "CC-BY-4.0", True, True, False),
("foto-kucing-tersegmentasi", "dataset", "CC-BY-NC-4.0",
False, True, False),
("transkrip-seminar-publik", "dataset", "CC0-1.0",
True, False, False),
("tabel-harga-pasar", "dataset", "ODbL-1.0", True, True, True),
("komentar-ulasan-toko", "dataset", "CC-BY-NC-4.0",
False, True, False),
("detektor-spam-mini", "model", "MIT", True, True, False),
("embedder-teks-id", "model", "Apache-2.0", True, True, False),
("lm-idringan-300m", "model", "CC-BY-NC-4.0", False, True, False),
("pengenal-entitas-id", "model", "GPL-3.0", True, True, True),
("klasifikasi-suara-v1", "model", "Apache-2.0", True, True, False),
]
print("===== KATALOG ARTIFAK (fiktif) =====")
print(f"{'nama':28s} {'tipe':8s} {'lisensi':12s} "
f"{'komersial':9s} {'atribusi':8s} {'share-alike':11s}")
for nama, tipe, lis, kom, atr, sa in KATALOG:
print(f"{nama:28s} {tipe:8s} {lis:12s} "
f"{'ya' if kom else 'TIDAK':9s} "
f"{'ya' if atr else 'tidak':8s} "
f"{'ya' if sa else 'tidak':11s}")
lolos = [e for e in KATALOG if e[3]]
print()
print("===== FILTER: BOLEH DIPAKAI PRODUK KOMERSIAL =====")
for nama, tipe, lis, _, atr, sa in lolos:
catatan = []
if atr:
catatan.append("wajib atribusi")
if sa:
catatan.append("turunan ikut lisensi sama")
keterangan = ", ".join(catatan) if catatan else "bebas syarat"
print(f"- {nama} ({tipe}, {lis}): {keterangan}")
print(f"total lolos: {len(lolos)}/{len(KATALOG)}")
print("yang tidak lolos semuanya berlisensi NC (non-komersial)")Output yang Dihasilkan:
===== KATALOG ARTIFAK (fiktif) =====
nama tipe lisensi komersial atribusi share-alike
korpus-berita-id dataset CC-BY-4.0 ya ya tidak
foto-kucing-tersegmentasi dataset CC-BY-NC-4.0 TIDAK ya tidak
transkrip-seminar-publik dataset CC0-1.0 ya tidak tidak
tabel-harga-pasar dataset ODbL-1.0 ya ya ya
komentar-ulasan-toko dataset CC-BY-NC-4.0 TIDAK ya tidak
detektor-spam-mini model MIT ya ya tidak
embedder-teks-id model Apache-2.0 ya ya tidak
lm-idringan-300m model CC-BY-NC-4.0 TIDAK ya tidak
pengenal-entitas-id model GPL-3.0 ya ya ya
klasifikasi-suara-v1 model Apache-2.0 ya ya tidak
===== FILTER: BOLEH DIPAKAI PRODUK KOMERSIAL =====
- korpus-berita-id (dataset, CC-BY-4.0): wajib atribusi
- transkrip-seminar-publik (dataset, CC0-1.0): bebas syarat
- tabel-harga-pasar (dataset, ODbL-1.0): wajib atribusi, turunan ikut lisensi sama
- detektor-spam-mini (model, MIT): wajib atribusi
- embedder-teks-id (model, Apache-2.0): wajib atribusi
- pengenal-entitas-id (model, GPL-3.0): wajib atribusi, turunan ikut lisensi sama
- klasifikasi-suara-v1 (model, Apache-2.0): wajib atribusi
total lolos: 7/10
yang tidak lolos semuanya berlisensi NC (non-komersial)Contoh di atas diuji nyata dengan Python 3.12 pada CPU dan selesai dalam waktu di bawah satu detik. Mari kita telaah kode di atas baris per baris:
- Baris 9-24 (katalog sebagai data): setiap entri adalah tuple enam kolom; keputusan lisensi diperlakukan sebagai data yang dapat difilter — pola yang sama dengan audit bias pada Bias dan Fairness : kebijakan yang tidak bisa dihitung tidak bisa diaudit.
- Baris 26-33 (cetak tabel utuh): kolom
komersial,atribusi, danshare-alikeditampilkan untuk semua artefak supaya pembaca melihat polanya sebelum difilter — tiga entri NC tampak menonjol dengan nilaiTIDAK. - Baris 35 (filter satu baris):
e[3]adalah flag komersial; seleksi ini menirukan gerbang keputusan pertama setiap proyek komersial, diletakkan sebelum satu baris kode training ditulis. - Baris 38-45 (kewajiban yang melekat): artefak lolos tetap membawa syarat — CC-BY-4.0 dan MIT menuntut atribusi, ODbL-1.0 dan GPL-3.0 menambah kewajiban share-alike; hanya CC0 yang bebas syarat. Keluarannya bukan sekadar daftar nama, melainkan daftar kewajiban yang harus dipenuhi tim hukum dan tim produk.
Membaca Angka dan Praktik Rapi #
Hasil filter memperlihatkan struktur keputusan yang sehat: 7 dari 10 artefak lolos, dan seluruh yang ditolak jatuh pada satu sebab — lisensi NC. Artefak NC bukan artefak buruk; lisensi itu adalah pilihan sah penerbitnya untuk membatasi penggunaan komersial, dan bagi riset akademik seluruhnya tetap terbuka. Praktik rapi yang menyusul filter: catat lisensi setiap artefak di model card (field license standar Hugging Face), simpan salinan teks lisensi berserta versinya di repositori proyek, dan ulangi pemeriksaan setiap kali artefak baru masuk — kebiasaan yang menjadi bagian dari dokumentasi Responsible AI
. Untuk dataset buatan sendiri, keputusan lisensi juga menjadi tanggung jawab penerbit: CC-BY bila terbuka dengan atribusi, CC0 bila dipersembahkan sepenuhnya, dan pengecualian komersial bila itu memang niatannya.
Dengan lisensi, sembilan chapter section ini menutup lingkaran terakhir: model yang adil pada kelompoknya, data yang terlindungi pemiliknya, input yang tidak mudah mengelabui, racun yang terdeteksi, kebocoran yang dipersempit, dunia yang bergeser terpantau, keputusan yang dapat dijelaskan, sistem yang terdokumentasi — dan seluruh bangunan itu berdiri di atas fondasi yang sah secara hukum. Materi inti Course berakhir di sini; langkah berikutnya adalah merangkai semuanya menjadi karya sendiri pada section Proyek .