18+ jam video membawa Anda jauh-jauh dari VAE ke difusi stabil yang hampir real-time dengan Pytorch dan memeluk wajah ... dengan banyak contoh langsung untuk membuat pembelajaran yang mendalam menjadi menyenangkan lagi!
Repositori ini berisi kode, slide, dan contoh dari program video AI generatif pemrograman saya.
Pemrograman AI Generatif adalah tur langsung dengan pemodelan generatif yang dalam, membawa Anda dari membangun jaringan saraf feedforward sederhana di Pytorch sampai-sampai bekerja dengan model multimodal besar yang mampu memahami teks dan gambar. Sepanjang jalan, Anda akan belajar cara melatih model generatif Anda sendiri dari awal untuk menciptakan ketidakterbatasan gambar, menghasilkan teks dengan model bahasa besar (LLM) yang mirip dengan yang menyalakan aplikasi seperti chatgpt, menulis pipa teks-ke-gambar Anda sendiri untuk memahami bagaimana model generatif berbasis prompt bekerja, dan personalisasi model pretrained besar seperti difusi stabil untuk menghasilkan gambar novel novel yang benar-benar unik dalam visual yang unik, dan personalisasi besar-besaran.
Kode, slide, dan latihan di repositori ini (dan akan selalu) tersedia secara bebas. Video yang sesuai dapat dibeli di:
Cara termudah untuk memulai (video atau tidak) adalah dengan menggunakan lingkungan/platform Cloud Notebook seperti Google Colab (atau Kaggle, Paperspace, dll.). Untuk kenyamanan saya telah memberikan tautan ke buku catatan Jupyter mentah untuk pengembangan lokal, tautan NBViewer jika Anda ingin menelusuri kode tanpa mengkloning repo (atau Anda dapat menggunakan penampil github bawaan), dan tautan Colab jika Anda ingin menjalankan kode secara interaktif tanpa menyiapkan lingkungan pengembangan lokal (dan pertempuran dengan perpustakaan Cuda).
| Buku catatan | Slide | Nbviewer (statis) | Google Colab (Interaktif) |
|---|---|---|---|
| Pelajaran 1: Apa, mengapa, dan bagaimana AI generatif | |||
| Pelajaran 2: Pytorch untuk yang tidak sabar | |||
| Pelajaran 3: Laten Space aturan segala sesuatu di sekitar saya | |||
| Pelajaran 4: Demistifikasi Difusi | |||
| Pelajaran 5: Menghasilkan dan mengkode teks dengan transformator | |||
| Pelajaran 6: Menghubungkan Teks dan Gambar | |||
| Pelajaran 7: Prosedur pasca-pelatihan untuk model difusi |
Jika Anda menemukan kesalahan dalam kode atau materi, silakan buka masalah GitHub atau kirim email ke [email protected].
git clone https://github.com/jonathandinu/programming-generative-ai.git
cd programming-generative-aiKode yang diimplementasikan dan diuji dengan Python 3.10.12 (versi lain> = 3.8 cenderung berfungsi dengan baik tetapi pembeli waspar ...). Untuk menginstal semua paket yang digunakan di seluruh buku catatan di lingkungan virtual lokal:
# pyenv install 3.10.12
python --version
# => Python 3.10.12
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt Jika menggunakan pyenv untuk mengelola versi Python, pyenv harus secara otomatis menggunakan versi yang tercantum dalam .python-version saat berubah menjadi direktori ini.
Selain itu, notebook diatur dengan sel untuk secara otomatis memilih perangkat yang sesuai (GPU) berdasarkan apa yang tersedia. Jika pada mesin Windows atau Linux, baik NVIDIA dan AMD GPU harus berfungsi (meskipun ini hanya diuji dengan NVIDIA). Dan jika pada mac silikon apel, shader kinerja logam akan digunakan.
import torch
# default device boilerplate
device = (
"cuda" # Device for NVIDIA or AMD GPUs
if torch . cuda . is_available ()
else "mps" # Device for Apple Silicon (Metal Performance Shaders)
if torch . backends . mps . is_available ()
else "cpu"
)
print ( f"Using { device } device" )Jika tidak ada perangkat yang kompatibel dapat ditemukan, kode akan default ke backend CPU. Ini seharusnya baik untuk pelajaran 1 dan 2 tetapi untuk salah satu contoh pembuatan gambar (hampir semua hal setelah pelajaran 2), tidak menggunakan GPU kemungkinan akan sangat lambat - dalam hal ini saya akan merekomendasikan menggunakan tautan Google Colab dalam tabel di atas.
Menengah ke lanjutan
Pelajaran 1 dimulai dengan pengantar apa sebenarnya AI generatif, setidaknya karena relevan dengan kursus ini, sebelum pindah ke spesifik pemodelan generatif yang dalam. Ini mencakup sejumlah besar model multimodal yang mungkin (dalam hal modalitas input dan output) dan bagaimana mungkin bagi algoritma untuk benar -benar menghasilkan media kaya yang tampaknya tidak ada di udara tipis. Pelajaran berakhir dengan sedikit formalisasi dan teori model generatif yang dalam, dan pengorbanan antara berbagai jenis arsitektur pemodelan generatif.
Pelajaran 2 dimulai dengan pengantar kerangka kerja Pytorch dan pembelajaran yang mendalam secara umum. Saya menunjukkan kepada Anda bagaimana kombinasi diferensiasi otomatis dan perhitungan transparan pada GPU benar -benar memungkinkan ledakan penelitian dan aplikasi pembelajaran mendalam saat ini. Selanjutnya, saya menunjukkan kepada Anda bagaimana Anda dapat menggunakan Pytorch untuk mengimplementasikan dan mempelajari model regresi linier - sebagai batu loncatan untuk membangun jaringan saraf yang jauh lebih kompleks. Akhirnya, pelajaran berakhir dengan menggabungkan semua komponen yang disediakan Pytorch untuk membangun feed forforward multi-layer Perceptron sederhana.
Pelajaran 3 dimulai dengan primer tentang bagaimana program komputer sebenarnya mewakili gambar sebagai tensor angka. Saya membahas detail jaringan saraf konvolusional dan fitur arsitektur spesifik yang memungkinkan komputer "melihat". Selanjutnya, Anda mendapatkan rasa pertama dari model variabel laten dengan membangun dan melatih autoencoder sederhana untuk mempelajari representasi terkompresi dari gambar input. Di akhir pelajaran, Anda menemukan model generatif pertama yang tepat dengan menambahkan pengambilan sampel probabilistik ke arsitektur autoencoder untuk tiba di variasional autoencoder (VAE) - komponen kunci dalam model generatif mendatang yang akan kita temui.
Pelajaran 4 dimulai dengan pengantar konseptual untuk model difusi, komponen kunci dalam kondisi saat ini dari sistem teks-ke-gambar seni seperti difusi yang stabil. Pelajaran 4 adalah pengantar nyata pertama Anda untuk ekosistem wajah pelukan dari perpustakaan open-source, di mana Anda akan melihat bagaimana kami dapat menggunakan perpustakaan difuser untuk menghasilkan gambar dari kebisingan acak. Pelajaran kemudian perlahan -lahan mengupas lapisan di perpustakaan untuk mendekonstruksi proses difusi dan menunjukkan kepada Anda spesifik tentang bagaimana pipa difusi sebenarnya bekerja. Akhirnya, Anda belajar cara memanfaatkan keterjangkauan unik dari proses denoising iteratif model difusi untuk menginterpolasi antara gambar, melakukan terjemahan gambar-ke-gambar, dan bahkan memulihkan dan meningkatkan gambar.
Sama seperti Pelajaran 4 adalah semua tentang gambar, Pelajaran 5 adalah semua tentang teks. Dimulai dengan pengantar konseptual untuk pipa pemrosesan bahasa alami, serta pengantar model bahasa probabilistik. Anda kemudian belajar bagaimana Anda dapat mengubah teks menjadi representasi yang lebih mudah dipahami oleh model generatif, dan mengeksplorasi utilitas yang lebih luas untuk mewakili kata -kata sebagai vektor. Pelajaran berakhir dengan perawatan arsitektur transformator, di mana Anda akan melihat bagaimana Anda dapat menggunakan perpustakaan Face Transformers untuk melakukan inferensi dengan model bahasa besar (LLM) pra-terlatih untuk menghasilkan teks dari awal.
Pelajaran 6 dimulai dengan pengantar konseptual untuk model multimodal dan komponen yang diperlukan. Anda melihat bagaimana gambar bahasa kontras pra-pelatihan bersama secara bersama-sama mempelajari model gambar dan teks yang dibagikan, dan mempelajari bagaimana ruang laten bersama dapat digunakan untuk membangun mesin pencari gambar semantik. Pelajaran berakhir dengan tinjauan konseptual model difusi laten, sebelum mendekonstruksi pipa difusi yang stabil untuk melihat dengan tepat bagaimana sistem teks-ke-gambar dapat mengubah prompt yang disediakan pengguna menjadi gambar yang belum pernah dilihat sebelumnya.
Pelajaran 7 adalah semua tentang mengadaptasi dan menambah model multimodal pra-terlatih yang ada. Ini dimulai dengan tugas yang lebih biasa, tetapi sangat penting, untuk mengevaluasi model generatif sebelum beralih ke metode dan teknik untuk penyetelan efisien parameter. Anda kemudian belajar cara mengajarkan model teks-ke-gambar pra-terlatih seperti difusi stabil tentang gaya, subjek, dan pengkondisian baru. Pelajaran berakhir dengan teknik untuk membuat difusi jauh lebih efisien untuk mendekati pembuatan gambar di dekat waktu nyata.
© ️ 2024 Jonathan Dinu. Semua hak dilindungi undang -undang. Penghapusan pemberitahuan hak cipta atau reproduksi ini sebagian atau seluruh teks, gambar, dan/atau kode secara tegas dilarang.
Untuk izin menggunakan konten dalam presentasi Anda sendiri (posting blog, kuliah, video, kursus, dll.) Silakan hubungi [email protected].