Avenços en el raonament LLM: una immersió tècnica profunda | B4N1

Avenços en el raonament LLM: una immersió tècnica profunda

9 months ago · b4n1 Tiempo de lectura: 4 min

Introducció

Els grans models de llenguatge (LLM) han revolucionat el camp del processament del llenguatge natural (PNL) en els últims anys. Aquests models han aconseguit resultats d'última generació en diverses tasques de PNL, com ara la traducció d'idiomes, el resum de textos i la resposta a preguntes. Tanmateix, el veritable potencial dels LLM rau en la seva capacitat de raonar i comprendre relacions complexes entre conceptes. En aquest article, aprofundirem en els avenços en el raonament de LLM, explorant les tècniques, arquitectures i reptes subjacents.

Fons

Els LLM són un tipus de xarxa neuronal que s'entrena en grans quantitats de dades de text per aprendre patrons i relacions entre paraules i conceptes. Aquests models solen consistir en un codificador i un descodificador, on el codificador processa el text d'entrada i el descodificador genera el text de sortida. El codificador sol ser una arquitectura basada en transformadors, que és especialment adequada per a dades seqüencials com el text.

Arquitectura del transformador

L'arquitectura del transformador, presentada al document "L'atenció és tot el que necessiteu" de Vaswani et al. (2017), s'ha convertit en l'estàndard de facto per als LLM. El transformador consta d'un codificador i un descodificador, cadascun compost per múltiples capes. Cada capa consta de dues subcapes: un mecanisme d'autoatenció i una xarxa de feed-forward (FFNN) totalment connectada.

torxa d'importació
importar torch.nn com nn

classe TransformerLayer(nn.Module):
    def __init__(self, d_model, n_heads, d_ff):
        super(TransformerLayer, self).__init__()
        self.self_attn = nn.MultiHeadAttention (model_d, n_caps)
        self.ffnn = nn.Linear(d_model, d_ff)
        self.dropout = nn.Dropout (0,1)
        self.layer_norm = nn.LayerNorm(d_model)

    def forward(self, x):
        # Mecanisme d'autoatenció
        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)

        torna x_ffnn

Avenços en raonament LLM

Els LLM han fet progressos significatius en el raonament i la comprensió de relacions complexes entre conceptes. Alguns dels avenços clau inclouen:

1. Raonament basat en gràfics

El raonament basat en gràfics implica representar el coneixement com un gràfic, on els nodes representen conceptes i les arestes representen les relacions entre ells. Els LLM es poden entrenar per raonar sobre aquests gràfics, fent prediccions sobre les relacions entre nodes.

utilitzar gràfic::gràfic;
utilitzar neural_network::NeuralNetwork;

fn graph_reasoning(gràfic: &gràfic, consulta: &str) -> Cadena {
    let embedding = xarxa_neural.consulta(gràfic, consulta);
    deixar resultat = neuronal_network.reason (gràfic, incrustació);
    resultat.to_string()
}

2. Aprenentatge multitasca

L'aprenentatge multitasca implica entrenar un únic model en diverses tasques simultàniament. S'ha demostrat que aquest enfocament millora el rendiment dels LLM en diverses tasques, inclòs el raonament i la comprensió de relacions complexes.

paquet principal

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

tipus Model struct {
	*nn.Lineal
	*nn.Lineal
}

func (m *Model) Endavant (x *mat.Dense) *mat.Dense {
	// Passa endavant
	z := m.Lineal(x)
	z = m.Lineal(z)
	retorn z
}

3. Mecanismes d'atenció

Els mecanismes d'atenció permeten als LLM centrar-se en parts específiques del text d'entrada quan generen la sortida. S'ha demostrat que aquest enfocament millora el rendiment dels LLM en diverses tasques, inclòs el raonament i la comprensió de relacions complexes.

torxa d'importació
importar torch.nn com nn

Class AttentionMechanism(nn.Module):
    def __init__(self, d_model, n_heads):
        super(AttentionMechanism, self).__init__()
        self.query = nn.Linear (model_d, model_d)
        self.key = nn.Linear (model_d, model_d)
        self.value = nn.Linear (model_d, model_d)
        self.dropout = nn.Dropout (0,1)
        self.layer_norm = nn.LayerNorm(d_model)

    def forward(self, x):
        # Consulta, clau i valor
        q = self.query(x)
        k = self.key(x)
        v = valor propi (x)

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

        # Vector de context
        context = torch.matmul(pesos, v)

        context de retorn

Visualització

Per visualitzar el rendiment dels LLM en diverses tasques, podem utilitzar un gràfic per comparar la precisió de diferents models en una tasca determinada. Aquí teniu un exemple d'un gràfic que utilitza Chart.js:

{
  "type": "bar",
  "dades": {
    "labels": ["Tasca 1", "Tasca 2", "Tasca 3"],
    "conjunts de dades": [
      {
        "label": "Model 1",
        "dades": [0,8, 0,7, 0,9],
        "backgroundColor": "rgba(255, 99, 132, 0.2)",
        "borderColor": "rgba(255, 99, 132, 1)",
        "borderWidth": 1
      },
      {
        "label": "Model 2",
        "dades": [0,9, 0,8, 0,7],
        "backgroundColor": "rgba(54, 162, 235, 0.2)",
        "borderColor": "rgba(54, 162, 235, 1)",
        "borderWidth": 1
      }
    ]
  },
  "opcions": {
    "títol": {
      "visualització": cert,
      "text": "Precisió de diferents models en diverses tasques"
    },
    "escales": {
      "yAxes": [
        {
          "ticks": {
            "beginAtZero": cert
          }
        }
      ]
    }
  }
}

Conclusió

En aquest article, hem explorat els avenços en el raonament LLM, inclòs el raonament basat en gràfics, l'aprenentatge multitasques i els mecanismes d'atenció. També hem proporcionat exemples de codi en Python, Rust i Go per il·lustrar aquests conceptes. Finalment, hem utilitzat un gràfic per visualitzar el rendiment dels LLM en diferents tasques. Aquests avenços tenen el potencial de revolucionar el camp de la PNL, permetent als LLM raonar i comprendre relacions complexes entre conceptes.

Referències

  • Vaswani et al. (2017). L'atenció és tot el que necessiteu. arXiv preimpressió arXiv:1706.03762.
  • Devlin et al. (2018). BERT: Pre-entrenament de transformadors bidireccionals profunds per a la comprensió del llenguatge. arXiv preimpressió arXiv:1810.04805.
  • Radford et al. (2019). Els models lingüístics són aprenents multitasca no supervisats. arXiv preimpressió arXiv:1906.08237.

¿Tienes preguntas?

Hablemos

Contáctame en LinkedIn