paint-brush
ठूला भाषा मोडेल (LLM) इन्फरेन्स अप्टिमाइजेसनमा प्राइमर: 1. पृष्ठभूमि र समस्या सूत्रीकरणद्वारा@mandliya
1,450 पढाइहरू
1,450 पढाइहरू

ठूला भाषा मोडेल (LLM) इन्फरेन्स अप्टिमाइजेसनमा प्राइमर: 1. पृष्ठभूमि र समस्या सूत्रीकरण

द्वारा Ravi Mandliya11m2024/11/04
Read on Terminal Reader

धेरै लामो; पढ्नकाे लागि

यस पोष्टमा, हामी LLM अनुमान, यसको महत्त्व, र यससँग सम्बन्धित चुनौतीहरूको संक्षिप्त सिंहावलोकन प्रदान गर्नेछौं। हामी अप्टिमाइजेसन प्रविधिहरूको हाम्रो अन्वेषणलाई मार्गदर्शन गर्ने मुख्य समस्या सूत्रहरू पनि रूपरेखा गर्नेछौं।
featured image - ठूला भाषा मोडेल (LLM) इन्फरेन्स अप्टिमाइजेसनमा प्राइमर: 1. पृष्ठभूमि र समस्या सूत्रीकरण
Ravi Mandliya HackerNoon profile picture

ठूलो भाषा मोडेल (LLM) अनुमान, यसको महत्त्व, चुनौतीहरू, र प्रमुख समस्या सूत्रहरूको सिंहावलोकन।


ठूला भाषा मोडेलहरू (LLMs) ले च्याटबटहरू र एआई एजेन्टहरूदेखि कोड र सामग्री उत्पादनसम्मका अनुप्रयोगहरूको विस्तृत दायरा सक्षम पारेर प्राकृतिक भाषा प्रशोधन (NLP) को क्षेत्रमा क्रान्तिकारी परिवर्तन गरेका छन्। यद्यपि, वास्तविक-विश्व परिदृश्यहरूमा LLM को तैनातीले प्राय: विलम्बता, स्रोत खपत, र स्केलेबिलिटीसँग सम्बन्धित चुनौतीहरूको सामना गर्दछ।


ब्लग पोष्टहरूको यो श्रृंखलामा, हामी LLM अनुमानका लागि विभिन्न अप्टिमाइजेसन प्रविधिहरू अन्वेषण गर्नेछौं। हामी विलम्बता, मेमोरी फुटप्रिन्ट, र कम्प्युटेसनल लागत घटाउने रणनीतिहरूमा डुब्ने छौँ, क्यासिङ मेकानिजमदेखि हार्डवेयर एक्सेलेरेसन र मोडेल क्वान्टाइजेसनसम्म।


यस पोष्टमा, हामी LLM अनुमान, यसको महत्त्व, र यससँग सम्बन्धित चुनौतीहरूको संक्षिप्त सिंहावलोकन प्रदान गर्नेछौं। हामी अप्टिमाइजेसन प्रविधिहरूको हाम्रो अन्वेषणलाई मार्गदर्शन गर्ने मुख्य समस्या सूत्रहरू पनि रूपरेखा गर्नेछौं।

मोडेल अनुमान: एक सिंहावलोकन

मोडेल इन्फरेन्सनले नयाँ इनपुट डेटामा आधारित भविष्यवाणी गर्न वा आउटपुटहरू उत्पन्न गर्न प्रशिक्षित मेसिन लर्निङ मोडेल प्रयोग गर्ने प्रक्रियालाई जनाउँछ। LLM को सन्दर्भमा, निष्कर्षमा पाठ इनपुट प्रशोधन र सुसंगत र प्रासंगिक रूपमा सान्दर्भिक पाठ आउटपुट उत्पन्न हुन्छ।


मोडेललाई एक पटक वा आवधिक रूपमा मात्र प्रशिक्षित गरिन्छ, जबकि अनुमान धेरै पटक हुन्छ, सम्भवतः उत्पादन वातावरणमा प्रति सेकेन्ड हजारौं पटक।


