3. Token Embeddings

Token Embeddings

After tokenizing text data, the next critical step in preparing data for training large language models (LLMs) like GPT is creating token embeddings. Token embeddings transform discrete tokens (such as words or subwords) into continuous numerical vectors that the model can process and learn from. This explanation breaks down token embeddings, their initialization, usage, and the role of positional embeddings in enhancing model understanding of token sequences.

เค‡เคธ เคคเฅ€เคธเคฐเฅ‡ เคšเคฐเคฃ เค•เคพ เคฒเค•เฅเคทเฅเคฏ เคฌเคนเฅเคค เคธเคฐเคฒ เคนเฅˆ: เคถเคฌเฅเคฆเค•เฅ‹เคถ เคฎเฅ‡เค‚ เคชเคฟเค›เคฒเฅ‡ เคชเฅเคฐเคคเฅเคฏเฅ‡เค• เคŸเฅ‹เค•เคจ เค•เฅ‹ เคฎเฅ‰เคกเคฒ เค•เฅ‹ เคชเฅเคฐเคถเคฟเค•เฅเคทเคฟเคค เค•เคฐเคจเฅ‡ เค•เฅ‡ เคฒเคฟเค เค‡เคšเฅเค›เคฟเคค เค†เคฏเคพเคฎเฅ‹เค‚ เค•เคพ เคเค• เคตเฅ‡เค•เฅเคŸเคฐ เคธเฅŒเค‚เคชเฅ‡เค‚เฅค เคถเคฌเฅเคฆเค•เฅ‹เคถ เคฎเฅ‡เค‚ เคชเฅเคฐเคคเฅเคฏเฅ‡เค• เคถเคฌเฅเคฆ X เค†เคฏเคพเคฎเฅ‹เค‚ เค•เฅ‡ เคเค• เคธเฅเคฅเคพเคจ เคฎเฅ‡เค‚ เคเค• เคฌเคฟเค‚เคฆเฅ เคนเฅ‹เค—เคพเฅค เคงเฅเคฏเคพเคจ เคฆเฅ‡เค‚ เค•เคฟ เคชเฅเคฐเคพเคฐเค‚เคญ เคฎเฅ‡เค‚ เคชเฅเคฐเคคเฅเคฏเฅ‡เค• เคถเคฌเฅเคฆ เค•เฅ€ เคธเฅเคฅเคฟเคคเคฟ "เคฏเคพเคฆเฅƒเคšเฅเค›เคฟเค•" เคฐเฅ‚เคช เคธเฅ‡ เคชเฅเคฐเคพเคฐเค‚เคญ เค•เฅ€ เคœเคพเคคเฅ€ เคนเฅˆ เค”เคฐ เคฏเฅ‡ เคธเฅเคฅเคฟเคคเคฟเคฏเคพเค เคชเฅเคฐเคถเคฟเค•เฅเคทเคฟเคค เค•เคฐเคจเฅ‡ เคฏเฅ‹เค—เฅเคฏ เคชเฅˆเคฐเคพเคฎเฅ€เคŸเคฐ เคนเฅˆเค‚ (เคชเฅเคฐเคถเคฟเค•เฅเคทเคฃ เค•เฅ‡ เคฆเฅŒเคฐเคพเคจ เคธเฅเคงเคพเคฐเคฟเคค เคนเฅ‹เค‚เค—เฅ€)เฅค

เค‡เคธเค•เฅ‡ เค…เคฒเคพเคตเคพ, เคŸเฅ‹เค•เคจ เคเคฎเฅเคฌเฅ‡เคกเคฟเค‚เค— เค•เฅ‡ เคฆเฅŒเคฐเคพเคจ เคเค• เค”เคฐ เคเคฎเฅเคฌเฅ‡เคกเคฟเค‚เค— เคชเคฐเคค เคฌเคจเคพเคˆ เคœเคพเคคเฅ€ เคนเฅˆ เคœเฅ‹ (เค‡เคธ เคฎเคพเคฎเคฒเฅ‡ เคฎเฅ‡เค‚) เคชเฅเคฐเคถเคฟเค•เฅเคทเคฃ เคตเคพเค•เฅเคฏ เคฎเฅ‡เค‚ เคถเคฌเฅเคฆ เค•เฅ€ เคจเคฟเคฐเคชเฅ‡เค•เฅเคท เคธเฅเคฅเคฟเคคเคฟ เค•เคพ เคชเฅเคฐเคคเคฟเคจเคฟเคงเคฟเคคเฅเคต เค•เคฐเคคเฅ€ เคนเฅˆเฅค เค‡เคธ เคคเคฐเคน เคตเคพเค•เฅเคฏ เคฎเฅ‡เค‚ เคตเคฟเคญเคฟเคจเฅเคจ เคธเฅเคฅเคฟเคคเคฟเคฏเฅ‹เค‚ เคฎเฅ‡เค‚ เคเค• เคถเคฌเฅเคฆ เค•เคพ เค…เคฒเค— เคชเฅเคฐเคคเคฟเคจเคฟเคงเคฟเคคเฅเคต (เค…เคฐเฅเคฅ) เคนเฅ‹เค—เคพเฅค

