वितरित प्रणाली और TPU
AlphaGo की सफलता केवल एल्गोरिदम की जीत नहीं है, बल्कि इंजीनियरिंग की भी जीत है। उचित समय में मानव से परे बाजी AI को प्रशिक्षित करने के लिए, सावधानीपूर्वक डिज़ाइन की गई वितरित प्रणाली और विशेष हार्डवेयर समर्थन की आवश्यकता होती है।
यह लेख AlphaGo के पीछे की सिस्टम वास्तुकला का गहन विश्लेषण करेगा, जिसमें प्रशिक्षण प्रवाह, अनुमान वास्तुकला, समानांतर MCTS, और TPU की महत्वपूर्ण भूमिका शामिल है।
प्रशिक्षण वास्तुकला अवलोकन
मूल AlphaGo की प्रशिक्षण वास्तुकला
मूल AlphaGo (ली सेदोल को हराने वाला संस्करण) का प्रशिक्षण कई चरणों में विभाजित था, प्रत्येक चरण में अलग संसाधन कॉन्फ़िगरेशन:
AlphaGo Zero की प्रशिक्षण वास्तुकला
AlphaGo Zero ने प्रशिक्षण प्रवाह को काफी सरल बनाया, एकल एंड-टू-एंड प्रशिक्षण लूप का उपयोग करके:
इस वास्तुकला के लाभ:
- निरंतर शिक्षण: Self-play और Training एक साथ चलते हैं, प्रतीक्षा नहीं करनी पड़ती
- संसाधन दक्षता: सभी संसाधन उपयोगी कार्य कर रहे हैं
- तेज़ पुनरावृत्ति: नेटवर्क अपडेट के बाद तुरंत नया डेटा उत्पन्न
स्व-खेल वर्कस्टेशन (Self-play Workers)
कार्य आवंटन
Self-play Workers वर्तमान सबसे मजबूत नेटवर्क का उपयोग करके स्व-खेल करते हैं, प्रशिक्षण डेटा उत्पन्न करते हैं।
| कॉन्फ़िगरेशन | AlphaGo Zero |
|---|---|
| Worker संख्या | दर्जनों |
| प्रति Worker | 1-4 TPU |
| प्रति मुकाबला MCTS | 1600 सिमुलेशन |
| प्रतिदिन उत्पादन | ~100,000 मुकाबले |
कार्य प्रवाह
प्रत्येक Self-play Worker का कार्य प्रवाह:
while True:
# 1. नवीनतम नेटवर्क भार डाउनलोड
network = download_latest_checkpoint()
# 2. कई स्व-खेल मुकाबले
for game in range(batch_size):
positions = []
board = EmptyBoard()
while not board.is_terminal():
# MCTS निष्पादन
mcts = MCTS(network, board)
policy = mcts.search(num_simulations=1600)
# चाल चयन
action = sample(policy)
# रिकॉर्ड
positions.append((board.state, policy))
# चाल खेलें
board = board.play(action)
# 3. जीत-हार परिणाम प्राप्त
result = board.get_result()
# 4. डेटा अपलोड
upload_to_replay_buffer(positions, result)
लोड संतुलन
कई Workers को लोड संतुलन की आवश्यकता:
- नेटवर्क सिंक्रोनाइज़ेशन: सभी Workers एक ही नेटवर्क संस्करण का उपयोग
- डेटा संतुलन: सुनिश्चित करें कि विभिन्न Workers का डेटा उपयोग हो
- दोष सहिष्णुता: एक Worker की विफलता समग्र प्रशिक्षण को प्रभावित न करे
प्रशिक्षण वर्कस्टेशन (Training Workers)
कार्य आवंटन
Training Workers Replay Buffer से डेटा नमूना लेकर न्यूरल नेटवर्क प्रशिक्षित करते हैं।
| कॉन्फ़िगरेशन | AlphaGo Zero |
|---|---|
| Worker संख्या | 1-4 |
| प्रति Worker | 4 TPU |
| Batch Size | 2048 (प्रति TPU 512) |
| प्रशिक्षण चरण | प्रतिदिन दसियों हजार |
वितरित प्रशिक्षण
बड़े पैमाने पर प्रशिक्षण डेटा समानांतरता (Data Parallelism) का उपयोग करता है:
प्रत्येक TPU अलग mini-batch प्रोसेस करता है, स्थानीय ग्रेडिएंट गणना करता है, फिर वैश्विक पैरामीटर अपडेट के लिए एकत्रित करता है।
सिंक्रोनस बनाम असिंक्रोनस अपडेट
| अपडेट विधि | लाभ | हानि |
|---|---|---|
| सिंक्रोनस | स्थिर, पुनरुत्पादनीय | सबसे धीमे Worker की प्रतीक्षा |
| असिंक्रोनस | उच्च थ्रूपुट | ग्रेडिएंट पुरानी हो सकती है |
AlphaGo Zero सिंक्रोनस अपडेट का उपयोग करता है, प्रशिक्षण की स्थिरता सुनिश्चित करने के लिए।
TPU की भूमिका
TPU क्या है?
TPU (Tensor Processing Unit) Google द्वारा विशेष रूप से गहन शिक्षण के लिए डिज़ाइन किया गया त्वरक है:
| विशेषता | TPU | GPU | CPU |
|---|---|---|---|
| डिज़ाइन लक्ष्य | मैट्रिक्स ऑपरेशन | सामान्य समानांतर | सामान्य कंप्यूटिंग |
| सटीकता | FP16/BF16 अनुकूलित | FP32/FP16 | FP64/FP32 |
| बिजली खपत | अपेक्षाकृत कम | अधिक | सबसे अधिक |
| विलंबता | कम | मध्यम | उच्च |
TPU की वास्तुकला
TPU का कोर MXU (Matrix Multiply Unit) है:
MXU प्रत्येक चक्र में 16K गुणा-जोड़ ऑपरेशन कर सकता है, जो न्यूरल नेटवर्क के मैट्रिक्स गुणन के लिए महत्वपूर्ण है।
AlphaGo को TPU की आवश्यकता क्यों?
बाजी AI की गणना अड़चन न्यूरल नेटवर्क अनुमान में है:
| ऑपरेशन | अनुपात |
|---|---|
| न्यूरल नेटवर्क फॉरवर्ड पास | ~95% |
| MCTS ट्री ऑपरेशन | ~4% |
| अन्य | ~1% |
प्रत्येक चाल के MCTS को 1600 न्यूरल नेटवर्क अनुमान निष्पादित करने होते हैं। TPU का उच्च थ्रूपुट इसे संभव बनाता है।
TPU उपयोग का विकास
| संस्करण | प्रशिक्षण TPU | अनुमान TPU |
|---|---|---|
| AlphaGo Lee | 50 GPU | 48 TPU (v1) |
| AlphaGo Master | 4 TPU (v2) | 4 TPU (v2) |
| AlphaGo Zero | 4 TPU (v2) | 4 TPU (v2) (विस्तार योग्य) |
AlphaGo Zero द्वारा उपयोग किए गए TPU की संख्या काफी कम हो गई, यह अधिक कुशल वास्तुकला और नए TPU संस्करण के कारण है।
समानांतर MCTS और आभासी हानि
समानांतरीकरण की चुनौती
MCTS का मानक कार्यान्वयन क्रमिक है:
for i in range(num_simulations):
1. Selection: मूल से नीचे चयन
2. Expansion: पत्ती नोड विस्तार
3. Evaluation: न्यूरल नेटवर्क मूल्यांकन
4. Backup: वापस अपडेट
लेकिन न्यूरल नेटवर्क मूल्यांकन GPU/TPU अनुकूल बैच ऑपरेशन है। कई सिमुलेशन एक साथ कैसे चलाएं?
पत्ती समानांतरता (Leaf Parallelization)
सबसे सरल समानांतर विधि: कई पूर्ण सिमुलेशन एक साथ निष्पादित करें, अंत में परिणाम मर्ज करें।
समस्या: प्रत्येक सिमुलेशन मूल से शुरू होता है, एक ही पथ की दोहरी खोज होती है।
आभासी हानि (Virtual Loss)
DeepMind ने ट्री समानांतरता (Tree Parallelization) के लिए आभासी हानि तकनीक अपनाई।
मूल अवधारणा
जब एक थ्रेड किसी नोड की खोज कर रहा है, अस्थायी रूप से उस नोड का मूल्य कम करें, ताकि अन्य थ्रेड अन्य पथ चुनें।
सामान्य UCB: Q(s,a) + c * P(s,a) * sqrt(N(s)) / (1 + N(s,a))
आभासी हानि के बाद:
(Q(s,a) * N(s,a) - v * n_virtual) / (N(s,a) + n_virtual) + c * P(s,a) * sqrt(N(s)) / (1 + N(s,a) + n_virtual)
जहां:
n_virtualउस नोड की खोज कर रहे थ्रेड की संख्या हैvआभासी हानि का मान है (आमतौर पर 1 या जीत दर संबंधित मान)
कार्य प्रवाह
समय T1:
Thread 1 पथ A → B → C चुनता है
नोड C को आभासी हानि -1 मिलती है
समय T2:
Thread 2 पथ A → B → D चुनता है (क्योंकि C को "दंडित" किया गया)
नोड D को आभासी हानि -1 मिलती है
समय T3:
Thread 1 मूल्यांकन पूरा, C का वास्तविक मान अपडेट, आभासी हानि हटाई
Thread 3 अब C चुन सकता है (यदि वास्तविक मान पर्याप्त अच्छा है)
आभासी हानि के प्रभाव
| पहलू | प्रभाव |
|---|---|
| खोज विविधता | विभिन्न पथों की खोज को बाध्य करना |
| बैच दक्षता | कई पत्ती नोड एक साथ मूल्यांकन |
| अभिसरण | आभासी हानि अंततः वास्तविक मान से बदली जाती है, अभिसरण प्रभावित नहीं |
बैच न्यूरल नेटवर्क मूल्यांकन
आभासी हानि के माध्यम से, कई मूल्यांकन योग्य पत्ती नोड एकत्र करके बैच अनुमान किया जा सकता है:
TPU की बैच अनुमान दक्षता एकल अनुमान से कहीं अधिक है, जो समानांतर MCTS को संभव बनाती है।
अनुमान वास्तुकला
मुकाबले के समय कॉन्फ़िगरेशन
आधिकारिक मुकाबलों में AlphaGo की अनुमान वास्तुकला:
| संस्करण | हार्डवेयर कॉन्फ़िगरेशन |
|---|---|
| AlphaGo Fan | 176 GPU |
| AlphaGo Lee | 48 TPU + कई सर्वर |
| AlphaGo Master | 4 TPU |
| AlphaGo Zero | 4 TPU (विस्तार योग्य) |
वितरित अनुमान प्रवाह
मुकाबले के समय अनुमान प्रवाह (AlphaGo Lee उदाहरण):
सोच समय प्रबंधन
AlphaGo की समय प्रबंधन रणनीति:
| स्थिति | सोच समय | MCTS संख्या |
|---|---|---|
| शुरुआती (जोसेकी) | छोटा | ~10,000 |
| मध्य खेल (जटिल) | लंबा | ~100,000 |
| सरल स्थिति | छोटा | ~5,000 |
| समय दबाव | निश्चित | ~1,600 |
अधिक MCTS सिमुलेशन आमतौर पर बेहतर चाल गुणवत्ता का अर्थ है।
संचार और सिंक्रोनाइज़ेशन
डेटा प्रारूप
प्रशिक्षण डेटा का संचरण प्रारूप:
message TrainingExample {
// बोर्ड स्थिति (17 × 19 × 19)
repeated float board_planes = 1;
// MCTS खोज परिणाम (362)
repeated float mcts_policy = 2;
// जीत-हार परिणाम (1 = वर्तमान पक्ष जीता, -1 = वर्तमान पक्ष हारा)
float game_result = 3;
}
नेटवर्क बैंडविड्थ आवश्यकता
| डेटा प्रवाह | आकार | आवृत्ति |
|---|---|---|
| प्रशिक्षण नमूना | ~10 KB/नमूना | प्रति सेकंड हजारों |
| नेटवर्क भार | ~200 MB | प्रति घंटा कई बार |
| नियंत्रण संदेश | < 1 KB | निरंतर |
कुल बैंडविड्थ आवश्यकता: ~100 Mbps (आंतरिक नेटवर्क पर्याप्त)
विफलता प्रबंधन
वितरित प्रणाली की विफलता प्रबंधन:
| विफलता प्रकार | प्रबंधन विधि |
|---|---|
| Worker विफल | पुनः आरंभ, नवीनतम checkpoint से जारी |
| नेटवर्क डिस्कनेक्ट | डेटा बफर, पुनः कनेक्ट के बाद भेजें |
| TPU विफल | स्वचालित रूप से बैकअप TPU पर स्विच |
| डेटा भ्रष्ट | सत्यापन के बाद त्यागें, पुनः उत्पन्न |
लागत विश्लेषण
हार्डवेयर लागत अनुमान
Google Cloud की TPU मूल्य निर्धारण के आधार पर AlphaGo Zero की प्रशिक्षण लागत अनुमान:
| संसाधन | मात्रा | प्रति घंटा मूल्य | प्रति दिन कुल |
|---|---|---|---|
| TPU v2 Pod | 4 | ~$32 | ~$3,000 |
| उच्च मेमोरी VM | कई | ~$5 | ~$500 |
| स्टोरेज | 10 TB | ~$0.02/GB | ~$200 |
| नेटवर्क | - | शामिल | - |
प्रति दिन लगभग 150,000।
नोट: यह 2017 का अनुमान है, Google की सहायक के रूप में DeepMind को आंतरिक छूट मिल सकती है।
मानव प्रशिक्षण से तुलना
| पहलू | AlphaGo Zero | मानव पेशेवर खिलाड़ी |
|---|---|---|
| पेशेवर स्तर तक पहुंचना | 2 दिन | 10-15 वर्ष |
| प्रशिक्षण लागत | ~$7,500 | लाखों (शुल्क, जीवन व्यय, अवसर लागत) |
| चालू लागत | बिजली | जीवन व्यय |
| प्रतिकृति | पूर्ण प्रतिकृति | प्रतिकृति नहीं |
बेशक, यह तुलना पूर्णतः उचित नहीं है—मानव बाजी सीखने की प्रक्रिया में केवल बाजी ही नहीं सीखते।
अनुमान लागत
आधिकारिक मुकाबले की अनुमान लागत:
| कॉन्फ़िगरेशन | प्रति मुकाबला लागत |
|---|---|
| 48 TPU (AlphaGo Lee) | ~$500 |
| 4 TPU (AlphaGo Zero) | ~$50 |
| एकल GPU (KataGo) | ~$1 |
तकनीकी प्रगति के साथ अनुमान लागत में उल्लेखनीय कमी।
तकनीकी विकास
AlphaGo से AlphaZero तक
| पहलू | AlphaGo Lee | AlphaGo Zero | AlphaZero |
|---|---|---|---|
| प्रशिक्षण TPU | 50+ GPU → TPU | 4 TPU | 4 TPU |
| अनुमान TPU | 48 TPU | 4 TPU | 4 TPU |
| MCTS/चाल | ~100,000 | ~1,600 | ~800 |
| प्रशिक्षण समय | महीने | 40 दिन | घंटे-दिन |
दक्षता में लगभग 100 गुना सुधार।
ओपन सोर्स समुदाय पर प्रभाव
AlphaGo की वास्तुकला ने कई ओपन सोर्स परियोजनाओं को प्रेरित किया:
| परियोजना | विशेषताएं |
|---|---|
| Leela Zero | समुदाय वितरित प्रशिक्षण, AlphaGo Zero पुनरुत्पादन |
| KataGo | एकल GPU कुशल प्रशिक्षण, AlphaGo Zero से आगे |
| ELF OpenGo | Facebook ओपन सोर्स, PyTorch उपयोग |
| Minigo | Google ओपन सोर्स, TensorFlow उपयोग |
इन परियोजनाओं ने सामान्य शोधकर्ताओं को भी शक्तिशाली बाजी AI प्रशिक्षित करने में सक्षम बनाया।
एनिमेशन संदर्भ
इस लेख में शामिल मुख्य अवधारणाएं और एनिमेशन संख्या:
| संख्या | अवधारणा | भौतिकी/गणित समतुल्य |
|---|---|---|
| 🎬 C9 | समानांतर MCTS | बहु-पिंड समस्या |
| 🎬 E9 | वितरित प्रशिक्षण | वितरित कंप्यूटिंग |
| 🎬 C5 | आभासी हानि | प्रतिकर्षण बल |
| 🎬 D15 | बैच अनुमान | वेक्टराइज़्ड गणना |
आगे पढ़ें
- पिछला लेख: शून्य से प्रशिक्षण की प्रक्रिया — प्रशिक्षण वक्र का विस्तृत विश्लेषण
- अगला लेख: AlphaGo की विरासत — AI क्षेत्र पर AlphaGo का गहरा प्रभाव
- संबंधित लेख: MCTS और न्यूरल नेटवर्क का संयोजन — MCTS की बुनियादी जानकारी
संदर्भ सामग्री
- Silver, D., et al. (2017). "Mastering the game of Go without human knowledge." Nature, 550, 354-359.
- Jouppi, N., et al. (2017). "In-Datacenter Performance Analysis of a Tensor Processing Unit." ISCA 2017.
- Dean, J., et al. (2012). "Large Scale Distributed Deep Networks." NeurIPS 2012.
- Chaslot, G., et al. (2008). "Parallel Monte-Carlo Tree Search." CIG 2008.
- Segal, R. (2010). "On the Scalability of Parallel UCT." CIG 2010.