2 पॉइंट द्वारा GN⁺ 2023-07-12 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • लगभग 1.8 ट्रिलियन parameters और 120 layers वाला एक विशाल language model, जो GPT-3 की तुलना में 10 गुना से भी बड़ा है
  • 16 experts वाली Mixture of Experts(MoE) संरचना, जिसमें हर forward pass में केवल 2 experts सक्रिय होते हैं, जिससे लागत कम होती है
  • लगभग 13 ट्रिलियन tokens पर train किया गया, जिसमें text के लिए 2 epoch और code के लिए 4 epoch लागू किए गए
  • अलग vision encoder वाली multimodal संरचना, जिसमें text pretraining के बाद लगभग 2 ट्रिलियन tokens पर अतिरिक्त fine-tuning की गई
  • लगभग 25,000 A100 पर 90~100 दिनों तक training, अनुमानित training cost लगभग 6.3 करोड़ डॉलर

parameters की संख्या और model का आकार

  • अनुमान है कि GPT-4, GPT-3 से 10 गुना से अधिक बड़ा है और कुल लगभग 1.8 ट्रिलियन parameters को 120 layers में रखता है
  • हर forward pass (1 token generation) में केवल लगभग 280B parameters और लगभग 560 TFLOPs का उपयोग होता है
    • इसकी तुलना में, अगर यह शुद्ध dense model होता तो लगभग 1.8 ट्रिलियन parameters और लगभग 3,700 TFLOP की आवश्यकता होती
  • attention के लिए shared parameters का स्तर लगभग 55B है

Mixture of Experts(MoE) संरचना

  • OpenAI ने MoE model का उपयोग करके लागत को व्यावहारिक स्तर पर रखा
    • model में 16 experts हैं, और हर expert में MLP आधार पर लगभग 111B parameters हैं
    • हर forward pass में 2 experts तक routing की जाती है
  • MoE routing

    • अकादमिक दुनिया में token-स्तरीय expert selection के लिए उन्नत routing algorithms पर बहुत चर्चा होती है, लेकिन GPT-4 की routing को फिलहाल काफी सरल माना जाता है
  • expert की संख्या चुनने का trade-off

    • MoE में हर हिस्सा हर token generation में उपयोग नहीं होता, इसलिए inference processing बहुत जटिल हो जाती है
      • कुछ हिस्से idle रह जाते हैं, जिससे user serving के समय utilization घटता है
    • research में 64~128 experts, 16 experts की तुलना में कम loss हासिल करते हैं, लेकिन यह शुद्ध research-स्तर की बात है
    • experts की संख्या बढ़ने पर अलग-अलग tasks में generalization कठिन हो जाती है और convergence भी अधिक मुश्किल होती है
      • इसी वजह से OpenAI ने सावधानीपूर्वक 16 experts चुने

dataset

  • GPT-4 को लगभग 13 ट्रिलियन tokens पर train किया गया, लेकिन यह unique tokens की संख्या नहीं बल्कि epoch दोहराव सहित कुल tokens का आंकड़ा है
    • text data पर 2 epoch और code data पर 4 epoch लागू किए गए
  • ScaleAI और internal sources से प्राप्त लाखों पंक्तियों वाले instruction fine-tuning data भी शामिल हैं
  • dataset मिश्रण की संरचना

    • 13 ट्रिलियन tokens में CommonCrawl और RefinedWeb के हिस्से क्रमशः 5 ट्रिलियन tokens हैं
    • epoch duplication हटाने पर “अज्ञात स्रोत” वाला गुप्त data बचता है
    • अफवाह है कि इसका कुछ हिस्सा twitter, reddit और youtube से आया
      • संभावित स्रोतों के रूप में LibGen (40 लाख+ किताबें), Sci-Hub (8 करोड़+ शोधपत्र), और पूरा GitHub शामिल बताए जाते हैं
    • यह भी राय दी गई कि missing data हाथ से एकत्र किया गया university textbook dataset हो सकता है
      • txt में बदलने के बाद self-instruct के जरिए इसे instruction format में बदलना आसान होता है
      • इसी कारण GPT-4 अपने विषय से बाहर भी “स्मार्ट” लगता है
    • कुछ शोधपत्र ऐसे भी हैं जो GPT-4 में याद की गई किताबों के हिस्सों को ज़बरदस्ती निकालकर training data का अनुमान लगाने की कोशिश करते हैं
      • कुछ किताबों की जानकारी इसे बहुत अच्छी तरह है, इसलिए उनके training data में होने की संभावना मजबूत मानी जाती है, और यह Project Euler problems के unique id तक याद रखता है

