LLM mulohazasidagi yutuqlar: Texnik chuqur sho'ng'in | B4N1

LLM mulohazasidagi yutuqlar: Texnik chuqur sho'ng'in

9 months ago · b4n1 Tiempo de lectura: 3 min

Kirish

Katta til modellari (LLM) so'nggi yillarda tabiiy tilni qayta ishlash (NLP) sohasida inqilob qildi. Ushbu modellar turli NLP vazifalarida, jumladan, tilni tarjima qilish, matnni umumlashtirish va savollarga javob berishda eng zamonaviy natijalarga erishdi. Biroq, LLMlarning haqiqiy salohiyati ularning tushunchalar orasidagi murakkab munosabatlarni tushunish va tushunish qobiliyatidadir. Ushbu maqolada biz LLM mulohazalaridagi yutuqlarni ko'rib chiqamiz, asosiy texnikalar, arxitektura va qiyinchiliklarni o'rganamiz.

Fon

LLM - bu so'zlar va tushunchalar o'rtasidagi naqsh va munosabatlarni o'rganish uchun katta hajmdagi matn ma'lumotlariga o'rgatilgan neyron tarmoq turi. Ushbu modellar odatda kodlovchi va dekoderdan iborat bo'lib, bu erda kodlovchi kirish matnini qayta ishlaydi va dekoder chiqish matnini yaratadi. Kodlovchi odatda transformatorga asoslangan arxitektura bo'lib, u ayniqsa matn kabi ketma-ket ma'lumotlar uchun juda mos keladi.

Transformator arxitekturasi

Transformator arxitekturasi, Vaswani va boshqalar tomonidan "Diqqat sizga kerak" maqolasida taqdim etilgan. (2017), LLMlar uchun de-fakto standartga aylandi. Transformator har biri bir nechta qatlamlardan tashkil topgan kodlovchi va dekoderdan iborat. Har bir qatlam ikkita pastki qatlamdan iborat: o'z-o'ziga e'tibor mexanizmi va to'liq ulangan oldinga uzatish tarmog'i (FFNN).

import mash'alasi
torch.nn ni nn sifatida import qiling

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 oldinga (self, x):
        # O'z-o'ziga e'tibor mexanizmi
        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_ffnnni qaytaring

LLM mulohazasidagi yutuqlar

LLMlar tushunchalar o'rtasidagi murakkab munosabatlarni tushunish va tushunishda sezilarli yutuqlarga erishdi. Asosiy yutuqlardan ba'zilari quyidagilardan iborat:

1. Grafik asosidagi fikrlash

Grafikga asoslangan fikrlash bilimlarni grafik sifatida ifodalashni o'z ichiga oladi, bu erda tugunlar tushunchalarni, qirralar esa ular orasidagi munosabatlarni ifodalaydi. LLMlar tugunlar orasidagi munosabatlar haqida bashorat qilish orqali ushbu grafiklar haqida fikr yuritishga o'rgatishlari mumkin.

grafikdan foydalanish::Grafik;
neural_network dan foydalaning::NeuralNetwork;

