12,584 okumalar
12,584 okumalar

Embeddings 101: Yazıda Semantik İlişkilerin Kilitlenmesi

ile Ritesh Modi14m2025/03/27
Read on Terminal Reader
Read this story w/o Javascript

Çok uzun; Okumak

Girişler, makinelerin dili nasıl anladığına dair sınırlamaları ele almaktadır. Sadece yeni bir teknik değildir - dil anlayışında temel sınırlamaları ele almaktadır. Giriş, metin temsillerini daha yorumlanabilir hale getirmek için bir yoldur.
featured image - Embeddings 101: Yazıda Semantik İlişkilerin Kilitlenmesi
Ritesh Modi HackerNoon profile picture
0-item
1-item


Yıllar önce metin verileri ile çalışmaya başladığımda, ekleme kavramının tamamı gereksizce karmaşık görünüyordu. kelime çantası yaklaşımlarım ve basit TF-IDF vektorlarımla rahatladım.


Ürün değerlendirmeleri ile çalışıyordum ve geleneksel modellerim sarkazm veya nüanslı dil ile değerlendirmeleri yanlış sınıflandırmaya devam etti.


Bunlar sadece fantastik yeni bir teknik değil - makinelerin dili nasıl anladığının temel sınırlamalarını ele alıyorlar.


The Old Days: Life Before Embeddings

Önceki İçerikThe Old Days: Life Before Embeddings

Bu yöntemlerin ve yaklaşımların ayrıntılarına girmeden eklemelerden önce metin temsillerini kullanmanın tarihini anlayalım.

One-Hot Encoding

Her kelime, bir sözlükte bu kelimeye karşılık gelen bir "1" hariç tüm sıfırlar hariç tek bir "1" hariç tüm sıfırlar içeren az sayıda vektor olarak temsil edildi. Her kelime kendi boyutunu aldığında, her kelime büyük, az sayıda vektor olarak temsil edildi. Eğer sözlük 100.000 kelimeye sahipse (ki bu mütevazı), her kelime vektoru 99.999 sıfır ve tek bir 1. Bu temsiller bize kesinlikle hiçbir anlam ifade etmedi.


“kedi” → [1, 0, 0, 0, ..., 0] (şair kelimesi pozisyonu 5432) “köpek” → [0, 1, 0, 0, ..., 0] (şair kelimesi pozisyonu 8921)


kısıtlamaları

    Şöyle
  • Boyut patlaması: Vektörlerin kelime boyutları kadar boyutları vardı (genellikle 100.000+)
  • Şöyle
  • Semantik ilişkiler yok: “kedi” ve “kedi” “kedi” ve “uçak” (her şey eşit mesafede) kadar farklıydı.
  • Şöyle
  • Hesaplama verimsizliği: Bu az sayıda matrisin çoğaltılması son derece kaynak yoğunluğu içeriyordu
  • Şöyle
  • Genelleşme yok: Sistem orijinal sözlükten başka kelimeleri anlayamadı
  • Şöyle

Bag-of-Words Approach

Belgelerdeki sözcüklerde sözcük oluşumlarını sayar, bazen onların önemine göre ağırlaştırılır. belgelerdeki sözcükler, sözcük düzenini tamamen ortadan kaldırarak, düzeltilmemiş sözcük koleksiyonları olarak değerlendirir. "köpek adamı ısırdı" ve "erkek köpeği ısırdı" aynı temsillere sahip olurdu.


Doküman: "Kedi matta oturdu" BoW: {"the": 2, "cat": 1, "sat": 1, "on": 1, "mat": 1}

Kısıtlamalar :

    Şöyle
  • Kelime düzeninin kaybı: "Köpek insanı ısırır" ve "İnsan köpeği ısırır" aynı temsiller vardı
  • Şöyle
  • Sparse Yüksek Boyutlu Vektörler: Hala sözlük boyutlu vektörler gereklidir
  • Şöyle
  • Semantik anlayış yok: Synonyms tamamen farklı özellikler olarak temsil edildi
  • Şöyle
  • Kontekstüel anlam yok: Her kelime bağlamına bakılmaksızın sabit bir temsilye sahipti.
  • Şöyle

