ਐਲਐਲਐਮ ਤਰਕ ਵਿੱਚ ਤਰੱਕੀ: ਇੱਕ ਤਕਨੀਕੀ ਡੂੰਘੀ ਗੋਤਾਖੋਰੀ | B4N1

ਐਲਐਲਐਮ ਤਰਕ ਵਿੱਚ ਤਰੱਕੀ: ਇੱਕ ਤਕਨੀਕੀ ਡੂੰਘੀ ਗੋਤਾਖੋਰੀ

9 months ago · b4n1 Read time: 4 min

ਜਾਣ-ਪਛਾਣ

ਵੱਡੇ ਭਾਸ਼ਾ ਮਾਡਲਾਂ (LLMs) ਨੇ ਹਾਲ ਹੀ ਦੇ ਸਾਲਾਂ ਵਿੱਚ ਕੁਦਰਤੀ ਭਾਸ਼ਾ ਪ੍ਰੋਸੈਸਿੰਗ (NLP) ਦੇ ਖੇਤਰ ਵਿੱਚ ਕ੍ਰਾਂਤੀ ਲਿਆ ਦਿੱਤੀ ਹੈ। ਇਹਨਾਂ ਮਾਡਲਾਂ ਨੇ ਵੱਖ-ਵੱਖ NLP ਕਾਰਜਾਂ ਵਿੱਚ ਅਤਿ-ਆਧੁਨਿਕ ਨਤੀਜੇ ਪ੍ਰਾਪਤ ਕੀਤੇ ਹਨ, ਜਿਸ ਵਿੱਚ ਭਾਸ਼ਾ ਅਨੁਵਾਦ, ਪਾਠ ਸੰਖੇਪ, ਅਤੇ ਸਵਾਲ ਜਵਾਬ ਸ਼ਾਮਲ ਹਨ। ਹਾਲਾਂਕਿ, LLM ਦੀ ਅਸਲ ਸੰਭਾਵਨਾ ਸੰਕਲਪਾਂ ਵਿਚਕਾਰ ਗੁੰਝਲਦਾਰ ਸਬੰਧਾਂ ਨੂੰ ਤਰਕ ਕਰਨ ਅਤੇ ਸਮਝਣ ਦੀ ਉਹਨਾਂ ਦੀ ਯੋਗਤਾ ਵਿੱਚ ਹੈ। ਇਸ ਲੇਖ ਵਿੱਚ, ਅਸੀਂ LLM ਤਰਕ ਵਿੱਚ ਤਰੱਕੀ ਦੀ ਖੋਜ ਕਰਾਂਗੇ, ਅੰਡਰਲਾਈੰਗ ਤਕਨੀਕਾਂ, ਆਰਕੀਟੈਕਚਰ ਅਤੇ ਚੁਣੌਤੀਆਂ ਦੀ ਪੜਚੋਲ ਕਰਾਂਗੇ।

ਪਿਛੋਕੜ

LLM ਇੱਕ ਕਿਸਮ ਦੇ ਨਿਊਰਲ ਨੈਟਵਰਕ ਹਨ ਜੋ ਸ਼ਬਦਾਂ ਅਤੇ ਸੰਕਲਪਾਂ ਵਿਚਕਾਰ ਪੈਟਰਨ ਅਤੇ ਸਬੰਧਾਂ ਨੂੰ ਸਿੱਖਣ ਲਈ ਟੈਕਸਟ ਡੇਟਾ ਦੀ ਵਿਸ਼ਾਲ ਮਾਤਰਾ 'ਤੇ ਸਿਖਲਾਈ ਪ੍ਰਾਪਤ ਕਰਦੇ ਹਨ। ਇਹਨਾਂ ਮਾਡਲਾਂ ਵਿੱਚ ਆਮ ਤੌਰ 'ਤੇ ਇੱਕ ਏਨਕੋਡਰ ਅਤੇ ਇੱਕ ਡੀਕੋਡਰ ਹੁੰਦਾ ਹੈ, ਜਿੱਥੇ ਏਨਕੋਡਰ ਇਨਪੁਟ ਟੈਕਸਟ ਦੀ ਪ੍ਰਕਿਰਿਆ ਕਰਦਾ ਹੈ ਅਤੇ ਡੀਕੋਡਰ ਆਉਟਪੁੱਟ ਟੈਕਸਟ ਤਿਆਰ ਕਰਦਾ ਹੈ। ਏਨਕੋਡਰ ਆਮ ਤੌਰ 'ਤੇ ਟ੍ਰਾਂਸਫਾਰਮਰ-ਆਧਾਰਿਤ ਆਰਕੀਟੈਕਚਰ ਹੁੰਦਾ ਹੈ, ਜੋ ਕਿ ਟੈਕਸਟ ਵਰਗੇ ਕ੍ਰਮਵਾਰ ਡੇਟਾ ਲਈ ਵਿਸ਼ੇਸ਼ ਤੌਰ 'ਤੇ ਅਨੁਕੂਲ ਹੁੰਦਾ ਹੈ।