fn graph_reasoning(grafik: &Grafik, so'rov: &str) -> String {
    let embedding = neural_network.query(grafik, so'rov);
    let natija = neural_network.reason(grafik, o'rnatish);
    result.to_string()
}

2. Ko'p vazifali o'rganish

Ko'p vazifali o'rganish bir vaqtning o'zida bir nechta vazifalarga bitta modelni o'rgatishni o'z ichiga oladi. Ushbu yondashuv turli xil vazifalarda, jumladan, murakkab munosabatlarni tushunish va tushunishda LLM faoliyatini yaxshilash uchun ko'rsatildi.

asosiy paket

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

turi Model tuzilishi {
	*nn.Chiziqli
	*nn.Chiziqli
}

func (m *Model) Oldinga (x *mat.Zich) *mat.Zich {
	// Oldinga o'tish
	z := m.Chiziqli(x)
	z = m.Chiziqli(z)
	qaytish z
}

3. Diqqat mexanizmlari

Diqqat mexanizmlari LLMlarga chiqishni yaratishda kiritilgan matnning muayyan qismlariga e'tibor qaratish imkonini beradi. Ushbu yondashuv turli xil vazifalarda, jumladan, murakkab munosabatlarni tushunish va tushunishda LLM faoliyatini yaxshilash uchun ko'rsatildi.

import mash'alasi
torch.nn ni nn sifatida import qiling

sinf Diqqat Mexanizmi (nn.Module):
    def __init__ (self, d_model, n_heads):
        super(Diqqat mexanizmi, o'z-o'zidan).__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 oldinga (self, x):
        # So'rov, kalit va qiymat
        q = self.query(x)
        k = self.key(x)
        v = self.value(x)

        # Diqqat og'irliklari
        og'irliklar = mash'al.matmul(q, k.T) / math.sqrt(q.shape[1])
        og'irliklar = self.dropout (og'irliklar)
        og'irliklar = torch.softmax (og'irliklar, xiralik =-1)

        # Kontekst vektori
        kontekst = torch.matmul (og'irliklar, v)

        kontekstni qaytarish

Vizualizatsiya

Turli xil vazifalar bo'yicha LLMlarning ishlashini tasavvur qilish uchun biz berilgan topshiriq bo'yicha turli modellarning aniqligini solishtirish uchun diagrammadan foydalanishimiz mumkin. Mana Chart.js dan foydalanilgan diagramma misoli:

{
  "turi": "bar",
  "ma'lumotlar": {
    "yorliqlar": ["1-topshiriq", "2-topshiriq", "3-topshiriq"],
    "ma'lumotlar to'plami": [
      {
        "label": "Model 1",
        "ma'lumotlar": [0,8, 0,7, 0,9],
        "backgroundColor": "rgba(255, 99, 132, 0.2)",
        "borderColor": "rgba(255, 99, 132, 1)",
        "borderWidth": 1
      },
      {
        "label": "Model 2",
        "ma'lumotlar": [0,9, 0,8, 0,7],
        "backgroundColor": "rgba(54, 162, 235, 0.2)",
        "borderColor": "rgba(54, 162, 235, 1)",
        "borderWidth": 1
      }
    ]
  },
  "variantlar": {
    "sarlavha": {
      "displey": rost,
      "text": "Turli vazifalarda turli modellarning aniqligi"
    },
    "tarozi": {
      "yAxes": [
        {
          "tiklash": {
            "beginAtZero": rost
          }
        }
      ]
    }
  }
}

Xulosa

Ushbu maqolada biz LLM mulohazalaridagi yutuqlarni, jumladan, grafik asosidagi fikrlash, ko'p vazifali o'rganish va diqqat mexanizmlarini o'rganib chiqdik. Shuningdek, biz ushbu tushunchalarni tasvirlash uchun Python, Rust va Go-da kod misollarini taqdim etdik. Va nihoyat, biz turli xil vazifalar bo'yicha LLMlarning ishlashini vizualizatsiya qilish uchun jadvaldan foydalandik. Ushbu yutuqlar NLP sohasida inqilob qilish potentsialiga ega, bu LLMlarga tushunchalar orasidagi murakkab munosabatlarni tushunish va tushunish imkonini beradi.

Ma'lumotnomalar

  • Vaswani va boshqalar. (2017). Sizga kerak bo'lgan narsa - diqqat. arXiv oldindan chop etish arXiv: 1706.03762.
  • Devlin va boshqalar. (2018). BERT: Tilni tushunish uchun chuqur ikki tomonlama transformatorlarni oldindan tayyorlash. arXiv oldindan chop etish arXiv: 1810.04805.
  • Radford va boshqalar. (2019). Til modellari nazoratsiz ko‘p vazifali o‘rganuvchilardir. arXiv oldindan chop etish arXiv: 1906.08237.

¿Tienes preguntas?

Hablemos

Contáctame en LinkedIn