N-grams

Bazı kelime düzeni yakalamak için, n-gramları (n arka kelimelerin sıralamaları) kullanmaya başladık. bazı bağlam bilgileri yakalamak için N arka kelimelerin sıralamalarını inceledi.


Unigrams (single kelimeler) ile, 100,000 bir sözlük kapasitesine sahip olabilirsiniz. bigrams ( kelime çiftleri) ile, aniden potansiyel milyonlarca özelliğe bakıyorsunuz. trigrams ile? milyarlarca, teorik olarak. Agresif kesme ile bile, boyutluluk yönetilemez hale geldi.

Limitations:

Kısıtlamalar :
    Şöyle
  • Kombinasyonel patlama: Mümkün olan n-gram sayısı eksponensiyel olarak artıyor
  • Şöyle
  • Verilerin azlığı: Çoğu olası n-gram eğitim verilerinde asla görünmez
  • Şöyle
  • Sınırlı bağlam penceresi: Küçük pencerelerde sadece ilişkiler yakalanır (genellikle 2-5 kelime)
  • Şöyle

TF-IDF (Term Frequency-Inverse Document Frequency)

TF-IDF, sözcüklerin corpus ile ilgili belirli bir belge için ne kadar önemli olduklarına dayanarak kelimeleri ağırlatarak şeyleri iyileştirdi.

Limitations:

Kısıtlamalar :

Semantik anlam yok: Kelimelerin sayısı ve sıklığı, kullanımlarının önemini belirler.

The Embedding Revolution: What Changed?

Sonraki İçerikİstanbul Devrimi: Neler Değişti?

Embeddings'e geçiş sadece artan bir iyileştirme değildi; dilin nasıl temsil edildiğine dair bir paradigma değişikliği oldu.

Meaning Through Context

Girişlerin arkasındaki temel anlayış yanıltıcı derecede basittir: benzer bağlamlarda görünen kelimeler muhtemelen benzer anlamlara sahiptir. eğer "köpek" ve "kedi" aynı tür kelimelerin etrafında görünürse ("evcil hayvan", "yemek", "kedi"), muhtemelen semantik olarak ilişkilidirler.


Word2Vec gibi erken ekleme modelleri, sinir ağlarını öngörmek için eğiterek bunu yakaladı:


    Şöyle
  • Çevresel bağlamına dayanan bir kelime (Kontinuous Bag of Words)
  • Bir kelimeye dayanan çevre bağlamı (Skip-gram)
  • Şöyle


Bu modellerdeki gizli katman ağırlıkları, vektor alanının geometrik özelliklerinde semantik ilişkileri kodlayan kelime vektorlarımız haline geldi.


İlk olarak kelime vektörlerini karıştırdığımda ve "kral" - "erkek" + "kadın" ≈ "kraliçe" olduğunu gördüğümde, devrimci bir şey üzerinde olduğumuzu biliyordum.


Word2Vec ve GloVe gibi erken modeller, her kelimeye bağlamdan bağımsız olarak tek bir vektor verdi.


"I need to bank the money" vs. "I'll meet you by the river bank"


BERT ve GPT gibi modeller, çevresel bağlamına bağlı olarak aynı kelime için farklı yerleştirmeler oluşturarak bunu çözdü.


Öyleyse, önce eklentilerin ne olduğunu ve NLP'yi nasıl dönüştürdüğünü ve önceki yaklaşımların sınırlamalarını nasıl ele aldığını anlamaya çalışalım.

What Are Embeddings?

Embeddings Nedir ?

Girişler, metin için, sözcükler veya belgeler arasındaki semantik ilişkileri yakalamak için, makinelerin anlamları matematiksel olarak işlenebilir bir şekilde anlamasını sağlar.

