मुख्य कंटेंट तक स्किप करें

वितरित प्रणाली और TPU

AlphaGo की सफलता केवल एल्गोरिदम की जीत नहीं है, बल्कि इंजीनियरिंग की भी जीत है। उचित समय में मानव से परे बाजी AI को प्रशिक्षित करने के लिए, सावधानीपूर्वक डिज़ाइन की गई वितरित प्रणाली और विशेष हार्डवेयर समर्थन की आवश्यकता होती है।

यह लेख AlphaGo के पीछे की सिस्टम वास्तुकला का गहन विश्लेषण करेगा, जिसमें प्रशिक्षण प्रवाह, अनुमान वास्तुकला, समानांतर MCTS, और TPU की महत्वपूर्ण भूमिका शामिल है।


प्रशिक्षण वास्तुकला अवलोकन

मूल AlphaGo की प्रशिक्षण वास्तुकला

मूल AlphaGo (ली सेदोल को हराने वाला संस्करण) का प्रशिक्षण कई चरणों में विभाजित था, प्रत्येक चरण में अलग संसाधन कॉन्फ़िगरेशन:

AlphaGo Zero की प्रशिक्षण वास्तुकला

AlphaGo Zero ने प्रशिक्षण प्रवाह को काफी सरल बनाया, एकल एंड-टू-एंड प्रशिक्षण लूप का उपयोग करके:

इस वास्तुकला के लाभ:

  1. निरंतर शिक्षण: Self-play और Training एक साथ चलते हैं, प्रतीक्षा नहीं करनी पड़ती
  2. संसाधन दक्षता: सभी संसाधन उपयोगी कार्य कर रहे हैं
  3. तेज़ पुनरावृत्ति: नेटवर्क अपडेट के बाद तुरंत नया डेटा उत्पन्न

स्व-खेल वर्कस्टेशन (Self-play Workers)

कार्य आवंटन

Self-play Workers वर्तमान सबसे मजबूत नेटवर्क का उपयोग करके स्व-खेल करते हैं, प्रशिक्षण डेटा उत्पन्न करते हैं।

कॉन्फ़िगरेशनAlphaGo Zero
Worker संख्यादर्जनों
प्रति Worker1-4 TPU
प्रति मुकाबला MCTS1600 सिमुलेशन
प्रतिदिन उत्पादन~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
प्रति Worker4 TPU
Batch Size2048 (प्रति TPU 512)
प्रशिक्षण चरणप्रतिदिन दसियों हजार

वितरित प्रशिक्षण

बड़े पैमाने पर प्रशिक्षण डेटा समानांतरता (Data Parallelism) का उपयोग करता है:

प्रत्येक TPU अलग mini-batch प्रोसेस करता है, स्थानीय ग्रेडिएंट गणना करता है, फिर वैश्विक पैरामीटर अपडेट के लिए एकत्रित करता है।

सिंक्रोनस बनाम असिंक्रोनस अपडेट

अपडेट विधिलाभहानि
सिंक्रोनसस्थिर, पुनरुत्पादनीयसबसे धीमे Worker की प्रतीक्षा
असिंक्रोनसउच्च थ्रूपुटग्रेडिएंट पुरानी हो सकती है

AlphaGo Zero सिंक्रोनस अपडेट का उपयोग करता है, प्रशिक्षण की स्थिरता सुनिश्चित करने के लिए।


TPU की भूमिका

TPU क्या है?

TPU (Tensor Processing Unit) Google द्वारा विशेष रूप से गहन शिक्षण के लिए डिज़ाइन किया गया त्वरक है:

विशेषताTPUGPUCPU
डिज़ाइन लक्ष्यमैट्रिक्स ऑपरेशनसामान्य समानांतरसामान्य कंप्यूटिंग
सटीकताFP16/BF16 अनुकूलितFP32/FP16FP64/FP32
बिजली खपतअपेक्षाकृत कमअधिकसबसे अधिक
विलंबताकममध्यमउच्च

