FlashAttention-3 (BN)
FlashAttention-3 — এটি ট্রান্সফর্মার নিউরাল নেটওয়ার্কে attention মেকানিজম অপ্টিমাইজ করার একটি অ্যালগরিদম, যা NVIDIA Hopper (H100) আর্কিটেকচারের GPU-এর হার্ডওয়্যার সক্ষমতার সর্বোচ্চ ব্যবহারের জন্য তৈরি করা হয়েছে[1]। অ্যালগরিদমটি ২০২৪ সালে Colfax Research, Meta, NVIDIA, Georgia Tech, প্রিন্সটন বিশ্ববিদ্যালয় এবং Together AI-এর একদল গবেষক উপস্থাপন করেন। গবেষণাপত্রটি NeurIPS 2024 সম্মেলনে গৃহীত হয় এবং spotlight হিসেবে স্বীকৃত হয়[2]।
FlashAttention-3 হলো অ্যালগরিদম পরিবারের তৃতীয় পুনরাবৃত্তি, যা FlashAttention (২০২২) এবং FlashAttention-2 (২০২৩)-এর পরবর্তী সংস্করণ। এর মূল লক্ষ্য হলো গণনার নির্ভুলতা বজায় রেখে বৃহৎ ভাষা মডেল (LLM)-এর প্রশিক্ষণ ও inference উল্লেখযোগ্যভাবে ত্বরান্বিত করা।
ভূমিকা ও পটভূমি
Attention মেকানিজমের সমস্যা
ট্রান্সফর্মারের মূল উপাদান হলো self-attention মেকানিজম, তবে ইনপুট সিকোয়েন্সের দৈর্ঘ্য (n) বৃদ্ধির সাথে সাথে এর গণনাগত জটিলতা এবং মেমরি ব্যবহার দ্বিঘাতহারে (O(n²)) বৃদ্ধি পায়[1]। এটি একটি গুরুতর "বাধার জায়গা" তৈরি করে, কারণ আধুনিক GPU দ্রুত ম্যাট্রিক্স গুণনের জন্য অপ্টিমাইজ করা হলেও ঘাতীয় ফাংশনের গণনা (যেমন Softmax-এ) বহুগুণ ধীর। তাছাড়া, সরল বাস্তবায়নে GPU মেমরিতে বড় মধ্যবর্তী attention tensor সংরক্ষণ করতে হয়, যা মডেলের মাপযোগ্যতা সীমিত করে।
FlashAttention এবং FlashAttention-2
এই সমস্যা সমাধানের জন্য ২০২২ সালে FlashAttention প্রস্তাব করা হয়, যা দুটি কৌশলের মাধ্যমে ধীর গ্লোবাল মেমরি (HBM)-তে অ্যাক্সেসের পরিমাণ হ্রাস করেছিল:
- ব্লক প্রক্রিয়াকরণ (tiling): গণনাগুলো ব্লকে (টাইল) বিভক্ত করা হয়, যা দ্রুত on-chip মেমরি (SRAM)-এ প্রক্রিয়া করা হয়।
- অপারেশন একত্রীকরণ: সমস্ত অপারেশন (ম্যাট্রিক্স গুণন, Softmax) গ্লোবাল মেমরিতে মধ্যবর্তী ফলাফল না লিখে একটি GPU কার্নেলে সম্পাদিত হয়।
এটি মেমরি জটিলতা দ্বিঘাত থেকে রৈখিক করে হ্রাস করেছে এবং গণনা ২–৪ গুণ ত্বরান্বিত করেছে।
২০২৩ সালে উন্নত সংস্করণ — FlashAttention-2 উপস্থাপিত হয়, যা গণনার সমান্তরালকরণ অপ্টিমাইজ করেছিল। NVIDIA Ampere (A100) আর্কিটেকচারের GPU-তে এটি H100-এর তাত্ত্বিক সর্বোচ্চ কর্মক্ষমতার ~৭০% অর্জন করেছিল[3]। তবে আরও নতুন NVIDIA Hopper (H100) আর্কিটেকচারে এর দক্ষতা উল্লেখযোগ্যভাবে কম ছিল — প্রায় ৩৫%[1]। এর কারণ ছিল যে অ্যালগরিদমটি Hopper-এর নতুন হার্ডওয়্যার সুবিধাগুলো ব্যবহার করেনি, যা FlashAttention-3 তৈরির অনুপ্রেরণা হয়ে ওঠে।
Hopper (H100) GPU-এর নতুন হার্ডওয়্যার সক্ষমতা
NVIDIA Hopper আর্কিটেকচার বেশ কিছু নতুন ফিচার প্রদান করেছে, যা FlashAttention-3 সর্বোচ্চ কর্মক্ষমতা অর্জনের জন্য ব্যবহার করে[4]:
- WGMMA (Warpgroup Matrix Multiply-Accumulate): টেন্সর কোরের জন্য নতুন ধরনের নির্দেশনা, যা Ampere আর্কিটেকচারের তুলনায় প্রায় দ্বিগুণ কর্মক্ষমতা বৃদ্ধিসহ ম্যাট্রিক্স গুণন সম্পাদন করে।
- TMA (Tensor Memory Accelerator): একটি হার্ডওয়্যার মডিউল যা গ্লোবাল (HBM) এবং শেয়ার্ড মেমরির মধ্যে ডেটা স্থানান্তর ত্বরান্বিত করে। TMA স্বয়ংক্রিয়ভাবে অ্যাড্রেস গণনা করে, গণনামূলক কোরকে মুক্ত রাখে।
- FP8 ফরম্যাট: ৮-বিট ফ্লোটিং-পয়েন্ট ডেটা ফরম্যাটের হার্ডওয়্যার সাপোর্ট, যা FP16-এর তুলনায় তাত্ত্বিক কর্মক্ষমতা দ্বিগুণ করে, তবে সীমিত গতিশীল পরিসরের কারণে নির্ভুলতা হ্রাসের ঝুঁকি বহন করে।
FlashAttention-3-এর প্রযুক্তিগত উদ্ভাবন
অ্যালগরিদমটি Hopper আর্কিটেকচারের জন্য বিশেষভাবে তৈরি তিনটি মূল অপ্টিমাইজেশন পদ্ধতি বাস্তবায়ন করে[4]:
১. অ্যাসিঙ্ক্রোনাস এক্সিকিউশন এবং warp বিশেষায়ন
FlashAttention-3 warp-specialization নীতি ব্যবহার করে, যেখানে GPU-তে বিভিন্ন থ্রেড গ্রুপ (warps) বিভিন্ন কাজে বিশেষায়িত হয়:
- Producer warps: TMA ব্যবহার করে গ্লোবাল মেমরি থেকে ডেটা লোড করে।
- Consumer warps: টেন্সর কোরে ম্যাট্রিক্স গুণন সম্পাদন করে।
Hopper-এর হার্ডওয়্যার অ্যাসিঙ্ক্রোনি-এর সুবাদে এই অপারেশনগুলো সময়গতভাবে ওভারল্যাপ করে। যখন একটি warp গ্রুপ গণনা করছে, অন্যটি সমান্তরালে পরবর্তী ব্লকের ডেটা লোড করছে। এই পাইপলাইন পদ্ধতি (pipeline), "পিং-পং" শিডিউলিং (ping-pong scheduling) নীতিতে সংগঠিত, ধীর অপারেশনের (যেমন Softmax) বিলম্ব লুকিয়ে রাখতে এবং GPU-এর সমস্ত ফাংশনাল মডিউল সম্পূর্ণভাবে লোড করতে দেয়।
২. মেমরি অপারেশন হ্রাস
অ্যালগরিদমটি পূর্ববর্তী সংস্করণ থেকে tiling-এর ধারণা বজায় রাখে, তবে বর্তমান গণনার সমান্তরালে পরবর্তী ডেটা ব্লক অ্যাসিঙ্ক্রোনাসভাবে লোড করতে সক্রিয়ভাবে TMA ব্যবহার করে। ধীর HBM থেকে দ্রুত SRAM-এ ডেটা স্থানান্তর মূলত মূল গণনার "আড়ালে" সম্পাদিত হয়, ফলে GPU ডেটার জন্য কম অপেক্ষা করে।
৩. কম নির্ভুলতা (FP8) এবং কোয়ান্টাইজেশন ত্রুটি হ্রাস
FP8-এ রূপান্তর গতি দ্বিগুণ করে, তবে কোয়ান্টাইজেশনের কারণে উল্লেখযোগ্য নির্ভুলতা হ্রাস হতে পারে। এর বিরুদ্ধে লড়াই করতে ডেভেলপাররা incoherent processing পদ্ধতি প্রবর্তন করেছেন[4]। এর মূল বিষয়:
- Attention গণনার আগে ফিচার ভেক্টর (Q কুয়েরি এবং K কী) একটি র্যান্ডম অর্থোগোনাল ম্যাট্রিক্স (যেমন, Hadamard ম্যাট্রিক্স) দ্বারা গুণ করা হয়।
- এই রূপান্তরটি অস্বাভাবিক বড় মাপের মান (outlier) সমস্ত স্থানাঙ্ক জুড়ে "ছড়িয়ে" দেয়, তাদের বিতরণ সমান করে।
- এরপর FP8-এ কোয়ান্টাইজেশন সম্পাদিত হয়, যা এখন কম ত্রুটিতে হয়।
- যেহেতু রূপান্তরটি অর্থোগোনাল, এটি attention-এর চূড়ান্ত ফলাফল (QKᵀ) বিকৃত করে না, কারণ গুণনের সময় ম্যাট্রিক্সের প্রভাব নিরপেক্ষ হয়ে যায়।
এই কৌশলটি কোনো রূপান্তর ছাড়া FP8-এর মানক প্রয়োগের তুলনায় FP8-এ attention গণনার ত্রুটি প্রায় ২.৬ গুণ হ্রাস করতে সক্ষম হয়েছে[4]।
কর্মক্ষমতা ও গুরুত্ব
উল্লিখিত কৌশলগুলোর প্রয়োগ FlashAttention-3-কে H100 GPU-তে পূর্ববর্তী সংস্করণের তুলনায় উল্লেখযোগ্য শ্রেষ্ঠত্ব অর্জন করতে দিয়েছে:
- FlashAttention-2-এর তুলনায় ১.৫–২ গুণ ত্বরণ।
- উচ্চ GPU ব্যবহার: H100-এর তাত্ত্বিক সর্বোচ্চ কর্মক্ষমতার ~৭৫–৮৫% অর্জন করে।
- থ্রুপুট:
- হাফ-প্রিসিশনের (FP16/BF16) জন্য ৭৪০–৮৪০ TFLOPS পর্যন্ত।
- ৮-বিট নির্ভুলতা (FP8) ব্যবহারে ১.২–১.৩ PFLOPS (পেটাফ্লপস) পর্যন্ত[2]।
FlashAttention-3-এর উচ্চ দক্ষতা সরাসরি LLM-এর উন্নয়ন ও প্রয়োগকে প্রভাবিত করে:
- প্রশিক্ষণ সময় হ্রাস: Attention-এ ৭৫–১০০% ত্বরণ মডেল প্রশিক্ষণের সময় উল্লেখযোগ্যভাবে হ্রাস করে, যা সপ্তাহ বা মাস নিতে পারে।
- কনটেক্সট উইন্ডো বৃদ্ধি: মডেলগুলো কার্যকরভাবে দীর্ঘ সিকোয়েন্স (লক্ষাধিক token) প্রক্রিয়া করতে পারে, যা বড় নথি বা কোড বিশ্লেষণের জন্য গুরুত্বপূর্ণ[1]।
- সম্পদের যৌক্তিক ব্যবহার: কম GPU-তে একই কর্মক্ষমতা অর্জন বা একই হার্ডওয়্যারে বেশি গতি পাওয়া সম্ভব হয়, যা মডেল ডিপ্লয়মেন্টের খরচ কমায়।
প্রাপ্যতা ও ইন্টিগ্রেশন
লেখকরা GitHub-এ ওপেন লাইসেন্সের অধীনে FlashAttention-3-এর সোর্স কোড প্রকাশ করেছেন[4]। PyTorch এবং Hugging Face Transformers লাইব্রেরির মতো শীর্ষস্থানীয় ডিপ লার্নিং ফ্রেমওয়ার্কে এর ইন্টিগ্রেশন প্রত্যাশিত, যা প্রযুক্তিটিকে বিস্তৃত পরিসরের ডেভেলপার ও গবেষকদের কাছে সহজলভ্য করবে। পূর্ববর্তী সংস্করণগুলো ইতোমধ্যে শিল্পে ডি ফ্যাক্টো মানদণ্ড হয়ে উঠেছে, এবং FlashAttention-3 সম্ভবত এই ধারা অব্যাহত রাখবে।
তথ্যসূত্র
- GitHub-এ FlashAttention-এর অফিসিয়াল রিপোজিটরি
- FlashAttention-3 ঘোষণা সহ Together AI-এর ব্লগ
সাহিত্য
- Shah, J. et al. (2024). FlashAttention-3: Fast and Accurate Attention with Asynchrony and Low-precision. arXiv:2407.08608.
- Dao, T. (2023). FlashAttention-2: Faster Attention with Better Parallelism and Work Partitioning. arXiv:2307.08691.
- Dao, T. et al. (2022). FlashAttention: Fast and Memory-Efficient Exact Attention with IO-Awareness. arXiv:2205.14135.
- Kwon, W. et al. (2023). Efficient Memory Management for Large Language Model Serving with PagedAttention. arXiv:2309.06180.
- Ye, Z. et al. (2025). FlashInfer: Efficient and Customizable Attention Engine for LLM Inference Serving. arXiv:2501.01005.
- Chen, Y. et al. (2023). FlashDecoding++: Faster Large Language Model Inference on GPUs. arXiv:2311.01282.
- Liu, Y. et al. (2024). FastAttention: Extending FlashAttention-2 to NPUs and Low-Resource GPUs. OpenReview: 76NYyOrnfk.
- Dege, P. et al. (2025). FlashMLA-ETAP: Efficient Transpose Attention Pipeline for Accelerating MLA Inference on NVIDIA H20 GPUs. arXiv:2506.01969.
- Wang, G. et al. (2024). FlashMask: Efficient and Rich Mask Extension of FlashAttention. arXiv:2410.01359.
- Abbott, V.; Zardini, G. (2025). FlashAttention on a Napkin: A Diagrammatic Approach to Deep Learning IO-Awareness. arXiv:2412.03317.
টীকা
- ↑ 1.0 1.1 1.2 1.3 «FlashAttention-3 unleashes the power of H100 GPUs for LLMs». VentureBeat. [১]
- ↑ 2.0 2.1 Шах, Джей, и др. «FlashAttention-3: Fast and Accurate Attention with Asynchrony and Low-precision». OpenReview. [২]
- ↑ Шах, Джей, и др. «FlashAttention-3: Fast and Accurate Attention with Asynchrony and Low-precision». arXiv:2407.08608v2 [cs.LG], 15 июля 2024 г. [৩]
- ↑ 4.0 4.1 4.2 4.3 4.4 Шах, Джей, и др. «FlashAttention-3: Fast and Accurate Attention with Asynchrony and Low-precision». Together AI Blog. [৪]