LLM ой жүгүртүүдөгү жетишкендиктер: Техникалык терең чөмүлүү | B4N1

LLM ой жүгүртүүдөгү жетишкендиктер: Техникалык терең чөмүлүү

9 months ago · b4n1 Tiempo de lectura: 3 min

Киришүү

Larguage Language Models (LLMs) акыркы жылдары табигый тилди иштетүү (NLP) тармагында революция жасады. Бул моделдер тилди которуу, текстти жалпылоо жана суроого жооп берүү сыяктуу ар кандай NLP тапшырмаларында эң заманбап натыйжаларга жетишти. Бирок, LLMлердин чыныгы потенциалы алардын түшүнүктөрдүн ортосундагы татаал мамилелерди ой жүгүртүү жана түшүнүү жөндөмүндө. Бул макалада биз LLM ой жүгүртүүсүндөгү жетишкендиктерди изилдеп, негизги ыкмаларды, архитектураларды жана кыйынчылыктарды изилдейбиз.

Фон

LLM - бул нейрондук тармактын бир түрү, ал сөздөр менен түшүнүктөрдүн ортосундагы схемаларды жана мамилелерди үйрөнүү үчүн тексттик маалыматтардын чоң көлөмүнө үйрөтүлгөн. Бул моделдер, адатта, коддоочу жана декодерден турат, мында коддоочу киргизилген текстти иштетет, ал эми декодер чыгуучу текстти жаратат. Кодер көбүнчө трансформаторго негизделген архитектура, ал текст сыяктуу ырааттуу маалыматтар үчүн өзгөчө ылайыктуу.

Трансформатор архитектурасы

Васвани жана башкалар тарабынан "Көңүл буруш керек" деген кагазда киргизилген трансформатордун архитектурасы. (2017), LLMs үчүн иш жүзүндө стандарт болуп калды. Трансформатор ар бири бир нече катмардан турган коддоочу жана декодерден турат. Ар бир катмар эки суб-катмардан турат: өзүнө көңүл буруу механизми жана толук туташкан алдыга багыттоочу тармак (FFNN).

импорт шамы
импорт факел.нн нн катары

Class 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)

    def forward(self, 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 кайтаруу

LLM ой жүгүртүүдөгү жетишкендиктер

LLMs түшүнүктөрдүн ортосундагы татаал мамилелерди ой жүгүртүү жана түшүнүү боюнча олуттуу прогресске жетишти. Негизги жетишкендиктерге төмөнкүлөр кирет:

1. Графикке негизделген ой жүгүртүү

Графикке негизделген ой жүгүртүү билимди график катары көрсөтүүнү камтыйт, мында түйүндөр түшүнүктөрдү, ал эми четтери алардын ортосундагы мамилелерди билдирет. LLMлер түйүндөрдүн ортосундагы мамилелер жөнүндө болжолдоолорду жасап, бул графиктер жөнүндө ой жүгүртүүгө үйрөтүлүшү мүмкүн.

колдонуу graph::Graph;
use neural_network::NeuralNetwork;

fn graph_reasoning(график: &Граф, суроо: &str) -> Стринг {
    let embedding = neural_network.query(график, суроо);
    let result = neural_network.reason(график, кыстаруу);
    result.to_string()
}

2. Көп тапшырманы үйрөнүү

Көп тапшырманы окутуу бир эле учурда бир нече тапшырма боюнча бир моделди үйрөтүүнү камтыйт. Бул ыкма татаал мамилелерди ой жүгүртүү жана түшүнүү, анын ичинде ар кандай милдеттерди боюнча LLMs аткарууну жакшыртуу үчүн көрсөтүлдү.

негизги пакет

импорттоо (
	"fmt"
	"gonum.org/v1/gonum/mat"
)

түрү моделдин структурасы {
	*nn.Linear
	*nn.Linear
}

func (m *Модель) Алга(x *мат.Тыз) *мат.Тыз {
	// Алга өтүү
	z := m.Сызыктуу(x)
	z = m. Сызыктуу(z)
	кайтаруу z
}

3. Көңүл буруу механизмдери

Көңүл буруу механизмдери LLMге чыгарууну түзүүдө кириш тексттин белгилүү бөлүктөрүнө көңүл бурууга мүмкүндүк берет. Бул ыкма татаал мамилелерди ой жүгүртүү жана түшүнүү, анын ичинде ар кандай милдеттерди боюнча LLMs аткарууну жакшыртуу үчүн көрсөтүлдү.

импорттук шам
импорт факел.нн нн катары

Class AttentionMechanism(nn.Module):
    def __init__(self, d_model, n_heads):
        super(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 forward(self, x):
        # Суроо, ачкыч жана маани
        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 колдонгон диаграмманын мисалы келтирилген:

{
  "type": "бар",
  "маалымат": {
    "labels": ["Task 1", "Task 2", "Task 3"],
    "маалымат топтомдору": [
      {
        "label": "Модель 1",
        "data": [0,8, 0,7, 0,9],
        "backgroundColor": "rgba(255, 99, 132, 0.2)",
        "borderColor": "rgba(255, 99, 132, 1)",
        "borderWidth": 1
      },
      {
        "label": "Модель 2",
        "data": [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 тилдеринде код мисалдарын бердик. Акыр-аягы, биз ар кандай тапшырмалар боюнча LLMs аткарууну визуализациялоо үчүн диаграмманы колдондук. Бул жетишкендиктер LLMлерге түшүнүктөрдүн ортосундагы татаал мамилелерди ой жүгүртүүгө жана түшүнүүгө мүмкүнчүлүк берип, NLP тармагын революция кылуу мүмкүнчүлүгүнө ээ.

Шилтемелер

  • Vaswani жана башкалар. (2017). Көңүл буруңуз. arXiv preprint arXiv:1706.03762.
  • Devlin жана башкалар. (2018). БЕРТ: Тилди түшүнүү үчүн терең эки багыттуу трансформаторлорду алдын ала даярдоо. arXiv preprint arXiv:1810.04805.
  • Рэдфорд жана башкалар. (2019). Тил моделдери көзөмөлсүз көп тапшырманы үйрөнүүчүлөр. arXiv preprint arXiv:1906.08237.

¿Tienes preguntas?

Hablemos

Contáctame en LinkedIn