एलएलएम रीझनिंगमधील प्रगती: एक तांत्रिक खोल डुबकी | B4N1

एलएलएम रीझनिंगमधील प्रगती: एक तांत्रिक खोल डुबकी

9 months ago · b4n1 Read time: 3 min

परिचय

मोठ्या भाषेच्या मॉडेल्सने (LLMs) अलीकडच्या वर्षांत नैसर्गिक भाषा प्रक्रियेच्या (NLP) क्षेत्रात क्रांती केली आहे. या मॉडेल्सनी भाषा भाषांतर, मजकूर सारांश आणि प्रश्न उत्तरे यासह विविध NLP कार्यांमध्ये अत्याधुनिक परिणाम प्राप्त केले आहेत. तथापि, LLM ची खरी क्षमता त्यांच्या संकल्पनांमधील गुंतागुंतीचे संबंध तर्क करण्याच्या आणि समजून घेण्याच्या क्षमतेमध्ये आहे. या लेखात, आम्ही LLM तर्कशास्त्रातील प्रगती, अंतर्निहित तंत्रे, आर्किटेक्चर आणि आव्हाने शोधून काढू.

पार्श्वभूमी

एलएलएम हे तंत्रिका नेटवर्कचा एक प्रकार आहे ज्याला शब्द आणि संकल्पनांमधील नमुने आणि संबंध जाणून घेण्यासाठी मोठ्या प्रमाणात मजकूर डेटावर प्रशिक्षण दिले जाते. या मॉडेल्समध्ये सामान्यत: एन्कोडर आणि डीकोडर असतात, जेथे एन्कोडर इनपुट मजकूरावर प्रक्रिया करतो आणि डीकोडर आउटपुट मजकूर तयार करतो. एन्कोडर हे सहसा ट्रान्सफॉर्मर-आधारित आर्किटेक्चर असते, जे विशेषतः मजकूर सारख्या अनुक्रमिक डेटासाठी योग्य असते.

ट्रान्सफॉर्मर आर्किटेक्चर

ट्रान्सफॉर्मर आर्किटेक्चर, वासवानी इत्यादींनी "लक्ष इज ऑल यू नीड" या पेपरमध्ये सादर केला आहे. (2017), LLM साठी वास्तविक मानक बनले आहे. ट्रान्सफॉर्मरमध्ये एन्कोडर आणि डीकोडर असतात, प्रत्येक अनेक स्तरांनी बनलेला असतो. प्रत्येक स्तरामध्ये दोन उप-स्तर असतात: एक स्वत: ची लक्ष देण्याची यंत्रणा आणि पूर्णपणे कनेक्ट केलेले फीड-फॉरवर्ड नेटवर्क (FFNN).

``अजगर मशाल आयात करा torch.nn nn म्हणून आयात करा

वर्ग ट्रान्सफॉर्मर लेयर(nn.Module): def init(स्वतः, d_model, n_heads, d_ff): सुपर(TransformerLayer, self).init() self.self_attn = nn.MultiheadAttention(d_model, n_heads) self.ffnn = nn.Linear(d_model, d_ff) self.dropout = nn.Dropout(0.1) self.layer_norm = nn.LayerNorm(d_model)

def फॉरवर्ड (स्व, x):
    # स्वयं-लक्ष यंत्रणा
    x_attn = self.self_attn(x, x)
    x_attn = self.dropout(x_attn)
    x_attn = x + x_attn

    # FFNN
    x_ffnn = self.ffnn(x_attn)
    x_ffnn = self.dropout(x_ffnn)
    x_ffnn = self.layer_norm(x_ffnn + x_attn)

    x_ffnn परत करा

## एलएलएम रिझनिंगमधील प्रगती

संकल्पनांमधील गुंतागुंतीचे संबंध तर्कशुद्ध करण्यात आणि समजून घेण्यात एलएलएमने लक्षणीय प्रगती केली आहे. काही प्रमुख प्रगतींमध्ये हे समाविष्ट आहे:

### 1. आलेख-आधारित तर्क

आलेख-आधारित तर्कामध्ये आलेख म्हणून ज्ञानाचे प्रतिनिधित्व करणे समाविष्ट असते, जेथे नोड्स संकल्पना दर्शवतात आणि कडा त्यांच्यातील संबंध दर्शवतात. LLM ला या आलेखांबद्दल तर्क करण्यासाठी प्रशिक्षित केले जाऊ शकते, नोड्समधील संबंधांबद्दल अंदाज बांधणे.

``गंज
आलेख वापरा::ग्राफ;
neural_network::NeuralNetwork वापरा;

fn graph_reasoning(ग्राफ: &ग्राफ, क्वेरी: &str) -> स्ट्रिंग {
    लेट एम्बेडिंग = neural_network.query(ग्राफ, क्वेरी);
    परिणाम द्या = neural_network.reason(ग्राफ, एम्बेडिंग);
    result.to_string()
}

२. मल्टी-टास्क लर्निंग

मल्टी-टास्क लर्निंगमध्ये एकाच मॉडेलला एकाच वेळी अनेक कामांवर प्रशिक्षण देणे समाविष्ट असते. तर्क करणे आणि जटिल नातेसंबंध समजून घेणे यासह विविध कार्यांवर LLM चे कार्यप्रदर्शन सुधारण्यासाठी हा दृष्टीकोन दर्शविला गेला आहे.

