पाठ 5 / 27

Embeddings और समानता

Tokens को vectors के रूप में दिखाएँ जहाँ दूरी अर्थ दर्शाती है।

अर्थ निर्देशांक के रूप में

Neural networks संख्याओं पर काम करते हैं, इसलिए हर token embedding नामक संख्याओं की सूची (सैकड़ों से हज़ारों मान) में बदलता है। प्रशिक्षण में, समान संदर्भों में आने वाले tokens के vectors समान हो जाते हैं। Cosine similarity (दो vectors के बीच का कोण) निकटता मापती है: 1 के पास का अर्थ लगभग समान दिशा, 0 के पास असंबंधित। यही विचार semantic search को चलाता है: documents और query को embed करें, फिर निकटतम vectors लौटाएँ। नीचे की संख्याएँ विचार दिखाने को हाथ से बनी हैं; असली embeddings सीखे जाते हैं।

संख्याएँ अंदर, संभावनाएँ बाहर

Embeddings tokens को vectors बनाते हैं; softmax scores को संभावनाएँ; sampling token चुनती है।

पाँच चरण: embed, score, softmax, sample, दोहराएँ।
चित्र 2.1 — Embed, score, softmax, sample और दोहराएँ।

Cosine similarity, चलाकर

मैंने यह सादा-Python (सिर्फ़ standard library) उदाहरण चलाया। "king" और "queen" लगभग एक ही दिशा में हैं (0.994); "king" और "apple" नहीं (0.303)।

import math

def cosine(a, b):
    dot = sum(x * y for x, y in zip(a, b))
    return dot / (math.sqrt(sum(x * x for x in a)) * math.sqrt(sum(y * y for y in b)))

emb = {
    "king":   [0.9, 0.8, 0.1],
    "queen":  [0.9, 0.7, 0.2],
    "apple":  [0.1, 0.2, 0.9],
}
print("king~queen", round(cosine(emb["king"], emb["queen"]), 3))
print("king~apple", round(cosine(emb["king"], emb["apple"]), 3))

Output:

king~queen 0.994
king~apple 0.303

Embeddings मॉडल-विशिष्ट होते हैं

अलग embedding मॉडलों के vectors आपस में बदले नहीं जा सकते। मॉडल बदलें तो सारे दस्तावेज़ दोबारा embed करें।

त्वरित जाँच: Cosine similarity का 1 के पास होना क्या दर्शाता है?

  • Vectors असंबंधित हैं
  • Vectors लगभग एक ही दिशा में हैं
  • पाठ लंबा है
  • मॉडल बड़ा है
Answer

Vectors लगभग एक ही दिशा में हैं — समान अर्थ embedding space में समान दिशा देता है।