रोबोट और वर्ल्ड मॉडलमध्यमपाठ 2628 मिनट का पाठ

वर्ल्ड मॉडल्स: दुनिया कैसे चलती है, यह सीखना

एक वर्ल्ड मॉडल यह अनुमान लगाता है कि अगर रोबोट कोई एक्शन लेता है, तो आगे क्या होगा। यह किसी सिस्टम को काम करने से पहले कल्पना करने की सुविधा देता है। इसके विचार, तरीकों और इस पर चल रही बहस के बारे में जानें।

पाठ वीडियो में

60 सेकंड में

वर्ल्ड मॉडल्स: दुनिया कैसे चलती है, यह सीखना

एक वर्ल्ड मॉडल यह अनुमान लगाता है कि अगर रोबोट कोई एक्शन लेता है, तो आगे क्या होगा। यह किसी सिस्टम को काम करने से पहले कल्पना करने की सुविधा देता है। इसके विचार, तरीकों और इस पर…

1/5
आसान शब्दों में
किसी दोस्त की तरफ गेंद फेंकने से पहले, आप मन में सोचते हैं कि वह कहाँ जाएगी। अगर आपको लगता है कि वह बहुत दूर जा रही है, तो आप उसे हल्के से फेंकते हैं। आपके दिमाग में दुनिया का एक छोटा सा मॉडल होता है। रिसर्चर्स चाहते हैं कि रोबोट्स और AI के पास भी ऐसा ही एक मॉडल हो।
एक वर्ल्ड मॉडल ऐसा मॉडल होता है जो यह अनुमान लगाता है कि दुनिया कैसे बदलेगी। अपने सबसे आसान रूप में यह इस सवाल का जवाब देता है: "अगर अभी हालात ऐसे हैं, और मैं यह एक्शन लूँ, तो आगे हालात कैसे होंगे?" लोग बिना ध्यान दिए हर समय ऐसे मॉडल्स का इस्तेमाल करते हैं: जब आप पानी डालते हैं, तो आपको पहले से ही अंदाज़ा होता है कि वह कहाँ गिरेगा।

एक्शन चुनने के दो तरीके

मॉडल-फ्री
  • सीधे सीखें: इस स्थिति में, यह करें
  • एक बार सीखने के बाद तेज़ी से काम करता है
  • बहुत ज़्यादा प्रैक्टिस की ज़रूरत होती है
  • किसी नए लक्ष्य के बारे में आसानी से "पहले से सोचना" मुमकिन नहीं होता
मॉडल-बेस्ड
  • पहले सीखें कि दुनिया एक्शन्स पर कैसे प्रतिक्रिया देती है
  • फिर अलग-अलग एक्शन के क्रमों की कल्पना करके योजना बनाएं
  • नए लक्ष्यों के लिए उसी मॉडल का दोबारा इस्तेमाल किया जा सकता है
  • योजनाएँ केवल उतनी ही अच्छी होती हैं जितने अच्छे मॉडल के अनुमान होते हैं
पिछले पाठ में Q-लर्निंग रोबोट मॉडल-फ्री था: उसने एक्शन्स के लिए वैल्यू सीखीं, न कि यह कि दुनिया कैसे काम करती है। एक मॉडल-बेस्ड सिस्टम पहले दुनिया के नियम सीखता है, फिर योजना बनाने के लिए उनका इस्तेमाल करता है।

सीखे गए मॉडल के अंदर योजना बनाना

  1. 1

    अनुभव इकट्ठा करना

    दुनिया में काम करें, या उसे देखें, और रिकॉर्ड करें कि हर एक्शन के बाद क्या हुआ।
  2. 2

    मॉडल को सीखना

    वर्तमान स्थिति और एक एक्शन से अगली स्थिति का अनुमान लगाने के लिए मॉडल को ट्रेन करें।
  3. 3

    कल्पना करना

    बिना हिले-डुले, मॉडल के अंदर कई संभावित एक्शन के क्रमों को आज़माएँ।
  4. 4

    चुनना और काम करना

    सोची गई सबसे अच्छी योजना के पहले हिस्से को असली दुनिया में करें।
  5. 5

    जाँचना और दोहराना

    देखें कि वास्तव में क्या हुआ, योजना को सुधारें, और मॉडल को बेहतर बनाने के लिए नया डेटा जोड़ें।
कुछ कदम आगे की योजना बनाना, काम करना और फिर से योजना बनाने का विचार पुराना है और इंजीनियरिंग में खूब इस्तेमाल होता है, जहाँ इसे मॉडल प्रेडिक्टिव कंट्रोल कहा जाता है। नई बात यह है कि फ़िज़िक्स के समीकरण हाथ से लिखने के बजाय, डेटा से (जिसमें सीधे कैमरे की तस्वीरें भी शामिल हैं) मॉडल को सीखा जा रहा है।