ਟ੍ਰਾਂਸਫਾਰਮਰ ਆਰਕੀਟੈਕਚਰ

ਟਰਾਂਸਫਾਰਮਰ ਆਰਕੀਟੈਕਚਰ, ਵਾਸਵਾਨੀ ਐਟ ਅਲ ਦੁਆਰਾ "ਧਿਆਨ ਤੁਹਾਨੂੰ ਸਭ ਦੀ ਲੋੜ ਹੈ" ਪੇਪਰ ਵਿੱਚ ਪੇਸ਼ ਕੀਤਾ ਗਿਆ ਹੈ। (2017), LLM ਲਈ ਡੀ ਫੈਕਟੋ ਸਟੈਂਡਰਡ ਬਣ ਗਿਆ ਹੈ। ਟ੍ਰਾਂਸਫਾਰਮਰ ਵਿੱਚ ਇੱਕ ਏਨਕੋਡਰ ਅਤੇ ਇੱਕ ਡੀਕੋਡਰ ਹੁੰਦਾ ਹੈ, ਹਰ ਇੱਕ ਕਈ ਲੇਅਰਾਂ ਨਾਲ ਬਣਿਆ ਹੁੰਦਾ ਹੈ। ਹਰੇਕ ਪਰਤ ਵਿੱਚ ਦੋ ਉਪ-ਪਰਤਾਂ ਹੁੰਦੀਆਂ ਹਨ: ਇੱਕ ਸਵੈ-ਧਿਆਨ ਦੀ ਵਿਧੀ ਅਤੇ ਇੱਕ ਪੂਰੀ ਤਰ੍ਹਾਂ ਨਾਲ ਜੁੜਿਆ ਫੀਡ-ਫਾਰਵਰਡ ਨੈੱਟਵਰਕ (FFNN)।

``ਅਜਗਰ ਆਯਾਤ ਟਾਰਚ torch.nn ਨੂੰ nn ਵਜੋਂ ਆਯਾਤ ਕਰੋ

ਕਲਾਸ ਟ੍ਰਾਂਸਫਾਰਮਰ ਲੇਅਰ(nn.Module): def init(self, d_model, n_heads, d_ff): ਸੁਪਰ(ਟ੍ਰਾਂਸਫਾਰਮਰ ਲੇਅਰ, ਸਵੈ)।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 ਅੱਗੇ (ਸਵੈ, x):
    # ਸਵੈ-ਧਿਆਨ ਦੀ ਵਿਧੀ
    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)

    ਵਾਪਸੀ x_ffnn

``

ਐਲਐਲਐਮ ਤਰਕ ਵਿੱਚ ਤਰੱਕੀ

LLMs ਨੇ ਸੰਕਲਪਾਂ ਵਿਚਕਾਰ ਗੁੰਝਲਦਾਰ ਸਬੰਧਾਂ ਨੂੰ ਤਰਕ ਕਰਨ ਅਤੇ ਸਮਝਣ ਵਿੱਚ ਮਹੱਤਵਪੂਰਨ ਤਰੱਕੀ ਕੀਤੀ ਹੈ। ਕੁਝ ਪ੍ਰਮੁੱਖ ਤਰੱਕੀਆਂ ਵਿੱਚ ਸ਼ਾਮਲ ਹਨ:

1. ਗ੍ਰਾਫ-ਅਧਾਰਿਤ ਤਰਕ