``जा मुख्य पॅकेज

आयात ( "fmt" "gonum.org/v1/gonum/mat" )

प्रकार मॉडेल रचना { *nn.रेखीय *nn.रेखीय }

func (m *मॉडेल) फॉरवर्ड (x *mat.Dense) *mat.Dense { // फॉरवर्ड पास z := m. रेखीय(x) z = m. रेखीय(z) परत z }


### 3. लक्ष देण्याची यंत्रणा

लक्ष देण्याची यंत्रणा LLM ला आउटपुट तयार करताना इनपुट मजकूराच्या विशिष्ट भागांवर लक्ष केंद्रित करण्यास अनुमती देते. तर्क करणे आणि जटिल नातेसंबंध समजून घेणे यासह विविध कार्यांवर LLM चे कार्यप्रदर्शन सुधारण्यासाठी हा दृष्टीकोन दर्शविला गेला आहे.

``अजगर
मशाल आयात करा
torch.nn nn म्हणून आयात करा

वर्ग अटेंशन मेकॅनिझम(nn.Module):
    def __init__(स्व, डी_मॉडेल, एन_हेड्स):
        सुपर(लक्षयंत्रणा, स्वत:).__init__()
        self.query = nn.Linear(d_model, d_model)
        self.key = nn.Linear(d_model, d_model)
        self.value = nn.Linear(d_model, d_model)
        self.dropout = nn.Dropout(0.1)
        self.layer_norm = nn.LayerNorm(d_model)

    def फॉरवर्ड (स्व, x):
        # क्वेरी, की आणि मूल्य
        q = self.query(x)
        k = self.key(x)
        v = स्व.मूल्य(x)

        # लक्ष वेट
        वजन = torch.matmul(q, k.T) / math.sqrt(q.shape[1])
        वजन = स्व. ड्रॉपआउट(वजन)
        वजन = torch.softmax(वजन, मंद=-1)

        # संदर्भ वेक्टर
        संदर्भ = torch.matmul(वजन, v)

        संदर्भ परत करा

व्हिज्युअलायझेशन

विविध कार्यांवरील LLM च्या कार्यक्षमतेची कल्पना करण्यासाठी, दिलेल्या कार्यावरील भिन्न मॉडेल्सच्या अचूकतेची तुलना करण्यासाठी आम्ही चार्ट वापरू शकतो. Chart.js वापरून चार्टचे उदाहरण येथे आहे:

``json { "प्रकार": "बार", "डेटा": { "लेबल": ["टास्क 1", "टास्क 2", "टास्क 3"], "डेटासेट": [ { "label": "मॉडेल 1", "डेटा": [०.८, ०.७, ०.९], "backgroundColor": "rgba(255, 99, 132, 0.2)", "borderColor": "rgba(255, 99, 132, 1)", "बॉर्डर रुंदी": 1 }, { "label": "मॉडेल 2", "डेटा": [०.९, ०.८, ०.७], "backgroundColor": "rgba(54, 162, 235, 0.2)", "borderColor": "rgba(54, 162, 235, 1)", "बॉर्डर रुंदी": 1 } ] }, "पर्याय": { "शीर्षक": { "डिस्प्ले": खरे, "text": "विविध कार्यांवरील विविध मॉडेल्सची अचूकता" }, "स्केल्स": { "yAxes": [ { "ticks": { "beginAtZero": खरे } } ] } } }


## निष्कर्ष

या लेखात, आम्ही आलेख-आधारित तर्क, मल्टी-टास्क लर्निंग आणि लक्ष देण्याची यंत्रणा यासह एलएलएम तर्कशास्त्रातील प्रगती शोधली आहे. या संकल्पना स्पष्ट करण्यासाठी आम्ही Python, Rust आणि Go मध्ये कोड उदाहरणे देखील दिली आहेत. शेवटी, आम्ही विविध कार्यांवरील LLM च्या कामगिरीची कल्पना करण्यासाठी एक तक्ता वापरला आहे. या प्रगतीमध्ये एनएलपीच्या क्षेत्रात क्रांती घडवून आणण्याची क्षमता आहे, एलएलएमना संकल्पनांमधील जटिल संबंध तर्क करण्यास आणि समजून घेण्यास सक्षम करते.

## संदर्भ

* वासवानी वगैरे. (2017). लक्ष तुम्हाला आवश्यक आहे. arXiv प्रीप्रिंट arXiv:1706.03762.
* डेव्हलिन वगैरे. (२०१८). BERT: भाषा समजून घेण्यासाठी दीप द्विदिशात्मक ट्रान्सफॉर्मर्सचे पूर्व-प्रशिक्षण. arXiv प्रीप्रिंट arXiv:1810.04805.
* रॅडफोर्ड इ. (२०१९). भाषा मॉडेल हे पर्यवेक्षित नसलेले मल्टीटास्क शिकणारे आहेत. arXiv प्रीप्रिंट arXiv:1906.08237.

Have Questions?

Let's Talk

Contact me on LinkedIn