LLMs लाई वास्तविक-विश्व अनुप्रयोगहरूमा प्रभावकारी रूपमा प्रयोग गर्न सकिन्छ भनी सुनिश्चित गर्न इन्फरेन्स अप्टिमाइजेसन आवश्यक छ। लक्ष्य भनेको विलम्बता (प्रतिक्रिया उत्पन्न गर्न लाग्ने समय), स्रोत उपभोग (CPU, GPU, मेमोरी) कम गर्ने र स्केलेबिलिटी (बढ्दो भारहरू ह्यान्डल गर्ने क्षमता) लाई कम गर्ने हो।


उदाहरण को लागी, GPT-3 (175 बिलियन प्यारामिटरहरु संग) लाई अनुमान को लागी महत्वपूर्ण कम्प्यूटेशनल स्रोतहरु को आवश्यकता छ। अप्टिमाइजेसनले प्रतिक्रिया समय 1-2 सेकेन्डबाट मिलिसेकेन्डमा घटाउन सक्छ, जसले LLM लाई अन्तरक्रियात्मक अनुप्रयोगहरूको लागि थप व्यावहारिक बनाउँछ।

ट्रान्सफर्मर वास्तुकला को अवलोकन

ट्रान्सफर्मर वास्तुकला (स्रोत: ध्यान तपाईलाई आवश्यक छ)


ट्रान्सफर्मर वास्तुकला, जसले ध्यान संयन्त्र प्रयोग गर्दछ, धेरै अत्याधुनिक LLM को लागि आधार बन्यो। यो वास्तुकलामा स्थितिगत सङ्केतनहरू, बहु-हेड आत्म-ध्यान, फिड-फर्वार्ड न्यूरल नेटवर्कहरू, र तह सामान्यीकरण समावेश छन्। ट्रान्सफर्मरहरू सामान्यतया तीन मुख्य प्रकारहरूमा वर्गीकृत छन्:


  • इन्कोडर-मात्र मोडेलहरू (जस्तै, BERT) पाठ वर्गीकरण र नाम गरिएको इकाई पहिचान जस्ता कार्यहरूको लागि डिजाइन गरिएको हो। तिनीहरूले इनपुट अनुक्रमलाई निश्चित-लम्बाइ प्रतिनिधित्व - इम्बेडिङमा रूपान्तरण गर्छन्। यी मोडेलहरू द्वि-दिशात्मक छन्, जसको अर्थ तिनीहरूले टोकनको बायाँ र दायाँ दुवैबाट सन्दर्भलाई विचार गर्छन्, जसले इनपुट पाठको राम्रोसँग बुझ्न सक्छ।


  • डिकोडर-मात्र मोडेलहरू (जस्तै, GPT-3) पाठ उत्पादन कार्यहरूको लागि प्रयोग गरिन्छ। इनपुट अनुक्रमबाट, तिनीहरूले एक पटकमा पाठ एक टोकन उत्पन्न गर्दछ, पहिले उत्पन्न टोकनहरूमा कन्डिसनिङ। यी मोडेलहरू एक-दिशात्मक छन्, यसको मतलब तिनीहरूले टोकनको बायाँबाट मात्र सन्दर्भलाई विचार गर्छन्, जुन भाषा मोडेलिङ जस्ता कार्यहरूको लागि उपयुक्त छ। यो सबैभन्दा सामान्य LLM वास्तुकला हो।


  • एन्कोडर-डिकोडर मोडेलहरू (जस्तै, T5) कागजमा प्रस्तुत गरिएको मूल वास्तुकला थियो "ध्यान तपाईलाई आवश्यक छ।" यी मोडेलहरू कार्यहरूका लागि डिजाइन गरिएका हुन् जसलाई बुझाइ र पुस्ता दुवै आवश्यक हुन्छ, जस्तै अनुवाद र सारांश। तिनीहरूले इन्कोडरसँग इनपुट अनुक्रम प्रशोधन गर्छन् र त्यसपछि डिकोडरसँग आउटपुट अनुक्रम उत्पन्न गर्छन्।