What Are Token Embeddings?

Token Embeddings are numerical representations of tokens in a continuous vector space. Each token in the vocabulary is associated with a unique vector of fixed dimensions. These vectors capture semantic and syntactic information about the tokens, enabling the model to understand relationships and patterns in the data.

  • Vocabulary Size: เคฎเฅ‰เคกเคฒ เค•เฅ‡ เคถเคฌเฅเคฆเค•เฅ‹เคถ เคฎเฅ‡เค‚ เค…เคฆเฅเคตเคฟเคคเฅ€เคฏ เคŸเฅ‹เค•เคจเฅ‹เค‚ (เคœเฅˆเคธเฅ‡, เคถเคฌเฅเคฆ, เค‰เคชเคถเคฌเฅเคฆ) เค•เฅ€ เค•เฅเคฒ เคธเค‚เค–เฅเคฏเคพเฅค

  • Embedding Dimensions: เคชเฅเคฐเคคเฅเคฏเฅ‡เค• เคŸเฅ‹เค•เคจ เค•เฅ‡ เคตเฅ‡เค•เฅเคŸเคฐ เคฎเฅ‡เค‚ เคธเค‚เค–เฅเคฏเคพเคคเฅเคฎเค• เคฎเคพเคจเฅ‹เค‚ (เค†เคฏเคพเคฎเฅ‹เค‚) เค•เฅ€ เคธเค‚เค–เฅเคฏเคพเฅค เค‰เคšเฅเคš เค†เคฏเคพเคฎ เค…เคงเคฟเค• เคธเฅ‚เค•เฅเคทเฅเคฎ เคœเคพเคจเค•เคพเคฐเฅ€ เค•เฅ‹ เค•เฅˆเคชเฅเคšเคฐ เค•เคฐ เคธเค•เคคเฅ‡ เคนเฅˆเค‚ เคฒเฅ‡เค•เคฟเคจ เค…เคงเคฟเค• เค—เคฃเคจเคพเคคเฅเคฎเค• เคธเค‚เคธเคพเคงเคจเฅ‹เค‚ เค•เฅ€ เค†เคตเคถเฅเคฏเค•เคคเคพ เคนเฅ‹เคคเฅ€ เคนเฅˆเฅค

Example:

  • Vocabulary Size: 6 tokens [1, 2, 3, 4, 5, 6]

  • Embedding Dimensions: 3 (x, y, z)

Initializing Token Embeddings

At the start of training, token embeddings are typically initialized with small random values. These initial values are adjusted (fine-tuned) during training to better represent the tokens' meanings based on the training data.

PyTorch Example:

import torch

# Set a random seed for reproducibility
torch.manual_seed(123)

# Create an embedding layer with 6 tokens and 3 dimensions
embedding_layer = torch.nn.Embedding(6, 3)

# Display the initial weights (embeddings)
print(embedding_layer.weight)

เค†เค‰เคŸเคชเฅเคŸ:

luaCopy codeParameter containing:
tensor([[ 0.3374, -0.1778, -0.1690],
[ 0.9178,  1.5810,  1.3010],
[ 1.2753, -0.2010, -0.1606],
[-0.4015,  0.9666, -1.1481],
[-1.1589,  0.3255, -0.6315],
[-2.8400, -0.7849, -1.4096]], requires_grad=True)