Key Concepts:

    Şöyle
  • Vektörler: Çok boyutlu alanlarda bir noktayı temsil eden sayıların sıralı listeleri
  • Şöyle
  • Boyutlar: Her vektörde değerlerin sayısı (örneğin, 768-dim, 1024-dim)
  • Şöyle
  • Vektör Uzayı: Girişlerin var olduğu matematiksel alan
  • Şöyle
  • Semantik benzerlik: Vektörler arasındaki mesafe veya açı ile ölçülür (daha yakın = daha benzer)
  • Şöyle

What Do Dimensions Represent?

Bir yerleştirme vektöründe her boyut, verilerin öğrenilen bir özelliğini veya yönünü temsil eder. klasik özellik mühendisliği aksine, modern yerleştirme modellerinde insanlar her boyutun ne anlama geldiğini tanımlar:


    Şöyle
  • Antrenman sırasında boyutlar abstrakt “konseptleri” temsil etmek için ortaya çıkar.
  • Şöyle
  • Bireysel boyutlar genellikle belirli insan yorumlanabilir anlamlara sahip değildir.
  • Şöyle
  • Vektörün tamamı, bütünsel olarak semantik bilgileri yakalar.
  • Şöyle
  • Bazı boyutlar duygular, formaliteler, konulardır veya sentez olabilir, ancak çoğu özelliklerin karmaşık kombinasyonlarını temsil eder.
  • Şöyle

Why We Need Embeddings

Bilgisayarlar temel olarak rakamlarla değil kelimelerle çalışırken, dil işlemi yaparken, metni şunları ifade eden sayısal temsillere dönüştürmeliyiz:


    Şöyle
  1. Semantik ilişkiler yakalamak - Benzer kavramlar benzer temsillere sahip olmalıdır
  2. Şöyle
  3. Kontekstüel anlamı korumak – Aynı kelime farklı bağlamlarda farklı şeyler ifade edebilir
  4. Şöyle
  5. Matematik işlemleri etkinleştirin – Benzerlikleri bulmak veya benzerlikleri gerçekleştirmek gibi
  6. Şöyle
  7. Büyük ölçekte verimli çalışın – Bilgisayar patlaması olmadan büyük metin hacimleri işleyin
  8. Şöyle


Embeddings, kelimeleri, cümleleri veya belgeleri, semantik ilişkilerin geometrik ilişkiler olarak korunduğu sürekli bir alanda yoğun vektörler olarak temsil ederek bu sorunları çözer.

Foundations of Embeddings

Dense Vector temsilcileri

Binlerce veya milyonlarca boyutlu nadir vektörler yerine, entegre, her boyutun anlamına katkıda bulunduğu birkaç yüz yoğun boyut kullanır.


"cat" → [0.2, -0.4, 0.1, -0.8, ..., 0.3] (300 dimensions)

"kitten" → [0.19, -0.38, 0.15, -0.75, ..., 0.29] (similar to "cat")


Bu, büyüklükteki hesaplamayı daha verimli hale getirir ve aynı zamanda daha zengin bir semantik temsil etmeyi sağlar.

Semantik dağıtım

Embeddings, "bir kelimeyi şirket tarafından bileceksiniz" (J.R. Firth) prensibine dayanmaktadır. benzer bağlamlarda hangi kelimeleri analiz ederek, embeddings semantik ilişkileri otomatik olarak yakalar.


Örneğin, “kral” ve “kraliçe” benzer bağlamlara sahip olacak, bu nedenle nadiren tam olarak aynı konumda görünse de benzer yerleştirmeler olacak.

Matematik Özellikleri

Giriş alanları şaşırtıcı matematik özellikleri vardır:


vector("king") - vector("man") + vector("woman") ≈ vector("queen")


Bu, vektor alanında doğrudan analog düşünme ve semantik işlemleri sağlar.

Transfer öğrenme

Önceden eğitilmiş eklentiler, belirli görevler için iyi ayarlanabilen genel dil bilgilerini yakalar ve yeni uygulamalar için gerekli verileri önemli ölçüde azaltır.

Kontekstüel anlayış