डिकोडर-मात्र मोडेलहरू अटोरेग्रेसिभ कार्यहरूको लागि सबैभन्दा सामान्य LLM आर्किटेक्चर हुनाले, यो श्रृंखलाले यस प्रकारको मोडेलको लागि विशेष गरी अनुकूलन प्रविधिहरूमा ध्यान केन्द्रित गर्नेछ।

ध्यान संयन्त्रको अवलोकन

ध्यान संयन्त्र ट्रान्सफर्मर आर्किटेक्चरको मुख्य भाग हो जसले मोडेललाई आउटपुट उत्पन्न गर्दा इनपुट अनुक्रमको विभिन्न भागहरूमा फोकस गर्न अनुमति दिन्छ। यसले इनपुट प्रतिनिधित्वहरूको भारित योगफलको गणना गर्छ, जहाँ उत्पादन भइरहेको वर्तमान आउटपुट टोकनमा प्रत्येक इनपुट टोकनको सान्दर्भिकताद्वारा वजनहरू निर्धारण गरिन्छ। यो संयन्त्रले मोडेललाई टोकनहरू बीचको निर्भरताहरू क्याप्चर गर्न सक्षम बनाउँछ, इनपुट अनुक्रममा तिनीहरूको दूरीलाई ध्यान नदिई।

काममा ध्यान संयन्त्र


ध्यान संयन्त्र कम्प्युटेशनली महँगो हुन सक्छ, विशेष गरी लामो इनपुट अनुक्रमहरूको लागि, किनकि यसले सबै टोकनहरू ( O(n^2) जटिलता) बीचको जोडी अन्तरक्रियाहरू गणना गर्न आवश्यक छ। यसलाई थप चरण-दर-चरण विवरणमा हेरौं:


  1. इनपुट प्रतिनिधित्व : इनपुट अनुक्रममा प्रत्येक टोकनलाई भेक्टरको रूपमा प्रतिनिधित्व गरिन्छ, सामान्यतया इम्बेडिङहरू प्रयोग गरेर।


  2. क्वेरी, कुञ्जी, मान भेक्टरहरू : प्रत्येक टोकनको लागि, तीन भेक्टरहरू गणना गरिन्छ: एक क्वेरी भेक्टर ( Q_i ), एउटा कुञ्जी भेक्टर ( K_i ), र मान भेक्टर ( V_i )। यी भेक्टरहरू सिकेका रैखिक रूपान्तरणहरू प्रयोग गरेर इनपुट प्रतिनिधित्वबाट व्युत्पन्न हुन्छन्।


  3. ध्यान स्कोरहरू : इनपुट अनुक्रममा सबै अघिल्लो टोकनहरूको प्रमुख भेक्टरहरूसँग हालको टोकनको क्वेरी भेक्टरको डट उत्पादन लिएर ध्यान स्कोरहरू गणना गरिन्छ। यसले प्रत्येक टोकनमा कति फोकस राख्नु पर्छ भनेर संकेत गर्ने स्कोरमा परिणाम हुन्छ।


  4. Softmax सामान्यीकरण : ध्यान स्कोरहरू ध्यान वजन प्राप्त गर्न softmax प्रकार्य प्रयोग गरेर सामान्यीकृत गरिन्छ, जसको योगफल 1 हुन्छ।


  5. भारित योग : अन्तमा, हालको टोकनको लागि आउटपुट प्रतिनिधित्वलाई ध्यान वजन प्रयोग गरी मान भेक्टरहरूको भारित योगफलको रूपमा गणना गरिन्छ।

बहु-हेड ध्यान

बहु-हेड ध्यान ध्यान संयन्त्रको एक विस्तार हो जसले मोडेललाई विभिन्न स्थानहरूमा विभिन्न प्रतिनिधित्व सबस्पेसहरूबाट जानकारीमा संयुक्त रूपमा उपस्थित हुन अनुमति दिन्छ। ध्यान वजनको एउटै सेट हुनुको सट्टा, बहु-हेड ध्यानले समानान्तरमा ध्यान स्कोरहरूको धेरै सेटहरू गणना गर्दछ, प्रत्येकको आफ्नै सिकेको रैखिक रूपान्तरणहरू।