Python में एक छोटा सा वर्ल्ड मॉडल

यह प्रोग्राम बिना किसी तय क्रम के एक ग्रिड को एक्सप्लोर करता है, रिकॉर्ड करता है कि हर चाल से क्या हुआ, और उन रिकॉर्ड्स को अपने वर्ल्ड मॉडल के रूप में इस्तेमाल करता है। फिर यह केवल मॉडल का उपयोग करके एक रास्ते की योजना बनाता है, और अंत में "असली" दुनिया में उस योजना की जाँच करता है।
Learn a world model from experience, then plan inside itpython
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 के लिए वर्ल्ड मॉडल्स को महत्वपूर्ण क्यों मानते हैं

यह कई रिसर्चर्स की राय है, कोई साबित हुआ तथ्य नहीं। उनका तर्क कुछ इस तरह है:
  • इंसान और जानवर भाषा सीखने से बहुत पहले, देखकर और चीज़ों के साथ तालमेल बिठाकर दुनिया के बारे में बहुत कुछ सीखते हैं।
  • एक सिस्टम जो अपने एक्शन्स के नतीजों का अनुमान लगा सकता है, वह योजना बना सकता है, "क्या होगा अगर" की कल्पना कर सकता है, और गलतियाँ करने से पहले ही उनसे बच सकता है।
  • सिर्फ़ टेक्स्ट के ज़रिए शायद यह पूरी तरह न समझा जा सके कि भौतिक दुनिया कैसे काम करती है, जैसा कि अभी क्या कमी है में चर्चा की गई है।
दूसरों का तर्क है कि टेक्स्ट, इमेज और वीडियो पर ट्रेन किए गए बड़े मॉडल्स शायद अपने अंदर पहले से ही दुनिया की उपयोगी समझ सीख रहे हैं, और अलग से वर्ल्ड मॉडल्स की ज़रूरत नहीं है। ईमानदार जवाब यह है कि यह अभी भी रिसर्च का एक खुला सवाल है।
सावधान रहें
एक वर्ल्ड मॉडल पूरे भरोसे के साथ गलत भी हो सकता है। अगर कोई रोबोट ऐसे मॉडल के अंदर योजना बनाता है जो इस बात को लेकर गलत है कि फ़र्श कितना फिसलन भरा है, तो योजना एकदम सही लग सकती है फिर भी फेल हो सकती है। प्लानर्स मॉडल में ऐसी "कमियाँ" भी ढूँढ सकते हैं: एक्शन के ऐसे क्रम जो केवल इसलिए काम करते हैं क्योंकि मॉडल में कोई गलती है। असली दुनिया में योजनाओं की हमेशा सावधानी से जाँच करें।
इसे आज़माएँ। स्टील का चम्मच और कागज़ का नैपकिन गिराने से पहले, अंदाज़ा लगाएँ कि कौन सा पहले गिरेगा और दोनों कैसे गिरेंगे। फिर इसे करके देखें। आपका अपना वर्ल्ड मॉडल कहाँ सही था या कहाँ गलत?

और देखें और पढ़ें

लैब

इस छोटे वर्ल्ड मॉडल को चलाएँ, इसे जानबूझकर खराब करें, और समझाएँ कि कैसे एक गलत मॉडल गलत योजना की ओर ले जाता है।

~30 min

समस्या

इस पाठ के Python प्रोग्राम को worldmodel.py में कॉपी करें और इसे python3 worldmodel.py के साथ चलाएँ। इसके लिए केवल सामान्य Python की ज़रूरत है।

  1. इसे चलाएँ। बनाई गई योजना को लिखें और जाँचें कि असली दुनिया (3, 3) पर ख़त्म होती है।
  2. एक्सप्लोरेशन को range(2000) से बदलकर range(30) करें। इसे चलाएँ। क्या यह अभी भी कोई योजना ढूँढ पाता है? यदि plan का मान None आता है, तो अगला लूप क्रैश हो जाएगा; एक चेक जोड़ें जो इसके बजाय "no plan found" प्रिंट करे। एक वाक्य में समझाएँ कि क्या हुआ।
  3. दुनिया को बदलें। मॉडल सीख लेने के बाद, स्टेप 4 से ठीक पहले, WALLS में (3, 1) पर एक नई दीवार जोड़ें। अब असली दुनिया मॉडल से अलग है। रोबोट कहाँ पहुँचता है? क्यों?
  4. लिखें कि आप इसे कैसे ठीक करेंगे: जब असली नतीजा मॉडल के अनुमान से अलग हो, तो रोबोट को क्या करना चाहिए?
  5. कागज़ पर: गिलास में पानी डालने वाले रोबोट के लिए, ऐसी तीन चीज़ें लिखें जिनका अनुमान उसके वर्ल्ड मॉडल को लगाना चाहिए, और एक तरीका जिससे हर अनुमान गलत हो सकता है।

