Buckets:

rtrm's picture
download
raw
52.5 kB
<meta charset="utf-8" /><meta name="hf:doc:metadata" content="{&quot;title&quot;:&quot;Bagaimana 🤗 Transformers Menyelesaikan Tugas&quot;,&quot;local&quot;:&quot;bagaimana--transformers-menyelesaikan-tugas&quot;,&quot;sections&quot;:[{&quot;title&quot;:&quot;Model Transformer untuk Bahasa&quot;,&quot;local&quot;:&quot;model-transformer-untuk-bahasa&quot;,&quot;sections&quot;:[{&quot;title&quot;:&quot;Bagaimana Model Bahasa Bekerja&quot;,&quot;local&quot;:&quot;bagaimana-model-bahasa-bekerja&quot;,&quot;sections&quot;:[],&quot;depth&quot;:3},{&quot;title&quot;:&quot;Jenis Model Bahasa&quot;,&quot;local&quot;:&quot;jenis-model-bahasa&quot;,&quot;sections&quot;:[],&quot;depth&quot;:3},{&quot;title&quot;:&quot;Generasi Teks&quot;,&quot;local&quot;:&quot;generasi-teks&quot;,&quot;sections&quot;:[],&quot;depth&quot;:3},{&quot;title&quot;:&quot;Klasifikasi Teks&quot;,&quot;local&quot;:&quot;klasifikasi-teks&quot;,&quot;sections&quot;:[],&quot;depth&quot;:3},{&quot;title&quot;:&quot;Klasifikasi Token&quot;,&quot;local&quot;:&quot;klasifikasi-token&quot;,&quot;sections&quot;:[],&quot;depth&quot;:3},{&quot;title&quot;:&quot;Menjawab Pertanyaan&quot;,&quot;local&quot;:&quot;menjawab-pertanyaan&quot;,&quot;sections&quot;:[],&quot;depth&quot;:3},{&quot;title&quot;:&quot;Ringkasan Teks (Summarization)&quot;,&quot;local&quot;:&quot;ringkasan-teks-summarization&quot;,&quot;sections&quot;:[],&quot;depth&quot;:3},{&quot;title&quot;:&quot;Terjemahan&quot;,&quot;local&quot;:&quot;terjemahan&quot;,&quot;sections&quot;:[],&quot;depth&quot;:3}],&quot;depth&quot;:2},{&quot;title&quot;:&quot;Modalitas Selain Teks&quot;,&quot;local&quot;:&quot;modalitas-selain-teks&quot;,&quot;sections&quot;:[{&quot;title&quot;:&quot;Suara dan Audio&quot;,&quot;local&quot;:&quot;suara-dan-audio&quot;,&quot;sections&quot;:[],&quot;depth&quot;:3},{&quot;title&quot;:&quot;Pengenalan Ucapan Otomatis (ASR)&quot;,&quot;local&quot;:&quot;pengenalan-ucapan-otomatis-asr&quot;,&quot;sections&quot;:[],&quot;depth&quot;:3},{&quot;title&quot;:&quot;Visi Komputer&quot;,&quot;local&quot;:&quot;visi-komputer&quot;,&quot;sections&quot;:[],&quot;depth&quot;:3},{&quot;title&quot;:&quot;Klasifikasi Gambar&quot;,&quot;local&quot;:&quot;klasifikasi-gambar&quot;,&quot;sections&quot;:[],&quot;depth&quot;:3}],&quot;depth&quot;:2}],&quot;depth&quot;:1}">
<link href="/docs/course/pr_1052/id/_app/immutable/assets/0.e3b0c442.css" rel="modulepreload">
<link rel="modulepreload" href="/docs/course/pr_1052/id/_app/immutable/entry/start.5943204e.js">
<link rel="modulepreload" href="/docs/course/pr_1052/id/_app/immutable/chunks/scheduler.1d51f4c0.js">
<link rel="modulepreload" href="/docs/course/pr_1052/id/_app/immutable/chunks/singletons.8dbecaac.js">
<link rel="modulepreload" href="/docs/course/pr_1052/id/_app/immutable/chunks/index.fa8592cf.js">
<link rel="modulepreload" href="/docs/course/pr_1052/id/_app/immutable/chunks/paths.547a3d4b.js">
<link rel="modulepreload" href="/docs/course/pr_1052/id/_app/immutable/entry/app.b3380ec8.js">
<link rel="modulepreload" href="/docs/course/pr_1052/id/_app/immutable/chunks/index.86f0ceea.js">
<link rel="modulepreload" href="/docs/course/pr_1052/id/_app/immutable/nodes/0.b0267e25.js">
<link rel="modulepreload" href="/docs/course/pr_1052/id/_app/immutable/chunks/each.e59479a4.js">
<link rel="modulepreload" href="/docs/course/pr_1052/id/_app/immutable/nodes/9.ce6c9cb5.js">
<link rel="modulepreload" href="/docs/course/pr_1052/id/_app/immutable/chunks/Youtube.d8ae3a4d.js">
<link rel="modulepreload" href="/docs/course/pr_1052/id/_app/immutable/chunks/CodeBlock.8a3abcd3.js">
<link rel="modulepreload" href="/docs/course/pr_1052/id/_app/immutable/chunks/getInferenceSnippets.462a0ab5.js"><!-- HEAD_svelte-u9bgzb_START --><meta name="hf:doc:metadata" content="{&quot;title&quot;:&quot;Bagaimana 🤗 Transformers Menyelesaikan Tugas&quot;,&quot;local&quot;:&quot;bagaimana--transformers-menyelesaikan-tugas&quot;,&quot;sections&quot;:[{&quot;title&quot;:&quot;Model Transformer untuk Bahasa&quot;,&quot;local&quot;:&quot;model-transformer-untuk-bahasa&quot;,&quot;sections&quot;:[{&quot;title&quot;:&quot;Bagaimana Model Bahasa Bekerja&quot;,&quot;local&quot;:&quot;bagaimana-model-bahasa-bekerja&quot;,&quot;sections&quot;:[],&quot;depth&quot;:3},{&quot;title&quot;:&quot;Jenis Model Bahasa&quot;,&quot;local&quot;:&quot;jenis-model-bahasa&quot;,&quot;sections&quot;:[],&quot;depth&quot;:3},{&quot;title&quot;:&quot;Generasi Teks&quot;,&quot;local&quot;:&quot;generasi-teks&quot;,&quot;sections&quot;:[],&quot;depth&quot;:3},{&quot;title&quot;:&quot;Klasifikasi Teks&quot;,&quot;local&quot;:&quot;klasifikasi-teks&quot;,&quot;sections&quot;:[],&quot;depth&quot;:3},{&quot;title&quot;:&quot;Klasifikasi Token&quot;,&quot;local&quot;:&quot;klasifikasi-token&quot;,&quot;sections&quot;:[],&quot;depth&quot;:3},{&quot;title&quot;:&quot;Menjawab Pertanyaan&quot;,&quot;local&quot;:&quot;menjawab-pertanyaan&quot;,&quot;sections&quot;:[],&quot;depth&quot;:3},{&quot;title&quot;:&quot;Ringkasan Teks (Summarization)&quot;,&quot;local&quot;:&quot;ringkasan-teks-summarization&quot;,&quot;sections&quot;:[],&quot;depth&quot;:3},{&quot;title&quot;:&quot;Terjemahan&quot;,&quot;local&quot;:&quot;terjemahan&quot;,&quot;sections&quot;:[],&quot;depth&quot;:3}],&quot;depth&quot;:2},{&quot;title&quot;:&quot;Modalitas Selain Teks&quot;,&quot;local&quot;:&quot;modalitas-selain-teks&quot;,&quot;sections&quot;:[{&quot;title&quot;:&quot;Suara dan Audio&quot;,&quot;local&quot;:&quot;suara-dan-audio&quot;,&quot;sections&quot;:[],&quot;depth&quot;:3},{&quot;title&quot;:&quot;Pengenalan Ucapan Otomatis (ASR)&quot;,&quot;local&quot;:&quot;pengenalan-ucapan-otomatis-asr&quot;,&quot;sections&quot;:[],&quot;depth&quot;:3},{&quot;title&quot;:&quot;Visi Komputer&quot;,&quot;local&quot;:&quot;visi-komputer&quot;,&quot;sections&quot;:[],&quot;depth&quot;:3},{&quot;title&quot;:&quot;Klasifikasi Gambar&quot;,&quot;local&quot;:&quot;klasifikasi-gambar&quot;,&quot;sections&quot;:[],&quot;depth&quot;:3}],&quot;depth&quot;:2}],&quot;depth&quot;:1}"><!-- HEAD_svelte-u9bgzb_END --> <p></p> <h1 class="relative group"><a id="bagaimana--transformers-menyelesaikan-tugas" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#bagaimana--transformers-menyelesaikan-tugas"><span><svg class="" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg></span></a> <span>Bagaimana 🤗 Transformers Menyelesaikan Tugas</span></h1> <iframe class="w-full xl:w-4/6 h-80" src="https://www.youtube-nocookie.com/embed/zsfR7eY9Uho" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe> <p data-svelte-h="svelte-1lco2nb">Pada bagian <a href="/course/chapter1/3">Transformers, apa yang bisa mereka lakukan?</a>, Anda telah mempelajari tentang pemrosesan bahasa alami (NLP), audio dan suara, tugas visi komputer, serta beberapa aplikasi penting dari teknologi tersebut. Halaman ini akan membahas lebih dalam bagaimana model menyelesaikan tugas-tugas tersebut dan menjelaskan apa yang terjadi di balik layar. Ada banyak cara untuk menyelesaikan sebuah tugas; beberapa model mungkin menggunakan teknik tertentu atau bahkan pendekatan baru. Namun, untuk model Transformer, ide umumnya sama. Karena arsitekturnya fleksibel, sebagian besar model merupakan variasi dari struktur encoder, decoder, atau encoder-decoder.</p> <div class="course-tip bg-gradient-to-br dark:bg-gradient-to-r before:border-green-500 dark:before:border-green-800 from-green-50 dark:from-gray-900 to-white dark:to-gray-950 border border-green-50 text-green-700 dark:text-gray-400"><p data-svelte-h="svelte-tcr6i2">Sebelum mempelajari varian arsitektur secara spesifik, penting untuk memahami bahwa sebagian besar tugas mengikuti pola yang serupa: data input diproses oleh model, lalu output diinterpretasikan untuk tugas tertentu. Perbedaannya terletak pada bagaimana data dipersiapkan, varian arsitektur model yang digunakan, dan bagaimana output diproses.</p></div> <p data-svelte-h="svelte-1e30kbl">Untuk menjelaskan bagaimana tugas diselesaikan, kita akan menelusuri apa yang terjadi di dalam model hingga menghasilkan prediksi yang berguna. Kita akan membahas model berikut beserta tugasnya:</p> <ul data-svelte-h="svelte-1w0azgq"><li><a href="https://huggingface.co/docs/transformers/model_doc/wav2vec2" rel="nofollow">Wav2Vec2</a> untuk klasifikasi audio dan pengenalan ucapan otomatis (ASR)</li> <li><a href="https://huggingface.co/docs/transformers/model_doc/vit" rel="nofollow">Vision Transformer (ViT)</a> dan <a href="https://huggingface.co/docs/transformers/model_doc/convnext" rel="nofollow">ConvNeXT</a> untuk klasifikasi gambar</li> <li><a href="https://huggingface.co/docs/transformers/model_doc/detr" rel="nofollow">DETR</a> untuk deteksi objek</li> <li><a href="https://huggingface.co/docs/transformers/model_doc/mask2former" rel="nofollow">Mask2Former</a> untuk segmentasi gambar</li> <li><a href="https://huggingface.co/docs/transformers/model_doc/glpn" rel="nofollow">GLPN</a> untuk estimasi kedalaman</li> <li><a href="https://huggingface.co/docs/transformers/model_doc/bert" rel="nofollow">BERT</a> untuk tugas NLP seperti klasifikasi teks, klasifikasi token, dan menjawab pertanyaan (menggunakan encoder)</li> <li><a href="https://huggingface.co/docs/transformers/model_doc/gpt2" rel="nofollow">GPT2</a> untuk tugas NLP seperti generasi teks (menggunakan decoder)</li> <li><a href="https://huggingface.co/docs/transformers/model_doc/bart" rel="nofollow">BART</a> untuk tugas NLP seperti ringkasan dan terjemahan (menggunakan encoder-decoder)</li></ul> <div class="course-tip bg-gradient-to-br dark:bg-gradient-to-r before:border-green-500 dark:before:border-green-800 from-green-50 dark:from-gray-900 to-white dark:to-gray-950 border border-green-50 text-green-700 dark:text-gray-400"><p data-svelte-h="svelte-1trsh42">Sebelum melangkah lebih jauh, akan sangat membantu jika Anda memahami dasar arsitektur Transformer. Mengetahui cara kerja encoder, decoder, dan attention akan membantu Anda memahami bagaimana berbagai model Transformer bekerja. Pastikan untuk membaca <a href="https://huggingface.co/course/chapter1/4?fw=pt" rel="nofollow">bagian sebelumnya</a> untuk informasi lebih lanjut!</p></div> <h2 class="relative group"><a id="model-transformer-untuk-bahasa" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#model-transformer-untuk-bahasa"><span><svg class="" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg></span></a> <span>Model Transformer untuk Bahasa</span></h2> <p data-svelte-h="svelte-1a1p87m">Model bahasa berada di pusat perkembangan NLP modern. Model ini dirancang untuk memahami dan menghasilkan bahasa manusia dengan mempelajari pola dan hubungan statistik antara kata atau token dalam teks.</p> <p data-svelte-h="svelte-e1xntp">Transformer awalnya dirancang untuk terjemahan mesin, namun sejak itu telah menjadi arsitektur standar untuk hampir semua tugas AI. Beberapa tugas lebih cocok diselesaikan dengan struktur encoder, lainnya dengan decoder, dan beberapa lagi dengan kombinasi encoder-decoder.</p> <h3 class="relative group"><a id="bagaimana-model-bahasa-bekerja" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#bagaimana-model-bahasa-bekerja"><span><svg class="" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg></span></a> <span>Bagaimana Model Bahasa Bekerja</span></h3> <p data-svelte-h="svelte-1o89nv">Model bahasa bekerja dengan dilatih untuk memprediksi kemungkinan suatu kata berdasarkan konteks kata-kata di sekitarnya. Hal ini memberikan pemahaman dasar tentang bahasa yang dapat digeneralisasi ke berbagai tugas lain.</p> <p data-svelte-h="svelte-1iz1s2w">Ada dua pendekatan utama untuk melatih model Transformer:</p> <ol data-svelte-h="svelte-1bzgniu"><li><p><strong>Masked language modeling (MLM)</strong>: Digunakan oleh model encoder seperti BERT. Dalam pendekatan ini, beberapa token dalam input disamarkan secara acak, dan model dilatih untuk memprediksi token asli berdasarkan konteks sekitarnya. Ini memungkinkan model mempelajari konteks dua arah (melihat ke depan dan ke belakang).</p></li> <li><p><strong>Causal language modeling (CLM)</strong>: Digunakan oleh model decoder seperti GPT. Pendekatan ini memprediksi token berikutnya berdasarkan semua token sebelumnya. Model hanya boleh menggunakan konteks dari kiri untuk memprediksi token berikutnya.</p></li></ol> <h3 class="relative group"><a id="jenis-model-bahasa" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#jenis-model-bahasa"><span><svg class="" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg></span></a> <span>Jenis Model Bahasa</span></h3> <p data-svelte-h="svelte-zd94x7">Dalam pustaka Transformers, model bahasa umumnya dikategorikan dalam tiga jenis arsitektur:</p> <ol data-svelte-h="svelte-1uu75re"><li><p><strong>Model encoder-saja</strong> (misalnya BERT): Menggunakan pendekatan dua arah untuk memahami konteks dari dua arah. Cocok untuk tugas yang membutuhkan pemahaman mendalam seperti klasifikasi, pengenalan entitas bernama, dan menjawab pertanyaan.</p></li> <li><p><strong>Model decoder-saja</strong> (misalnya GPT, Llama): Memproses teks dari kiri ke kanan dan sangat baik untuk tugas generasi teks. Dapat menyelesaikan kalimat, menulis esai, atau bahkan menghasilkan kode dari prompt.</p></li> <li><p><strong>Model encoder-decoder</strong> (misalnya T5, BART): Menggabungkan kedua pendekatan — encoder untuk memahami input dan decoder untuk menghasilkan output. Cocok untuk tugas sequence-to-sequence seperti terjemahan, ringkasan, dan tanya jawab.</p></li></ol> <p data-svelte-h="svelte-pystqf"><img src="https://huggingface.co/datasets/huggingface-course/documentation-images/resolve/main/en/chapter1/transformers_architecture.png" alt="transformer-models-for-language"></p> <p data-svelte-h="svelte-vzcosb">Seperti yang dijelaskan di bagian sebelumnya, model bahasa umumnya dilatih sebelumnya pada jumlah besar data teks secara self-supervised (tanpa anotasi manusia), kemudian disempurnakan (fine-tuned) untuk tugas spesifik. Pendekatan ini, yang disebut pembelajaran transfer (transfer learning), memungkinkan model beradaptasi dengan berbagai tugas NLP dengan data tambahan yang relatif sedikit.</p> <p data-svelte-h="svelte-ssjxp">Di bagian selanjutnya, kita akan mengeksplorasi arsitektur model secara spesifik dan bagaimana mereka digunakan untuk tugas-tugas di bidang suara, visi, dan teks.</p> <div class="course-tip bg-gradient-to-br dark:bg-gradient-to-r before:border-green-500 dark:before:border-green-800 from-green-50 dark:from-gray-900 to-white dark:to-gray-950 border border-green-50 text-green-700 dark:text-gray-400"><p data-svelte-h="svelte-16oovnq">Memahami bagian mana dari arsitektur Transformer (encoder, decoder, atau keduanya) yang paling cocok untuk suatu tugas NLP sangat penting untuk memilih model yang tepat. Umumnya, tugas yang memerlukan konteks dua arah menggunakan encoder, tugas yang menghasilkan teks menggunakan decoder, dan tugas sequence-to-sequence menggunakan encoder-decoder.</p></div> <h3 class="relative group"><a id="generasi-teks" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#generasi-teks"><span><svg class="" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg></span></a> <span>Generasi Teks</span></h3> <p data-svelte-h="svelte-j9rehh">Generasi teks melibatkan pembuatan teks yang koheren dan relevan dengan konteks berdasarkan sebuah prompt atau input.</p> <p data-svelte-h="svelte-nkdnqa"><a href="https://huggingface.co/docs/transformers/model_doc/gpt2" rel="nofollow">GPT-2</a> adalah model decoder-saja yang telah dilatih sebelumnya (pretrained) pada sejumlah besar data teks. GPT-2 dapat menghasilkan teks yang meyakinkan (meskipun tidak selalu benar!) dari sebuah prompt dan bahkan mampu menyelesaikan tugas NLP lain seperti menjawab pertanyaan, meskipun tidak dilatih secara eksplisit untuk itu.</p> <div class="flex justify-center" data-svelte-h="svelte-8822hi"><img src="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/gpt2_architecture.png"></div> <ol data-svelte-h="svelte-4ut6d"><li><p>GPT-2 menggunakan <a href="https://huggingface.co/docs/transformers/tokenizer_summary#bytepair-encoding-bpe" rel="nofollow">byte pair encoding (BPE)</a> untuk melakukan tokenisasi kata dan menghasilkan embedding token. Encoding posisi ditambahkan ke token embeddings untuk menunjukkan posisi setiap token dalam urutan. Embedding ini diteruskan melalui beberapa blok decoder untuk menghasilkan <em>hidden state</em> akhir. Dalam setiap blok decoder, GPT-2 menggunakan <em>masked self-attention</em> yang berarti GPT-2 tidak dapat memperhatikan token di masa depan — hanya token sebelumnya yang diperbolehkan.</p></li> <li><p>Output dari decoder diteruskan ke kepala model bahasa, yang melakukan transformasi linier untuk mengubah hidden states menjadi logits. Label target adalah token berikutnya dalam urutan, yang dibuat dengan menggeser logits satu posisi ke kanan. Kemudian, <em>cross-entropy loss</em> dihitung antara logits dan label untuk memprediksi token berikutnya yang paling mungkin.</p></li></ol> <p data-svelte-h="svelte-c1t5rj">Tujuan pelatihan GPT-2 sepenuhnya berdasarkan <a href="https://huggingface.co/docs/transformers/glossary#causal-language-modeling" rel="nofollow">causal language modeling</a>, yaitu memprediksi kata berikutnya dalam urutan. Ini membuat GPT-2 sangat baik untuk tugas-tugas yang melibatkan generasi teks.</p> <p data-svelte-h="svelte-1k8fjk2">Siap mencoba sendiri generasi teks? Lihat panduan lengkap <a href="https://huggingface.co/docs/transformers/tasks/language_modeling#causal-language-modeling" rel="nofollow">causal language modeling</a> untuk belajar cara fine-tune DistilGPT-2 dan menggunakannya untuk inferensi!</p> <div class="course-tip bg-gradient-to-br dark:bg-gradient-to-r before:border-green-500 dark:before:border-green-800 from-green-50 dark:from-gray-900 to-white dark:to-gray-950 border border-green-50 text-green-700 dark:text-gray-400"><p data-svelte-h="svelte-1ssr21m">Untuk informasi lebih lanjut tentang generasi teks, lihat panduan <a href="generation_strategies">strategi generasi teks</a>!</p></div> <h3 class="relative group"><a id="klasifikasi-teks" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#klasifikasi-teks"><span><svg class="" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg></span></a> <span>Klasifikasi Teks</span></h3> <p data-svelte-h="svelte-dke4v7">Klasifikasi teks melibatkan pemberian kategori pada dokumen teks, seperti analisis sentimen, klasifikasi topik, atau deteksi spam.</p> <p data-svelte-h="svelte-1k3nvlm"><a href="https://huggingface.co/docs/transformers/model_doc/bert" rel="nofollow">BERT</a> adalah model encoder-saja dan merupakan model pertama yang secara efektif mengimplementasikan bidirectional learning untuk memahami representasi teks secara mendalam dengan memperhatikan kata-kata di kedua sisi.</p> <ol data-svelte-h="svelte-1shh78t"><li><p>BERT menggunakan tokenisasi <a href="https://huggingface.co/docs/transformers/tokenizer_summary#wordpiece" rel="nofollow">WordPiece</a> untuk menghasilkan embedding dari teks. Untuk membedakan antara satu kalimat dan pasangan kalimat, token khusus <code>[SEP]</code> ditambahkan. Token <code>[CLS]</code> ditambahkan di awal setiap urutan teks. Output akhir dengan token <code>[CLS]</code> digunakan sebagai input ke <em>classification head</em>. BERT juga menambahkan segment embedding untuk menunjukkan apakah token milik kalimat pertama atau kedua.</p></li> <li><p>BERT dilatih dengan dua tujuan utama: masked language modeling dan next-sentence prediction. Dalam masked language modeling, sebagian token disamarkan secara acak, dan model harus memprediksi token yang disamarkan. Dalam next-sentence prediction, model harus memprediksi apakah kalimat B benar-benar mengikuti kalimat A.</p></li> <li><p>Embedding input diteruskan melalui beberapa lapisan encoder untuk menghasilkan <em>hidden state</em> akhir.</p></li></ol> <p data-svelte-h="svelte-e935r4">Untuk menggunakan model pretrained BERT dalam klasifikasi teks, tambahkan <em>classification head</em> di atas model dasar BERT. Head ini adalah lapisan linier yang menerima hidden state terakhir dan mengubahnya menjadi logits. Cross-entropy loss dihitung antara logits dan label target untuk memprediksi label paling mungkin.</p> <p data-svelte-h="svelte-6ck5di">Siap mencoba klasifikasi teks? Lihat panduan lengkap <a href="https://huggingface.co/docs/transformers/tasks/sequence_classification" rel="nofollow">text classification</a> untuk belajar cara fine-tune DistilBERT dan menggunakannya untuk inferensi!</p> <h3 class="relative group"><a id="klasifikasi-token" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#klasifikasi-token"><span><svg class="" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg></span></a> <span>Klasifikasi Token</span></h3> <p data-svelte-h="svelte-ra75vc">Klasifikasi token melibatkan pemberian label pada setiap token dalam sebuah urutan, seperti pada pengenalan entitas bernama (NER) atau penandaan part-of-speech.</p> <p data-svelte-h="svelte-bvq8n7">Untuk menggunakan BERT dalam tugas seperti NER, tambahkan <em>token classification head</em> di atas model dasar BERT. Head ini adalah lapisan linier yang menerima <em>hidden state</em> terakhir dan mengubahnya menjadi logits. Cross-entropy loss dihitung antara logits dan label setiap token.</p> <p data-svelte-h="svelte-j9g1p2">Siap mencoba klasifikasi token? Lihat panduan lengkap <a href="https://huggingface.co/docs/transformers/tasks/token_classification" rel="nofollow">token classification</a> untuk belajar cara fine-tune DistilBERT dan menggunakannya untuk inferensi!</p> <h3 class="relative group"><a id="menjawab-pertanyaan" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#menjawab-pertanyaan"><span><svg class="" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg></span></a> <span>Menjawab Pertanyaan</span></h3> <p data-svelte-h="svelte-wzid53">Tugas menjawab pertanyaan melibatkan menemukan jawaban dari suatu pertanyaan berdasarkan konteks atau teks yang disediakan.</p> <p data-svelte-h="svelte-3ol7mp">Untuk menggunakan BERT dalam tugas tanya jawab, tambahkan <em>span classification head</em> di atas model BERT. Lapisan linier ini menghitung logits awal dan akhir dari bagian teks yang mengandung jawaban. Cross-entropy loss dihitung antara logits dan posisi label untuk menemukan rentang teks paling mungkin sebagai jawaban.</p> <p data-svelte-h="svelte-1uj0q9u">Siap mencoba menjawab pertanyaan? Lihat panduan lengkap <a href="https://huggingface.co/docs/transformers/tasks/question_answering" rel="nofollow">question answering</a> untuk belajar cara fine-tune DistilBERT dan menggunakannya untuk inferensi!</p> <div class="course-tip bg-gradient-to-br dark:bg-gradient-to-r before:border-green-500 dark:before:border-green-800 from-green-50 dark:from-gray-900 to-white dark:to-gray-950 border border-green-50 text-green-700 dark:text-gray-400"><p data-svelte-h="svelte-dsvd51">💡 Perhatikan betapa mudahnya menggunakan BERT untuk berbagai tugas setelah model dilatih sebelumnya. Anda hanya perlu menambahkan <em>head</em> tertentu untuk memanipulasi <em>hidden states</em> menjadi output yang diinginkan!</p></div> <h3 class="relative group"><a id="ringkasan-teks-summarization" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#ringkasan-teks-summarization"><span><svg class="" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg></span></a> <span>Ringkasan Teks (Summarization)</span></h3> <p data-svelte-h="svelte-1cptw3y">Ringkasan melibatkan merangkum teks panjang menjadi versi yang lebih pendek sambil tetap mempertahankan informasi dan makna penting.</p> <p data-svelte-h="svelte-4f8tqe">Model encoder-decoder seperti <a href="https://huggingface.co/docs/transformers/model_doc/bart" rel="nofollow">BART</a> dan <a href="model_doc/t5">T5</a> dirancang untuk pola <em>sequence-to-sequence</em> seperti tugas ringkasan.</p> <div class="flex justify-center" data-svelte-h="svelte-1vl5qj0"><img src="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/bart_architecture.png"></div> <ol data-svelte-h="svelte-8l8p9u"><li><p>Arsitektur encoder BART mirip dengan BERT dan menerima token serta positional embedding dari teks. BART dilatih dengan merusak input dan kemudian membangunnya kembali dengan decoder. Strategi korupsi teks terbaik yang digunakan adalah <em>text infilling</em>, di mana sejumlah span teks diganti dengan satu token <code>[mask]</code>. Ini mengajarkan model untuk memprediksi jumlah dan isi token yang hilang.</p></li> <li><p>Output encoder diteruskan ke decoder yang harus memprediksi token yang disamarkan dan token utuh lainnya. Output dari decoder dikirim ke <em>language modeling head</em> untuk mengubah <em>hidden states</em> menjadi logits. Cross-entropy loss dihitung antara logits dan label (token yang digeser ke kanan).</p></li></ol> <p data-svelte-h="svelte-5t380r">Siap mencoba ringkasan teks? Lihat panduan lengkap <a href="https://huggingface.co/docs/transformers/tasks/summarization" rel="nofollow">summarization</a> untuk belajar cara fine-tune T5 dan menggunakannya untuk inferensi!</p> <div class="course-tip bg-gradient-to-br dark:bg-gradient-to-r before:border-green-500 dark:before:border-green-800 from-green-50 dark:from-gray-900 to-white dark:to-gray-950 border border-green-50 text-green-700 dark:text-gray-400"><p data-svelte-h="svelte-eq5j9t">Untuk informasi lebih lanjut tentang generasi teks, lihat panduan <a href="https://huggingface.co/docs/transformers/generation_strategies" rel="nofollow">strategi generasi teks</a>!</p></div> <h3 class="relative group"><a id="terjemahan" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#terjemahan"><span><svg class="" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg></span></a> <span>Terjemahan</span></h3> <p data-svelte-h="svelte-1qq0ce1">Terjemahan melibatkan mengubah teks dari satu bahasa ke bahasa lain sambil tetap mempertahankan maknanya. Ini juga merupakan tugas sequence-to-sequence, sehingga Anda bisa menggunakan model encoder-decoder seperti <a href="https://huggingface.co/docs/transformers/model_doc/bart" rel="nofollow">BART</a> atau <a href="model_doc/t5">T5</a>.</p> <p data-svelte-h="svelte-1hoe87k">BART dapat disesuaikan untuk terjemahan dengan menambahkan encoder baru yang diinisialisasi secara acak untuk memetakan bahasa sumber ke input yang bisa diterjemahkan ke bahasa target. Encoder ini dilatih dengan cross-entropy loss dari output model. Setelah itu, semua parameter model dilatih bersama. BART kemudian dikembangkan menjadi versi multibahasa, yaitu mBART.</p> <p data-svelte-h="svelte-1a4csdh">Siap mencoba terjemahan? Lihat panduan lengkap <a href="https://huggingface.co/docs/transformers/tasks/translation" rel="nofollow">translation</a> untuk belajar cara fine-tune T5 dan menggunakannya untuk inferensi!</p> <div class="course-tip bg-gradient-to-br dark:bg-gradient-to-r before:border-green-500 dark:before:border-green-800 from-green-50 dark:from-gray-900 to-white dark:to-gray-950 border border-green-50 text-green-700 dark:text-gray-400"><p data-svelte-h="svelte-2b80g1">Seperti yang Anda lihat, banyak model mengikuti pola yang serupa meskipun digunakan untuk tugas berbeda. Memahami pola umum ini akan membantu Anda lebih cepat memahami model baru dan menyesuaikannya dengan kebutuhan Anda.</p></div> <h2 class="relative group"><a id="modalitas-selain-teks" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#modalitas-selain-teks"><span><svg class="" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg></span></a> <span>Modalitas Selain Teks</span></h2> <p data-svelte-h="svelte-1j434gs">Transformer tidak hanya terbatas pada teks. Mereka juga dapat diterapkan pada modalitas lain seperti suara dan audio, gambar, bahkan video. Dalam kursus ini kita akan fokus pada teks, namun kita juga akan memperkenalkan secara singkat modalitas lainnya.</p> <h3 class="relative group"><a id="suara-dan-audio" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#suara-dan-audio"><span><svg class="" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg></span></a> <span>Suara dan Audio</span></h3> <p data-svelte-h="svelte-n7al94">Mari kita mulai dengan bagaimana model Transformer menangani data suara dan audio, yang menghadirkan tantangan unik dibandingkan teks atau gambar.</p> <p data-svelte-h="svelte-1ovl269"><a href="https://huggingface.co/docs/transformers/main/en/model_doc/whisper" rel="nofollow">Whisper</a> adalah model encoder-decoder (sequence-to-sequence) yang dilatih sebelumnya pada 680.000 jam data audio berlabel. Skala pretraining yang besar ini memungkinkan Whisper memiliki kemampuan zero-shot pada tugas audio dalam bahasa Inggris dan banyak bahasa lain. Decoder memungkinkan Whisper mengubah representasi suara yang dipelajari menjadi output teks tanpa fine-tuning tambahan. Whisper dapat langsung digunakan begitu saja.</p> <div class="flex justify-center" data-svelte-h="svelte-uttt1g"><img src="https://huggingface.co/datasets/huggingface-course/documentation-images/resolve/main/en/chapter1/whisper_architecture.png"></div> <p data-svelte-h="svelte-lo6hd2">Diagram diambil dari <a href="https://huggingface.co/papers/2212.04356" rel="nofollow">makalah Whisper</a>.</p> <p data-svelte-h="svelte-1rlslt1">Model ini memiliki dua komponen utama:</p> <ol data-svelte-h="svelte-1a4al5c"><li><p><strong>Encoder</strong> memproses input audio. Audio mentah diubah terlebih dahulu menjadi log-Mel spectrogram. Spectrogram ini kemudian diteruskan ke jaringan Transformer encoder.</p></li> <li><p><strong>Decoder</strong> mengambil representasi audio yang telah dienkode dan memprediksi token teks secara autoregressive. Decoder adalah Transformer standar yang dilatih untuk memprediksi token teks berikutnya berdasarkan token sebelumnya dan output encoder. Token khusus digunakan di awal input decoder untuk mengarahkan model ke tugas tertentu seperti transkripsi, terjemahan, atau identifikasi bahasa.</p></li></ol> <p data-svelte-h="svelte-29sho8">Whisper dilatih sebelumnya pada dataset audio beranotasi yang sangat besar dan beragam dari internet. Pretraining berskala besar ini memungkinkan Whisper memiliki performa zero-shot yang kuat pada banyak bahasa dan tugas.</p> <p data-svelte-h="svelte-1j6h88v">Setelah pretraining, Anda dapat langsung menggunakan Whisper untuk inferensi zero-shot, atau melakukan fine-tuning pada data Anda untuk hasil yang lebih baik pada tugas tertentu seperti ASR (automatic speech recognition) atau terjemahan suara.</p> <div class="course-tip bg-gradient-to-br dark:bg-gradient-to-r before:border-green-500 dark:before:border-green-800 from-green-50 dark:from-gray-900 to-white dark:to-gray-950 border border-green-50 text-green-700 dark:text-gray-400"><p data-svelte-h="svelte-plz4zs">Inovasi utama dari Whisper adalah pelatihannya yang menggunakan skala data audio yang sangat besar dan beragam dari internet secara weakly-supervised. Ini memungkinkan model melakukan generalisasi luar biasa pada berbagai bahasa, aksen, dan tugas — bahkan tanpa fine-tuning spesifik.</p></div> <h3 class="relative group"><a id="pengenalan-ucapan-otomatis-asr" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#pengenalan-ucapan-otomatis-asr"><span><svg class="" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg></span></a> <span>Pengenalan Ucapan Otomatis (ASR)</span></h3> <p data-svelte-h="svelte-rmtvtw">Untuk menggunakan model Whisper yang telah dilatih sebelumnya dalam tugas ASR, kita memanfaatkan struktur encoder-decoder secara penuh. Encoder memproses input audio, dan decoder menghasilkan transkrip secara token demi token. Saat fine-tuning, model biasanya dilatih menggunakan loss sequence-to-sequence standar (seperti cross-entropy) untuk memprediksi token teks yang benar dari input audio.</p> <p data-svelte-h="svelte-1l9fr0d">Cara termudah menggunakan model yang sudah di-finetune untuk inferensi adalah melalui <code>pipeline</code>.</p> <div class="code-block relative "><div class="absolute top-2.5 right-4"><button class="inline-flex items-center relative text-sm focus:text-green-500 cursor-pointer focus:outline-none transition duration-200 ease-in-out opacity-0 mx-0.5 text-gray-600 " title="code excerpt" type="button"><svg class="" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" fill="currentColor" focusable="false" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path d="M28,10V28H10V10H28m0-2H10a2,2,0,0,0-2,2V28a2,2,0,0,0,2,2H28a2,2,0,0,0,2-2V10a2,2,0,0,0-2-2Z" transform="translate(0)"></path><path d="M4,18H2V4A2,2,0,0,1,4,2H18V4H4Z" transform="translate(0)"></path><rect fill="none" width="32" height="32"></rect></svg> <div class="absolute pointer-events-none transition-opacity bg-black text-white py-1 px-2 leading-tight rounded font-normal shadow left-1/2 top-full transform -translate-x-1/2 translate-y-2 opacity-0"><div class="absolute bottom-full left-1/2 transform -translate-x-1/2 w-0 h-0 border-black border-4 border-t-0" style="border-left-color: transparent; border-right-color: transparent; "></div> Copied</div></button></div> <pre class=""><!-- HTML_TAG_START --><span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> pipeline
transcriber = pipeline(
task=<span class="hljs-string">&quot;automatic-speech-recognition&quot;</span>, model=<span class="hljs-string">&quot;openai/whisper-base.en&quot;</span>
)
transcriber(<span class="hljs-string">&quot;https://huggingface.co/datasets/Narsil/asr_dummy/resolve/main/mlk.flac&quot;</span>)
<span class="hljs-comment"># Output: {&#x27;text&#x27;: &#x27; I have a dream that one day this nation will rise up and live out the true meaning of its creed.&#x27;}</span><!-- HTML_TAG_END --></pre></div> <p data-svelte-h="svelte-ud3bps">Siap mencoba pengenalan suara otomatis? Lihat panduan lengkap <a href="https://huggingface.co/docs/transformers/tasks/asr" rel="nofollow">ASR</a> untuk belajar bagaimana fine-tune Whisper dan menggunakannya untuk inferensi!</p> <h3 class="relative group"><a id="visi-komputer" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#visi-komputer"><span><svg class="" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg></span></a> <span>Visi Komputer</span></h3> <p data-svelte-h="svelte-1vgxl0w">Selanjutnya, mari kita bahas tugas-tugas visi komputer, yang berhubungan dengan memahami dan menginterpretasikan informasi visual dari gambar atau video.</p> <p data-svelte-h="svelte-clseff">Ada dua pendekatan utama dalam visi komputer menggunakan Transformer:</p> <ol data-svelte-h="svelte-1m5calu"><li>Membagi gambar menjadi urutan patch, kemudian memprosesnya secara paralel dengan Transformer.</li> <li>Menggunakan CNN modern seperti <a href="https://huggingface.co/docs/transformers/model_doc/convnext" rel="nofollow">ConvNeXT</a>, yang tetap menggunakan layer konvolusi namun dengan desain jaringan modern.</li></ol> <div class="course-tip bg-gradient-to-br dark:bg-gradient-to-r before:border-green-500 dark:before:border-green-800 from-green-50 dark:from-gray-900 to-white dark:to-gray-950 border border-green-50 text-green-700 dark:text-gray-400"><p data-svelte-h="svelte-1w9e0ad">Pendekatan ketiga menggabungkan Transformer dengan konvolusi (misalnya <a href="https://huggingface.co/docs/transformers/model_doc/cvt" rel="nofollow">Convolutional Vision Transformer</a> atau <a href="https://huggingface.co/docs/transformers/model_doc/levit" rel="nofollow">LeViT</a>). Namun, kita tidak membahasnya di sini karena pada dasarnya mereka hanya menggabungkan dua pendekatan sebelumnya.</p></div> <p data-svelte-h="svelte-2yypwo">ViT dan ConvNeXT umumnya digunakan untuk klasifikasi gambar, sedangkan untuk tugas visi lain seperti deteksi objek, segmentasi, dan estimasi kedalaman, kita akan menggunakan model seperti DETR, Mask2Former, dan GLPN.</p> <h3 class="relative group"><a id="klasifikasi-gambar" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#klasifikasi-gambar"><span><svg class="" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg></span></a> <span>Klasifikasi Gambar</span></h3> <p data-svelte-h="svelte-33dec6">Klasifikasi gambar adalah salah satu tugas dasar dalam visi komputer. Mari kita lihat bagaimana berbagai arsitektur model menyelesaikan masalah ini.</p> <p data-svelte-h="svelte-1vhi4xj">ViT dan ConvNeXT keduanya bisa digunakan untuk klasifikasi gambar, dengan perbedaan utama bahwa ViT menggunakan attention mechanism sedangkan ConvNeXT menggunakan konvolusi.</p> <p data-svelte-h="svelte-1l9hvjw"><a href="https://huggingface.co/docs/transformers/model_doc/vit" rel="nofollow">ViT</a> menggantikan seluruh konvolusi dengan arsitektur Transformer murni. Jika Anda sudah memahami Transformer asli, maka Anda hampir memahami ViT.</p> <div class="flex justify-center" data-svelte-h="svelte-1cij8g4"><img src="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/transformers/model_doc/vit_architecture.jpg"></div> <p data-svelte-h="svelte-17l5hfb">Perubahan utama pada ViT terletak pada cara gambar diubah menjadi input untuk Transformer:</p> <ol data-svelte-h="svelte-1o11yg2"><li><p>Gambar dibagi menjadi patch persegi yang tidak tumpang tindih, masing-masing diubah menjadi vektor atau <em>patch embedding</em>. Patch embedding dihasilkan dari layer konvolusi 2D yang membuat dimensi input sesuai (misalnya 768 nilai per patch). Gambar 224x224 dapat dibagi menjadi 196 patch 16x16. Seperti teks yang di-tokenisasi, gambar diubah menjadi urutan patch.</p></li> <li><p><em>Embedding yang dapat dilatih</em> — token khusus <code>[CLS]</code> — ditambahkan di awal urutan patch, mirip seperti BERT. Hidden state akhir dari token <code>[CLS]</code> digunakan sebagai input ke kepala klasifikasi.</p></li> <li><p><em>Position embedding</em> ditambahkan karena model tidak tahu urutan spasial patch gambar. Embedding posisi ini juga dapat dilatih dan memiliki ukuran yang sama dengan patch embedding. Semua embedding kemudian diteruskan ke encoder Transformer.</p></li> <li><p>Output, khususnya hidden state dari <code>[CLS]</code>, diteruskan ke multilayer perceptron (MLP) head. Tujuan pretraining ViT adalah klasifikasi. MLP mengubah output menjadi logits untuk label kelas, lalu menghitung cross-entropy loss untuk menentukan kelas yang paling mungkin.</p></li></ol> <p data-svelte-h="svelte-zcpopu">Siap mencoba klasifikasi gambar? Lihat panduan lengkap <a href="https://huggingface.co/docs/transformers/tasks/image_classification" rel="nofollow">image classification</a> untuk belajar bagaimana fine-tune ViT dan menggunakannya untuk inferensi!</p> <div class="course-tip bg-gradient-to-br dark:bg-gradient-to-r before:border-green-500 dark:before:border-green-800 from-green-50 dark:from-gray-900 to-white dark:to-gray-950 border border-green-50 text-green-700 dark:text-gray-400"><p data-svelte-h="svelte-1rc83ba">Ingat: meskipun tugas-tugas yang berbeda memerlukan pendekatan khusus, sebagian besar model Transformer mengikuti pola arsitektur dan pelatihan yang serupa. Dengan memahami pola umum tersebut, Anda akan lebih mudah belajar dan menerapkan model baru.</p></div> <a class="!text-gray-400 !no-underline text-sm flex items-center not-prose mt-4" href="https://github.com/huggingface/course/blob/main/chapters/id/chapter1/5.mdx" target="_blank"><span data-svelte-h="svelte-1kd6by1">&lt;</span> <span data-svelte-h="svelte-x0xyl0">&gt;</span> <span data-svelte-h="svelte-1dajgef"><span class="underline ml-1.5">Update</span> on GitHub</span></a> <p></p>
<script>
{
__sveltekit_wnfanp = {
assets: "/docs/course/pr_1052/id",
base: "/docs/course/pr_1052/id",
env: {}
};
const element = document.currentScript.parentElement;
const data = [null,null];
Promise.all([
import("/docs/course/pr_1052/id/_app/immutable/entry/start.5943204e.js"),
import("/docs/course/pr_1052/id/_app/immutable/entry/app.b3380ec8.js")
]).then(([kit, app]) => {
kit.start(app, element, {
node_ids: [0, 9],
data,
form: null,
error: null
});
});
}
</script>

Xet Storage Details

Size:
52.5 kB
·
Xet hash:
88a9d3c2006363db096e45398ddf69e7cae745fad709741146b7caeada25b07f

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.