यी ध्यान हेडहरूको आउटपुटहरू त्यसपछि एकीकृत र रैखिक रूपमा अन्तिम आउटपुट प्रतिनिधित्व उत्पादन गर्न रूपान्तरण हुन्छन्।


यो संयन्त्रले इनपुट डेटामा विभिन्न सम्बन्ध र निर्भरताहरू क्याप्चर गर्ने मोडेलको क्षमतालाई बढाउँछ, जसले गर्दा विभिन्न NLP कार्यहरूमा सुधारिएको प्रदर्शन हुन्छ।

बहुमुखी ध्यान

अनुमान गणना प्रक्रियाको अवलोकन

LLMs र ट्रान्सफर्मर आर्किटेक्चरको बुझाइको साथ, अनुमान गणना प्रक्रियालाई रूपरेखा गरौं। Inference ले दिइएको इनपुट अनुक्रमको लागि अर्को $n$ टोकनहरू उत्पन्न गर्दछ र दुई चरणहरूमा विभाजन गर्न सकिन्छ:


  1. प्रिफिल स्टेज : यस चरणमा, इनपुट अनुक्रमको लागि मोडेल मार्फत अगाडि पास गरिन्छ, र प्रत्येक टोकनको लागि कुञ्जी र मूल्य प्रतिनिधित्वहरू गणना गरिन्छ। यी प्रतिनिधित्वहरू डिकोडिङ चरणमा KV क्यासमा पछि प्रयोगको लागि भण्डारण गरिन्छ। प्रत्येक तहमा सबै टोकनहरूको प्रतिनिधित्व समानान्तर रूपमा गणना गरिन्छ।

    LLM अनुमानको समयमा प्रिफिल चरण

  2. डिकोडिङ स्टेज : यस चरणमा, मोडेलले स्वत: रिग्रेसिभ तरिकामा एक पटकमा आउटपुट टोकनहरू उत्पन्न गर्दछ। प्रत्येक टोकनको लागि, मोडेलले प्रिफिल चरणमा भण्डारण गरिएको KV क्यासबाट कुञ्जी र मान प्रतिनिधित्वहरू ल्याउँछ, साथै अनुक्रममा अर्को टोकन गणना गर्नको लागि हालको इनपुट टोकनको क्वेरी प्रतिनिधित्व।


    यो प्रक्रिया रोकिने मापदण्ड पूरा नभएसम्म जारी रहन्छ (जस्तै, अधिकतम लम्बाइमा पुग्न वा अनुक्रमको अन्त्य टोकन उत्पन्न गर्दै)। नयाँ कुञ्जी र मान प्रतिनिधित्वहरू पछिका टोकनहरूको लागि KV क्यासमा भण्डारण गरिएका छन्। यस चरणमा, अर्को टोकन उत्पन्न गर्न (जस्तै, लोभी खोज, किरण खोज, शीर्ष-के नमूना) निर्धारण गर्न टोकन नमूना रणनीति पनि लागू गरिन्छ।

    LLM अनुमानको समयमा डिकोडिङ चरण

अनुमान गणनाको जटिलता