आपका काम तब पूरा होगा जब

कठिन सवाल

उत्तर देखने से पहले ख़ुद जवाब देने की कोशिश करें। अगर आप इनके जवाब दे सकते हैं, तो आप पाठ समझ गए हैं।

Q1जब आप कई कदम आगे की योजना बनाते हैं, तो वर्ल्ड मॉडल में छोटी-छोटी गलतियां ज़्यादा मायने क्यों रखती हैं?दिखाएं

हर कल्पित कदम पिछले कल्पित कदम से शुरू होता है, असलियत से नहीं। पहले कदम में एक छोटी सी गलती दूसरे कदम के शुरुआती बिंदु को बदल देती है, और इसी तरह गलतियां बढ़ती जाती हैं, ठीक वैसे ही जैसे behaviour cloning में distribution shift होता है। इसीलिए कई सिस्टम केवल कुछ ही कदम आगे की योजना बनाते हैं, कदम उठाते हैं, असली नतीजा देखते हैं, और फिर से योजना बनाते हैं।

Q2एक प्लानर एक चतुर रास्ता ढूंढता है जो वर्ल्ड मॉडल के अनुसार काम करता है, लेकिन असली रोबोट फेल हो जाता है। क्या हुआ होगा?दिखाएं

हो सकता है कि प्लानर ने मॉडल की किसी गलती का फायदा उठा लिया हो: एक ऐसी जगह जहां मॉडल किसी नामुमकिन चीज़ का अनुमान लगाता है, जैसे कि किसी ऐसी दीवार के आर-पार निकल जाना जो उसने कभी देखी ही न हो। किसी अधूरी समझ वाले मॉडल के हिसाब से बहुत ज़्यादा ऑप्टिमाइज़ करने पर अक्सर ठीक वही गलतियां सामने आ जाती हैं। इससे बचने के तरीकों में शामिल हैं: प्लान को ऐसी स्थितियों के करीब रखना जो मॉडल ने पहले देखी हैं, मॉडल की अनिश्चितता को मापना, और कदम-दर-कदम असलियत से प्लान की जांच करते रहना।

जारी रखने के लिए कृपया साइन इन करें।

अक्सर पूछे जाने वाले सवाल

क्या कोई सिम्युलेटर एक वर्ल्ड मॉडल होता है?

एक तरह से, हाँ: यह अनुमान लगाता है कि आगे क्या होगा। फ़र्क यह है कि सिम्युलेटर को आमतौर पर लोग फ़िज़िक्स के समीकरणों का इस्तेमाल करके लिखते हैं, जबकि सीखा गया वर्ल्ड मॉडल डेटा से ट्रेन किया जाता है। कुछ रिसर्चर्स को उम्मीद है कि सीखे गए मॉडल्स उन प्रभावों को भी समझ सकते हैं जिन्हें हाथ से लिखना मुश्किल होता है।

हमेशा वर्ल्ड मॉडल का इस्तेमाल क्यों नहीं करते?

एक सटीक मॉडल सीखना मुश्किल होता है, और जब आप कई कदम आगे की कल्पना करते हैं तो गलतियाँ बढ़ती जाती हैं। योजना बनाने में कंप्यूटिंग का समय भी लगता है। कुछ कामों के लिए, एक सीधा मॉडल-फ्री तरीका ज़्यादा आसान होता है और बेहतर काम करता है। कई सिस्टम्स दोनों को मिलाकर इस्तेमाल करते हैं।

क्या लैंग्वेज मॉडल्स के पास वर्ल्ड मॉडल्स होते हैं?

इस पर बहस जारी है। वे साफ़ तौर पर टेक्स्ट से दुनिया के बारे में कुछ तथ्य सीख लेते हैं। वे भौतिक कारण और प्रभाव को कितना समझ पाते हैं, और वह कितना भरोसेमंद है, इस पर अभी भी रिसर्च चल रही है। किसी भी तरह के बड़े दावों से सावधान रहें।

जब रोबोट के मॉडल ने कोई स्थिति कभी न देखी हो, तब वह क्या करता है?

इस छोटे से उदाहरण में, मॉडल "कभी आज़माया नहीं" दिखाता है और प्लानर उस चाल से बचता है। असली सिस्टम्स को भी इसी तरह की ईमानदारी की ज़रूरत होती है: यह जानने का एक तरीका कि मॉडल कब अनिश्चित है, ताकि रोबोट सिर्फ़ अंदाज़े पर भरोसा करने के बजाय सावधानी से आगे बढ़े या मदद माँगे।

पाठ का टेस्ट

5 सवाल। पास होने और इस पाठ को पूरा करने के लिए 3 सही होने चाहिए (60%)।

टेस्ट देने और अपनी प्रोग्रेस सेव करने के लिए साइन इन करें