Zotsogola mu Kukambitsirana kwa LLM: Kuzama Kwambiri Kwaukadaulo | B4N1

Zotsogola mu Kukambitsirana kwa LLM: Kuzama Kwambiri Kwaukadaulo

9 months ago · b4n1 Read time: 3 min

##Chiyambi

Zinenero Zazinenelo Zazikulu (LLMs) zasintha kwambiri gawo la chilankhulo chachilengedwe (NLP) m'zaka zaposachedwa. Zitsanzozi zapeza zotsatira zapamwamba kwambiri pa ntchito zosiyanasiyana za NLP, kuphatikizapo kumasulira chinenero, kufotokozera mwachidule, ndi kuyankha mafunso. Komabe, kuthekera kwenikweni kwa ma LLM kuli pakutha kuganiza ndi kumvetsetsa ubale wovuta pakati pa malingaliro. M'nkhaniyi, tikambirana za kupita patsogolo kwa malingaliro a LLM, ndikuwunika njira zoyambira, zomangamanga, ndi zovuta.

Mbiri

Ma LLM ndi mtundu wa neural network womwe umaphunzitsidwa pazambiri zamawu kuti aphunzire machitidwe ndi maubale pakati pa mawu ndi malingaliro. Zitsanzozi nthawi zambiri zimakhala ndi encoder ndi decoder, pomwe encoder imayang'anira mawu olowera ndipo decoder imapanga mawu otuluka. Encoder nthawi zambiri imakhala yopangidwa ndi transformer, yomwe imakhala yoyenera kwambiri pazotsatira zotsatizana monga zolemba.

Zomangamanga za Transformer

Zomangamanga za thiransifoma, zomwe zidayambitsidwa mu pepala "Chidziwitso Ndi Zonse Zomwe Mukufuna" ndi Vaswani et al. (2017), wakhala muyezo de facto kwa LLMs. Transformer imakhala ndi encoder ndi decoder, iliyonse imakhala ndi zigawo zingapo. Chigawo chilichonse chimakhala ndi magawo awiri ang'onoang'ono: makina odzisamalira okha komanso network yolumikizidwa bwino ya feed-forward network (FFNN).

import tochi
import torch.nn ngati nn

kalasi TransformerLayer(nn.Module):
    def __init__(self, d_model, n_heads, d_ff):
        wapamwamba(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 patsogolo (ndekha, x):
        # Makina odzisamalira okha
        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)

        bweza x_ffnn

Zotsogola mu Kukambitsirana kwa LLM

Ma LLM apita patsogolo kwambiri pakulingalira ndikumvetsetsa ubale wovuta pakati pa malingaliro. Zina mwazotukuka zazikulu ndi izi:

1. Kukambitsirana kwa Graph

Kulingalira motengera ma graph kumaphatikizapo kuyimira chidziwitso ngati graph, pomwe mfundo zimayimira malingaliro ndi m'mphepete zimayimira ubale pakati pawo. Ma LLM amatha kuphunzitsidwa kulingalira za ma graph awa, kulosera za ubale womwe ulipo pakati pa mfundo.

gwiritsani ntchito graph::Graph;
gwiritsani ntchito neural_network ::NeuralNetwork;

fn graph_reasoning(graph: &Graph, query: &str) -> Chingwe {
    lolani embedding = neural_network.query(graph, query);
    lolani zotsatira = neural_network.reason(graph, embedding);
    result.to_string()
}

2. Maphunziro a Ntchito Zambiri

Kuphunzira ntchito zambiri kumaphatikizapo kuphunzitsa chitsanzo chimodzi pa ntchito zingapo nthawi imodzi. Njirayi yasonyezedwa kuti ipititse patsogolo ntchito za LLM pa ntchito zosiyanasiyana, kuphatikizapo kulingalira ndi kumvetsetsa maubwenzi ovuta.

phukusi lalikulu

itanitsa (
	"fmt"
	"gonum.org/v1/gonum/mat"
)

mtundu wa Model struct {
	*nn.Linear
	*nn.Linear
}

