Adhartasan ann an Adhbhar LLM: Dàibheadh ​​​​domhainn Teicnigeach | B4N1

Adhartasan ann an Adhbhar LLM: Dàibheadh ​​​​domhainn Teicnigeach

9 months ago · b4n1 Read time: 4 min

Ro-ràdh

Tha Modalan Cànain Mòra (LLMn) air atharrachadh a dhèanamh air raon giollachd cànain nàdarra (NLP) anns na bliadhnachan mu dheireadh. Tha na modailean sin air toraidhean ùr-nodha a choileanadh ann an grunn ghnìomhan NLP, a’ gabhail a-steach eadar-theangachadh cànain, geàrr-chunntas teacsa, agus freagairt cheistean. Ach, tha fìor chomas LLMn na laighe nan comas air dàimhean iom-fhillte eadar bun-bheachdan a reusanachadh agus a thuigsinn. San artaigil seo, nì sinn sgrùdadh air na h-adhartasan ann an reusanachadh LLM, a’ sgrùdadh nan dòighean bunaiteach, ailtireachd agus dùbhlain.

Cùl-fhiosrachadh

Is e seòrsa de lìonra neural a th’ ann an LLMn a tha air an trèanadh air tòrr mòr dàta teacsa gus pàtrain agus dàimhean ionnsachadh eadar faclan is bun-bheachdan. Mar as trice bidh na modailean sin a’ toirt a-steach encoder agus decoder, far am bi an encoder a ’giullachd an teacsa cuir a-steach agus an decoder a’ gineadh an teacsa toraidh. Mar as trice is e ailtireachd stèidhichte air cruth-atharrachaidh a th’ anns an encoder, a tha gu sònraichte freagarrach airson dàta sreath mar teacsa.

Ailtireachd Transformer

Tha ailtireachd cruth-atharrachaidh, a chaidh a thoirt a-steach anns a’ phàipear "Attention is All You Need" le Vaswani et al. (2017), air a thighinn gu bhith na inbhe de facto airson LLMn. Tha an cruth-atharrachaidh air a dhèanamh suas de encoder agus decoder, gach fear air a dhèanamh suas de ioma-fhilleadh. Tha dà fho-fhilleadh anns gach còmhdach: inneal fèin-aire agus lìonra beathachaidh air adhart làn-cheangailte (FFNN).

lòchran a-steach
toirt a-steach torch.nn mar nn

clas TransformerLayer(nn.Module):
    def __init__(fèin, d_model, n_heads, d_ff):
        super (TransformerLayer, fèin). __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 air adhart (fèin, x):
        # Uidheam fèin-aire
        x_attn = fèin.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)

        tilleadh x_ffnn

Adhartasan ann an Adhbhar LLM

Tha LLMn air adhartas mòr a dhèanamh ann a bhith a’ reusanachadh agus a’ tuigsinn dàimhean iom-fhillte eadar bun-bheachdan. Am measg cuid de na prìomh adhartasan tha:

1. Adhbhar stèidhichte air graf

Tha reusanachadh stèidhichte air graf a’ ciallachadh eòlas a riochdachadh mar ghraf, far a bheil nodan a’ riochdachadh bhun-bheachdan agus oirean a’ riochdachadh dàimhean eatorra. Faodar LLMn a thrèanadh gus reusanachadh a dhèanamh mu na grafaichean sin, a’ dèanamh ro-innse mu na dàimhean eadar nodan.

``meirge cleachd graf::Graph; cleachd neural_network ::NeuralNetwork;

fn graph_reasoning(graf: &Graph, ceist: &str) -> String { let embedding = neural_network.query(graf, ceist); leig toradh = neural_network.reason (graf, neadachadh); toradh.to_string() }


### 2. Ionnsachadh Ioma-ghnìomh

Tha ionnsachadh ioma-ghnìomh a’ toirt a-steach trèanadh aon mhodail air iomadh gnìomh aig an aon àm. Thathas air sealltainn gu bheil an dòigh-obrach seo a’ leasachadh coileanadh LLMn air diofar ghnìomhan, a’ gabhail a-steach reusanachadh agus tuigse air dàimhean iom-fhillte.