เคตเฅเคฏเคพเค–เฅเคฏเคพ:

  • เคชเฅเคฐเคคเฅเคฏเฅ‡เค• เคชเค‚เค•เฅเคคเคฟ เคถเคฌเฅเคฆเคพเคตเคฒเฅ€ เคฎเฅ‡เค‚ เคเค• เคŸเฅ‹เค•เคจ เค•เฅ‡ เคฒเคฟเค เคนเฅˆเฅค

  • เคชเฅเคฐเคคเฅเคฏเฅ‡เค• เค•เฅ‰เคฒเคฎ เคเคฎเฅเคฌเฅ‡เคกเคฟเค‚เค— เคตเฅ‡เค•เฅเคŸเคฐ เคฎเฅ‡เค‚ เคเค• เค†เคฏเคพเคฎ เค•เคพ เคชเฅเคฐเคคเคฟเคจเคฟเคงเคฟเคคเฅเคต เค•เคฐเคคเคพ เคนเฅˆเฅค

  • เค‰เคฆเคพเคนเคฐเคฃ เค•เฅ‡ เคฒเคฟเค, เค…เคจเฅเค•เฅเคฐเคฎเคพเค‚เค• 3 เคชเคฐ เคŸเฅ‹เค•เคจ เค•เคพ เคเคฎเฅเคฌเฅ‡เคกเคฟเค‚เค— เคตเฅ‡เค•เฅเคŸเคฐ [-0.4015, 0.9666, -1.1481] เคนเฅˆเฅค

เคเค• เคŸเฅ‹เค•เคจ เค•เฅ‡ เคเคฎเฅเคฌเฅ‡เคกเคฟเค‚เค— เคคเค• เคชเคนเฅเคเคšเคจเคพ:

# Retrieve the embedding for the token at index 3
token_index = torch.tensor([3])
print(embedding_layer(token_index))

เค†เค‰เคŸเคชเฅเคŸ:

tensor([[-0.4015,  0.9666, -1.1481]], grad_fn=<EmbeddingBackward0>)

เคตเฅเคฏเคพเค–เฅเคฏเคพ:

  • เค…เคจเฅเค•เฅเคฐเคฎเคพเค‚เค• 3 เคชเคฐ เคธเฅเคฅเคฟเคค เคŸเฅ‹เค•เคจ เค•เฅ‹ เคตเฅ‡เค•เฅเคŸเคฐ [-0.4015, 0.9666, -1.1481] เคฆเฅเคตเคพเคฐเคพ เคฆเคฐเฅเคถเคพเคฏเคพ เค—เคฏเคพ เคนเฅˆเฅค

  • เคฏเฅ‡ เคฎเคพเคจ เคชเฅเคฐเคถเคฟเค•เฅเคทเคจเฅ€เคฏ เคชเฅˆเคฐเคพเคฎเฅ€เคŸเคฐ เคนเฅˆเค‚ เคœเคฟเคจเฅเคนเฅ‡เค‚ เคฎเฅ‰เคกเคฒ เคชเฅเคฐเคถเคฟเค•เฅเคทเคฃ เค•เฅ‡ เคฆเฅŒเคฐเคพเคจ เคŸเฅ‹เค•เคจ เค•เฅ‡ เคธเค‚เคฆเคฐเฅเคญ เค”เคฐ เค…เคฐเฅเคฅ เค•เฅ‹ เคฌเฅ‡เคนเคคเคฐ เคขเค‚เค— เคธเฅ‡ เคฆเคฐเฅเคถเคพเคจเฅ‡ เค•เฅ‡ เคฒเคฟเค เคธเคฎเคพเคฏเฅ‹เคœเคฟเคค เค•เคฐเฅ‡เค—เคพเฅค

เคชเฅเคฐเคถเคฟเค•เฅเคทเคฃ เค•เฅ‡ เคฆเฅŒเคฐเคพเคจ เคŸเฅ‹เค•เคจ เคเคฎเฅเคฌเฅ‡เคกเคฟเค‚เค— เค•เฅˆเคธเฅ‡ เค•เคพเคฎ เค•เคฐเคคเฅ€ เคนเฅˆเค‚