ਗ੍ਰਾਫ-ਅਧਾਰਿਤ ਤਰਕ ਵਿੱਚ ਗਿਆਨ ਨੂੰ ਇੱਕ ਗ੍ਰਾਫ ਦੇ ਰੂਪ ਵਿੱਚ ਪੇਸ਼ ਕਰਨਾ ਸ਼ਾਮਲ ਹੁੰਦਾ ਹੈ, ਜਿੱਥੇ ਨੋਡ ਸੰਕਲਪਾਂ ਨੂੰ ਦਰਸਾਉਂਦੇ ਹਨ ਅਤੇ ਕਿਨਾਰੇ ਉਹਨਾਂ ਵਿਚਕਾਰ ਸਬੰਧਾਂ ਨੂੰ ਦਰਸਾਉਂਦੇ ਹਨ। LLM ਨੂੰ ਇਹਨਾਂ ਗ੍ਰਾਫਾਂ ਬਾਰੇ ਤਰਕ ਕਰਨ ਲਈ ਸਿਖਲਾਈ ਦਿੱਤੀ ਜਾ ਸਕਦੀ ਹੈ, ਨੋਡਾਂ ਦੇ ਵਿਚਕਾਰ ਸਬੰਧਾਂ ਬਾਰੇ ਭਵਿੱਖਬਾਣੀ ਕਰਦੇ ਹੋਏ।

``ਜੰਗ ਗ੍ਰਾਫ ਦੀ ਵਰਤੋਂ ਕਰੋ::ਗ੍ਰਾਫ; neural_network::NeuralNetwork ਵਰਤੋ;

fn graph_reasoning(graph: &Graph, query: &str) -> ਸਤਰ { let embedding = neural_network.query(graph, query); let result = neural_network.reason(ਗ੍ਰਾਫ, ਏਮਬੈਡਿੰਗ); result.to_string() } ``

2. ਮਲਟੀ-ਟਾਸਕ ਲਰਨਿੰਗ

ਮਲਟੀ-ਟਾਸਕ ਲਰਨਿੰਗ ਵਿੱਚ ਇੱਕੋ ਸਮੇਂ ਕਈ ਕਾਰਜਾਂ 'ਤੇ ਇੱਕ ਸਿੰਗਲ ਮਾਡਲ ਦੀ ਸਿਖਲਾਈ ਸ਼ਾਮਲ ਹੁੰਦੀ ਹੈ। ਇਹ ਪਹੁੰਚ ਵੱਖ-ਵੱਖ ਕਾਰਜਾਂ 'ਤੇ LLM ਦੇ ਪ੍ਰਦਰਸ਼ਨ ਨੂੰ ਬਿਹਤਰ ਬਣਾਉਣ ਲਈ ਦਿਖਾਈ ਗਈ ਹੈ, ਜਿਸ ਵਿੱਚ ਤਰਕ ਅਤੇ ਗੁੰਝਲਦਾਰ ਸਬੰਧਾਂ ਨੂੰ ਸਮਝਣਾ ਸ਼ਾਮਲ ਹੈ।

``ਜਾਓ ਪੈਕੇਜ ਮੁੱਖ

ਆਯਾਤ ( "fmt" "gonum.org/v1/gonum/mat" )

ਕਿਸਮ ਮਾਡਲ ਢਾਂਚਾ { *nn.ਲੀਨੀਅਰ *nn.ਲੀਨੀਅਰ }

