Hoʻolauna
Ua hoʻololi ka Large Language Models (LLMs) i ke kahua o ka hana ʻōlelo kūlohelohe (NLP) i nā makahiki i hala iho nei. Ua loaʻa i kēia mau hiʻohiʻona nā hopena hou loa i nā hana NLP like ʻole, me ka unuhi ʻōlelo, ka hōʻuluʻulu kikokikona, a me ka pane nīnau. Eia naʻe, aia ka mana maoli o nā LLM i ko lākou hiki ke noʻonoʻo a hoʻomaopopo i ka pilina paʻakikī ma waena o nā manaʻo. Ma kēia ʻatikala, e ʻimi mākou i ka holomua o ka noʻonoʻo LLM, e ʻimi ana i nā ʻenehana kumu, nā hale hana, a me nā pilikia.
Kāpae
ʻO nā LLM kahi ʻano pūnaewele neural i hoʻomaʻamaʻa ʻia ma ka nui o ka ʻikepili kikokikona e aʻo i nā ʻano a me nā pilina ma waena o nā huaʻōlelo a me nā manaʻo. Loaʻa kēia mau hiʻohiʻona i kahi encoder a me kahi decoder, kahi e hana ai ka encoder i ka kikokikona hoʻokomo a me ka decoder e hana i ka kikokikona puka. ʻO ka encoder ka mea maʻamau i kahi hoʻolālā e pili ana i ka transformer, i kūpono loa no ka ʻikepili sequential e like me ke kikokikona.
Hoʻolālā Hoʻololi
ʻO ka hoʻolālā transformer, i hoʻokomoʻia ma ka pepa "Attention is All You Need" na Vaswani et al. (2017), ua lilo i mea maʻamau de facto no nā LLM. Aia ka mea hoʻololi i kahi encoder a me kahi decoder, kēlā me kēia me nā papa he nui. Loaʻa i kēlā me kēia papa he ʻelua sub-layers: kahi mīkini nānā ponoʻī a me kahi pūnaewele feed-forward pili piha (FFNN).
ipukukui lawe mai
lawe mai i ka lama.nn e like me nn
papa TransformerLayer(nn.Module):
def __init__(self, d_model, n_heads, d_ff):
super(TransformerLayer, self).__init__()
self.self_attn = nn.MultiHeadAttention(d_model, n_heads)
self.ffnn = nn.Linear(d_model, d_ff)
self.dropout = nn.Haʻalele(0.1)
self.layer_norm = nn.LayerNorm(d_model)
def i mua(self, x):
# ʻO ka mīkini nānā ponoʻī
x_attn = iho.aku_attn(x, x)
x_attn = iho.
x_attn = x + x_attn
# FFNN
x_ffnn = iho.ffnn(x_attn)
x_ffnn = iho.haʻalele(x_ffnn)
x_ffnn = self.layer_norm(x_ffnn + x_attn)
hoʻihoʻi x_ffnn
Nā holomua i ka LLM Noʻonoʻo
Ua holomua nui nā LLM i ka noʻonoʻo a me ka hoʻomaopopo ʻana i nā pilina paʻakikī ma waena o nā manaʻo. ʻO kekahi o nā holomua koʻikoʻi:
1. Noʻonoʻo Ma muli o ka pakuhi
ʻO ka noʻonoʻo e pili ana i ka pakuhi ka hōʻike ʻana i ka ʻike ma ke ʻano he pakuhi, kahi e hōʻike ai nā nodes i nā manaʻo a me nā ʻaoʻao e hōʻike ana i ka pilina ma waena o lākou. Hiki ke aʻo ʻia nā LLM e noʻonoʻo e pili ana i kēia mau pakuhi, e hana ana i nā wānana e pili ana i ka pilina ma waena o nā node.
hoʻohana i ka pakuhi::Graph;
hoʻohana i ka neural_network::NeuralNetwork;
fn graph_reasoning(graph: &Graph, query: &str) -> String {
e hoʻokomo = neural_network.query(graph, query);
let result = neural_network.reason(graph, embedding);
result.to_string()
}
2. Ke aʻo ʻana i nā hana he nui
Hoʻokomo ka aʻo ʻana i nā hana he nui i ke aʻo ʻana i hoʻokahi kumu hoʻohālike ma nā hana he nui i ka manawa like. Ua hōʻike ʻia kēia ala e hoʻomaikaʻi i ka hana o nā LLM ma nā hana like ʻole, me ka noʻonoʻo a me ka hoʻomaopopo ʻana i nā pilina paʻakikī.
pūʻolo nui
lawe mai (
"fmt"
"gonum.org/v1/gonum/mat"
)
ʻano kumu hoʻohālike {
*nn.Linear
*nn.Linear
}
func (m *Model) Imua(x *mat.Dense) *mat.Dense {
// Holo i mua
z := m.Linear(x)
z = m.Linear(z)
hoʻihoʻi z
}
3. Mechanisms Nānā
Hiki i nā mīkini hoʻolohe ke nānā i nā LLM i nā ʻāpana kikoʻī o ka kikokikona hoʻokomo i ka wā e hana ai i ka puka. Ua hōʻike ʻia kēia ala e hoʻomaikaʻi i ka hana o nā LLM ma nā hana like ʻole, me ka noʻonoʻo a me ka hoʻomaopopo ʻana i nā pilina paʻakikī.
ipukukui lawe mai
lawe mai i ka lama.nn e like me nn
papa AttentionMechanism(nn.Module):
def __init__(self, d_model, n_heads):
super(AttentionMechanism, self).__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.Haʻalele(0.1)
self.layer_norm = nn.LayerNorm(d_model)
def i mua(self, x):
# Nīnau, kī, a me ka waiwai
q = pono.query(x)
k = pono.ki(x)
v = pono.waiwai(x)
# Kaumaha nānā
kaumaha = torch.matmul(q, k.T) / math.sqrt(q.shape[1])
paona = self.dropout(kaumaha)
kaumaha = torch.softmax(kaumaha, pōʻeleʻele=-1)
# Hōʻikeʻike vector
pōʻaiapili = torch.matmul(kaumaha, v)
hoʻihoʻi pōʻaiapili
Hoikeike
No ka nānā ʻana i ka hana o nā LLM ma nā hana like ʻole, hiki iā mākou ke hoʻohana i ka pakuhi e hoʻohālikelike i ka pololei o nā hiʻohiʻona like ʻole ma kahi hana i hāʻawi ʻia. Eia kekahi laʻana o kahi pakuhi e hoʻohana ana iā Chart.js:
{
"type": "pā",
"ʻikepili": {
"labels": ["Task 1", "Task 2", "Task 3"],
"mau ʻikepili": [
{
"label": "Hoʻohālike 1",
"ʻikepili": [0.8, 0.7, 0.9],
"backgroundColor": "rgba(255, 99, 132, 0.2)",
"borderColor": "rgba(255, 99, 132, 1)",
"BorderWidth": 1
},
{
"label": "Hoʻohālike 2",
"ʻikepili": [0.9, 0.8, 0.7],
"backgroundColor": "rgba(54, 162, 235, 0.2)",
"borderColor": "rgba(54, 162, 235, 1)",
"BorderWidth": 1
}
]
},
"koho": {
"poʻo inoa": {
"hōʻike": ʻoiaʻiʻo,
"text": "Ka pololei o nā kumu hoʻohālike like ʻole ma nā hana like ʻole"
},
"nā unahi": {
"yAxes": [
{
"kuʻi": {
"beginAtZero": ʻoiaʻiʻo
}
}
]
}
}
}
Ka hopena
Ma kēia ʻatikala, ua ʻimi mākou i nā holomua o ka noʻonoʻo LLM, me ka noʻonoʻo ʻana i ka pakuhi, ke aʻo ʻana i nā hana he nui, a me nā ʻano hana hoʻolohe. Ua hāʻawi pū mākou i nā hiʻohiʻona code ma Python, Rust, a me Go e hōʻike i kēia mau manaʻo. ʻO ka hope, ua hoʻohana mākou i ka pakuhi e nānā i ka hana o nā LLM ma nā hana like ʻole. Hiki i kēia mau holomua ke hoʻololi i ke kahua o NLP, e hiki ai i nā LLM ke noʻonoʻo a hoʻomaopopo i nā pilina paʻakikī ma waena o nā manaʻo.
Nā kuhikuhi
- ʻO Vaswani et al. (2017). ʻO ka nānā wale nō kāu e pono ai. arXiv preprint arXiv:1706.03762.
- ʻO Devlin et al. (2018). BERT: Hoʻomaʻamaʻa mua ʻana i nā mea hoʻololi ʻelua ʻaoʻao hohonu no ka hoʻomaopopo ʻana i ka ʻōlelo. arXiv preprint arXiv:1810.04805.
- ʻO Radford et al. (2019). ʻO nā kumu hoʻohālike ʻōlelo he poʻe aʻo nui ʻole i mālama ʻia. arXiv preprint arXiv:1906.08237.