Modern bağlamda yerleştirmeler (BERT, GPT vb. gibi) aynı kelimeyi bağlamdan farklı şekilde temsil eder:


"I'll deposit money in the bank" → "bank" relates to finance

"I'll sit by the river bank" → "bank" relates to geography


Entegre ile ilgili tüm bilgi ve anlayışla, bunları kullanmaya başlamak zamanı geldi.

LLM/SLM Modellerini Geliştirmek İçin Kullanın

Çeşitli araştırma ekipleri, çok sayıda dil ve alanı kapsayan çeşitli veri kümelerinde eğitilmiş embedding modellerini geliştirdiler. Bu çeşitlilik, çok farklı kelime ve semantik anlayış yetenekleri olan modellerde sonuçlanır. Örneğin, İngiliz bilimsel edebiyatında öncelikle eğitilen modeller, çok dilli sosyal medya içeriği üzerinde eğitilenlerden farklı olarak teknik kavramları kodlayacaktır. Bu uzmanlık, uygulayıcıların belirli kullanım durumlarına en uygun embedding modellerini seçmelerini sağlar.


Hugging Face'dan SentenceTransformer paketi gibi kütüphaneler, çeşitli yerleştirme modelleriyle çalışmak için kapsamlı bir SDK sunar. Benzer şekilde, OpenAI'nin SDK, birçok benchmark üzerinde etkileyici performans göstermiş olan yerleştirme modellerine basit erişim sağlar. Bu araçlar ve çok daha fazlası, gelişmiş yerleştirme teknolojilerine demokratikleştirilmiş erişim sağlar, geliştiricilerin semantik anlayışını baştan itibaren modelleri eğitmek zorunda kalmadan uygulamalara entegre etmelerine olanak tanır.


Modeller, bu makalenin uğruna, cümleleri bir giriş olarak alır ve ilgili vektör temsillerini iade eder kara kutu olarak değerlendirilmelidir. bir yerleştirme modelinin işleyişi ve işleyişi hakkında ayrıntılar bu makalenin kapsamı dışında.

Embeddings için SentenceTransformers Kütüphanesi

SentenceTransformer kullanarak eklentileri oluşturmanın en basit yolu:

from sentence_transformers import SentenceTransformer

# Load a pre-trained model
model = SentenceTransformer('all-MiniLM-L6-v2')  # 384 dimensions

# Generate embeddings
texts = ["This is an example sentence", "Each sentence becomes a vector"]

embeddings = model.encode(texts)

print(f"Shape: {embeddings.shape}")  # (2, 384)

max_seq_length = model.tokenizer.model_max_length

print(max_seq_length) # 256


​​HuggingFace’den mevcut olan “all-MiniLM-L6-v2” modelinin 384 boyutları vardır. Bu, belirli bir kelime veya cümle için 384 özelliği veya nüansı yakalayabileceği anlamına gelir. Bu modelin dizin uzunluğu 256 tokentir. Sözcükler ekleme sürecinde tokenizer tarafından kelimelere ve kelimelere bölünür. Bir cümle için oluşturulan token sayısı genellikle cümlede bulunan kelimelerin sayısından %25 ila %40 daha fazladır.


Sıralama uzunluğu, model tarafından verilen giriş olarak işlenebilecek token sayısını gösterir. Daha az şey 256 uzunluğuna dönüştürülür ve daha fazlası atılır. Bunların anlamları vardır ve bunları başka bir makalede tartışacağız.


SentenceTransformer sınıfının kodlama yöntemi, modeli kullanmak için PyTorch varsayım modunda bir wrapperdir.


from sentence_transformers import SentenceTransformer
import torch

# Load the model directly with SentenceTransformer
model = SentenceTransformer("sentence-transformers/msmarco-distilbert-base-tas-b")

# Input text
texts = ["This is an example sentence", "Each sentence becomes a vector"]

# Get embedding directly
with torch.no_grad():
    embedding = model.encode(texts, convert_to_tensor=True)
print(embedding)