เคชเฅเคฐเคถเคฟเค•เฅเคทเคฃ เค•เฅ‡ เคฆเฅŒเคฐเคพเคจ, เค‡เคจเคชเฅเคŸ เคกเฅ‡เคŸเคพ เคฎเฅ‡เค‚ เคชเฅเคฐเคคเฅเคฏเฅ‡เค• เคŸเฅ‹เค•เคจ เค•เฅ‹ เค‡เคธเค•เฅ‡ เคธเค‚เคฌเค‚เคงเคฟเคค เคเคฎเฅเคฌเฅ‡เคกเคฟเค‚เค— เคตเฅ‡เค•เฅเคŸเคฐ เคฎเฅ‡เค‚ เคชเคฐเคฟเคตเคฐเฅเคคเคฟเคค เค•เคฟเคฏเคพ เคœเคพเคคเคพ เคนเฅˆเฅค เค‡เคจ เคตเฅ‡เค•เฅเคŸเคฐเฅ‹เค‚ เค•เคพ เค‰เคชเคฏเฅ‹เค— เคฎเฅ‰เคกเคฒ เค•เฅ‡ เคญเฅ€เคคเคฐ เคตเคฟเคญเคฟเคจเฅเคจ เค—เคฃเคจเคพเค“เค‚ เคฎเฅ‡เค‚ เค•เคฟเคฏเคพ เคœเคพเคคเคพ เคนเฅˆ, เคœเฅˆเคธเฅ‡ เคงเฅเคฏเคพเคจ เคคเค‚เคคเฅเคฐ เค”เคฐ เคจเฅเคฏเฅ‚เคฐเคฒ เคจเฅ‡เคŸเคตเคฐเฅเค• เคชเคฐเคคเฅ‡เค‚เฅค

เค‰เคฆเคพเคนเคฐเคฃ เคชเคฐเคฟเคฆเฅƒเคถเฅเคฏ:

  • เคฌเฅˆเคš เค†เค•เคพเคฐ: 8 (เคเค• เคธเคพเคฅ เคธเค‚เคธเคพเคงเคฟเคค เคจเคฎเฅ‚เคจเฅ‹เค‚ เค•เฅ€ เคธเค‚เค–เฅเคฏเคพ)

  • เค…เคงเคฟเค•เคคเคฎ เค…เคจเฅเค•เฅเคฐเคฎ เคฒเค‚เคฌเคพเคˆ: 4 (เคชเฅเคฐเคคเคฟ เคจเคฎเฅ‚เคจเคพ เคŸเฅ‹เค•เคจเฅ‹เค‚ เค•เฅ€ เคธเค‚เค–เฅเคฏเคพ)

  • เคเคฎเฅเคฌเฅ‡เคกเคฟเค‚เค— เค†เคฏเคพเคฎ: 256

เคกเฅ‡เคŸเคพ เคธเค‚เคฐเคšเคจเคพ:

  • เคชเฅเคฐเคคเฅเคฏเฅ‡เค• เคฌเฅˆเคš เค•เฅ‹ เค†เค•เคพเคฐ (batch_size, max_length, embedding_dim) เค•เฅ‡ เคธเคพเคฅ 3D เคŸเฅ‡เคจเฅเคธเคฐ เค•เฅ‡ เคฐเฅ‚เคช เคฎเฅ‡เค‚ เคฆเคฐเฅเคถเคพเคฏเคพ เคœเคพเคคเคพ เคนเฅˆเฅค

  • เคนเคฎเคพเคฐเฅ‡ เค‰เคฆเคพเคนเคฐเคฃ เค•เฅ‡ เคฒเคฟเค, เค†เค•เคพเคฐ (8, 4, 256) เคนเฅ‹เค—เคพเฅค

เคฆเฅƒเคถเฅเคฏเคพเค‚เค•เคจ:

cssCopy codeBatch
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ Sample 1    โ”‚
โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”     โ”‚
โ”‚ โ”‚Tokenโ”‚ โ†’ [xโ‚โ‚, xโ‚โ‚‚, ..., xโ‚โ‚‚โ‚…โ‚†]
โ”‚ โ”‚ 1   โ”‚     โ”‚
โ”‚ โ”‚...  โ”‚     โ”‚
โ”‚ โ”‚Tokenโ”‚     โ”‚
โ”‚ โ”‚ 4   โ”‚     โ”‚
โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”˜     โ”‚
โ”‚ Sample 2    โ”‚
โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”     โ”‚
โ”‚ โ”‚Tokenโ”‚ โ†’ [xโ‚‚โ‚, xโ‚‚โ‚‚, ..., xโ‚‚โ‚‚โ‚…โ‚†]
โ”‚ โ”‚ 1   โ”‚     โ”‚
โ”‚ โ”‚...  โ”‚     โ”‚
โ”‚ โ”‚Tokenโ”‚     โ”‚
โ”‚ โ”‚ 4   โ”‚     โ”‚
โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”˜     โ”‚
โ”‚ ...         โ”‚
โ”‚ Sample 8    โ”‚
โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”     โ”‚
โ”‚ โ”‚Tokenโ”‚ โ†’ [xโ‚ˆโ‚, xโ‚ˆโ‚‚, ..., xโ‚ˆโ‚‚โ‚…โ‚†]
โ”‚ โ”‚ 1   โ”‚     โ”‚
โ”‚ โ”‚...  โ”‚     โ”‚
โ”‚ โ”‚Tokenโ”‚     โ”‚
โ”‚ โ”‚ 4   โ”‚     โ”‚
โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”˜     โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