``` falbh
prìomh phacaid

ion-phortadh (
	"fmt"
	"gonum.org/v1/gonum/mat"
)

seòrsa structar modail {
	*nn.Lìneach
	*nn.Lìneach
}

func (m * Model) Air adhart (x * mat.Dense) * mat.Dense {
	// Pas air adhart
	z := m.Linear(x)
	z = m.Linear(z)
	tilleadh z
}

3. Innealan aire

Tha dòighean aire a’ leigeil le LLMn fòcas a chuir air pàirtean sònraichte den teacsa cuir a-steach nuair a bhios iad a’ gineadh an toraidh. Thathas air sealltainn gu bheil an dòigh-obrach seo a’ leasachadh coileanadh LLMn air diofar ghnìomhan, a’ gabhail a-steach reusanachadh agus tuigse air dàimhean iom-fhillte.

lòchran a-steach
toirt a-steach torch.nn mar nn

clas AttentionMechanism(nn.Module):
    def __init__(fèin, d_model, n_heads):
        super (AttentionMechanism, fèin). __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 air adhart (fèin, x):
        # Ceist, iuchair, agus luach
        q = fèin.query(x)
        k = fèin.key(x)
        v = fèin.luach(x)

        # Cuideam aire
        cuideaman = lòchran.matmul(q, k.T) / math.sqrt(q.shape[1])
        cuideaman = fèin.dropout (cuideaman)
        cuideaman = lòchran.softmax (cuideaman, dim = -1)

        # Co-theacsa vector
        co-theacsa = torch.matmul(cuideaman, v)

        co-theacs tilleadh

Sealladh

Gus coileanadh LLMn air diofar ghnìomhan fhaicinn, is urrainn dhuinn cairt a chleachdadh gus coimeas a dhèanamh eadar cruinneas diofar mhodalan air gnìomh sònraichte. Seo eisimpleir de chairt a’ cleachdadh Chart.js:

{
  "type": "bàr",
  "dàta": {
    "labels": ["Tasg 1", "Tasg 2", "Tasg 3"],
    "stòr-dàta": [
      {
        "label": "Modail 1",
        "dàta": [0.8, 0.7, 0.9],
        "backgroundColor": "rgba(255, 99, 132, 0.2)",
        "borderColor": "rgba(255, 99, 132, 1)",
        "Leud na crìche": 1
      },
      {
        "label": "Modail 2",
        "dàta": [0.9, 0.8, 0.7],
        "backgroundColor": "rgba(54, 162, 235, 0.2)",
        "borderColor": "rgba(54, 162, 235, 1)",
        "Leud na crìche": 1
      }
    ]
  },
  "roghainnean": {
    "tiotal": {
      "taisbeanadh": fìor,
      "text": "Cruinneas diofar mhodalan air diofar ghnìomhan"
    },
    "sgàilean": {
      "yAxes": [
        {
          "breacan": {
            "toiseach AtZero": fìor
          }
        }
      ]
    }
  }
}

Co-dhùnadh

San artaigil seo, tha sinn air na h-adhartasan ann an reusanachadh LLM a sgrùdadh, a’ gabhail a-steach reusanachadh stèidhichte air graf, ionnsachadh ioma-ghnìomh, agus dòighean aire. Tha sinn cuideachd air eisimpleirean còd a thoirt seachad ann am Python, Rust, agus Go gus na bun-bheachdan sin a nochdadh. Mu dheireadh, tha sinn air clàr a chleachdadh gus coileanadh LLMn air diofar ghnìomhan fhaicinn. Tha comas aig na h-adhartasan sin raon NLP ath-nuadhachadh, a’ toirt cothrom do LLM dàimhean iom-fhillte eadar bun-bheachdan a reusanachadh agus a thuigsinn.

Iomraidhean

  • Vaswani et al. (2017). Is e an aire a tha a dhìth ort. arXiv preprint arXiv: 1706.03762.
  • Devlin et al. (2018). BERT: Ro-thrèanadh air cruth-atharraichean domhainn dà-thaobhach airson tuigse cànain. arXiv preprint arXiv: 1810.04805.
  • Radford et al. (2019). Tha Modalan Cànain nan Luchd-ionnsachaidh Ioma-ghnìomhach gun stiùireadh. arXiv preprint arXiv: 1906.08237.

Have Questions?

Let's Talk

Contact me on LinkedIn