लम्बाइ L को उपसर्गको लागि, इम्बेडिङ साइज d , र h हेडहरू र n तहहरू भएको मोडेलको लागि, अनुमान गणनाको जटिलतालाई निम्नानुसार विश्लेषण गर्न सकिन्छ:

  • प्रिफिल स्टेज : प्रिफिल स्टेजमा, हामी इनपुटमा भएका सबै टोकनहरूको प्रारम्भिक प्रतिनिधित्वको गणना गर्छौं। जटिलता यहाँ छ:

    यहाँ:

    • पहिलो शब्द O(Ln .d^2) : फीड-फर्वार्ड गणनाको प्रतिनिधित्व गर्दछ, जसले प्रत्येक टोकनलाई तहहरूमा स्वतन्त्र रूपमा प्रक्रिया गर्दछ। यसले अनुक्रम लम्बाइ L र तहहरूको संख्या n दुवैसँग रेखीय रूपमा मापन गर्दछ।


    • दोस्रो अवधि O(L^2. nh d) : ध्यान संयन्त्रको लागत प्रतिनिधित्व गर्दछ। यहाँ, प्रत्येक टोकनले प्रत्येक अर्को टोकनसँग अन्तर्क्रिया गर्छ, परिणामस्वरूप प्रति तह ध्यान गणनाको लागि L^2 जटिलता हुन्छ। जटिलता क्रम लम्बाइको साथ चतुर्भुज रूपमा बढ्छ, जुन लामो अनुक्रमहरूको लागि प्रमुख बाधा बन्न सक्छ।


  • डिकोडिङ स्टेज : डिकोडिङ स्टेज अटोरेग्रेसिभ भाग हो, जटिलता हो:

  • यहाँ:

    • फिड-फर्वार्ड गणना : प्रत्येक उत्पन्न टोकनको लागि, हामी प्रत्येक तहमा फिड-फर्वार्ड कार्यहरू गर्दछौं। यो एक पटकमा एउटा टोकनको लागि गरिएको हुनाले (पूरै अनुक्रम होइन), प्रति टोकन जटिलता हो: O(nd^2)


    • क्यासिङको साथ ध्यान गणना : प्रत्येक नयाँ टोकनले पहिले गणना गरिएको कुञ्जी-मान जोडीहरू प्रयोग गरेर ध्यान मार्फत अवस्थित अनुक्रमसँग अन्तर्क्रिया गर्दछ। प्रत्येक टोकन उत्पन्नको लागि, यो ध्यान गणना अनुक्रम लम्बाइ L को समानुपातिक छ, दिँदै: O(Lnd .h)


हामीले देख्न सक्छौं, अनुमान गणनाको जटिलता इनपुट अनुक्रम ( L ), तहहरूको संख्या ( n ), ध्यान हेडहरूको संख्या ( h ), र इम्बेडिङ साइज ( d ) को लम्बाइबाट प्रभावित हुन्छ। यो जटिलता वास्तविक-समय अनुप्रयोगहरूमा बाधा बन्न सक्छ, विशेष गरी लामो इनपुट अनुक्रमहरू र/वा ठूला मोडेलहरूसँग व्यवहार गर्दा।

KV क्यासिङको महत्त्व

KV क्यासिङ विशेष गरी डिकोडिङ चरणमा LLM अनुमानका लागि एक महत्त्वपूर्ण अप्टिमाइजेसन प्रविधि हो। प्रिफिल चरणको समयमा गणना गरिएको कुञ्जी र मूल्य प्रतिनिधित्वहरू भण्डारण गरेर, मोडेलले पहिले प्रशोधित टोकनहरूको लागि अनावश्यक गणनाहरूबाट बच्न सक्छ।


यसले अनुमानको समयमा कम्प्युटेसनल लागत र विलम्बतालाई उल्लेखनीय रूपमा घटाउँछ, किनकि मोडेलले इनपुट अनुक्रममा सबै टोकनहरूको लागि कुञ्जी र मूल्य प्रतिनिधित्वहरू पुन: गणना गर्नुको सट्टा उत्पन्न भइरहेको नयाँ टोकनको लागि ध्यान स्कोरहरू मात्र गणना गर्न आवश्यक छ।


यसले इनपुट लम्बाइको सन्दर्भमा द्विघातको सट्टा उत्पन्न टोकनहरूको संख्याको सन्दर्भमा लागतलाई रैखिक बनाउँछ।


यद्यपि, KV क्यासिङलाई कुञ्जी र मूल्य प्रतिनिधित्वहरू भण्डारण गर्न थप मेमोरी चाहिन्छ, जुन स्रोत-प्रतिबन्धित वातावरणमा ट्रेड-अफ हुन सक्छ।