ਫੰਕ (m *ਮਾਡਲ) ਅੱਗੇ (x *mat.Dense) *mat.Dense { // ਫਾਰਵਰਡ ਪਾਸ z := m. ਲੀਨੀਅਰ(x) z = m. ਲੀਨੀਅਰ(z) ਵਾਪਸੀ z } ``

3. ਧਿਆਨ ਦੇਣ ਦੀ ਵਿਧੀ

ਧਿਆਨ ਦੇਣ ਦੀ ਵਿਧੀ LLM ਨੂੰ ਆਉਟਪੁੱਟ ਤਿਆਰ ਕਰਨ ਵੇਲੇ ਇਨਪੁਟ ਟੈਕਸਟ ਦੇ ਖਾਸ ਹਿੱਸਿਆਂ 'ਤੇ ਧਿਆਨ ਕੇਂਦਰਿਤ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦੀ ਹੈ। ਇਹ ਪਹੁੰਚ ਵੱਖ-ਵੱਖ ਕਾਰਜਾਂ 'ਤੇ LLM ਦੇ ਪ੍ਰਦਰਸ਼ਨ ਨੂੰ ਬਿਹਤਰ ਬਣਾਉਣ ਲਈ ਦਿਖਾਈ ਗਈ ਹੈ, ਜਿਸ ਵਿੱਚ ਤਰਕ ਅਤੇ ਗੁੰਝਲਦਾਰ ਸਬੰਧਾਂ ਨੂੰ ਸਮਝਣਾ ਸ਼ਾਮਲ ਹੈ।

``ਅਜਗਰ ਆਯਾਤ ਟਾਰਚ torch.nn ਨੂੰ nn ਵਜੋਂ ਆਯਾਤ ਕਰੋ

ਕਲਾਸ ਅਟੈਂਸ਼ਨ ਮਕੈਨਿਜ਼ਮ(nn.Module): def init(self, d_model, n_heads): ਸੁਪਰ(ਧਿਆਨ ਤੰਤਰ, ਸਵੈ)।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 ਅੱਗੇ (ਸਵੈ, x):
    # ਪੁੱਛਗਿੱਛ, ਕੁੰਜੀ ਅਤੇ ਮੁੱਲ
    q = self.query(x)
    k = self.key(x)
    v = ਸਵੈ। ਮੁੱਲ(x)

    # ਧਿਆਨ ਦੇ ਵਜ਼ਨ
    ਵਜ਼ਨ = torch.matmul(q, k.T) / math.sqrt(q.shape[1])
    ਵਜ਼ਨ = ਸਵੈ. ਛੱਡਣ (ਵਜ਼ਨ)
    ਵਜ਼ਨ = torch.softmax(ਵਜ਼ਨ, ਮੱਧਮ=-1)

    # ਸੰਦਰਭ ਵੈਕਟਰ
    ਪ੍ਰਸੰਗ = torch.matmul (ਵਜ਼ਨ, v)

    ਵਾਪਸੀ ਪ੍ਰਸੰਗ

``

ਵਿਜ਼ੂਅਲਾਈਜ਼ੇਸ਼ਨ

ਵੱਖ-ਵੱਖ ਕਾਰਜਾਂ 'ਤੇ LLMs ਦੇ ਪ੍ਰਦਰਸ਼ਨ ਦੀ ਕਲਪਨਾ ਕਰਨ ਲਈ, ਅਸੀਂ ਦਿੱਤੇ ਕਾਰਜ 'ਤੇ ਵੱਖ-ਵੱਖ ਮਾਡਲਾਂ ਦੀ ਸ਼ੁੱਧਤਾ ਦੀ ਤੁਲਨਾ ਕਰਨ ਲਈ ਇੱਕ ਚਾਰਟ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੇ ਹਾਂ। ਇੱਥੇ Chart.js ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ ਇੱਕ ਚਾਰਟ ਦੀ ਇੱਕ ਉਦਾਹਰਨ ਹੈ:

ਜੇਸਨ { "type": "ਪੱਟੀ", "ਡਾਟਾ": { "ਲੇਬਲ": ["ਟਾਸਕ 1", "ਟਾਸਕ 2", "ਟਾਸਕ 3"], "datasets": [ { "label": "ਮਾਡਲ 1", "ਡਾਟਾ": [0.8, 0.7, 0.9], "ਬੈਕਗ੍ਰਾਉਂਡ ਰੰਗ": "rgba(255, 99, 132, 0.2)", "borderColor": "rgba(255, 99, 132, 1)", "ਬਾਰਡਰ ਚੌੜਾਈ": 1 }, { "label": "ਮਾਡਲ 2", "ਡਾਟਾ": [0.9, 0.8, 0.7], "ਬੈਕਗ੍ਰਾਉਂਡ ਰੰਗ": "rgba(54, 162, 235, 0.2)", "borderColor": "rgba(54, 162, 235, 1)", "ਬਾਰਡਰ ਚੌੜਾਈ": 1 } ] }, "ਵਿਕਲਪ": { "ਸਿਰਲੇਖ": { "ਡਿਸਪਲੇ": ਸਹੀ, "text": "ਵੱਖ-ਵੱਖ ਕੰਮਾਂ 'ਤੇ ਵੱਖ-ਵੱਖ ਮਾਡਲਾਂ ਦੀ ਸ਼ੁੱਧਤਾ" }, "ਪੈਮਾਨਾ": { "yAxes": [ { "ਟਿਕਸ": { "beginAtZero": ਸਹੀ } } ] } } }

ਸਿੱਟਾ

ਇਸ ਲੇਖ ਵਿੱਚ, ਅਸੀਂ LLM ਤਰਕ ਵਿੱਚ ਤਰੱਕੀ ਦੀ ਪੜਚੋਲ ਕੀਤੀ ਹੈ, ਜਿਸ ਵਿੱਚ ਗ੍ਰਾਫ-ਅਧਾਰਿਤ ਤਰਕ, ਮਲਟੀ-ਟਾਸਕ ਲਰਨਿੰਗ, ਅਤੇ ਧਿਆਨ ਦੇ ਵਿਧੀ ਸ਼ਾਮਲ ਹਨ। ਅਸੀਂ ਇਹਨਾਂ ਧਾਰਨਾਵਾਂ ਨੂੰ ਦਰਸਾਉਣ ਲਈ Python, Rust ਅਤੇ Go ਵਿੱਚ ਕੋਡ ਉਦਾਹਰਨਾਂ ਵੀ ਪ੍ਰਦਾਨ ਕੀਤੀਆਂ ਹਨ। ਅੰਤ ਵਿੱਚ, ਅਸੀਂ ਵੱਖ-ਵੱਖ ਕਾਰਜਾਂ 'ਤੇ LLM ਦੇ ਪ੍ਰਦਰਸ਼ਨ ਦੀ ਕਲਪਨਾ ਕਰਨ ਲਈ ਇੱਕ ਚਾਰਟ ਦੀ ਵਰਤੋਂ ਕੀਤੀ ਹੈ। ਇਹਨਾਂ ਤਰੱਕੀਆਂ ਵਿੱਚ NLP ਦੇ ਖੇਤਰ ਵਿੱਚ ਕ੍ਰਾਂਤੀ ਲਿਆਉਣ ਦੀ ਸਮਰੱਥਾ ਹੈ, LLM ਨੂੰ ਸੰਕਲਪਾਂ ਵਿਚਕਾਰ ਗੁੰਝਲਦਾਰ ਸਬੰਧਾਂ ਨੂੰ ਤਰਕ ਕਰਨ ਅਤੇ ਸਮਝਣ ਦੇ ਯੋਗ ਬਣਾਉਂਦਾ ਹੈ।

ਹਵਾਲੇ

  • ਵਾਸਵਾਨੀ ਐਟ ਅਲ. (2017)। ਧਿਆਨ ਤੁਹਾਨੂੰ ਸਭ ਦੀ ਲੋੜ ਹੈ. arXiv ਪ੍ਰੀਪ੍ਰਿੰਟ arXiv:1706.03762।
  • ਡੇਵਲਿਨ ਐਟ ਅਲ. (2018)। BERT: ਭਾਸ਼ਾ ਦੀ ਸਮਝ ਲਈ ਡੂੰਘੇ ਦੋ-ਪੱਖੀ ਟ੍ਰਾਂਸਫਾਰਮਰਾਂ ਦੀ ਪੂਰਵ-ਸਿਖਲਾਈ। arXiv ਪ੍ਰੀਪ੍ਰਿੰਟ arXiv:1810.04805।
  • ਰੈਡਫੋਰਡ ਐਟ ਅਲ. (2019)। ਭਾਸ਼ਾ ਦੇ ਨਮੂਨੇ ਬਿਨਾਂ ਨਿਗਰਾਨੀ ਕੀਤੇ ਮਲਟੀਟਾਸਕ ਸਿੱਖਣ ਵਾਲੇ ਹਨ। arXiv ਪ੍ਰੀਪ੍ਰਿੰਟ arXiv:1906.08237.

Have Questions?

Let's Talk

Contact me on LinkedIn