Дасягненні ў LLM Reasoning: A Technical Deep Dive | B4N1

Дасягненні ў LLM Reasoning: A Technical Deep Dive

9 months ago · b4n1 Read time: 3 min

Уводзіны

За апошнія гады вялікія моўныя мадэлі (LLM) зрабілі рэвалюцыю ў галіне апрацоўкі натуральнай мовы (NLP). Гэтыя мадэлі дасягнулі самых сучасных вынікаў у розных задачах НЛП, уключаючы моўны пераклад, рэзюмаванне тэксту і адказы на пытанні. Аднак сапраўдны патэнцыял LLM заключаецца ў іх здольнасці разважаць і разумець складаныя адносіны паміж паняццямі. У гэтым артыкуле мы паглыбімся ў дасягненні ў LLM аргументацыі, даследуючы асноўныя метады, архітэктуры і праблемы.

Фон

LLM - гэта тып нейроннай сеткі, якая навучаецца на велізарных аб'ёмах тэкставых даных, каб вывучаць шаблоны і адносіны паміж словамі і паняццямі. Гэтыя мадэлі звычайна складаюцца з кадавальніка і дэкодэра, дзе кадавальнік апрацоўвае ўваходны тэкст, а дэкодэр стварае выхадны тэкст. Кадавальнік - гэта звычайна трансфарматарная архітэктура, якая асабліва добра падыходзіць для паслядоўных даных, такіх як тэкст.

Архітэктура-трансформер

Архітэктура трансфарматара, прадстаўленая ў артыкуле "Увага - усё, што вам трэба" Васвані і інш. (2017), стала дэ-факта стандартам для LLMs. Трансфарматар складаецца з кадавальніка і дэкодэра, кожны з якіх складаецца з некалькіх слаёў. Кожны ўзровень складаецца з двух падузроўняў: механізму самакіравання і цалкам падключанай сеткі перадачы (FFNN).

імпартны факел
імпартаваць torch.nn як nn

клас 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.Dropout(0,1)
        self.layer_norm = nn.LayerNorm(d_model)

    дэф наперад(я, х):
        # Механізм самакіравання
        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

Дасягненні ў LLM Reasoning

LLM дасягнулі значнага прагрэсу ў развагах і разуменні складаных адносін паміж паняццямі. Некаторыя з ключавых дасягненняў ўключаюць:

1. Разважанне на аснове графіка

Разважанне на аснове графаў прадугледжвае прадстаўленне ведаў у выглядзе графа, дзе вузлы прадстаўляюць паняцці, а рэбры - адносіны паміж імі. LLMs можна навучыць разважаць аб гэтых графіках, робячы прагнозы аб адносінах паміж вузламі.

выкарыстоўваць graph::Graph;
выкарыстоўваць neural_network::NeuralNetwork;

fn graph_reasoning(графік: &Графік, запыт: &str) -> Радок {
    няхай убудаванне = neural_network.query(графік, запыт);
    няхай вынік = neural_network.reason (графік, убудаванне);
    result.to_string()
}

2. Шматзадачнае навучанне

Шматзадачнае навучанне прадугледжвае навучанне адной мадэлі на некалькіх задачах адначасова. Даказана, што гэты падыход паляпшае прадукцыйнасць LLM пры выкананні розных задач, уключаючы развагі і разуменне складаных адносін.

асноўны пакет

імпарт (
	"FMT"
	"gonum.org/v1/gonum/mat"
)

тып Структура мадэлі {
	*нн.Лінейны
	*нн.Лінейны
}

func (m *Model) Наперад(x *mat.Dense) *mat.Dense {
	// Пас наперад
	z := m.Linear(x)
	z = m.Linear(z)
	вяртанне z
}

3. Механізмы ўвагі

Механізмы прыцягнення ўвагі дазваляюць LLM засяроджвацца на пэўных частках уводнага тэксту пры генерацыі вываду. Даказана, што гэты падыход паляпшае прадукцыйнасць LLM пры выкананні розных задач, уключаючы развагі і разуменне складаных адносін.

імпартны факел
імпартаваць torch.nn як nn

клас AttentionMechanism(nn.Module):
    def __init__(сама, 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)

    дэф наперад(я, х):
        # Запыт, ключ і значэнне
        q = self.query(x)
        k = self.key(x)
        v = self.value(x)

        # Увага вагі
        вагі = torch.matmul(q, k.T) / math.sqrt(q.shape[1])
        вага = self.dropout(вага)
        вага = torch.softmax(вага, цьмяны=-1)

        # Вектар кантэксту
        кантэкст = torch.matmul(вага, v)

        вяртанне кантэксту

Візуалізацыя

Каб візуалізаваць прадукцыйнасць LLM для розных задач, мы можам выкарыстоўваць дыяграму для параўнання дакладнасці розных мадэляў для выканання дадзенай задачы. Вось прыклад дыяграмы з выкарыстаннем Chart.js:

{
  "тып": "бар",
  "дадзеныя": {
    "labels": ["Заданне 1", "Заданне 2", "Заданне 3"],
    "наборы дадзеных": [
      {
        "label": "Мадэль 1",
        "дадзеныя": [0,8, 0,7, 0,9],
        "backgroundColor": "rgba(255, 99, 132, 0,2)",
        "borderColor": "rgba(255, 99, 132, 1)",
        "borderWidth": 1
      },
      {
        "label": "Мадэль 2",
        "дадзеныя": [0,9, 0,8, 0,7],
        "backgroundColor": "rgba(54, 162, 235, 0,2)",
        "borderColor": "rgba(54, 162, 235, 1)",
        "borderWidth": 1
      }
    ]
  },
  "параметры": {
    "назва": {
      "дысплей": праўда,
      "text": "Дакладнасць розных мадэляў для розных задач"
    },
    "шалі": {
      "yAxes": [
        {
          "цікі": {
            "beginAtZero": праўда
          }
        }
      ]
    }
  }
}

Выснова

У гэтым артыкуле мы даследавалі прагрэс у развагах LLM, уключаючы развагі на аснове графаў, шматзадачнае навучанне і механізмы ўвагі. Мы таксама далі прыклады кода ў Python, Rust і Go, каб праілюстраваць гэтыя канцэпцыі. Нарэшце, мы выкарысталі дыяграму, каб візуалізаваць прадукцыйнасць 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