GPT-4 32K context

  • pretraining चरण में 8k context length (seqlen) का उपयोग किया गया
  • 32k seqlen version, pretraining के बाद 8k model पर fine-tuning करके बनाया गया

batch size

  • cluster पर कई दिनों में batch size को धीरे-धीरे बढ़ाया गया और अंततः 6 करोड़ batch size तक पहुंचाया गया
    • क्योंकि हर expert हर token को नहीं देखता, इसलिए प्रति expert यह लगभग 75 लाख tokens के बराबर है
  • वास्तविक batch size निकालने के लिए इस संख्या को seq len से विभाजित करना होगा

parallelization strategy

  • सभी A100 GPU पर parallelization के लिए 8-way tensor parallelism का उपयोग किया गया (NVLink सीमा के कारण)
    • इसके आगे 15-way pipeline parallelism लागू किया गया
    • ZeRO Stage 1 के उपयोग की संभावना है, और block-level FSDP के उपयोग की भी संभावना है
  • FSDP का उपयोग न करने का कारण

    • संभव है कि उपलब्ध hardware infrastructure का कुछ हिस्सा पुरानी पीढ़ी का हो
      • local computing clusters में downtime से बचने के लिए infrastructure को कई “stages” में upgrade करना आम बात है

training cost

  • GPT-4 के training FLOPS लगभग 2.15e25 हैं, और इसे लगभग 25,000 A100 पर 90~100 दिनों तक, लगभग 32~36% MFU के साथ train किया गया
    • इतनी कम utilization का कारण अत्यधिक failures थे, जिनसे बार-बार checkpoint restart करना पड़ा
  • यदि A100 की लागत लगभग $1 प्रति घंटा मानी जाए, तो केवल इस training पर लगभग 6.3 करोड़ डॉलर खर्च होने का अनुमान है
    • मौजूदा समय में लगभग 8,192 H100 पर लगभग 55 दिनों में, और H100 के लिए $2 प्रति घंटा मानकर, लगभग 2,150 man डॉलर में pretraining संभव मानी जाती है

GPT-4 inference cost

  • GPT-4 की लागत 175B parameter वाले Davinci की तुलना में 3 गुना है
    • इसका कारण बड़ा cluster और काफी कम utilization है
  • लागत अनुमान: 128 A100 पर GPT-4 8k seqlen inference के लिए 1k tokens पर $0.0049 सेंट, और 128 H100 पर $0.0021 सेंट
    • यह पर्याप्त उच्च utilization और बड़े batch size को बनाए रखने की शर्त पर आधारित है

Multi-Query Attention(MQA)

  • OpenAI भी अन्य संस्थानों की तरह MQA का उपयोग करता है
    • इसमें केवल 1 head की जरूरत होती है, जिससे KV cache की memory आवश्यकता काफी कम हो जाती है
    • फिर भी 32k seqlen वाला GPT-4, 40GB A100 पर नहीं चल सकता, और 8k version में maximum batch size की सीमा रहती है

Continuous Batching

  • OpenAI ने variable batch size और continuous batching दोनों को लागू किया है
    • इससे एक सीमा तक maximum latency को स्वीकार करते हुए inference cost का optimization किया जा सकता है

vision multimodal

  • text encoder से अलग एक vision encoder को cross-attention के जरिए जोड़ा गया है, और इसकी architecture Flamingo जैसी है
    • 1.8 ट्रिलियन parameters के ऊपर अतिरिक्त parameters जोड़े गए
    • text-only pretraining के बाद लगभग 2 ट्रिलियन tokens पर अतिरिक्त fine-tuning की गई
  • vision model को शुरू से train करने की कोशिश की गई थी, लेकिन परिपक्वता की कमी के कारण जोखिम कम करने के लिए text से शुरुआत की गई
  • vision capability का मुख्य उद्देश्य web pages पढ़ने और image·video सामग्री को transcript करने वाले autonomous agents बनाना है
    • training data में rendered LaTeX/text-combined data, web page screenshots, youtube video frame sampling, और Whisper-आधारित transcription शामिल हैं