Burada, torch.no_grad fonksiyonu, geri yayılma sırasında herhangi bir gradientin hesaplanmadığından emin olur.


Another, more generic way to generate embeddings using PyTorch:


# Load the model
model = AutoModel.from_pretrained("sentence-transformers/msmarco-distilbert-base-tas-b")

# Get the tokenizer
tokenizer = AutoTokenizer.from_pretrained("sentence-transformers/msmarco-distilbert-base-tas-b")

# Tokenize input
text = ["This is an example sentence"]
encoded_input = tokenizer(text, padding=True, truncation=True, return_tensors='pt')

# Get embedding of the [CLS] token
with torch.no_grad():
    outputs = model(**encoded_input, return_dict=True)
    cls_embedding = outputs.last_hidden_state[:, 0]
print(cls_embedding)


Bu ve önceki kod parçaları arasındaki fark, kodlama işlevinin açıkça tokenizer ve model kullanılarak değiştirildiğidir.


Başka bir farklılık, CLS tokeniyle ilgili vektoru bulmak için outputs.last_hidden_state[:, 0] kullanıyoruz. bu CLS özel token her cümlenin başında her cümleye eklenir ve tüm cümle hakkında birikmiş bilgileri içerir. kodlama yöntemi bunu bizim için otomatik olarak yapar.


Bu CLS token ekleme yaklaşımı yalnızca belirli transformatör tabanlı mimariler için geçerlidir ve bu BERT ve onun varyantları ve kodlayıcı tabanlı transformatörleri içerir.


Best for:Sınıflandırma ve sekans düzeyinde tahmin görevleri


Why they work:BERT tarzı modellerdeki [CLS] token, önceden eğitimin sırasında tüm sekanstan bilgi toplamak için özel olarak eğitilmiştir.


When to choose:

    Şöyle
  • BERT, RoBERTa veya benzer sınıflandırma modellerini kullanırken
  • Şöyle
  • Tüm bir diziyi temsil eden tek bir vektöre ihtiyacınız olduğunda
  • Şöyle
  • Aşağıdaki görev tüm metnin bir özelliğini tahmin etmeyi içerdiğinde
  • Şöyle


Kullanılan CLS yöntemi, bir cümle için eklentileri yakalamak için sadece bir yöntemdir.

Mean Pooling

Tüm token embeddings ortalaması almak birçok görev için şaşırtıcı derecede etkili. ben benzerlik veya arama görevleri için embeddings kullanırken benim gitmek yöntemi.


Best for:Semantik Benzerlik, Geri Dönüşüm ve Genel Hedef Gösterileri.


Why it works:Tüm token temsilciliklerinde ortalama olarak, ortalama toplama, toplu semantik içeriği yakalar ve gürültüyü azaltır.


When to choose:

    Şöyle
  • Belge benzerliği veya semantik arama uygulamaları için
  • Şöyle
  • Tek bir token tarafından egemen olmayan güçlü temsillere ihtiyacınız olduğunda
  • Şöyle
  • Empirik testler diğer yöntemleri aştığını gösterdiğinde (genellikle benzerlik görevleri için yapar)
  • Şöyle


import torch
from transformers import AutoTokenizer, AutoModel

model_name = "bert-base-uncased"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModel.from_pretrained(model_name)

# Tokenize input
texts = ["This is an example sentence", "Each sentence becomes a vector"]
inputs = tokenizer(texts, padding=True, truncation=True, return_tensors="pt")

# Mean pooling
with torch.no_grad():
    outputs = model(**inputs)
    
    # Get attention mask to ignore padding tokens
    attention_mask = inputs['attention_mask']
    
    # Sum token embeddings and divide by the number of tokens
    sum_embeddings = torch.sum(outputs.last_hidden_state * attention_mask.unsqueeze(-1), dim=1)
    count_tokens = torch.sum(attention_mask, dim=1, keepdim=True)
    mean_embeddings = sum_embeddings / count_tokens

print(f"Shape: {mean_embeddings.shape}")  # (2, 768)


Max Pooling