एक उदाहरण मोडेल को लागी गणना

LLaMA 7B मोडेलको लागि मेमोरी आवश्यकताहरू गणना गरौं।

मोडेल कन्फिगरेसन

  • प्यारामिटरहरू: 7 बिलियन
  • इम्बेडिङ साइज ( d_model ): 4096
  • तहहरूको संख्या: 32
  • ध्यान हेडहरूको संख्या ( d_head ): 32
  • हेड डाइमेन्सन ( d_head ): 128 (4096/32)
  • अधिकतम अनुक्रम लम्बाइ (L): 2048
  • डाटा प्रकार: float16 (2 बाइट प्रति तत्व)

मेमोरी गणना

  1. प्रति-तह क्यास साइज : प्रत्येक तहको लागि, हामीले दुवै कुञ्जी र मानहरू भण्डारण गर्न आवश्यक छ
    • प्रति टोकन कुञ्जी आकार = d_head × num_heads = 128 × 32 = 4096 तत्वहरू

    • मान आकार प्रति टोकन = d_head × num_heads = 128 × 32 = 4096 तत्वहरू

    • प्रति टोकन प्रति तह कुल तत्वहरू = 4096 + 4096 = 8192 तत्वहरू


  2. पूर्ण अनुक्रमको लागि प्रति तह मेमोरी : लम्बाइ L = 2048 टोकनहरूको पूर्ण अनुक्रमको लागि
    • प्रति तह तत्वहरू = L × 8192 = 2048 × 8192 = 16,777,216 तत्वहरू

    • प्रति तह मेमोरी (बाइटमा) = १६,७७७,२१६ × २ = ३३,५५४,४३२ बाइट्स = ३३.५५ एमबी


  3. सबै तहहरूका लागि कुल KV क्यास मेमोरी : हामीसँग $32$ तहहरू छन्
    • कुल मेमोरी = 33.55 × 32 MB = 1073.6 MB

कुल मेमोरी आवश्यकता

  • मोडेल वजन: 7 बिलियन प्यारामिटर × 2 बाइट्स/पैरामिटर = 14 GB


  • KV क्यास मेमोरी: 1073.6 MB


  • अन्य मेमोरी ओभरहेड (जस्तै, सक्रियता, मध्यवर्ती परिणाम): ~1-2 GB


यसरी, कुल मेमोरी आवश्यकता: 14 GB (मोडेल वजन) + 1-2 GB (ओभरहेड) + 1073.6 MB (KV क्यास) = 15-16 GB । यो गणनाले हामीलाई निष्कर्षको समयमा LLaMA 7B मोडेलको लागि मेमोरी आवश्यकताहरूको अनुमान दिन्छ। LLaMA 7B GPT-3 (175 बिलियन प्यारामिटरहरू) जस्ता मोडेलहरूको तुलनामा तुलनात्मक रूपमा सानो छ, जसले मोडेलको तौल र KV क्यास दुवैका लागि धेरै मेमोरी चाहिन्छ।


साथै, $m$ समवर्ती प्रयोगकर्ताहरूमा मापन गर्दा, स्रोत आवश्यकताहरू $m$ गुणा बढी हुनेछन्। यसरी, स्रोत-प्रतिबन्धित वातावरणमा ठूला मोडेलहरू प्रयोग गर्नका लागि अनुकूलन प्रविधिहरू महत्त्वपूर्ण छन्।

अनुमान अप्टिमाइजेसनको मूल्यांकनका लागि मेट्रिक्स