Speculative Decoding

  • GPT-4 inference में speculative decoding के उपयोग की संभावना है (यह 100% निश्चित नहीं है)
    • एक छोटे और तेज model से पहले कई tokens decode किए जाते हैं, फिर उन्हें एक बड़े oracle model में single batch के रूप में डाला जाता है
    • यदि छोटे model की भविष्यवाणी सही हो, तो बड़ा model सहमति देकर कई tokens को एक batch में decode कर देता है
    • यदि बड़ा model them अस्वीकार कर दे, तो बाकी batch को छोड़ दिया जाता है और प्रक्रिया बड़े model के साथ आगे बढ़ती है
  • हाल में GPT-4 की quality गिरने की साजिश-थ्योरी का एक संभावित कारण यह हो सकता है कि oracle model, speculative decoding model की low-probability sequences को स्वीकार कर रहा हो

inference architecture

  • inference 128 GPU cluster पर चलती है, और कई data centers में ऐसे कई clusters मौजूद हैं
    • इसमें 8-way tensor parallelism और 16-way pipeline parallelism का उपयोग होता है
    • हर 8 GPU node पर लगभग 130B parameters होते हैं
  • model में 120 layers हैं, इसलिए इसे 15 nodes में वितरित करके लोड किया जाता है
    • embedding की गणना करने वाला पहला node संभवतः कम layers रखता है
  • इन आंकड़ों के आधार पर, यदि chinchilla optimality का पालन किया गया होता तो इसे 2 गुना अधिक tokens पर train किया जाना चाहिए था, जो high-quality data जुटाने की कठिनाई की ओर संकेत करता है