Max toplama, tüm tokenler için her boyut için maksimum değeri alır. metinde nerede görünür olursa olsun önemli özellikleri yakalamak için şaşırtıcı derecede iyi.


Best for:Özellik algılama ve bilgi çıkarma görevleri


Why it works:Max toplama, tüm tokenlerde her boyut için en güçlü etkinleştirmeyi seçer, metinde gösterilen yerlere bakılmaksızın en belirgin özellikleri etkili bir şekilde yakalar.


When to choose:

    Şöyle
  • Belirli özellikler frekans veya konumlarından daha önemli olduğunda
  • Belirli kavramların veya varlıkların varlığını ararken
  • Şöyle
  • Önemli sinyallerin ortalama olarak kaydedilebileceği uzun metinlerle uğraşırken
  • Şöyle


import torch
from transformers import AutoTokenizer, AutoModel

model_name = "bert-base-uncased"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModel.from_pretrained(model_name)

# Tokenize input
texts = ["This is an example sentence", "Each sentence becomes a vector"]
inputs = tokenizer(texts, padding=True, truncation=True, return_tensors="pt")

# Max pooling
with torch.no_grad():
    outputs = model(**inputs)
    
    # Create a mask to ignore padding tokens for max pooling
    attention_mask = inputs['attention_mask'].unsqueeze(-1)
    
    # Replace padding token representations with -inf so they're never selected as max
    token_embeddings = outputs.last_hidden_state.masked_fill(attention_mask == 0, -1e9)
    
    # Take max over token dimension
    max_embeddings = torch.max(token_embeddings, dim=1)[0]

print(f"Shape: {max_embeddings.shape}")  # (2, 768)

Weighted Mean Pooling

Her kelime anlamına eşit katkıda bulunmaz. ağırlaştırılmış toplama yöntemi, konumuna dayanan daha önemli tokenlere daha fazla ağırlık vermeye çalışır (örneğin, daha sonraki tokenlere daha fazla ağırlık verir).


Best for:Girişlerin farklı bölümlerinin farklı önemi olduğu görevler


Why it works:Her kelime anlamına eşit katkıda bulunmaz.Büyükleştirilmiş toplama, pozisyonlarına, dikkat notlarına veya diğer alakalı ölçütlere göre belirli işaretleri vurgulamanızı sağlar.


When to choose:

    Şöyle
  • Sıralama sırası önemli olduğunda (örneğin, daha sonraki tokenlere daha fazla ağırlık verir)
  • Şöyle
  • Belirli tokenler doğası gereği daha bilgilendirici olduğunda (örneğin, sözcükler ve sözcükler vs. makaleler)
  • Şöyle
  • Göreviniz için mantıklı olan belirli bir heuristik öneminiz olduğunda
  • Şöyle


import torch
import torch.nn.functional as F
from transformers import AutoTokenizer, AutoModel

model_name = "bert-base-uncased"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModel.from_pretrained(model_name)

# Tokenize input
texts = ["This is an example sentence", "Each sentence becomes a vector"]
inputs = tokenizer(texts, padding=True, truncation=True, return_tensors="pt")

# Weighted mean pooling - more weight to later tokens
with torch.no_grad():
    outputs = model(**inputs)
    
    # Get token embeddings and attention mask
    token_embeddings = outputs.last_hidden_state
    attention_mask = inputs['attention_mask']
    
    # Create position-based weights (later positions get higher weights)
    input_lengths = torch.sum(attention_mask, dim=1).unsqueeze(-1)
    position_indices = torch.arange(token_embeddings.size(1)).unsqueeze(0).expand_as(attention_mask)
    position_weights = position_indices.float() / input_lengths.float()
    position_weights = position_weights * attention_mask
    
    # Normalize weights to sum to 1
    position_weights = position_weights / torch.sum(position_weights, dim=1, keepdim=True)
    
    # Apply weights and sum
    weighted_embeddings = torch.sum(token_embeddings * position_weights.unsqueeze(-1), dim=1)

print(f"Shape: {weighted_embeddings.shape}")  # (2, 768)


