Buckets:

rtrm's picture
download
raw
44.1 kB
<meta charset="utf-8" /><meta name="hf:doc:metadata" content="{&quot;title&quot;:&quot;Menyelami Lebih Dalam Inferensi Teks dengan LLM&quot;,&quot;local&quot;:&quot;inference-with-llms&quot;,&quot;sections&quot;:[{&quot;title&quot;:&quot;Memahami Dasar-dasarnya&quot;,&quot;local&quot;:&quot;memahami-dasar-dasarnya&quot;,&quot;sections&quot;:[],&quot;depth&quot;:2},{&quot;title&quot;:&quot;Peran Mekanisme Attention&quot;,&quot;local&quot;:&quot;peran-mekanisme-attention&quot;,&quot;sections&quot;:[{&quot;title&quot;:&quot;Panjang Konteks dan Rentang Attention&quot;,&quot;local&quot;:&quot;panjang-konteks-dan-rentang-attention&quot;,&quot;sections&quot;:[],&quot;depth&quot;:3},{&quot;title&quot;:&quot;Seni Membuat Prompt&quot;,&quot;local&quot;:&quot;seni-membuat-prompt&quot;,&quot;sections&quot;:[],&quot;depth&quot;:3}],&quot;depth&quot;:2},{&quot;title&quot;:&quot;Proses Inferensi Dua Tahap&quot;,&quot;local&quot;:&quot;proses-inferensi-dua-tahap&quot;,&quot;sections&quot;:[{&quot;title&quot;:&quot;Fase Prefill&quot;,&quot;local&quot;:&quot;fase-prefill&quot;,&quot;sections&quot;:[],&quot;depth&quot;:3},{&quot;title&quot;:&quot;Fase Decode&quot;,&quot;local&quot;:&quot;fase-decode&quot;,&quot;sections&quot;:[],&quot;depth&quot;:3}],&quot;depth&quot;:2},{&quot;title&quot;:&quot;Strategi Sampling&quot;,&quot;local&quot;:&quot;strategi-sampling&quot;,&quot;sections&quot;:[{&quot;title&quot;:&quot;Memahami Pemilihan Token&quot;,&quot;local&quot;:&quot;memahami-pemilihan-token&quot;,&quot;sections&quot;:[],&quot;depth&quot;:3},{&quot;title&quot;:&quot;Mengelola Pengulangan: Menjaga Variasi Output&quot;,&quot;local&quot;:&quot;mengelola-pengulangan-menjaga-variasi-output&quot;,&quot;sections&quot;:[],&quot;depth&quot;:3},{&quot;title&quot;:&quot;Mengatur Panjang Output&quot;,&quot;local&quot;:&quot;mengatur-panjang-output&quot;,&quot;sections&quot;:[],&quot;depth&quot;:3},{&quot;title&quot;:&quot;Beam Search: Melihat Beberapa Jalur&quot;,&quot;local&quot;:&quot;beam-search-melihat-beberapa-jalur&quot;,&quot;sections&quot;:[],&quot;depth&quot;:3}],&quot;depth&quot;:2},{&quot;title&quot;:&quot;Tantangan Praktis dan Optimasi&quot;,&quot;local&quot;:&quot;tantangan-praktis-dan-optimasi&quot;,&quot;sections&quot;:[{&quot;title&quot;:&quot;Metrik Kinerja Utama&quot;,&quot;local&quot;:&quot;metrik-kinerja-utama&quot;,&quot;sections&quot;:[],&quot;depth&quot;:3},{&quot;title&quot;:&quot;Tantangan Panjang Konteks&quot;,&quot;local&quot;:&quot;tantangan-panjang-konteks&quot;,&quot;sections&quot;:[],&quot;depth&quot;:3},{&quot;title&quot;:&quot;Optimasi KV Cache&quot;,&quot;local&quot;:&quot;optimasi-kv-cache&quot;,&quot;sections&quot;:[],&quot;depth&quot;:3}],&quot;depth&quot;:2},{&quot;title&quot;:&quot;Kesimpulan&quot;,&quot;local&quot;:&quot;kesimpulan&quot;,&quot;sections&quot;:[],&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/12.c63c6c82.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/CourseFloatingBanner.9ea31445.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;Menyelami Lebih Dalam Inferensi Teks dengan LLM&quot;,&quot;local&quot;:&quot;inference-with-llms&quot;,&quot;sections&quot;:[{&quot;title&quot;:&quot;Memahami Dasar-dasarnya&quot;,&quot;local&quot;:&quot;memahami-dasar-dasarnya&quot;,&quot;sections&quot;:[],&quot;depth&quot;:2},{&quot;title&quot;:&quot;Peran Mekanisme Attention&quot;,&quot;local&quot;:&quot;peran-mekanisme-attention&quot;,&quot;sections&quot;:[{&quot;title&quot;:&quot;Panjang Konteks dan Rentang Attention&quot;,&quot;local&quot;:&quot;panjang-konteks-dan-rentang-attention&quot;,&quot;sections&quot;:[],&quot;depth&quot;:3},{&quot;title&quot;:&quot;Seni Membuat Prompt&quot;,&quot;local&quot;:&quot;seni-membuat-prompt&quot;,&quot;sections&quot;:[],&quot;depth&quot;:3}],&quot;depth&quot;:2},{&quot;title&quot;:&quot;Proses Inferensi Dua Tahap&quot;,&quot;local&quot;:&quot;proses-inferensi-dua-tahap&quot;,&quot;sections&quot;:[{&quot;title&quot;:&quot;Fase Prefill&quot;,&quot;local&quot;:&quot;fase-prefill&quot;,&quot;sections&quot;:[],&quot;depth&quot;:3},{&quot;title&quot;:&quot;Fase Decode&quot;,&quot;local&quot;:&quot;fase-decode&quot;,&quot;sections&quot;:[],&quot;depth&quot;:3}],&quot;depth&quot;:2},{&quot;title&quot;:&quot;Strategi Sampling&quot;,&quot;local&quot;:&quot;strategi-sampling&quot;,&quot;sections&quot;:[{&quot;title&quot;:&quot;Memahami Pemilihan Token&quot;,&quot;local&quot;:&quot;memahami-pemilihan-token&quot;,&quot;sections&quot;:[],&quot;depth&quot;:3},{&quot;title&quot;:&quot;Mengelola Pengulangan: Menjaga Variasi Output&quot;,&quot;local&quot;:&quot;mengelola-pengulangan-menjaga-variasi-output&quot;,&quot;sections&quot;:[],&quot;depth&quot;:3},{&quot;title&quot;:&quot;Mengatur Panjang Output&quot;,&quot;local&quot;:&quot;mengatur-panjang-output&quot;,&quot;sections&quot;:[],&quot;depth&quot;:3},{&quot;title&quot;:&quot;Beam Search: Melihat Beberapa Jalur&quot;,&quot;local&quot;:&quot;beam-search-melihat-beberapa-jalur&quot;,&quot;sections&quot;:[],&quot;depth&quot;:3}],&quot;depth&quot;:2},{&quot;title&quot;:&quot;Tantangan Praktis dan Optimasi&quot;,&quot;local&quot;:&quot;tantangan-praktis-dan-optimasi&quot;,&quot;sections&quot;:[{&quot;title&quot;:&quot;Metrik Kinerja Utama&quot;,&quot;local&quot;:&quot;metrik-kinerja-utama&quot;,&quot;sections&quot;:[],&quot;depth&quot;:3},{&quot;title&quot;:&quot;Tantangan Panjang Konteks&quot;,&quot;local&quot;:&quot;tantangan-panjang-konteks&quot;,&quot;sections&quot;:[],&quot;depth&quot;:3},{&quot;title&quot;:&quot;Optimasi KV Cache&quot;,&quot;local&quot;:&quot;optimasi-kv-cache&quot;,&quot;sections&quot;:[],&quot;depth&quot;:3}],&quot;depth&quot;:2},{&quot;title&quot;:&quot;Kesimpulan&quot;,&quot;local&quot;:&quot;kesimpulan&quot;,&quot;sections&quot;:[],&quot;depth&quot;:2}],&quot;depth&quot;:1}"><!-- HEAD_svelte-u9bgzb_END --> <p></p> <h1 class="relative group"><a id="inference-with-llms" 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="#inference-with-llms"><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>Menyelami Lebih Dalam Inferensi Teks dengan LLM</span></h1> <div class="flex space-x-1 absolute z-10 right-0 top-0"><a href="https://discuss.huggingface.co/t/chapter-1-questions" target="_blank"><img alt="Ask a Question" class="!m-0" src="https://img.shields.io/badge/Ask%20a%20question-ffcb4c.svg?logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgLTEgMTA0IDEwNiI+PGRlZnM+PHN0eWxlPi5jbHMtMXtmaWxsOiMyMzFmMjA7fS5jbHMtMntmaWxsOiNmZmY5YWU7fS5jbHMtM3tmaWxsOiMwMGFlZWY7fS5jbHMtNHtmaWxsOiMwMGE5NGY7fS5jbHMtNXtmaWxsOiNmMTVkMjI7fS5jbHMtNntmaWxsOiNlMzFiMjM7fTwvc3R5bGU+PC9kZWZzPjx0aXRsZT5EaXNjb3Vyc2VfbG9nbzwvdGl0bGU+PGcgaWQ9IkxheWVyXzIiPjxnIGlkPSJMYXllcl8zIj48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik01MS44NywwQzIzLjcxLDAsMCwyMi44MywwLDUxYzAsLjkxLDAsNTIuODEsMCw1Mi44MWw1MS44Ni0uMDVjMjguMTYsMCw1MS0yMy43MSw1MS01MS44N1M4MCwwLDUxLjg3LDBaIi8+PHBhdGggY2xhc3M9ImNscy0yIiBkPSJNNTIuMzcsMTkuNzRBMzEuNjIsMzEuNjIsMCwwLDAsMjQuNTgsNjYuNDFsLTUuNzIsMTguNEwzOS40LDgwLjE3YTMxLjYxLDMxLjYxLDAsMSwwLDEzLTYwLjQzWiIvPjxwYXRoIGNsYXNzPSJjbHMtMyIgZD0iTTc3LjQ1LDMyLjEyYTMxLjYsMzEuNiwwLDAsMS0zOC4wNSw0OEwxOC44Niw4NC44MmwyMC45MS0yLjQ3QTMxLjYsMzEuNiwwLDAsMCw3Ny40NSwzMi4xMloiLz48cGF0aCBjbGFzcz0iY2xzLTQiIGQ9Ik03MS42MywyNi4yOUEzMS42LDMxLjYsMCwwLDEsMzguOCw3OEwxOC44Niw4NC44MiwzOS40LDgwLjE3QTMxLjYsMzEuNiwwLDAsMCw3MS42MywyNi4yOVoiLz48cGF0aCBjbGFzcz0iY2xzLTUiIGQ9Ik0yNi40Nyw2Ny4xMWEzMS42MSwzMS42MSwwLDAsMSw1MS0zNUEzMS42MSwzMS42MSwwLDAsMCwyNC41OCw2Ni40MWwtNS43MiwxOC40WiIvPjxwYXRoIGNsYXNzPSJjbHMtNiIgZD0iTTI0LjU4LDY2LjQxQTMxLjYxLDMxLjYxLDAsMCwxLDcxLjYzLDI2LjI5YTMxLjYxLDMxLjYxLDAsMCwwLTQ5LDM5LjYzbC0zLjc2LDE4LjlaIi8+PC9nPjwvZz48L3N2Zz4="></a> </div> <iframe class="w-full xl:w-4/6 h-80" src="https://www.youtube-nocookie.com/embed/Xp2w1_LKZN4" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe> <p data-svelte-h="svelte-1qozvtz">Sejauh ini, kita telah mempelajari arsitektur Transformer dalam berbagai tugas spesifik seperti klasifikasi teks dan ringkasan. Namun, penggunaan utama Large Language Models (LLMs) adalah untuk <em>text generation</em> (generasi teks), dan itulah yang akan kita bahas dalam bab ini.</p> <p data-svelte-h="svelte-kdu5fa">Pada halaman ini, kita akan membahas konsep inti dari proses inferensi LLM—memahami cara model menghasilkan teks dan komponen kunci dalam proses inferensinya.</p> <h2 class="relative group"><a id="memahami-dasar-dasarnya" 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="#memahami-dasar-dasarnya"><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>Memahami Dasar-dasarnya</span></h2> <p data-svelte-h="svelte-8se8d1">Mari mulai dengan hal mendasar. <em>Inferensi</em> adalah proses menggunakan LLM yang sudah dilatih untuk menghasilkan teks seperti manusia dari masukan (<em>prompt</em>) tertentu. Model bahasa menggunakan pengetahuan dari pelatihan untuk membentuk respons satu kata (token) pada satu waktu. Model memanfaatkan probabilitas yang telah dipelajari dari miliaran parameter untuk memprediksi dan menghasilkan token berikutnya dalam urutan. Proses sekuensial inilah yang memungkinkan LLM menghasilkan teks yang koheren dan relevan secara kontekstual.</p> <h2 class="relative group"><a id="peran-mekanisme-attention" 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="#peran-mekanisme-attention"><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>Peran Mekanisme Attention</span></h2> <p data-svelte-h="svelte-8cfqa3">Mekanisme <em>attention</em> memberikan kemampuan pada LLM untuk memahami konteks dan menghasilkan respons yang koheren. Saat memprediksi kata berikutnya, tidak semua kata memiliki bobot yang sama—misalnya, dalam kalimat <em>“Ibu kota Prancis adalah…”</em>, kata “Prancis” dan “ibu kota” sangat penting untuk menentukan bahwa kata berikutnya seharusnya “Paris”. Kemampuan untuk fokus pada informasi yang relevan ini disebut <em>attention</em>.</p> <p data-svelte-h="svelte-54vep7"><img src="https://huggingface.co/datasets/agents-course/course-images/resolve/main/en/unit1/AttentionSceneFinal.gif" alt="Attention"></p> <p data-svelte-h="svelte-1p15sg4">Proses mengidentifikasi kata-kata yang paling relevan untuk memprediksi token berikutnya ini sangat efektif. Meskipun prinsip dasar pelatihan LLM (memprediksi token selanjutnya) relatif tetap sejak BERT dan GPT-2, ada kemajuan besar dalam skala jaringan saraf dan efisiensi attention untuk konteks panjang dengan biaya komputasi yang lebih rendah.</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-1iuvbyn">Singkatnya, mekanisme <em>attention</em> adalah kunci bagi LLM untuk menghasilkan teks yang koheren dan sadar konteks. Mekanisme ini membedakan LLM modern dari generasi sebelumnya.</p></div> <h3 class="relative group"><a id="panjang-konteks-dan-rentang-attention" 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="#panjang-konteks-dan-rentang-attention"><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>Panjang Konteks dan Rentang Attention</span></h3> <p data-svelte-h="svelte-jwgtr6">Sekarang kita memahami <em>attention</em>, mari bahas seberapa banyak konteks yang bisa diproses oleh LLM—yaitu panjang konteks atau ‘daya ingat’ model.</p> <p data-svelte-h="svelte-m8uaz6"><strong>Panjang konteks</strong> mengacu pada jumlah maksimum token (kata atau bagian kata) yang dapat diproses oleh LLM sekaligus. Anggap saja ini sebagai memori kerja model.</p> <p data-svelte-h="svelte-18ht82n">Kemampuan ini dibatasi oleh beberapa faktor praktis:</p> <ul data-svelte-h="svelte-qsahye"><li>Arsitektur dan ukuran model</li> <li>Sumber daya komputasi yang tersedia</li> <li>Kompleksitas input dan output yang diharapkan</li></ul> <p data-svelte-h="svelte-11r21p9">Idealnya, kita ingin memberi model konteks sebanyak mungkin, tetapi keterbatasan perangkat keras dan biaya komputasi membuat hal ini tidak praktis. Oleh karena itu, model dirancang dengan panjang konteks yang berbeda-beda untuk menyeimbangkan kapabilitas dan efisiensi.</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-5xb9hd"><strong>Panjang konteks</strong> adalah jumlah maksimum token yang dapat dipertimbangkan model saat menghasilkan respons.</p></div> <h3 class="relative group"><a id="seni-membuat-prompt" 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="#seni-membuat-prompt"><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>Seni Membuat Prompt</span></h3> <p data-svelte-h="svelte-3b3jhm">Saat kita memberi informasi ke LLM, kita menyusunnya agar dapat mengarahkan hasil output ke tujuan yang kita inginkan. Ini disebut <em>prompting</em>.</p> <p data-svelte-h="svelte-vsc6dp">Memahami bagaimana LLM memproses input membantu kita membuat <em>prompt</em> yang lebih efektif. Karena tugas utama model adalah memprediksi token berikutnya dengan menganalisis pentingnya setiap token dalam input, maka cara kita menyusun kalimat sangat memengaruhi hasil.</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-1datw5u">Desain prompt yang cermat akan mempermudah <strong>mengendalikan arah output LLM sesuai yang diharapkan</strong>.</p></div> <h2 class="relative group"><a id="proses-inferensi-dua-tahap" 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="#proses-inferensi-dua-tahap"><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>Proses Inferensi Dua Tahap</span></h2> <p data-svelte-h="svelte-yzfhcl">Setelah memahami komponen dasarnya, mari kita lihat bagaimana LLM sebenarnya menghasilkan teks. Prosesnya dibagi menjadi dua fase utama: <strong>prefill</strong> dan <strong>decode</strong>. Keduanya bekerja seperti jalur perakitan, masing-masing memainkan peran penting dalam menghasilkan teks yang koheren.</p> <h3 class="relative group"><a id="fase-prefill" 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="#fase-prefill"><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>Fase Prefill</span></h3> <p data-svelte-h="svelte-ga74jf">Fase prefill adalah tahap persiapan—semua “bahan” awal diproses di sini. Terdiri dari tiga langkah utama:</p> <ol data-svelte-h="svelte-epinu1"><li><strong>Tokenisasi</strong>: Mengubah teks menjadi token (unit dasar yang bisa dipahami model)</li> <li><strong>Konversi Embedding</strong>: Mengubah token menjadi representasi numerik yang bermakna</li> <li><strong>Pemrosesan Awal</strong>: Menjalankan embedding melalui jaringan saraf untuk memahami konteks</li></ol> <p data-svelte-h="svelte-1562jux">Fase ini memerlukan banyak komputasi karena semua token input diproses sekaligus. Ibaratnya seperti membaca seluruh paragraf sebelum mulai menulis jawaban.</p> <p data-svelte-h="svelte-1fh8vmn">Coba berbagai tokenizer secara interaktif di playground berikut:</p> <iframe src="https://agents-course-the-tokenizer-playground.static.hf.space" frameborder="0" width="850" height="450"></iframe> <h3 class="relative group"><a id="fase-decode" 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="#fase-decode"><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>Fase Decode</span></h3> <p data-svelte-h="svelte-1suiuww">Setelah prefill selesai, kita masuk ke fase <em>decode</em>—di sinilah generasi teks sebenarnya terjadi. Model menghasilkan satu token setiap kali dalam proses yang disebut <em>autoregressive</em> (token baru tergantung pada semua token sebelumnya).</p> <p data-svelte-h="svelte-d1wjh9">Langkah-langkah utama untuk setiap token baru:</p> <ol data-svelte-h="svelte-1h6ucyv"><li><strong>Perhitungan Attention</strong>: Melihat semua token sebelumnya untuk memahami konteks</li> <li><strong>Perhitungan Probabilitas</strong>: Menentukan kemungkinan setiap token berikutnya</li> <li><strong>Pemilihan Token</strong>: Memilih token berikutnya berdasarkan probabilitas</li> <li><strong>Pemeriksaan Lanjutan</strong>: Menentukan apakah harus lanjut atau berhenti</li></ol> <p data-svelte-h="svelte-mzeyqn">Fase ini memerlukan banyak memori karena semua token yang dihasilkan sebelumnya harus dilacak.</p> <h2 class="relative group"><a id="strategi-sampling" 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="#strategi-sampling"><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>Strategi Sampling</span></h2> <p data-svelte-h="svelte-1tk1aci">Setelah memahami cara model menghasilkan teks, mari lihat bagaimana kita bisa mengendalikan proses tersebut. Seperti penulis yang bisa memilih antara gaya kreatif atau lugas, kita bisa menyetel cara model memilih token.</p> <p data-svelte-h="svelte-1cawwcv">Coba lihat visualisasi decoding menggunakan SmolLM2 (akan berhenti saat menemukan token EOS yaitu <strong>&lt;|im_end|&gt;</strong>):</p> <iframe src="https://agents-course-decoding-visualizer.hf.space" frameborder="0" width="850" height="450"></iframe> <h3 class="relative group"><a id="memahami-pemilihan-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="#memahami-pemilihan-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>Memahami Pemilihan Token</span></h3> <p data-svelte-h="svelte-1v2aibl">Ketika model harus memilih token berikutnya, ia mulai dari probabilitas kasar (logit) untuk seluruh kosa kata. Prosesnya:</p> <p data-svelte-h="svelte-pcs357"><img src="https://huggingface.co/reasoning-course/images/resolve/main/inference/1.png" alt="Pemilihan Token"></p> <ol data-svelte-h="svelte-s8xh9v"><li><strong>Logit Mentah</strong>: Perkiraan awal model untuk setiap token</li> <li><strong>Kontrol Temperatur</strong>: Menyesuaikan kreativitas (semakin tinggi = lebih kreatif, semakin rendah = lebih pasti)</li> <li><strong>Top-p Sampling</strong>: Memilih hanya token dengan probabilitas kumulatif hingga ambang tertentu (misal 90%)</li> <li><strong>Top-k Filtering</strong>: Hanya mempertimbangkan k token teratas</li></ol> <h3 class="relative group"><a id="mengelola-pengulangan-menjaga-variasi-output" 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="#mengelola-pengulangan-menjaga-variasi-output"><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>Mengelola Pengulangan: Menjaga Variasi Output</span></h3> <p data-svelte-h="svelte-1gb4kq9">LLM cenderung mengulang, jadi kita gunakan penalti:</p> <ol data-svelte-h="svelte-1tcjckg"><li><strong>Presence Penalty</strong>: Penalti tetap untuk token yang sudah muncul sebelumnya</li> <li><strong>Frequency Penalty</strong>: Penalti berdasarkan seberapa sering token muncul</li></ol> <p data-svelte-h="svelte-1gwgx8b"><img src="https://huggingface.co/reasoning-course/images/resolve/main/inference/2.png" alt="Repetition"></p> <p data-svelte-h="svelte-wm16y1">Penalti ini diterapkan sebelum sampling, agar model terdorong menggunakan kosa kata yang lebih beragam.</p> <h3 class="relative group"><a id="mengatur-panjang-output" 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="#mengatur-panjang-output"><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>Mengatur Panjang Output</span></h3> <p data-svelte-h="svelte-c5qloh">Seperti cerita yang butuh panjang yang pas, kita bisa atur panjang output:</p> <ol data-svelte-h="svelte-1g060u0"><li><strong>Batas Token</strong>: Minimal dan maksimal token</li> <li><strong>Stop Sequence</strong>: Pola tertentu untuk menghentikan generasi</li> <li><strong>End-of-Sequence</strong>: Deteksi otomatis akhir teks</li></ol> <p data-svelte-h="svelte-zly70b">Contoh: untuk satu paragraf, batasi hingga 100 token dan gunakan <code>\n\n</code> sebagai stop sequence.</p> <p data-svelte-h="svelte-114n5kn"><img src="https://huggingface.co/reasoning-course/images/resolve/main/inference/3.png" alt="Panjang Output"></p> <h3 class="relative group"><a id="beam-search-melihat-beberapa-jalur" 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="#beam-search-melihat-beberapa-jalur"><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>Beam Search: Melihat Beberapa Jalur</span></h3> <p data-svelte-h="svelte-17arms0">Berbeda dari sampling biasa, <em>beam search</em> menjelajahi banyak kemungkinan jalur sekaligus seperti pemain catur yang mempertimbangkan beberapa langkah ke depan.</p> <p data-svelte-h="svelte-1y0ucv5"><img src="https://huggingface.co/reasoning-course/images/resolve/main/inference/4.png" alt="Beam Search"></p> <p data-svelte-h="svelte-1tj7v3n">Langkah-langkahnya:</p> <ol data-svelte-h="svelte-1j4gmpf"><li>Jaga beberapa urutan kandidat</li> <li>Hitung probabilitas token berikutnya untuk tiap urutan</li> <li>Simpan kombinasi terbaik</li> <li>Ulangi hingga selesai</li> <li>Pilih urutan dengan probabilitas tertinggi</li></ol> <p data-svelte-h="svelte-ktijyn">Visualisasinya bisa Anda coba di sini:</p> <iframe src="https://agents-course-beam-search-visualizer.hf.space" frameborder="0" width="850" height="450"></iframe> <h2 class="relative group"><a id="tantangan-praktis-dan-optimasi" 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="#tantangan-praktis-dan-optimasi"><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>Tantangan Praktis dan Optimasi</span></h2> <p data-svelte-h="svelte-c8kk30">Saat mulai mengaplikasikan LLM, ada tantangan praktis yang harus dikelola.</p> <h3 class="relative group"><a id="metrik-kinerja-utama" 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="#metrik-kinerja-utama"><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>Metrik Kinerja Utama</span></h3> <p data-svelte-h="svelte-1vcp1ud">Empat metrik penting saat bekerja dengan LLM:</p> <ol data-svelte-h="svelte-13me920"><li><strong>Time to First Token (TTFT)</strong>: Seberapa cepat respons pertama muncul (dipengaruhi oleh prefill)</li> <li><strong>Time Per Output Token (TPOT)</strong>: Kecepatan menghasilkan token selanjutnya</li> <li><strong>Throughput</strong>: Berapa banyak permintaan bisa dilayani sekaligus</li> <li><strong>Penggunaan VRAM</strong>: Seberapa banyak memori GPU yang dibutuhkan</li></ol> <h3 class="relative group"><a id="tantangan-panjang-konteks" 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="#tantangan-panjang-konteks"><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>Tantangan Panjang Konteks</span></h3> <p data-svelte-h="svelte-i335di">Panjang konteks adalah tantangan besar dalam inferensi:</p> <ul data-svelte-h="svelte-rll93h"><li><strong>Penggunaan Memori</strong>: Meningkat secara kuadrat dengan panjang konteks</li> <li><strong>Kecepatan Proses</strong>: Menurun secara linier dengan panjang konteks</li> <li><strong>Alokasi Sumber Daya</strong>: Perlu keseimbangan VRAM yang cermat</li></ul> <p data-svelte-h="svelte-1m75nmq">Contohnya, model seperti <a href="https://huggingface.co/Qwen/Qwen2.5-14B-Instruct-1M" rel="nofollow">Qwen2.5-1M</a> mendukung hingga 1 juta token, tapi dengan waktu inferensi yang jauh lebih lambat.</p> <div style="max-width: 800px; margin: 20px auto; padding: 20px; font-family: system-ui;" data-svelte-h="svelte-uqfytr"><div style="border: 2px solid #ddd; border-radius: 8px; padding: 20px; margin-bottom: 20px;"><div style="display: flex; align-items: center; margin-bottom: 15px;"><div style="flex: 1; text-align: center; padding: 10px; background: #f0f0f0; border-radius: 4px;">Input Text (Raw)</div> <div style="margin: 0 10px;"></div> <div style="flex: 1; text-align: center; padding: 10px; background: #e1f5fe; border-radius: 4px;">Tokenized Input</div></div> <div style="display: flex; margin-bottom: 15px;"><div style="flex: 1; border: 1px solid #ccc; padding: 10px; margin: 5px; background: #e8f5e9; border-radius: 4px; text-align: center;">Context Window<br>(e.g., 4K tokens)
<div style="display: flex; margin-top: 10px;"><div style="flex: 1; background: #81c784; margin: 2px; height: 20px; border-radius: 2px;"></div> <div style="flex: 1; background: #81c784; margin: 2px; height: 20px; border-radius: 2px;"></div> <div style="flex: 1; background: #81c784; margin: 2px; height: 20px; border-radius: 2px;"></div> <div style="flex: 1; background: #81c784; margin: 2px; height: 20px; border-radius: 2px;"></div></div></div></div> <div style="display: flex; justify-content: space-between; text-align: center; font-size: 0.9em; color: #666;"><div style="flex: 1;"><div style="border: 1px solid #ffcc80; padding: 8px; margin: 5px; background: #fff3e0; border-radius: 4px;">Memory Usage<br>∝ Length²</div></div> <div style="flex: 1;"><div style="border: 1px solid #90caf9; padding: 8px; margin: 5px; background: #e3f2fd; border-radius: 4px;">Processing Time<br>∝ Length</div></div></div></div></div> <h3 class="relative group"><a id="optimasi-kv-cache" 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="#optimasi-kv-cache"><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>Optimasi KV Cache</span></h3> <p data-svelte-h="svelte-okh7kj">Optimasi penting yang digunakan adalah <strong>KV Caching</strong>. Ini menyimpan hasil perhitungan sebelumnya, sehingga:</p> <ul data-svelte-h="svelte-1830li8"><li>Tidak perlu menghitung ulang</li> <li>Kecepatan meningkat</li> <li>Bisa memproses konteks panjang secara praktis</li></ul> <p data-svelte-h="svelte-167svh9">Biayanya adalah penggunaan memori tambahan, tapi keuntungannya sangat besar.</p> <h2 class="relative group"><a id="kesimpulan" 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="#kesimpulan"><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>Kesimpulan</span></h2> <p data-svelte-h="svelte-1pv0p8k">Memahami inferensi LLM penting agar bisa menggunakannya secara efektif. Kita telah membahas:</p> <ul data-svelte-h="svelte-epvuc9"><li>Peran penting attention dan konteks</li> <li>Proses inferensi dua tahap</li> <li>Beragam strategi sampling</li> <li>Tantangan praktis dan cara optimasinya</li></ul> <p data-svelte-h="svelte-189ekc6">Dengan menguasai konsep-konsep ini, Anda akan lebih siap membangun aplikasi berbasis LLM yang efisien dan bermanfaat.</p> <p data-svelte-h="svelte-6qbam8">Dunia LLM terus berkembang pesat. Tetap ingin tahu dan terus bereksperimen untuk menemukan pendekatan terbaik bagi kasus penggunaan Anda.</p> <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/8.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, 12],
data,
form: null,
error: null
});
});
}
</script>

Xet Storage Details

Size:
44.1 kB
·
Xet hash:
d3768978250b50478cb0bf4f5851113423c320768c521dd081b25ed8e0d174c8

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