เคตเฅเคฏเคพเค–เฅเคฏเคพ:

  • เค…เคจเฅเค•เฅเคฐเคฎ เคฎเฅ‡เค‚ เคชเฅเคฐเคคเฅเคฏเฅ‡เค• เคŸเฅ‹เค•เคจ เค•เฅ‹ 256-เค†เคฏเคพเคฎเฅ€ เคตเฅ‡เค•เฅเคŸเคฐ เคฆเฅเคตเคพเคฐเคพ เคฆเคฐเฅเคถเคพเคฏเคพ เคœเคพเคคเคพ เคนเฅˆเฅค

  • เคฎเฅ‰เคกเคฒ เค‡เคจ เคเคฎเฅเคฌเฅ‡เคกเคฟเค‚เค—เฅเคธ เค•เฅ‹ เคญเคพเคทเคพ เค•เฅ‡ เคชเฅˆเคŸเคฐเฅเคจ เคธเฅ€เค–เคจเฅ‡ เค”เคฐ เคญเคตเคฟเคทเฅเคฏเคตเคพเคฃเคฟเคฏเคพเค เค‰เคคเฅเคชเคจเฅเคจ เค•เคฐเคจเฅ‡ เค•เฅ‡ เคฒเคฟเค เคธเค‚เคธเคพเคงเคฟเคค เค•เคฐเคคเคพ เคนเฅˆเฅค

เคชเฅ‹เคœเคฟเคถเคจเคฒ เคเคฎเฅเคฌเฅ‡เคกเคฟเค‚เค—เฅเคธ: เคŸเฅ‹เค•เคจ เคเคฎเฅเคฌเฅ‡เคกเคฟเค‚เค—เฅเคธ เคฎเฅ‡เค‚ เคธเค‚เคฆเคฐเฅเคญ เคœเฅ‹เคกเคผเคจเคพ

เคœเคฌเค•เคฟ เคŸเฅ‹เค•เคจ เคเคฎเฅเคฌเฅ‡เคกเคฟเค‚เค—เฅเคธ เคตเฅเคฏเค•เฅเคคเคฟเค—เคค เคŸเฅ‹เค•เคจเฅ‹เค‚ เค•เฅ‡ เค…เคฐเฅเคฅ เค•เฅ‹ เค•เฅˆเคชเฅเคšเคฐ เค•เคฐเคคเฅ€ เคนเฅˆเค‚, เคตเฅ‡ เค…เคจเฅเค•เฅเคฐเคฎ เคฎเฅ‡เค‚ เคŸเฅ‹เค•เคจเฅ‹เค‚ เค•เฅ€ เคธเฅเคฅเคฟเคคเคฟ เค•เฅ‹ เคธเฅเคตเคพเคญเคพเคตเคฟเค• เคฐเฅ‚เคช เคธเฅ‡ เคเคจเฅเค•เฅ‹เคก เคจเคนเฅ€เค‚ เค•เคฐเคคเฅ€ เคนเฅˆเค‚เฅค เคŸเฅ‹เค•เคจเฅ‹เค‚ เค•เฅ‡ เค•เฅเคฐเคฎ เค•เฅ‹ เคธเคฎเคเคจเคพ เคญเคพเคทเคพ เค•เฅ€ เคธเคฎเค เค•เฅ‡ เคฒเคฟเค เคฎเคนเคคเฅเคตเคชเฅ‚เคฐเฅเคฃ เคนเฅˆเฅค เคฏเคนเฅ€เค‚ เคชเคฐ เคชเฅ‹เคœเคฟเคถเคจเคฒ เคเคฎเฅเคฌเฅ‡เคกเคฟเค‚เค—เฅเคธ เค•เคพ เคฎเคนเคคเฅเคต เคนเฅˆเฅค