Son Dakika Polonya

Son token toplama, yalnızca nihai token temsilini seçerek bir dizi token entegre vektöründen tek bir entegre vektör oluşturma tekniğidir.


Best for:Autoregresif Modeller ve Sıralı İşleme


Why it works:GPT gibi sol-doğru modellerde, nihai token, belirli görevler için bilgi zengin hale getirerek, tüm sıralardan toplanan bağlamı içerir.


When to choose:

    Şöyle
  • GPT veya diğer yalnızca dekodör modellerini kullanırken
  • Şöyle
  • Tüm önceki bağlamdan büyük ölçüde bağımlı olan görevlerle çalışırken
  • Şöyle
  • For text generation or completion tasks
  • Şöyle


import torch
from transformers import AutoTokenizer, AutoModel

model_name = "bert-base-uncased"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModel.from_pretrained(model_name)

# Tokenize input
texts = ["This is an example sentence", "Each sentence becomes a vector"]
inputs = tokenizer(texts, padding=True, truncation=True, return_tensors="pt")

# Last token pooling
with torch.no_grad():
    outputs = model(**inputs)
    
    # Get the last non-padding token for each sequence
    attention_mask = inputs['attention_mask']
    last_token_indices = torch.sum(attention_mask, dim=1) - 1
    batch_indices = torch.arange(attention_mask.size(0))
    
    # Extract the last token embedding for each sequence
    last_token_embeddings = outputs.last_hidden_state[batch_indices, last_token_indices]

print(f"Shape: {last_token_embeddings.shape}")  # (2, 768)



Çok daha fazla yol var ve bu yöntemler aynı zamanda özel yöntemler oluşturmak için birlikte kombine edilebilir.Bu, farklı teknikler kullanılarak eklentileri elde etmek için bir kavram ve temel uygulama olarak eklentileri anlamak için sadece başlangıçtı.

Looking Forward: Where Embeddings Are Headed

Önceki Önceki yazı: Embeddings Goes Where

Giriş alanı (pun intended) gelişmeye devam ediyor:


    Şöyle
  • Multimodal entegre, metin, görüntü, ses ve video arasındaki engelleri kırıyor. CLIP ve DALL-E gibi modeller, farklı modaliteler arasında paylaşılan bir semantik alan yaratmak için entegre kullanıyor.
  • Şöyle
  • More efficient architectures like MobileBERT and DistilBERT are making it possible to use powerful embeddings on edge devices with limited resources.

  • Şöyle
  • Uzman corpora üzerinde önceden eğitilmiş alan özel eklentileri tıp, hukuk ve finans gibi alanlarda en son teknolojiyi teşvik ediyor.
  • Şöyle

Özellikle, daha küçük birimlerden anlamın nasıl inşa edildiğini daha iyi ele alan kompozisyon bilinçli eklentiler hakkında heyecanlıyım, bu da sonunda yalanlama ve kompozisyon cümleleri ile uzun süreli zorlukları çözebilebilir.

Final Thoughts

Son Düşünceler

Girişler sadece başka bir NLP tekniği değildir – makinelerin dilini nasıl anladığını ve işlediğini temel bir değişimdir.Bizi metni istekli semboller olarak ele almaktan insanların sezgisel olarak anladıkları zengin, karmaşık anlam ve ilişkilerin ağını yakalamaya götürdüler.


Çalıştığınız NLP görevi ne olursa olsun, muhtemelen düşünceli bir şekilde uygulanan eklentiler daha iyi hale getirebilir. anahtar sadece bunları nasıl oluşturacağınızı değil, farklı yaklaşımları ne zaman ve neden kullanacağınızı anlamaktır.


Ve eğer hala metin analizi için kelime çantası veya tek sıcak kodlama kullanıyorsanız...


Tüm bu olasılıkların bir dünya sizi bekliyor.

Trending Topics

blockchaincryptocurrencyhackernoon-top-storyprogrammingsoftware-developmenttechnologystartuphackernoon-booksBitcoinbooks