AI · பாடம் 12 / 25 · தமிழ்
Transformer Architecture
ஒரு பகுதியைப் புரிந்துகொள்ள, சுற்றியுள்ள தகவலில் எதை கவனிக்கணும்?
உள்ளடக்கம் சரிபார்த்த நாள்: 22 அக்டோபர் 2026 · Read in English ↗
எளிமையாப் புரிஞ்சுக்கலாம்
Transformer-ல் attention உட்பட பல பகுதிகள் இருக்கும். ஒரு position-ல் இருக்கும் தகவலை உருவாக்கும்போது, மற்ற positions-லிருந்து எவ்வளவு தகவல் சேர்க்கணும் என்பதை attention weights உதவுகின்றன. Feed-forward layers, position பற்றிய தகவல் போன்றவையும் முக்கியம். Encoder, decoder, encoder–decoder என்று அமைப்புகள் மாறும். எல்லா modern AI system-மும் Transformer தான் என்று சொல்ல முடியாது. Attention weights மட்டும் பார்த்து model ஏன் ஒரு பதில் சொன்னது என்பதையும் முழுவதுமாக விளக்க முடியாது.
இந்த AI approach எப்படி வேலை செய்கிறது?
Transformer-ல் ஒரு token-ஓட representation, அருகிலோ தூரத்திலோ உள்ள relevant tokens-ஐப் பொறுத்து மாறலாம். Token முதலில் embedding-ஆக மாறும்; position பற்றிய தகவலும் சேரும். Attention பல positions-ல உள்ள தகவலைக் கலந்து கொடுக்கும். Feed-forward layers அதை மேலும் transform செய்யும். Residual connections, normalization அடுக்குகள் வழியாக computation நடக்க உதவும்.
Scaled dot-product attention-ல் learned projections மூலம் queries Q, keys K, values V உருவாகும். QKᵀ/√dₖ மூலம் similarity scores கணக்கிடுவோம். தேவையான mask போட்டு softmax செய்தால் weights கிடைக்கும். அந்த weights வைத்து values-ஐக் கலந்து output பெறுவோம். Query இங்கே என்ன தகவல் தேவை என்பதற்கான representation; key matching-க்கு உதவும்; value கலந்து எடுத்துக்கொள்ளும் தகவல். இவை learned vectors; நேரடியான database question-answer இல்லை.
Multi-head attention வேறு learned subspaces-ல் பல mixtures கணக்கிடும். Decoder next token predict செய்யும்போது எதிர்கால token-ஐப் பார்க்காமல் causal mask தடுக்கும். Encoder bidirectional context பயன்படுத்தலாம். Encoder–decoder-ல் input encoding-உடன் conditioned generation நடக்கும். Decoder-only model autoregressive-ஆக generate செய்யும். Architecture-ஐயும் training objective-ஐயும் சேர்த்துப் புரிந்துகொள்ளணும்.
சாதாரண full attention பல position pairs-ஐ ஒப்பிடுவதால் நீளமான sequence-க்கு செலவு அதிகமாகலாம். பல implementations, variants இந்த trade-off-ஐ மாற்றுகின்றன. Attention weight அதிகம் இருப்பதாலேயே அது பதிலுக்கான முழுக் காரண விளக்கம் ஆகாது. Context window நீளமாக இருப்பதாலும் எல்லா முக்கியத் தகவலையும் model சரியாகப் பயன்படுத்தும் என்று உறுதி இல்லை.
ஒவ்வொரு படியாகப் பார்க்கலாம்
- Tokens போன்ற inputs-ஐ vectors-ஆக மாற்றி, position தகவலையும் சேர்க்கிறோம்.
- Attention scores-ஐ கணக்கிட்டு normalize செய்து value vectors-ஐக் கலக்கிறோம்.
- இந்த மாற்றங்கள் layers வழியாகத் தொடரும். எந்த position-ஐப் பார்க்கலாம் என்பதை masks கட்டுப்படுத்தலாம்.
உதாரணம்: task-உடன் approach-ஐ இணைக்கலாம்
ஒரு query q = [1, 0], இரண்டு keys [1, 0], [0, 1], values [10, 0], [0, 20] என்று எடுத்துக்கலாம். Scaled scores சுமார் 0.707, 0. Softmax weights சுமார் 0.670, 0.330. அதனால் mixed value சுமார் [6.698, 6.605]. இரண்டு values-லிருந்தும் வெவ்வேறு அளவில் தகவல் சேர்ந்திருக்கிறது.
Code இந்த vector attention operation-ஐ கணக்கிடும். Vectors-ஐ நாம கையால் கொடுத்திருக்கோம். Learned projections, multiple heads, position encoding, training இதில் இல்லை. இது Transformer-ஓட ஒரு பகுதி; முழு model கிடையாது.
Algorithm பயிற்சி: கணிச்சு, மாற்றி, விளக்கலாம்
கையால் கொடுத்த vectors வைத்து ஒரு scaled dot-product attention result கணக்கிடும். Query-ஐ [0, 1] என்று மாற்றுவதற்கு முன் எந்த value-க்கு அதிக weight வரும் என்று பாருங்க. இது Transformer train செய்யாது.
import math
q = [1.0, 0.0]
keys = [[1.0, 0.0], [0.0, 1.0]]
values = [[10.0, 0.0], [0.0, 20.0]]
scores = [sum(a*b for a, b in zip(q, key)) / math.sqrt(len(q))
for key in keys]
# Subtracting the maximum improves numerical stability.
exp_scores = [math.exp(s - max(scores)) for s in scores]
weights = [e / sum(exp_scores) for e in exp_scores]
result = [sum(weights[j] * values[j][d] for j in range(len(keys)))
for d in range(len(values[0]))]
print("weights:", [round(x, 3) for x in weights])
print("mixed value:", [round(x, 3) for x in result])முதலில் கணிங்க; பிறகு output பாருங்க
weights: [0.67, 0.33] mixed value: [6.698, 6.605]
ஒரு விஷயத்தை மாற்றி இயக்கிப் பாருங்க.
இந்தப் பயிற்சிக்கு standard Python போதும். Package install அல்லது paid API தேவையில்லை. மேலே சொன்ன variable-ஐ மாற்றி, method-ல் என்ன விளைவு வருகிறது என்று விளக்கிப் பாருங்க. பிறகுதான் real data-க்கு எடுத்துச் செல்லலாம்.
Editor முழுவதும் load ஆனதும் code-ஐ ஏற்றி Run அழுத்துங்க.
இந்த இலவச editor, OneCompiler என்ற வெளிப்புறச் சேவையைப் பயன்படுத்தும். Run செய்யும் code அங்கு அனுப்பப்படும். Passwords, API keys, மாணவர்களின் private data போன்றவற்றைப் போடாதீங்க. Code வரவில்லை என்றால் editor தயாரானதும் மறுபடியும் ஏற்றுங்க.
கருத்தைப் பயன்படுத்தலாம்: உங்க புரிதலைச் சோதிங்க
விடை பார்க்கும் முன் யோசிங்க
Next-token decoder training-ல் future tokens-ஐ ஏன் மறைக்கணும்?
விடையும் காரணமும் பார்க்கலாம்
இல்லையென்றால் predict செய்ய வேண்டிய answer-ஐயே பார்த்துவிடலாம். Generation நேரத்தில் அந்தத் தகவல் கிடைக்காது. Causal mask attention-க்கு அனுமதிக்கப்பட்ட context-ஐ மட்டும் காட்டும்.
கவனிக்க வேண்டிய தவறு: எல்லா image generator-க்கும் Transformer தான், attention என்றாலே மனிதப் புரிதல் என்று சொல்ல வேண்டாம்.
அடுத்த பாடத்துக்கு முன்னாடி
- Technical பெயரை மட்டும் சொல்லாமல், கருத்தை உங்க வார்த்தைகளில் விளக்கிப் பாருங்க.
- Approach என்ன, அதன் assumptions என்ன, result-ஐ நம்ப என்ன evidence வேண்டும் என்று சொல்லிப் பாருங்க.
- பயிற்சியை முயற்சி செய்துவிட்டு, உங்க காரணத்தை விடையோடு ஒப்பிட்டுப் பாருங்க.
ஆதாரங்கள்: இன்னும் தெரிஞ்சுக்கலாம்
இந்தப் புதுப்பிப்பில் original research papers மற்றும் official documentation பயன்படுத்தப்பட்டுள்ளன. கீழே உள்ள கூடுதல் links ஆங்கிலத்தில் இருக்கும். அவற்றை முதலில் படிக்காமலேயே இந்தப் பாடத்தைப் புரிஞ்சுக்கலாம். Product versions, availability மாறலாம்.