बड़ी भाषा मॉडल दुनिया के हर कोने से अस्पष्ट तथ्य याद कर सकते हैं, लेकिन वे इतने कैसे याद करते हैं? यह पोस्ट रैखिक मानचित्र, MLP और स्व-ध्यान को अलग-अलग प्रकार की स्मृति भंडार के रूप में探讨 करता है।
एक अच्छी स्मृति भंडार की प्रमुख गुण यह है कि यह वह याद कर सकता है जिसे उसने संग्रहीत किया है। जितने अधिक यादें हम संग्रहीत करते हैं, उतनी ही अधिक हस्तक्षेप होता है जब हम एक को याद करने की कोशिश करते हैं। हस्तक्षेप-से-सिग्नल अनुपात मापता है कि अन्य यादें याद करते समय कितनी बाधा डालती हैं। एक भंडार कितनी यादें संग्रहीत कर सकता है जब तक हस्तक्षेप सिग्नल के बराबर न हो जाए, उसकी क्षमता। हम दिखाएंगे कि कैसे रैखिक परत से कुछ बेहतर, एक MLP में जाएं, जो दोनों क्षमता और याद करने में सुधार करता है, और फिर स्व-ध्यान तक जाएं, जिसका याद करना बहुत अच्छा है और संभावित रूप से अनंत संख्या में यादें संग्रहीत कर सकता है। 64-आयामी कुंजी के साथ, वह लगभग 64 यादों से बढ़कर लगभग 2,700, और एक मिलियन से अधिक है।
एक स्मृति भंडार एक फलन f है जो M यादें संग्रहीत करता है, i = 1, ..., M। प्रत्येक याद एक कुंजी-मान pair है: एक कुंजी k_i ∈ ℝ^{d_k}, जो समानता आधारित खोज के लिए उपयोग की जाती है, और एक मान v_i ∈ ℝ^{d_v}, जिसे हम पुनः प्राप्त करना चाहते हैं। f का उपयोग करने के लिए, हम इसे इनपुट x के साथ प्रश्न करते हैं, और यह एक आउटपुट f(x) याद करता है। एक अच्छी स्मृति भंडार k_i के साथ हमें प्रश्न करते समय v_i याद करता है, या k_i के समान एक अन्य वेक्टर के साथ। साहित्य में, समानता द्वारा याद करने वाले स्मृति भंडार को सहायक स्मृति कहा जाता है। सबसे बुनियादी स्मृति भंडार बाह्य गुणन स्मृति भंडार है: यह बाह्य गुणन के माध्यम से यादें संचित करता है, W = ∑_{i=1}^{M} v_i k_i^T = V^T K, जहां K ∈ ℝ^{M×d_k} की पंक्तियाँ k_i^T और V ∈ ℝ^{M×d_v} की पंक्तियाँ v_i^T हैं। एक नई याद (k, v) संग्रहीत करने के लिए, हम बस मौजूदा वज़न में vk^T जोड़ते हैं। इनपुट x के साथ स्मृति भंडार को प्रश्न करते समय, हम इनपुट को मैट्रिक्स से गुणा करते हैं: f(x) = V^T K x = ∑_{i=1}^{M} v_i (k_i^T x)। इसलिए याद करना stored keys के समानता द्वारा दिखता है: हम प्रश्न के साथ हर कुंजी की तुलना करते हैं, और समानता से भारित मानों का योग लौटाते हैं। याद करना हस्तक्षेप उठाता है: यादें संग्रहीत करना आसान है, लेकिन जब हम एक याद करने की कोशिश करते हैं तो क्या होता है? सरलता के लिए, हम मान लेते हैं कि हर कुंजी को लंबाई 1 के लिए सामान्यीकृत किया गया है, अर्थात k_j^T k_j = 1। तो f(k_j) = v_j + ∑_{i≠j} v_i (k_i^T k_j)। पहली項是我们想要的信号,第二项是其他 यादों का हस्तक्षेप।
स्रोत: Hacker News · HeadlinesBriefing द्वारा सारांशित