# הקדמה
גרויס שפּראַך מאָדעלס (LLMs) האָבן רעוואַלושאַנייזד די פעלד פון נאַטירלעך שפּראַך פּראַסעסינג (NLP) אין די לעצטע יאָרן. די מאָדעלס האָבן אַטשיווד מאָדערן רעזולטאַטן אין פאַרשידן NLP טאַסקס, אַרייַנגערעכנט שפּראַך איבערזעצונג, טעקסט סאַמעריזיישאַן און קשיא ענטפֿערן. אָבער, דער אמת פּאָטענציעל פון LLMs ליגט אין זייער פיייקייט צו סיבה און פֿאַרשטיין קאָמפּלעקס באציונגען צווישן קאַנסעפּס. אין דעם אַרטיקל, מיר וועלן דעלוו אין די אַדוואַנסיז אין LLM ריזאַנינג, ויספאָרשן די אַנדערלייינג טעקניקס, אַרקאַטעקטשערז און טשאַלאַנדזשיז.
הינטערגרונט
LLMs זענען אַ טיפּ פון נעוראַל נעץ וואָס איז טריינד אויף וואַסט אַמאַונץ פון טעקסט דאַטן צו לערנען פּאַטערנז און באַציונגען צווישן ווערטער און קאַנסעפּס. די מאָדעלס טיפּיקלי צונויפשטעלנ זיך פון אַ ענקאָדער און אַ דיקאָודער, ווו די ענקאָדער פּראַסעסאַז די אַרייַנשרייַב טעקסט און די דעקאָדער דזשענערייץ די רעזולטאַט טעקסט. דער ענקאָדער איז יוזשאַוואַלי אַ טראַנספאָרמער-באזירט אַרקאַטעקטשער, וואָס איז דער הויפּט געזונט פּאַסיק פֿאַר סאַקווענטשאַל דאַטן ווי טעקסט.
טראַנספאָרמער אַרטשיטעקטורע
די טראַנספאָרמער אַרקאַטעקטשער, באַקענענ אין די פּאַפּיר "אכטונג איז אַלע איר דאַרפֿן" דורך Vaswani עט על. (2017), איז געווארן דער דע פאַקטאָ נאָרמאַל פֿאַר LLMs. דער טראַנספאָרמער באשטייט פון אַ ענקאָדער און אַ דעקאָדער, יעדער קאַמפּאָוזד פון קייפל לייַערס. יעדער שיכטע באשטייט פון צוויי סאַב-לייַערס: אַ זיך-ופמערקזאַמקייט מעקאַניזאַם און אַ גאָר קאָננעקטעד קאָרמען-פאָרויס נעץ (FFNN).
אַרייַנפיר שטורקאַץ
אַרייַנפיר torch.nn ווי נן
קלאַס TransformerLayer(nn.Module):
דעף __יניט__ (זיך, ד_מאָדעל, n_העאַדס, ד_ףף):
יבער(טראַנספאָרמערלייַער, זיך).__יניט__()
self.self_attn = nn.MultiHeadAttention(d_model, n_heads)
self.ffnn = nn.לינעאַר(ד_מאָדעל, ד_ףף)
self.dropout = nn.Dropout(0.1)
self.layer_norm = nn.LayerNorm(d_model)
דעף פאָרויס (זיך, רענטגענ):
# זיך-ופמערקזאַמקייט מעקאַניזאַם
x_attn = self.self_attn(x, x)
x_attn = self.dropout (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
אַדוואַנסאַז אין LLM ריזאַנינג
LLMs האָבן געמאכט באַטייַטיק פּראָגרעס אין ריזאַנינג און פארשטאנד קאָמפּלעקס באציונגען צווישן קאַנסעפּס. עטלעכע פון די הויפּט אַדוואַנסאַז אַרייַננעמען:
1. גראף-באזירט ריזאַנינג
גראַפיק-באזירט ריזאַנינג ינוואַלווז רעפּריזענטינג וויסן ווי אַ גראַפיק, ווו נאָודז פאָרשטעלן קאַנסעפּס און עדזשאַז רעפּראַזענץ באציונגען צווישן זיי. LLMs קענען זיין טריינד צו סיבה וועגן די גראַפס, מאכן פֿאָרויסזאָגן וועגן די באַציונגען צווישן נאָודז.
ניצן גראַפיק::גראַף;
נוצן נעוראַל_נעטוואָרק :: נעוראַלנעטוואָרק;
fn graph_reasoning (גראַף: &גראַף, אָנפֿרעג: &str) -> שטריקל {
לאָזן עמבעדדינג = neural_network.query (גראַף, אָנפֿרעג);
לאָזן רעזולטאַט = נעוראַל_נעטוואָרק.רעאַסאָן (גראַף, עמבעדדינג);
result.to_string()
}
2. מולטי-טאַסק לערנען
מולטי-אַרבעט לערנען ינוואַלווז טריינינג אַ איין מאָדעל אויף קייפל טאַסקס סיימאַלטייניאַסלי. דער צוגאַנג איז געוויזן צו פֿאַרבעסערן די פאָרשטעלונג פון LLMs אויף פאַרשידן טאַסקס, אַרייַנגערעכנט ריזאַנינג און פארשטאנד קאָמפּלעקס באציונגען.
פּעקל הויפּט
אַרייַנפיר (
"פמט"
"gonum.org/v1/gonum/mat"
)
טיפּ מאָדעל סטרוקטור {
*נ.לינעאַר
*נ.לינעאַר
}
func (m *מאָדעל) פֿאָרווערטס (רענטגענ *מאַט.דענסע) *מאַט.דענסע {
// פֿאָרווערטס פאָרן
ז := מ.לינעאַר (קסנומקס)
ז = מ.לינעאַר (ז)
צוריקקומען ז
}
# # 3 . אויפמערקזאמקייט מעקאַניזאַמז
ופמערקזאַמקייט מעקאַניזאַמז לאָזן LLMs צו פאָקוס אויף ספּעציפיש פּאַרץ פון די אַרייַנשרייַב טעקסט ווען דזשענערייטינג די רעזולטאַט. דער צוגאַנג איז געוויזן צו פֿאַרבעסערן די פאָרשטעלונג פון LLMs אויף פאַרשידן טאַסקס, אַרייַנגערעכנט ריזאַנינג און פארשטאנד קאָמפּלעקס באציונגען.
אַרייַנפיר שטורקאַץ
אַרייַנפיר torch.nn ווי נן
קלאַס ופמערקזאַמקייט מעטשאַניסם (נ.מאָדלע):
דעף __יניט__ (זיך, ד_מאָדעל, נ_העאַדס):
סופּער(אַטטענטיאָן מעטשאַניסם, זיך).__יניט__()
self.query = nn.Linear(d_model, d_model)
self.key = nn.Linear(d_model, d_model)
self.value = nn.לינעאַר(ד_מאָדעעל, ד_מאָדעעל)
self.dropout = nn.Dropout(0.1)
self.layer_norm = nn.LayerNorm(d_model)
דעף פאָרויס (זיך, רענטגענ):
# אָנפֿרעג, שליסל און ווערט
q = self.query (x)
ק = זיך.קיי (קסנומקס)
v = self.value (x)
# ופמערקזאַמקייַט ווייץ
ווייץ = טאָרטש.מאַטמול(ק, ק.ט) / מאַט.סקרט(ק.שאַפּע[1])
ווייץ = זיך.דראָפּאַוט (ווייץ)
ווייץ = טאָרטש.סאָפטמאַקס (ווייץ, טונקל = -1)
# קאָנטעקסט וועקטאָר
קאָנטעקסט = torch.matmul(וואָיץ, v)
צוריקקומען קאָנטעקסט
וויסואַליזאַטיאָן
צו וויזשוואַלייז די פאָרשטעלונג פון LLMs אויף פאַרשידן טאַסקס, מיר קענען נוצן אַ טשאַרט צו פאַרגלייַכן די אַקיעראַסי פון פאַרשידענע מאָדעלס אויף אַ געגעבן אַרבעט. דאָ איז אַ בייַשפּיל פון אַ טשאַרט ניצן Chart.js:
{
"type": "באַר",
"דאַטן": {
"labels": ["אַרבעט 1", "אַרבעט 2", "אַרבעט 3"],
"דאַטאַסעטס": [
{
"label": "מאָדעל 1",
"דאַטן": [0.8, 0.7, 0.9],
"backgroundColor": "rgba(255, 99, 132, 0.2)",
"borderColor": "rgba(255, 99, 132, 1)",
"באָרדערווידטה": 1
},
{
"label": "מאָדעל 2",
"דאַטן": [0.9, 0.8, 0.7],
"backgroundColor": "rgba(54, 162, 235, 0.2)",
"borderColor": "rgba(54, 162, 235, 1)",
"באָרדערווידטה": 1
}
]
},
"אָפּציעס": {
"טיטל": {
"ווייַז": אמת,
"text": "פּינקטלעכקייט פון פאַרשידענע מאָדעלס אויף פאַרשידן טאַסקס"
},
"סקאַלעס": {
"יאַקסעס": [
{
"טיקס": {
"באַגינאַט זעראָ": אמת
}
}
]
}
}
}
# מסקנא
אין דעם אַרטיקל, מיר האָבן יקספּלאָרד די אַדוואַנסיז אין LLM ריזאַנינג, אַרייַנגערעכנט גראַפיק-באזירט ריזאַנינג, מאַלטי-אַרבעט לערנען און ופמערקזאַמקייט מעקאַניזאַמז. מיר האָבן אויך צוגעשטעלט קאָד ביישפילן אין Python, Rust און Go צו אילוסטרירן די קאַנסעפּס. צום סוף, מיר האָבן געוויינט אַ טשאַרט צו וויזשוואַלייז די פאָרשטעלונג פון LLMs אויף פאַרשידן טאַסקס. די אַדוואַנסיז האָבן די פּאָטענציעל צו רעוואַלושאַנייז די פעלד פון NLP, וואָס אַלאַוז LLMs צו סיבה און פֿאַרשטיין קאָמפּלעקס באציונגען צווישן קאַנסעפּס.
# רעפערענצן
- וואַסוואַני עט על. (2017). ופמערקזאַמקייט איז אַלע איר דאַרפֿן. אַרקסיוו פּריפּרינט אַרקסיוו: 1706.03762.
- דעוולין עט על. (2018). BERT: פאַר-טריינינג פון טיף ביידירעקטיאָנאַל טראַנספאָרמערס פֿאַר שפּראַך פארשטאנד. אַרקסיוו פּריפּרינט אַרקסיוו: 1810.04805.
- Radford עט על. (2019). שפּראַך מאָדעלס זענען ונסופּערוויסעד מולטיטאַסק לערנערז. אַרקסיוו פּריפּרינט אַרקסיוו: 1906.08237.