TPU की वास्तुकला

TPU का कोर MXU (Matrix Multiply Unit) है:

MXU प्रत्येक चक्र में 16K गुणा-जोड़ ऑपरेशन कर सकता है, जो न्यूरल नेटवर्क के मैट्रिक्स गुणन के लिए महत्वपूर्ण है।

AlphaGo को TPU की आवश्यकता क्यों?

बाजी AI की गणना अड़चन न्यूरल नेटवर्क अनुमान में है:

ऑपरेशनअनुपात
न्यूरल नेटवर्क फॉरवर्ड पास~95%
MCTS ट्री ऑपरेशन~4%
अन्य~1%

प्रत्येक चाल के MCTS को 1600 न्यूरल नेटवर्क अनुमान निष्पादित करने होते हैं। TPU का उच्च थ्रूपुट इसे संभव बनाता है।

TPU उपयोग का विकास

संस्करणप्रशिक्षण TPUअनुमान TPU
AlphaGo Lee50 GPU48 TPU (v1)
AlphaGo Master4 TPU (v2)4 TPU (v2)
AlphaGo Zero4 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 Fan176 GPU
AlphaGo Lee48 TPU + कई सर्वर
AlphaGo Master4 TPU
AlphaGo Zero4 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 Pod4~$32~$3,000
उच्च मेमोरी VMकई~$5~$500
स्टोरेज10 TB~$0.02/GB~$200
नेटवर्क-शामिल-

प्रति दिन लगभग 3,700,पूर्णप्रशिक्षण(40दिन)लगभग3,700**, पूर्ण प्रशिक्षण (40 दिन) लगभग **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 LeeAlphaGo ZeroAlphaZero
प्रशिक्षण TPU50+ GPU → TPU4 TPU4 TPU
अनुमान TPU48 TPU4 TPU4 TPU
MCTS/चाल~100,000~1,600~800
प्रशिक्षण समयमहीने40 दिनघंटे-दिन

दक्षता में लगभग 100 गुना सुधार।

ओपन सोर्स समुदाय पर प्रभाव

AlphaGo की वास्तुकला ने कई ओपन सोर्स परियोजनाओं को प्रेरित किया:

परियोजनाविशेषताएं
Leela Zeroसमुदाय वितरित प्रशिक्षण, AlphaGo Zero पुनरुत्पादन
KataGoएकल GPU कुशल प्रशिक्षण, AlphaGo Zero से आगे
ELF OpenGoFacebook ओपन सोर्स, PyTorch उपयोग
MinigoGoogle ओपन सोर्स, TensorFlow उपयोग

इन परियोजनाओं ने सामान्य शोधकर्ताओं को भी शक्तिशाली बाजी AI प्रशिक्षित करने में सक्षम बनाया।


एनिमेशन संदर्भ

इस लेख में शामिल मुख्य अवधारणाएं और एनिमेशन संख्या:

संख्याअवधारणाभौतिकी/गणित समतुल्य
🎬 C9समानांतर MCTSबहु-पिंड समस्या
🎬 E9वितरित प्रशिक्षणवितरित कंप्यूटिंग
🎬 C5आभासी हानिप्रतिकर्षण बल
🎬 D15बैच अनुमानवेक्टराइज़्ड गणना

आगे पढ़ें


संदर्भ सामग्री

  1. Silver, D., et al. (2017). "Mastering the game of Go without human knowledge." Nature, 550, 354-359.
  2. Jouppi, N., et al. (2017). "In-Datacenter Performance Analysis of a Tensor Processing Unit." ISCA 2017.
  3. Dean, J., et al. (2012). "Large Scale Distributed Deep Networks." NeurIPS 2012.
  4. Chaslot, G., et al. (2008). "Parallel Monte-Carlo Tree Search." CIG 2008.
  5. Segal, R. (2010). "On the Scalability of Parallel UCT." CIG 2010.