अनुमान अप्टिमाइजेसन प्रविधिको प्रभावकारिता मूल्याङ्कन गर्दा, धेरै मेट्रिक्सहरू विचार गर्न सकिन्छ:

  1. पूर्व-भरण विलम्बता : अनुमानको प्रि-फिल चरण प्रदर्शन गर्न लाग्ने समय, जसलाई टाइम-टु-फर्स्ट-टोकन (TTFT) विलम्बता पनि भनिन्छ। यो मेट्रिक अन्तरक्रियात्मक अनुप्रयोगहरूको लागि महत्त्वपूर्ण छ जहाँ प्रयोगकर्ताहरूले द्रुत प्रतिक्रियाहरूको अपेक्षा गर्छन्। मोडेल आकार, इनपुट लम्बाइ, र हार्डवेयर क्षमताहरू जस्ता कारकहरूले यो मेट्रिकलाई प्रभाव पार्न सक्छ।


  2. डिकोडिङ लेटन्सी : प्रिफिल स्टेज पछि प्रत्येक अर्को टोकन उत्पन्न गर्न लाग्ने समय, जसलाई इन्टर-टोकन लेटन्सी (ITL) पनि भनिन्छ। यो मेट्रिक पाठ उत्पादन को समयमा मोडेल को प्रतिक्रिया मापन को लागी महत्वपूर्ण छ। च्याटबटहरू जस्ता अनुप्रयोगहरूको लागि, कम ITL राम्रो छ, तर छिटो सधैं राम्रो हुँदैन, किनकि 6-8 प्रति सेकेन्ड टोकनहरू मानव अन्तरक्रियाको लागि प्रायः पर्याप्त हुन्छन्। प्रभाव पार्ने कारकहरूले KV क्यास साइज, नमूना रणनीति, र हार्डवेयर समावेश गर्दछ।


  3. अन्त-देखि-अन्त विलम्बता : इनपुट प्राप्त गर्नबाट अन्तिम आउटपुट उत्पन्न गर्न कुल समय। यो मेट्रिक अनुमान प्रक्रियाको समग्र कार्यसम्पादन बुझ्नको लागि आवश्यक छ र प्रिफिल, डिकोडिङ, र अन्य कम्पोनेन्ट विलम्बताहरू (जस्तै JSON पार्सिङ) द्वारा प्रभावित हुन्छ। असर गर्ने कारकहरूमा मोडेलको आकार, इनपुट लम्बाइ, र हार्डवेयर, साथै सम्पूर्ण पाइपलाइनको दक्षता समावेश छ।


  4. अधिकतम अनुरोध दर उर्फ QPS (प्रति सेकेन्ड प्रश्नहरू) : प्रति सेकेन्ड प्रशोधन गर्न सकिने अनुमान अनुरोधहरूको संख्या। उत्पादन वातावरणमा मोडेलको स्केलेबिलिटी मूल्याङ्कन गर्नको लागि यो मेट्रिक महत्त्वपूर्ण छ। मोडेल आकार, हार्डवेयर, र अनुकूलन प्रविधिहरू जस्ता कारकहरूले QPS लाई प्रभाव पार्न सक्छ। उदाहरणका लागि, यदि 1 GPU मार्फत P90 लेटन्सीको लागि 15 QPS सेवा दिइन्छ भने, 300 QPS सेवा गर्न, 20 GPU हरू आवश्यक पर्नेछ। असर गर्ने कारकहरूमा हार्डवेयर स्रोतहरू, लोड ब्यालेन्सिङ, र अनुकूलन प्रविधिहरू समावेश छन्।


  5. FLOPS (फ्लोटिंग-पोइन्ट अपरेशन प्रति सेकेन्ड) : मोडेलले एक सेकेन्डमा गर्न सक्ने फ्लोटिंग-पोइन्ट अपरेशनहरूको संख्या। यो मेट्रिक अनुमानको कम्प्युटेशनल लागत बुझ्नको लागि उपयोगी छ र विभिन्न मोडेल र अनुकूलन प्रविधिहरूको दक्षता तुलना गर्न प्रयोग गर्न सकिन्छ। असर गर्ने कारकहरूमा मोडेल वास्तुकला, हार्डवेयर, र अनुकूलन प्रविधिहरू समावेश छन्।

इन्फरेन्स अप्टिमाइजेसन प्रविधिका प्रकारहरू

