4 पॉइंट द्वारा GN⁺ 2024-05-06 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • drlzh.ai एक प्रैक्टिकल डीप रिइन्फोर्समेंट लर्निंग कोर्स है, जिसमें सिर्फ पढ़ने के बजाय एल्गोरिद्म को खुद implement कराया जाता है, और इसमें MDP व tabular RL से लेकर RLHF, Decision Transformers, Dreamer और meta-learning तक शामिल हैं
  • रूट notebooks एक guided TODO-आधारित प्रैक्टिस ट्रैक हैं, और solution/ notebooks में पूरी तरह चलने वाले versions दिए गए हैं, जिन्हें अटकने पर देखा जा सकता है
  • curriculum 00-18 notebooks से बना है; foundational ट्रैक को क्रम से आगे बढ़ने के लिए डिज़ाइन किया गया है, जबकि advanced notebooks self-contained हैं, लेकिन numbering बेसिक learning path देती है
  • Docker workspace एक साथ code-server, notebooks, Python >=3.13,<3.14, Jupyter kernel, dependencies, और DRL-ZH AI Companion VS Code extension उपलब्ध कराता है
  • learners को Python, PyTorch basics, और probability, statistics, linear algebra, calculus जैसी ML math की समझ होनी चाहिए; notebooks यह मानकर चलते हैं कि आप असली training code पढ़ और modify कर सकते हैं

प्रोजेक्ट अवलोकन

  • drlzh.ai एक hands-on डीप रिइन्फोर्समेंट लर्निंग कोर्स है, जिसे एल्गोरिद्म खुद बनवाने के लिए डिज़ाइन किया गया है
  • learning scope MDP और tabular RL से शुरू होकर आगे इन विषयों तक फैलता है
    • Atari agent-आधारित एल्गोरिद्म
    • continuous-control robots
    • AlphaZero-स्टाइल planning
    • language models के लिए RLHF
    • Decision Transformers
    • VLA-स्टाइल policies
    • world models
    • Dreamer
    • meta-learning
  • रूट notebooks प्रैक्टिस ट्रैक हैं, जिनमें code को जानबूझकर guided TODO sections से बदला गया है
  • solution/ notebooks पूरी और executable versions देती हैं, ताकि learners कोर्स से बाहर जाए बिना अटके हुए हिस्सों को सुलझा सकें

curriculum की संरचना

  • कोर्स 00 से 18 तक notebooks से बना है
  • 00-07 Foundations
    • MDPs, tabular RL, DQN, REINFORCE, actor-critic methods, DDPG, TD3, SAC, PPO implement कराए जाते हैं
  • 08-10 Breaking assumptions
    • RND curiosity, multi-agent RL, और BC व IQL का उपयोग करने वाला offline RL शामिल है
  • 11 Planning
    • Monte Carlo Tree Search, self-play, और AlphaZero-स्टाइल policy/value learning शामिल है
  • 12-13 Modern AI stack
    • PPO-आधारित RLHF, DPO, GRPO, Decision Transformers, NanoVLA(DTVLA) शामिल हैं
  • 14 Production
    • TensorBoard, checkpoints, debugging, multiple seeds, Ray, Optuna शामिल हैं
  • 15-16 World models
    • SAC-आधारित MBPO और RSSM latent imagination का उपयोग करने वाले DR3AM/Dreamer शामिल हैं
  • 17-18 Meta + wrap-up
    • MAML, FOMAML, fast adaptation, और कोर्स wrap-up शामिल है
  • foundational notebooks के लिए क्रम से आगे बढ़ना माना गया है
  • advanced notebooks self-contained हैं, लेकिन numbering exploration से लेकर कोर्स capstone तक का बेसिक path देती है

