वर्ल्ड मॉडल्स: दुनिया कैसे चलती है, यह सीखना
एक वर्ल्ड मॉडल यह अनुमान लगाता है कि अगर रोबोट कोई एक्शन लेता है, तो आगे क्या होगा। यह किसी सिस्टम को काम करने से पहले कल्पना करने की सुविधा देता है। इसके विचार, तरीकों और इस पर चल रही बहस के बारे में जानें।
60 सेकंड में
वर्ल्ड मॉडल्स: दुनिया कैसे चलती है, यह सीखना
एक वर्ल्ड मॉडल यह अनुमान लगाता है कि अगर रोबोट कोई एक्शन लेता है, तो आगे क्या होगा। यह किसी सिस्टम को काम करने से पहले कल्पना करने की सुविधा देता है। इसके विचार, तरीकों और इस पर…
एक्शन चुनने के दो तरीके
- सीधे सीखें: इस स्थिति में, यह करें
- एक बार सीखने के बाद तेज़ी से काम करता है
- बहुत ज़्यादा प्रैक्टिस की ज़रूरत होती है
- किसी नए लक्ष्य के बारे में आसानी से "पहले से सोचना" मुमकिन नहीं होता
- पहले सीखें कि दुनिया एक्शन्स पर कैसे प्रतिक्रिया देती है
- फिर अलग-अलग एक्शन के क्रमों की कल्पना करके योजना बनाएं
- नए लक्ष्यों के लिए उसी मॉडल का दोबारा इस्तेमाल किया जा सकता है
- योजनाएँ केवल उतनी ही अच्छी होती हैं जितने अच्छे मॉडल के अनुमान होते हैं
सीखे गए मॉडल के अंदर योजना बनाना
- 1
अनुभव इकट्ठा करना
दुनिया में काम करें, या उसे देखें, और रिकॉर्ड करें कि हर एक्शन के बाद क्या हुआ। - 2
मॉडल को सीखना
वर्तमान स्थिति और एक एक्शन से अगली स्थिति का अनुमान लगाने के लिए मॉडल को ट्रेन करें। - 3
कल्पना करना
बिना हिले-डुले, मॉडल के अंदर कई संभावित एक्शन के क्रमों को आज़माएँ। - 4
चुनना और काम करना
सोची गई सबसे अच्छी योजना के पहले हिस्से को असली दुनिया में करें। - 5
जाँचना और दोहराना
देखें कि वास्तव में क्या हुआ, योजना को सुधारें, और मॉडल को बेहतर बनाने के लिए नया डेटा जोड़ें।
Python में एक छोटा सा वर्ल्ड मॉडल
import random
from collections import Counter, defaultdict, deque
# The real world (the robot cannot see this code, it can only try actions).
SIZE, WALLS = 4, {(1, 1), (2, 1)}
MOVES = {"up": (-1, 0), "down": (1, 0), "left": (0, -1), "right": (0, 1)}
def real_world(state, action):
r, c = state[0] + MOVES[action][0], state[1] + MOVES[action][1]
if not (0 <= r < SIZE and 0 <= c < SIZE) or (r, c) in WALLS:
return state
return (r, c)
# 1. Explore at random and record what happened: (state, action) -> next state.
random.seed(0)
seen = defaultdict(Counter)
s = (0, 0)
for _ in range(2000):
a = random.choice(list(MOVES))
s2 = real_world(s, a)
seen[(s, a)][s2] += 1
s = s2
# 2. The learned world model: predict the most common outcome we saw.
def model(state, action):
outcomes = seen.get((state, action))
return outcomes.most_common(1)[0][0] if outcomes else None # None = "never tried"
# 3. Plan inside the model only (breadth-first search), no real moves needed.
def plan(start, goal):
frontier, came_from = deque([start]), {start: None}
while frontier:
s = frontier.popleft()
if s == goal:
steps = []
while came_from[s]:
s, a = came_from[s]
steps.append(a)
return steps[::-1]
for a in MOVES:
nxt = model(s, a)
if nxt is not None and nxt not in came_from:
came_from[nxt] = (s, a)
frontier.append(nxt)
return None
actions = plan((0, 0), (3, 3))
print("Plan made inside the model:", actions)
# 4. Check the plan in the real world.
s = (0, 0)
for a in actions:
s = real_world(s, a)
print("Real world ends at:", s)वीडियो प्रेडिक्शन
कई रिसर्चर्स AGI के लिए वर्ल्ड मॉडल्स को महत्वपूर्ण क्यों मानते हैं
- इंसान और जानवर भाषा सीखने से बहुत पहले, देखकर और चीज़ों के साथ तालमेल बिठाकर दुनिया के बारे में बहुत कुछ सीखते हैं।
- एक सिस्टम जो अपने एक्शन्स के नतीजों का अनुमान लगा सकता है, वह योजना बना सकता है, "क्या होगा अगर" की कल्पना कर सकता है, और गलतियाँ करने से पहले ही उनसे बच सकता है।
- सिर्फ़ टेक्स्ट के ज़रिए शायद यह पूरी तरह न समझा जा सके कि भौतिक दुनिया कैसे काम करती है, जैसा कि अभी क्या कमी है में चर्चा की गई है।
और देखें और पढ़ें
लैब
इस छोटे वर्ल्ड मॉडल को चलाएँ, इसे जानबूझकर खराब करें, और समझाएँ कि कैसे एक गलत मॉडल गलत योजना की ओर ले जाता है।
समस्या
इस पाठ के Python प्रोग्राम को worldmodel.py में कॉपी करें और इसे python3 worldmodel.py के साथ चलाएँ। इसके लिए केवल सामान्य Python की ज़रूरत है।
- इसे चलाएँ। बनाई गई योजना को लिखें और जाँचें कि असली दुनिया
(3, 3)पर ख़त्म होती है। - एक्सप्लोरेशन को
range(2000)से बदलकरrange(30)करें। इसे चलाएँ। क्या यह अभी भी कोई योजना ढूँढ पाता है? यदिplanका मानNoneआता है, तो अगला लूप क्रैश हो जाएगा; एक चेक जोड़ें जो इसके बजाय "no plan found" प्रिंट करे। एक वाक्य में समझाएँ कि क्या हुआ। - दुनिया को बदलें। मॉडल सीख लेने के बाद, स्टेप 4 से ठीक पहले,
WALLSमें(3, 1)पर एक नई दीवार जोड़ें। अब असली दुनिया मॉडल से अलग है। रोबोट कहाँ पहुँचता है? क्यों? - लिखें कि आप इसे कैसे ठीक करेंगे: जब असली नतीजा मॉडल के अनुमान से अलग हो, तो रोबोट को क्या करना चाहिए?
- कागज़ पर: गिलास में पानी डालने वाले रोबोट के लिए, ऐसी तीन चीज़ें लिखें जिनका अनुमान उसके वर्ल्ड मॉडल को लगाना चाहिए, और एक तरीका जिससे हर अनुमान गलत हो सकता है।
आपका काम तब पूरा होगा जब
कठिन सवाल
उत्तर देखने से पहले ख़ुद जवाब देने की कोशिश करें। अगर आप इनके जवाब दे सकते हैं, तो आप पाठ समझ गए हैं।
Q1जब आप कई कदम आगे की योजना बनाते हैं, तो वर्ल्ड मॉडल में छोटी-छोटी गलतियां ज़्यादा मायने क्यों रखती हैं?दिखाएं
हर कल्पित कदम पिछले कल्पित कदम से शुरू होता है, असलियत से नहीं। पहले कदम में एक छोटी सी गलती दूसरे कदम के शुरुआती बिंदु को बदल देती है, और इसी तरह गलतियां बढ़ती जाती हैं, ठीक वैसे ही जैसे behaviour cloning में distribution shift होता है। इसीलिए कई सिस्टम केवल कुछ ही कदम आगे की योजना बनाते हैं, कदम उठाते हैं, असली नतीजा देखते हैं, और फिर से योजना बनाते हैं।
Q2एक प्लानर एक चतुर रास्ता ढूंढता है जो वर्ल्ड मॉडल के अनुसार काम करता है, लेकिन असली रोबोट फेल हो जाता है। क्या हुआ होगा?दिखाएं
हो सकता है कि प्लानर ने मॉडल की किसी गलती का फायदा उठा लिया हो: एक ऐसी जगह जहां मॉडल किसी नामुमकिन चीज़ का अनुमान लगाता है, जैसे कि किसी ऐसी दीवार के आर-पार निकल जाना जो उसने कभी देखी ही न हो। किसी अधूरी समझ वाले मॉडल के हिसाब से बहुत ज़्यादा ऑप्टिमाइज़ करने पर अक्सर ठीक वही गलतियां सामने आ जाती हैं। इससे बचने के तरीकों में शामिल हैं: प्लान को ऐसी स्थितियों के करीब रखना जो मॉडल ने पहले देखी हैं, मॉडल की अनिश्चितता को मापना, और कदम-दर-कदम असलियत से प्लान की जांच करते रहना।
अक्सर पूछे जाने वाले सवाल
क्या कोई सिम्युलेटर एक वर्ल्ड मॉडल होता है?
एक तरह से, हाँ: यह अनुमान लगाता है कि आगे क्या होगा। फ़र्क यह है कि सिम्युलेटर को आमतौर पर लोग फ़िज़िक्स के समीकरणों का इस्तेमाल करके लिखते हैं, जबकि सीखा गया वर्ल्ड मॉडल डेटा से ट्रेन किया जाता है। कुछ रिसर्चर्स को उम्मीद है कि सीखे गए मॉडल्स उन प्रभावों को भी समझ सकते हैं जिन्हें हाथ से लिखना मुश्किल होता है।
हमेशा वर्ल्ड मॉडल का इस्तेमाल क्यों नहीं करते?
एक सटीक मॉडल सीखना मुश्किल होता है, और जब आप कई कदम आगे की कल्पना करते हैं तो गलतियाँ बढ़ती जाती हैं। योजना बनाने में कंप्यूटिंग का समय भी लगता है। कुछ कामों के लिए, एक सीधा मॉडल-फ्री तरीका ज़्यादा आसान होता है और बेहतर काम करता है। कई सिस्टम्स दोनों को मिलाकर इस्तेमाल करते हैं।
क्या लैंग्वेज मॉडल्स के पास वर्ल्ड मॉडल्स होते हैं?
इस पर बहस जारी है। वे साफ़ तौर पर टेक्स्ट से दुनिया के बारे में कुछ तथ्य सीख लेते हैं। वे भौतिक कारण और प्रभाव को कितना समझ पाते हैं, और वह कितना भरोसेमंद है, इस पर अभी भी रिसर्च चल रही है। किसी भी तरह के बड़े दावों से सावधान रहें।
जब रोबोट के मॉडल ने कोई स्थिति कभी न देखी हो, तब वह क्या करता है?
इस छोटे से उदाहरण में, मॉडल "कभी आज़माया नहीं" दिखाता है और प्लानर उस चाल से बचता है। असली सिस्टम्स को भी इसी तरह की ईमानदारी की ज़रूरत होती है: यह जानने का एक तरीका कि मॉडल कब अनिश्चित है, ताकि रोबोट सिर्फ़ अंदाज़े पर भरोसा करने के बजाय सावधानी से आगे बढ़े या मदद माँगे।
पाठ का टेस्ट
5 सवाल। पास होने और इस पाठ को पूरा करने के लिए 3 सही होने चाहिए (60%)।