हामी शृङ्खलाको भविष्यको पोस्टमा यी सबै अप्टिमाइजेसनहरू कभर गर्नेछौं।

  • मोडेल आर्किटेक्चर अप्टिमाइजेसन : अनुमान दक्षता सुधार गर्न मोडेल वास्तुकला परिमार्जन गर्दै, जस्तै तह वा ध्यान हेडहरूको संख्या घटाउने, वा अधिक कुशल ध्यान संयन्त्र (जस्तै, विरल ध्यान) को प्रयोग गरी।


  • प्रणाली अप्टिमाइजेसन : अन्तर्निहित हार्डवेयर र सफ्टवेयर पूर्वाधारलाई अनुकूलन गर्ने, जस्तै विशेष हार्डवेयर (जस्तै, TPUs, GPUs) वा सफ्टवेयर स्ट्याक अप्टिमाइज गर्ने (उदाहरणका लागि, कुशल पुस्तकालयहरू र फ्रेमवर्कहरू प्रयोग गरेर)। यसलाई विभाजित गर्न सकिन्छ:


    • मेमोरी व्यवस्थापन : ओभरहेड कम गर्न र प्रदर्शन सुधार गर्न मेमोरी उपयोग कुशलतापूर्वक प्रबन्ध गर्नुहोस्।

    • कुशल गणना : समानान्तरको लाभ उठाउँदै र विलम्बता कम गर्न गणनालाई अनुकूलन गर्दै।

    • ब्याचिङ : थ्रुपुट सुधार गर्न एकै साथ धेरै अनुरोधहरू प्रशोधन गर्दै।

    • समयतालिका : संसाधनको अधिकतम उपयोग गर्न कार्यहरू कुशलतापूर्वक तालिकाबद्ध गर्नुहोस्।


  • मोडेल कम्प्रेसनहरू : परिमाणीकरण, छाँट्ने, र आसवन जस्ता प्रविधिहरू मोडेलको आकार घटाउन र प्रदर्शन गतिलाई उल्लेखनीय रूपमा त्याग नगरी अनुमानित गति सुधार गर्न प्रयोग गर्न सकिन्छ।


  • एल्गोरिथ्म अप्टिमाइजेसन : अनुमानका लागि प्रयोग गरिएका एल्गोरिदमहरू सुधार गर्दै, जस्तै अधिक कुशल नमूना रणनीतिहरू प्रयोग गर्ने वा ध्यान संयन्त्रलाई अनुकूलन गर्ने। उदाहरणका लागि, सट्टा डिकोडिङ, जसले मोडेललाई समानान्तरमा धेरै टोकनहरू उत्पन्न गर्न अनुमति दिन्छ, डिकोडिङ विलम्बतालाई उल्लेखनीय रूपमा कम गर्न सक्छ।

    अनुकूलन प्रविधिहरूको वर्गीकरण


निष्कर्ष

यस पोष्टमा, हामीले LLM अनुमान, यसको महत्त्व, र यससँग सम्बन्धित चुनौतीहरूको एक सिंहावलोकन प्रदान गरेका छौं। हामीले मुख्य समस्या ढाँचाहरू पनि रेखांकित गरेका छौं जसले पछिका पोष्टहरूमा अनुकूलन प्रविधिहरूको हाम्रो अन्वेषणलाई मार्गदर्शन गर्नेछ।


LLM अनुमानका जटिलताहरू र यसको कार्यसम्पादनलाई प्रभाव पार्ने कारकहरू बुझेर, हामी LLM लाई वास्तविक-विश्व अनुप्रयोगहरूको लागि अझ व्यावहारिक बनाउनको लागि अनुकूलन प्रविधिहरूको महत्त्वलाई अझ राम्रोसँग बुझ्न सक्छौं। अर्को पोष्टमा, हामी मोडेल प्रदर्शन कायम राख्दै विलम्बता र स्रोत खपत कम गर्नमा ध्यान केन्द्रित गर्दै, विशिष्ट अप्टिमाइजेसन प्रविधिहरू र तिनीहरूको कार्यान्वयनमा गहिरो अध्ययन गर्नेछौं।

सन्दर्भहरू