DRL-ZH AI Companion

  • Docker workspace में इस कोर्स के लिए VS Code extension DRL-ZH AI Companion शामिल है
  • extension यह पहचानता है कि user किस notebook और TODO पर काम कर रहा है
  • सीधे जवाब देने के बजाय यह Socratic hints देता है
  • यह text mode और voice mode को support करता है
  • LLM key user को खुद लानी होगी
    • Gemini default है
    • OpenAI, Anthropic, Groq भी supported हैं

runtime environment और शुरुआत करने का तरीका

  • recommended setup Docker है
  • Docker नीचे दिए गए components को एक reproducible workspace में उपलब्ध कराता है
    • code-server
    • notebooks
    • Python >=3.13,<3.14
    • Jupyter kernel
    • dependencies
    • AI Companion
  • बेसिक startup प्रक्रिया
    • Docker और Git install करें, repository clone करें, फिर उस directory में जाएँ
    • Linux/macOS पर file ownership को user के अनुसार सेट करने के लिए printf "UID=$(id -u)\nGID=$(id -g)\n" > .env चलाएँ
    • default environment शुरू करें
docker compose up --build -d
  • Chromium-आधारित browser में http://localhost:8080 खोलें और Python (drl-zh) kernel चुनें
  • 00_Intro.ipynb खोलें और TODO भरना शुरू करें
  • अगर NVIDIA GPU access चाहिए, तो यह command इस्तेमाल करें
docker compose -f docker-compose.yml -f docker-compose.gpu.yml up --build -d
  • छोटा CPU-only image चाहिए तो यह command इस्तेमाल करें
docker compose -f docker-compose.yml -f docker-compose.cpu.yml up --build -d
  • अगर आप native setup पसंद करते हैं, तो MANUAL.md में Python, Poetry, VS Code, Companion निर्देश देख सकते हैं

आवश्यक ज्ञान और लाइसेंस

  • learners को नीचे दी गई चीज़ों की जानकारी होनी चाहिए
    • Python
    • PyTorch basics
    • ML के लिए ज़रूरी probability, statistics, linear algebra, calculus
  • notebooks RL खुद सिखाते हैं, लेकिन यह मानकर चलते हैं कि आप असली training code पढ़ और modify कर सकते हैं
  • लाइसेंस MIT है, और अधिक जानकारी LICENSE में है