เคชเฅ‹เคœเคฟเคถเคจเคฒ เคเคฎเฅเคฌเฅ‡เคกเคฟเค‚เค—เฅเคธ เค•เฅ€ เค†เคตเคถเฅเคฏเค•เคคเคพ เค•เฅเคฏเฅ‹เค‚ เคนเฅˆ:

  • เคŸเฅ‹เค•เคจ เค•เคพ เค•เฅเคฐเคฎ เคฎเคนเคคเฅเคตเคชเฅ‚เคฐเฅเคฃ เคนเฅˆ: เคตเคพเค•เฅเคฏเฅ‹เค‚ เคฎเฅ‡เค‚, เค…เคฐเฅเคฅ เค…เค•เฅเคธเคฐ เคถเคฌเฅเคฆเฅ‹เค‚ เค•เฅ‡ เค•เฅเคฐเคฎ เคชเคฐ เคจเคฟเคฐเฅเคญเคฐ เค•เคฐเคคเคพ เคนเฅˆเฅค เค‰เคฆเคพเคนเคฐเคฃ เค•เฅ‡ เคฒเคฟเค, "เคฌเคฟเคฒเฅเคฒเฅ€ เคšเคŸเคพเคˆ เคชเคฐ เคฌเฅˆเค เฅ€" เคฌเคจเคพเคฎ "เคšเคŸเคพเคˆ เคฌเคฟเคฒเฅเคฒเฅ€ เคชเคฐ เคฌเฅˆเค เฅ€เฅค"

  • เคเคฎเฅเคฌเฅ‡เคกเคฟเค‚เค— เค•เฅ€ เคธเฅ€เคฎเคพ: เคชเฅ‹เคœเคฟเคถเคจเคฒ เคœเคพเคจเค•เคพเคฐเฅ€ เค•เฅ‡ เคฌเคฟเคจเคพ, เคฎเฅ‰เคกเคฒ เคŸเฅ‹เค•เคจเฅ‹เค‚ เค•เฅ‹ "เคถเคฌเฅเคฆเฅ‹เค‚ เค•เคพ เคฅเฅˆเคฒเคพ" เคฎเคพเคจเคคเคพ เคนเฅˆ, เค‰เคจเค•เฅ‡ เค…เคจเฅเค•เฅเคฐเคฎ เค•เฅ€ เค…เคจเคฆเฅ‡เค–เฅ€ เค•เคฐเคคเคพ เคนเฅˆเฅค

เคชเฅ‹เคœเคฟเคถเคจเคฒ เคเคฎเฅเคฌเฅ‡เคกเคฟเค‚เค—เฅเคธ เค•เฅ‡ เคชเฅเคฐเค•เคพเคฐ:

  1. เคเคฌเฅเคธเฅ‹เคฒเฅเคฏเฅ‚เคŸ เคชเฅ‹เคœเคฟเคถเคจเคฒ เคเคฎเฅเคฌเฅ‡เคกเคฟเค‚เค—เฅเคธ:

  • เค…เคจเฅเค•เฅเคฐเคฎ เคฎเฅ‡เค‚ เคชเฅเคฐเคคเฅเคฏเฅ‡เค• เคธเฅเคฅเคฟเคคเคฟ เค•เฅ‹ เคเค• เค…เคฆเฅเคตเคฟเคคเฅ€เคฏ เคธเฅเคฅเคฟเคคเคฟ เคตเฅ‡เค•เฅเคŸเคฐ เคธเฅŒเค‚เคชเฅ‡เค‚เฅค

  • เค‰เคฆเคพเคนเคฐเคฃ: เค•เคฟเคธเฅ€ เคญเฅ€ เค…เคจเฅเค•เฅเคฐเคฎ เคฎเฅ‡เค‚ เคชเคนเคฒเคพ เคŸเฅ‹เค•เคจ เคธเคฎเคพเคจ เคชเฅ‹เคœเคฟเคถเคจเคฒ เคเคฎเฅเคฌเฅ‡เคกเคฟเค‚เค— เคฐเค–เคคเคพ เคนเฅˆ, เคฆเฅ‚เคธเคฐเคพ เคŸเฅ‹เค•เคจ เคเค• เค”เคฐ เคฐเค–เคคเคพ เคนเฅˆ, เค”เคฐ เค‡เคธเฅ€ เคคเคฐเคนเฅค

  • เคฆเฅเคตเคพเคฐเคพ เค‰เคชเคฏเฅ‹เค— เค•เคฟเคฏเคพ เค—เคฏเคพ: OpenAI เค•เฅ‡ GPT เคฎเฅ‰เคกเคฒเฅค

  1. เคฐเคฟเคฒเฅ‡เคŸเคฟเคต เคชเฅ‹เคœเคฟเคถเคจเคฒ เคเคฎเฅเคฌเฅ‡เคกเคฟเค‚เค—เฅเคธ:

  • เคŸเฅ‹เค•เคจเฅ‹เค‚ เค•เฅ‡ เคธเคพเคชเฅ‡เค•เฅเคท เคฆเฅ‚เคฐเฅ€ เค•เฅ‹ เคเคจเฅเค•เฅ‹เคก เค•เคฐเฅ‡เค‚ เคจ เค•เคฟ เค‰เคจเค•เฅ‡ เคเคฌเฅเคธเฅ‹เคฒเฅเคฏเฅ‚เคŸ เคชเฅ‹เคœเคฟเคถเคจ เค•เฅ‹เฅค

  • เค‰เคฆเคพเคนเคฐเคฃ: เคฏเคน เค‡เค‚เค—เคฟเคค เค•เคฐเฅ‡เค‚ เค•เคฟ เคฆเฅ‹ เคŸเฅ‹เค•เคจ เค•เคฟเคคเคจเฅ‡ เคฆเฅ‚เคฐ เคนเฅˆเค‚, เคšเคพเคนเฅ‡ เค‰เคจเค•เฅ‡ เคเคฌเฅเคธเฅ‹เคฒเฅเคฏเฅ‚เคŸ เคชเฅ‹เคœเคฟเคถเคจ เค…เคจเฅเค•เฅเคฐเคฎ เคฎเฅ‡เค‚ เค•เฅเคฏเคพ เคนเฅ‹เค‚เฅค

  • เคฆเฅเคตเคพเคฐเคพ เค‰เคชเคฏเฅ‹เค— เค•เคฟเคฏเคพ เค—เคฏเคพ: Transformer-XL เคœเฅˆเคธเฅ‡ เคฎเฅ‰เคกเคฒ เค”เคฐ BERT เค•เฅ‡ เค•เฅเค› เคฐเฅ‚เคชเฅค