func (m *Model) Patsogolo(x *mat.Dense) *mat.Dense {
	// Kupita patsogolo
	z := m.Linear(x)
	z = m.Linear(z)
	kubwerera z
}

3. Njira Zosamalira

Njira zowunikira zimalola ma LLM kuyang'ana mbali zina za mawu olowera pamene akupanga zotulutsa. Njirayi yasonyezedwa kuti ipititse patsogolo ntchito za LLM pa ntchito zosiyanasiyana, kuphatikizapo kulingalira ndi kumvetsetsa maubwenzi ovuta.

import tochi
import torch.nn ngati nn

kalasi AttentionMechanism(nn.Module):
    def __init__(self, d_model, n_heads):
        wapamwamba(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.Dropout(0.1)
        self.layer_norm = nn.LayerNorm(d_model)

    def patsogolo (ndekha, x):
        # Funso, kiyi, ndi mtengo
        q = self.query(x)
        k = self.key(x)
        v = self.value(x)

        # Zindikirani zolemera
        zolemera = torch.matmul(q, k.T) / math.sqrt(q.shape[1])
        zolemera = self.dropout(zolemera)
        zolemera = torch.softmax(zolemera, dim=-1)

        # Vector ya context
        context = torch.matmul(zolemera, v)

        bwererani nkhani

# Kuwona

Kuti tiwone momwe ma LLM amagwirira ntchito pazantchito zosiyanasiyana, titha kugwiritsa ntchito tchati kuti tifananize kulondola kwamitundu yosiyanasiyana pantchito yomwe tapatsidwa. Nachi chitsanzo cha tchati chogwiritsa ntchito Chart.js:

{
  "type": "bar",
  "data": {
    "labels": ["Ntchito 1", "Task 2", "Task 3"],
    "ma dataset": [
      {
        "label": "Model 1",
        "Deta": [0.8, 0.7, 0.9],
        "backgroundColor": "rgba(255, 99, 132, 0.2)",
        "borderColor": "rgba(255, 99, 132, 1)",
        "BorderWidth": 1
      },
      {
        "label": "Model 2",
        "Deta": [0.9, 0.8, 0.7],
        "backgroundColor": "rgba(54, 162, 235, 0.2)",
        "borderColor": "rgba(54, 162, 235, 1)",
        "BorderWidth": 1
      }
    ]
  },
  "zosankha": {
    "mutu": {
      "kuwonetsa": zoona,
      "text": "Kulondola kwa Zitsanzo Zosiyanasiyana pa Ntchito Zosiyanasiyana"
    },
    "masikelo": {
      "yAxes": [
        {
          "nkhupakupa": {
            "beginAtZero": zoona
          }
        }
      ]
    }
  }
}

##Mapeto

M'nkhaniyi, tasanthula kupita patsogolo kwa malingaliro a LLM, kuphatikiza malingaliro otengera ma graph, kuphunzira ntchito zambiri, komanso njira zowunikira. Taperekanso zitsanzo zamakhodi mu Python, Rust, ndi Go kuti tifotokoze mfundozi. Pomaliza, tagwiritsa ntchito tchati kuti tiwone momwe ma LLM amagwirira ntchito pazinthu zosiyanasiyana. Kupita patsogolo kumeneku kuli ndi kuthekera kosintha gawo la NLP, kupangitsa ma LLM kulingalira ndikumvetsetsa ubale wovuta pakati pa malingaliro.

Zothandizira

*Vaswani et al. (2017). Chisamaliro Ndi Zonse Zomwe Mukufuna. arXiv preprint arXiv:1706.03762. *Devlin et al. (2018). BERT: Kuphunzitsatu kwa Deep Bidirectional Transformers kwa Kumvetsetsa Chiyankhulo. arXiv preprint arXiv:1810.04805.

  • Radford et al. (2019). Zinenero za Zinenero ndi Ophunzira Osayang'aniridwa ndi Multitask. arXiv preprint arXiv:1906.08237.

Have Questions?

Let's Talk

Contact me on LinkedIn