1 टिप्पणियां

 
GN⁺ 2024-05-06
Hacker News टिप्पणियां
  • आधुनिक deep reinforcement learning सीखते समय अच्छे resources तो बहुत मिले, लेकिन theory और practice का वह balance नहीं मिला जो मेरे अनुभव के हिसाब से ठीक बैठता, इसलिए मैंने खुद बनाया और open source कर दिया
    Python notebooks की एक series में QLearning, DQN, SAC, PPO जैसे algorithms को scratch से फिर से implement किया, और इसे इस तरह बनाया कि 2018/2019 के आसपास की latest techniques तक theory और coding exercises को step-by-step follow किया जा सके
    Title Andrej Karpathy के "Neural Network: Zero To Hero" से लिया गया है, और YouTube videos बनाने का भी इरादा था, लेकिन अभी तक समय नहीं मिला
    References: https://github.com/alessiodm/drl-zh/blob/main/00_Intro.ipynb, https://karpathy.ai/zero-to-hero.html

    • जानना चाहता हूं कि यह Python पर कितना निर्भर है, या क्या सामग्री को दूसरी languages में भी follow किया जा सकता है
    • आज पहली बार शुरुआती तीन notebooks follow किए; काफी अच्छे लगे, और Atari Gymnasium पहली बार इस्तेमाल किया—संतोषजनक और मजेदार था
    • अच्छा होगा अगर latest techniques और results को अलग सेまとめ करने वाला SoTA page हो
  • अगर बाद में chapters को और expand किया जाए, तो पहले से ठीक चलने वाली सरल चीजों के बजाय जब चीजें टूटें तो क्या करें इस पर बात करना अच्छा होगा
    जैसे behavior लगातार maximum value पर stuck हो जाना, या off-policy learning में कितना भी noise डालने पर भी exploration शुरू न होना
    Basics आम तौर पर चल जाते हैं, लेकिन जब अचानक ऐसी problem आती है जिसके बारे में कोई ठीक से बात नहीं करता, तब काम आने वाली practical सामग्री और ज्यादा होनी चाहिए

    • आम सलाह कि “सही combination मिलने तक hyperparameters को adjust करो” सही है और मदद भी करती है, लेकिन problem आम तौर पर problem space और formulation, algorithm खुद, random seed के कारण performance में बड़े variance जैसी कई जगहों में छिपी होती है
      असली deep reinforcement learning applications में सफल cases से ज्यादा असफल cases मिलते हैं, और इस tutorial में भी troubleshooting, tuning और productization की तरफ कमी है
      अगर expand करने का समय मिला तो इस हिस्से को priority दूंगा: https://www.alexirpan.com/2018/02/14/rl-hard.html
  • University में reinforcement learning तीन semesters पढ़ी, लेकिन यह जानकर बहुत निराशा हुई कि modern reinforcement learning techniques Tetris में simple heuristics को भी नहीं हरा पातीं

    • Company की कुछ business problems को multi-armed bandit problem के रूप में model करके सबसे बड़ा cost 10% घटाया, और कई features में क्या काम कर रहा है और क्या नहीं, इसे समझाने वाला automated truth signal भी दिखाया
      Reinforcement learning concepts को भी दूसरे tools की तरह सही जगह इस्तेमाल करना जरूरी है
      Classes में अक्सर यह हिस्सा छूट जाता है कि powerful ideas real world में कहां काम आ सकते हैं
      Optimal policy की बात करना अच्छा है, लेकिन अगर यह नहीं समझा पाए कि इसे कहां apply किया जा सकता है, तो यह आसानी से दिलचस्प math के bundle तक सीमित रह जाता है
    • इस बात से सहमत हूं कि reinforcement learning काफी disappointing हो सकती है, और इसे सच में काम करवाना खुद में कठिन है
      फिर भी मुझे लगता है कि इसके basics और fundamentals सीखना worthwhile है
      Supervised learning, unsupervised learning और हाल में बहुत attention पाने वाली semi-supervised learning के उलट, reinforcement learning learning problem को environment से interact करने और feedback लेने वाले agent के रूप में बहुत elegant तरीके से model करती है
      आज भी RLHF जैसे LLM fine-tuning, Covariant जैसी robotics companies, और Nvidia Eureka की तरह LLM और reinforcement learning को combine करने वाली research जैसे practical success cases हैं: https://www.alexirpan.com/2018/02/14/rl-hard.html, https://blogs.nvidia.com/blog/eureka-robotics-research/
    • Reinforcement learning अभी एक अजीब middle ground में लगती है। इसे reliably काम करवाने का तरीका किसी को पक्का नहीं पता, लेकिन top machine learning researchers में से ज्यादातर इसे AI की अगली progress के लिए जरूरी component मानते दिखते हैं
  • OpenAI Gym जैसा, music generation के लिए एक deep reinforcement learning framework बनाया है
    अगर original post के algorithms test करना चाहें तो इस्तेमाल कर सकते हैं, issues और PRs भी welcome हैं
    https://github.com/chaosprint/RaveForce

  • पहले खुद deep reinforcement learning देखी थी, लेकिन agent कोई meaningful progress नहीं कर पाया, और statistics या machine learning background लगभग न होने से यह debug करना मुश्किल था कि क्या गलत हो रहा है
    इस material को follow करके देखूंगा कि क्या होता है

    • जानना चाहूंगा कि agent आखिर progress दिखाता है या नहीं, और ये notebooks थोड़ा भी मदद करते हैं या नहीं
      अगर सिर्फ यह देखना है कि algorithm सच में चलता है या नहीं, तो solution folder से कोई चलने लायक algorithm चुनकर सीधे run कर सकते हैं
      ठीक चला तो उसके बाद scratch से फिर से implement करने का मजा ले सकते हैं
    • ऐसी सामग्री शानदार है, लेकिन reinforcement learning खुद काफी dense और heavy topic है, इसलिए इसकी inherent difficulty कम करने का कोई तरीका है या नहीं, मुझे ठीक से नहीं पता
      Beginners को यह बात साफ-साफ बतानी चाहिए
      Machine learning topics, खासकर reinforcement learning से जुड़े topics में यही सबसे निराशाजनक हिस्सा है
  • कुछ साल पहले मैंने भी ऐसा ही कुछ बनाया था। PPO तक नहीं जाता और style भी अलग है
    https://learndrl.com/
    इसे बेहतर या खराब कहने का इरादा नहीं है, लेकिन learning के नजरिए से वही जानकारी कई formats में मिलना हमेशा अच्छा होता है

  • MDP example देखने के बाद, non-deterministic transition function को introduce करने के तरीके पर एक suggestion देना चाहता हूं
    मौजूदा example में non-determinism इस तरह आता है कि agent ऊपर या नीचे जाने की कोशिश करता है लेकिन गलती से left या right चला जाता है; text में यह बात पर्याप्त रूप से explain नहीं है कि agent गलती करता है, इसलिए transition() function की comment पहले थोड़ा confusing लगी
    साथ ही educational तौर पर non-determinism को agent के बजाय environment से आने वाला बताना बेहतर हो सकता है। उदाहरण के लिए, rough surface पर चलना, जहां tracks या limbs को move करने पर भी हमेशा intended result नहीं मिलता
    मौजूदा wording action से random action, और फिर random state तक जाने वाले function जैसी लगती है, जबकि definition action से random state तक जाने वाले function की है

    • Notebook में यह सच में confusing हो सकता था, और मैंने एक छोटा commit push किया है ताकि यह थोड़ा ज्यादा clear हो कि non-determinism agent के गलती से दूसरा action चुनने से नहीं, बल्कि environment dynamics की probabilistic nature से आता है
      शुरुआत में सोचा था कि videos में voiceover से text की gaps भर दूंगा, लेकिन videos बनाने का समय नहीं मिला, इसलिए फिलहाल ऐसी gaps ही ठीक कर रहा हूं
  • तीसरा notebook काफी पढ़ने के बाद ही समझ आया कि TODO marked code sections असल में reader द्वारा implement की जाने वाली coding exercises हैं, और उसके बाद आने वाले tests अपना answer check करने के लिए हैं
    Approach smart है, लेकिन शुरुआत से clear नहीं दिखा
    पहले लगा कि big picture में बाधा न आए इसलिए छोटी-मोटी details TODO छोड़ दी गई हैं, जबकि वास्तव में वही हिस्से core थे

    • मैंने सोचा नहीं था कि TODO confusing हो सकता है, और README.md में instructions update कर दिए हैं ताकि साफ लिखा हो कि वे पूरे किए जाने वाले coding sections हैं
  • Theory तो सीखी थी, लेकिन reinforcement learning को असल में इस्तेमाल करने के लिए जरूरी practical knowledge की कमी के साथ अधर में था; यह बिल्कुल उसी type का course लगता है जिसे मैं ढूंढ रहा था

    • जानना चाहूंगा कि ये notebooks कैसे मदद करते हैं, इन्हें follow करने का अनुभव कैसा रहता है, और किसी भी feedback का स्वागत है
  • अच्छा लग रहा है, README में YouTube video links जोड़ना अच्छा रहेगा

    • README में गलती थी, और अभी तक YouTube videos नहीं बना पाया हूं
      फिर भी community में interest दिख रहा है, तो बनाने की कोशिश करूंगा, और तब तक README ठीक कर दूंगा