1 टिप्पणियां

 
GN⁺ 2023-07-12
Hacker News की राय
  • यह पहले भी यहाँ https://news.ycombinator.com/item?id=36671588 और यहाँ https://news.ycombinator.com/item?id=36674905 पोस्ट हो चुका था
    मूल स्रोत https://www.semianalysis.com/p/gpt-4-architecture-infrastruc... है, और Twitter वाली पोस्ट शायद असली ब्लॉग पोस्ट को लगभग अपने शब्दों में दोहरा रही थी। इसलिए लगता है कि ट्वीट हटा दिया गया
    Mixture of Experts (MoE) का उपयोग होना नई और बहुत दिलचस्प बात थी, और यह कैसे काम करता है इसके बारे में और जानना चाहूँगा। implementation में बदलाव शायद लोगों द्वारा देखी गई output quality की अस्थिरता को समझा सकते हैं। यहाँ जिस vision model का ज़िक्र है, उसके बारे में भी अभी कुछ महीने पहले के कुछ demo के अलावा बहुत कम पता है, इसलिए उसके सार्वजनिक होने का इंतज़ार है

    • मुझे GPT से पूछना पड़ा कि MoE क्या है
      AI संदर्भ में “MoE” आमतौर पर “Mixture of Experts” होता है, यानी एक machine learning तकनीक जिसमें समस्या को उप-समस्याओं में बाँटा जाता है, हर उप-समस्या को एक विशेष “expert” (model) हल करता है, और फिर outputs को जोड़ा जाता है
    • संदर्भ के लिए, George Hotz कई हफ्तों से दावा कर रहे थे कि उन्हें यह हिस्सा पहले से पता था
      अगर GPT-4 के MoE उपयोग करने की बात नई थी, तो इससे उनके दावे को कुछ हद तक विश्वसनीयता मिल सकती है
    • दिलचस्प बात यह है कि अगर मैं सही समझ रहा हूँ, तो Google शुरुआती Transformer architecture के समय ही लगभग 2000 experts का उपयोग कर रहा था https://www.youtube.com/watch?v=9P_VAMyb-7k&t=6m42s [sparsely-gated mixture of experts layer]
    • हो सकता है इसे साफ तौर पर Mixture of Experts न कहा गया हो, लेकिन सवाल के हिसाब से अलग model मिलना काफी स्पष्ट था
      यह दिखाता है कि large language models, AGI से बिल्कुल अलग हैं। calculator जोड़ देना सिर्फ एक अस्थायी उपाय है, और भले ही उपयोगी हो, इससे वह science करने लायक नहीं बन जाता
    • पिछली पोस्टें हटाए गए Twitter thread और 1000-dollar subscription वाली पोस्ट के preview थीं
      कम से कम अभी के लिए यह पोस्ट मुफ्त में देखी जा सकती है
  • अगर यह सच है, तो training में 21 yottaflops लगे। मुझे याद नहीं कि मैंने आखिरी बार yotta- prefix कब देखा था
    और GPT-4 training की लागत एक साल पहले के मुकाबले एक-तिहाई रह गई है। large language model training की कीमत जिस गति से गिर रही है, वह सचमुच चौंकाने वाली है, और open source के लिए अच्छी खबर है। Google memo का यह कहना सही था कि कोई moat नहीं है

    • इसका मतलब यह नहीं कि वास्तव में बहुत कुछ बदल जाएगा। large model training जितनी सस्ती होगी, बड़ी कंपनियाँ उतने ही बड़े model बाकी सबकी तुलना में ट्रेन कर पाएँगी
      अगर चावल की थोक कीमत 0.001 डॉलर प्रति kg भी हो, तब भी अगर मेरे पास 10 लाख डॉलर हैं और आपके पास 1000 डॉलर, तो मैं आपसे 1000 गुना ज्यादा चावल खरीद सकता हूँ
    • असली moat high-quality data की प्रचुरता है
    • Google memo ने कहा था कि moat नहीं है, लेकिन 5 महीने बाद भी कोई उनकी result quality को पार नहीं कर पाया है। मेरे हिसाब से moat है
      और कई उपयोगों में, ज्यादा स्मार्ट होना बेहतर होता है। अगर कुछ सेंट ज्यादा देकर ज्यादा सटीक जवाब खरीदा जा सकता है, तो वह कुछ सेंट देना हमेशा सही रहेगा। जब तक ज्यादा hardware और ज्यादा data से बड़े और बेहतर model train किए जा सकते हैं, वही moat है
    • यह open source के लिए अच्छी खबर है, लेकिन साथ ही उकसाने वालों, trolls, विदेशी intelligence agencies, और propagandists के लिए भी अच्छी खबर है
      तकनीक पर हैरानी होती है, लेकिन इस बार यह कल्पना करना कठिन है कि भविष्य में इसका क्या मतलब होगा, और यही डराता है। शायद यही खुली वेब को मार देगा, और फिर उससे जुड़े कानून पास होंगे जो खुली वेब को दफना देंगे
  • यह कहना कि “नई GPT-4 quality गिरने की conspiracy theory शायद इसलिए है क्योंकि oracle model ने speculative decoding model के lower-probability sequences को स्वीकार किया” आखिरकार इस संभावना को मान लेना है कि अटकल सही हो सकती थी, और साथ ही एक खास mechanism भी बताना है, फिर भी मुद्दा उठाने वालों का अपमान करना और लगातार gaslighting करना है

    • किसी चीज़ को conspiracy theory कहना अपने-आप में किसी का अपमान नहीं है
      वह साबित नहीं हुई है इसलिए theory है, और लोग सोच रहे हैं कि OpenAI ने जानबूझकर अपनी service को खराब किया, इसलिए वह conspiracy theory है
  • लगता है इस व्यक्ति को पता ही नहीं कि वह क्या कह रहा है। वह Twitter पर लगातार ऐसी बकवास पोस्ट करता रहता है। ज्यादातर बस copy-paste करके थोड़ा मसाला जोड़ देता है

    • इसमें कई बातें थीं जो पहले से लोगों के अनुमान से मेल नहीं खाती थीं
      उदाहरण के लिए, MoE ठीक है, लेकिन 111 billion-parameter experts के 16 होना समझ से परे है। GPT-3 भी 175 billion parameters का था, और ऐसा नहीं लगता कि आगे base model का size घटाया जाएगा। ज्यादा plausible संख्या होगी लगभग 220 billion parameters प्रति model और 8 expert models, जिसमें कुल inference cost समान रहेगी
      13 trillion tokens training data का आंकड़ा भी जैसे हवा में से निकाला गया लगता है
    • Twitter है, इससे अलग उम्मीद भी क्यों की जाए
  • Google large language model scaling के लिए Mixture of Experts पर शोध करता रहा है। 2022 में घोषित GLaM model में 1.7 trillion parameters और 64 experts हैं
    https://icml.cc/media/icml-2022/Slides/17378.pdf

    • large language models के मामले में Google हास्यास्पद रूप से पीछे है। vision और audio machine learning models को अपने ecosystem में integrate करने का काम उन्होंने काफी अच्छा किया, लेकिन language को उन्होंने कम आंका
  • हाल की Lex Fridman interview में George Hotz ने कहा कि “Sam Altman आपको यह नहीं बताएँगे कि GPT-4 220 billion parameters का है और 16-way mixture model में 8 sets of weights का उपयोग करता है”
    Lex की प्रतिक्रिया देखकर लगा कि शायद उसे भी पता था कि यह सच है

  • यह पर्याप्त आधार वाला नहीं है। GPT-4 ठीक-ठीक कैसे काम करता है, यह सिर्फ OpenAI के कर्मचारियों को पता है, और बाकी लोग केवल अनुमान ही लगा सकते हैं

    • सिर्फ Sam Altman के सार्वजनिक बयानों को देखकर भी लगभग इसी निष्कर्ष पर पहुँचा जा सकता था। GPT-4 बड़ा है, और इसे और तेज़ बनाना मुश्किल है
      लेकिन गुप्त स्रोत और moat data में है। मैंने एक बार ऐसी अफवाह सुनी थी कि OpenAI ने competitive programming प्रतिभागियों को पैसे देकर ऐसा code लिखवाया और उस पर टिप्पणियाँ करवायीं जिनमें complexity जैसी जानकारी शामिल हो
  • यह देखकर हैरानी होती थी कि Twitter API access के लिए बहुत ज़्यादा शुल्क लेता है और scraping रोकने के उपाय भी करता है, फिर भी Thread Reader जैसी premium free service अब तक कैसे चल रही है
    पढ़ने की अनुमति वाला सबसे सस्ता API प्लान महीने के 100 डॉलर में 10,000 tweets पढ़ने देता है, इसलिए ऐसी pages on-demand बनानी हों तो लगभग 500 ही बन सकती हैं

    • हाल ही में HN पर इन apps द्वारा इस्तेमाल किए जाने वाले workaround तरीकों पर एक पोस्ट था। अभी लिंक नहीं है, लेकिन खोजोगे तो मिल जाएगा
    • शायद बात const puppeteer = require('puppeteer'); जैसी किसी चीज़ तक जाती होगी
  • इस लेख में “इसे सारे numbers पता हैं” जैसी निश्चितता की तुलना में कुछ अजीब बातें हैं
    यह कहता है, “आजकल pretraining लगभग 8192 H100 पर लगभग 55 दिनों में, और H100 के 2 डॉलर प्रति घंटा के हिसाब से 21.5 million डॉलर में संभव है,” लेकिन समझ नहीं आता कि system size और training time दोनों को मनमाने numbers से क्यों समायोजित किया जा रहा है
    यह भी कहता है कि MoE में हर token generation पर model के सभी हिस्से इस्तेमाल नहीं होते, इसलिए inference में इसे संभालना कठिन है, और कुछ हिस्से idle रहते हैं जबकि कुछ इस्तेमाल होते हैं, जिससे user service के समय utilization पर बुरा असर पड़ता है। लेकिन यह साफ नहीं है कि किस utilization की बात हो रही है। Memory? अगर inference utilization इतनी चिंता की बात है, तो क्या बस non-MoE model नहीं चलाया जा सकता?
    MQA के बारे में भी लिखा है, “इसी वजह से सिर्फ 1 head की ज़रूरत होती है और KV cache की memory capacity बहुत कम की जा सकती है,” जो क़रीब तो है लेकिन गलत है। Key और Value head केवल एक-एक चाहिए, लेकिन Query heads की संख्या वही रहती है
    मेरा अनुमान है कि किसी अपेक्षाकृत जानकार व्यक्ति ने 2020 scaling paper के formula का इस्तेमाल करके एक काल्पनिक system बनाया है, जिसमें गणित सही है। मैं भी चाहूँ तो ऐसा ही कोई लेख काफ़ी विश्वसनीय बनाकर लिख सकता हूँ, लेकिन वह मेरी क्षमता से बाहर होगा, इसलिए वह भी ऐसा ही काफ़ी क़रीब लेकिन निश्चित रूप से गलत होगा। इसलिए यह पूरा एहसास बहुत संदिग्ध लगता है

    • नहीं, लेख में MQA की व्याख्या सही है। KV cache सिर्फ Key और Value heads को cache करता है
      MQA का सार यही है कि इस sharing की वजह से KV cache सामान्य स्थिति की तुलना में heads की संख्या के अनुपात में छोटा हो जाता है। कई Query heads होने पर भी cache size पर असर नहीं पड़ता, और memory capacity तथा bandwidth दोनों में MHA decoding की सीमित करने वाली चीज़ cache ही है