เคชเฅ‹เคœเคฟเคถเคจเคฒ เคเคฎเฅเคฌเฅ‡เคกเคฟเค‚เค—เฅเคธ เค•เฅ‹ เค•เฅˆเคธเฅ‡ เคเค•เฅ€เค•เฅƒเคค เค•เคฟเคฏเคพ เคœเคพเคคเคพ เคนเฅˆ:

  • เคธเคฎเคพเคจ เค†เคฏเคพเคฎ: เคชเฅ‹เคœเคฟเคถเคจเคฒ เคเคฎเฅเคฌเฅ‡เคกเคฟเค‚เค—เฅเคธ เค•เคพ เค†เคฏเคพเคฎ เคŸเฅ‹เค•เคจ เคเคฎเฅเคฌเฅ‡เคกเคฟเค‚เค—เฅเคธ เค•เฅ‡ เคธเคฎเคพเคจ เคนเฅ‹เคคเคพ เคนเฅˆเฅค

  • เคœเฅ‹เคกเคผเคจเคพ: เค‡เคจเฅเคนเฅ‡เค‚ เคŸเฅ‹เค•เคจ เคเคฎเฅเคฌเฅ‡เคกเคฟเค‚เค—เฅเคธ เคฎเฅ‡เค‚ เคœเฅ‹เคกเคผเคพ เคœเคพเคคเคพ เคนเฅˆ, เคŸเฅ‹เค•เคจ เค•เฅ€ เคชเคนเคšเคพเคจ เค•เฅ‹ เคชเฅ‹เคœเคฟเคถเคจเคฒ เคœเคพเคจเค•เคพเคฐเฅ€ เค•เฅ‡ เคธเคพเคฅ เคฎเคฟเคฒเคพเค•เคฐ เคฌเคฟเคจเคพ เคธเคฎเค—เฅเคฐ เค†เคฏเคพเคฎ เค•เฅ‹ เคฌเคขเคผเคพเคเฅค

เคชเฅ‹เคœเคฟเคถเคจเคฒ เคเคฎเฅเคฌเฅ‡เคกเคฟเค‚เค—เฅเคธ เคœเฅ‹เคกเคผเคจเฅ‡ เค•เคพ เค‰เคฆเคพเคนเคฐเคฃ:

เคฎเคพเคจ เคฒเฅ€เคœเคฟเค เค•เคฟ เคเค• เคŸเฅ‹เค•เคจ เคเคฎเฅเคฌเฅ‡เคกเคฟเค‚เค— เคตเฅ‡เค•เฅเคŸเคฐ [0.5, -0.2, 0.1] เคนเฅˆ เค”เคฐ เค‡เคธเค•เคพ เคชเฅ‹เคœเคฟเคถเคจเคฒ เคเคฎเฅเคฌเฅ‡เคกเคฟเค‚เค— เคตเฅ‡เค•เฅเคŸเคฐ [0.1, 0.3, -0.1] เคนเฅˆเฅค เคฎเฅ‰เคกเคฒ เคฆเฅเคตเคพเคฐเคพ เค‰เคชเคฏเฅ‹เค— เค•เคฟเคฏเคพ เคœเคพเคจเฅ‡ เคตเคพเคฒเคพ เคธเค‚เคฏเฅเค•เฅเคค เคเคฎเฅเคฌเฅ‡เคกเคฟเค‚เค— เคนเฅ‹เค—เคพ:

Combined Embedding = Token Embedding + Positional Embedding
= [0.5 + 0.1, -0.2 + 0.3, 0.1 + (-0.1)]
= [0.6, 0.1, 0.0]

เคชเฅ‹เคœเคฟเคถเคจเคฒ เคเคฎเฅเคฌเฅ‡เคกเคฟเค‚เค— เค•เฅ‡ เคฒเคพเคญ:

  • เคธเค‚เคฆเคฐเฅเคญ เคœเคพเค—เคฐเฅ‚เค•เคคเคพ: เคฎเฅ‰เคกเคฒ เค…เคชเคจเฅ‡ เคธเฅเคฅเคพเคจเฅ‹เค‚ เค•เฅ‡ เค†เคงเคพเคฐ เคชเคฐ เคŸเฅ‹เค•เคจเฅ‹เค‚ เค•เฅ‡ เคฌเฅ€เคš เค…เค‚เคคเคฐ เค•เคฐ เคธเค•เคคเคพ เคนเฅˆเฅค

  • เค…เคจเฅเค•เฅเคฐเคฎ เคธเคฎเคเคจเคพ: เคฎเฅ‰เคกเคฒ เค•เฅ‹ เคตเฅเคฏเคพเค•เคฐเคฃ, เคตเคพเค•เฅเคฏ เคฐเคšเคจเคพ, เค”เคฐ เคธเค‚เคฆเคฐเฅเคญ-เคจเคฟเคฐเฅเคญเคฐ เค…เคฐเฅเคฅเฅ‹เค‚ เค•เฅ‹ เคธเคฎเคเคจเฅ‡ เคฎเฅ‡เค‚ เคธเค•เฅเคทเคฎ เคฌเคจเคพเคคเคพ เคนเฅˆเฅค

เค•เฅ‹เคก เค‰เคฆเคพเคนเคฐเคฃ

https://github.com/rasbt/LLMs-from-scratch/blob/main/ch02/01_main-chapter-code/ch02.ipynb เคธเฅ‡ เค•เฅ‹เคก เค‰เคฆเคพเคนเคฐเคฃ เค•เฅ‡ เคธเคพเคฅ เค†เค—เฅ‡ เคฌเคขเคผเคคเฅ‡ เคนเฅˆเค‚:

# Use previous code...

# Create dimensional emdeddings
"""
BPE uses a vocabulary of 50257 words
Let's supose we want to use 256 dimensions (instead of the millions used by LLMs)
"""

vocab_size = 50257
output_dim = 256
token_embedding_layer = torch.nn.Embedding(vocab_size, output_dim)

## Generate the dataloader like before
max_length = 4
dataloader = create_dataloader_v1(
raw_text, batch_size=8, max_length=max_length,
stride=max_length, shuffle=False
)
data_iter = iter(dataloader)
inputs, targets = next(data_iter)

# Apply embeddings
token_embeddings = token_embedding_layer(inputs)
print(token_embeddings.shape)
torch.Size([8, 4, 256]) # 8 x 4 x 256

# Generate absolute embeddings
context_length = max_length
pos_embedding_layer = torch.nn.Embedding(context_length, output_dim)

pos_embeddings = pos_embedding_layer(torch.arange(max_length))

input_embeddings = token_embeddings + pos_embeddings
print(input_embeddings.shape) # torch.Size([8, 4, 256])

เคธเค‚เคฆเคฐเฅเคญ

Last updated