- ในสถานการณ์ที่ ต้นทุนของ self-attention กลายเป็นคอขวดใน Transformer ที่มีคอนเท็กซ์ยาว SPECTRE ลดความซับซ้อนต่อเลเยอร์จาก O(L²) ลงเป็น O(L log L) ด้วย token mixer ที่อิงกับ FFT
- attention head แต่ละตัวถูกแทนที่ด้วยการผสานระหว่าง real FFT แบบรวดเร็ว, spectral gate ที่ปรับตามเนื้อหา, และ inverse FFT โดยยังคงโครงสร้าง Transformer เดิมไว้
- สำหรับการสร้างแบบอัตโนมัติถดถอย SPECTRE ลดภาระการคำนวณ FFT ซ้ำในแต่ละสเต็ปด้วย Prefix-FFT cache และสามารถชดเชยการสูญเสียลักษณะเฉพาะเชิงท้องถิ่นได้ด้วยโมดูล wavelet แบบเลือกใช้
- มีการเปรียบเทียบ SDPA, FlashAttention-2 และ SPECTRE บนแบ็กโบน Llama-3.2-1B พร้อมวัด throughput และ latency สำหรับ 512~128k โทเค็นบน NVIDIA A100-80GB
- SPECTRE ให้ประสิทธิภาพเทียบเท่าหรือดีกว่าค่ามาตรฐานบน PG-19 และ ImageNet-1k โดยเพิ่มพารามิเตอร์ ไม่ถึง 6% และมุ่งรองรับคอนเท็กซ์ยาวบน GPU ทั่วไป
วิธีลดต้นทุนกำลังสองของ self-attention ด้วย FFT
- Transformer ที่มีคอนเท็กซ์ยาวมีความจำเป็นสำหรับงานที่ต้องจัดการกับ โทเค็นระดับหลายหมื่น เช่น multi-turn dialogue, การสรุประดับหนังสือ, และงานวิชันความละเอียดสูง
- self-attention แบบเดิมมีต้นทุน O(n²d) ทำให้เมื่อคอนเท็กซ์ยาวขึ้น ทั้ง latency ระหว่างอนุมานและการใช้หน่วยความจำก็เพิ่มขึ้น
- SPECTRE เป็นแนวทางทดแทนแบบ drop-in ที่เปลี่ยนเลเยอร์ self-attention ให้เป็น token mixer ในโดเมนความถี่
- โปรเจ็กต์โทเค็นไปยัง orthonormal Fourier basis
- ใช้ gate แนวทแยงที่ปรับตามเนื้อหาและ low-rank gate แบบเลือกใช้
- แปลงกลับสู่พื้นที่โทเค็นด้วย inverse transform
- แก่นสำคัญคือการลดความซับซ้อนต่อเลเยอร์ลงเป็น O(n log n) โดยไม่ต้องเปลี่ยนสถาปัตยกรรมเครือข่ายส่วนรอบข้าง
องค์ประกอบของ token mixer และการรองรับการสร้าง
- องค์ประกอบที่ใช้แทน attention head ของ SPECTRE คือ fast real FFT, spectral gate, และ inverse FFT
- spectral gating ทำงานบนค่าสัมประสิทธิ์ความถี่จำนวน n/2 + 1 เพื่อคงความสามารถในการแทนข้อมูลไว้พร้อมลดการคำนวณและการใช้หน่วยความจำ
- Prefix-FFT cache ทำหน้าที่คล้ายกับ KV-cache มาตรฐานเพื่อรองรับการถอดรหัสแบบสตรีมมิง
- ช่วยลดข้อเสียของ spectral mixer แบบเดิมที่ต้องคำนวณ FFT ใหม่ทุก time step ในการสร้างแบบอัตโนมัติถดถอย
- เป็นโครงสร้างที่ทำให้การสร้างทำได้อย่างมีประสิทธิภาพภายใต้งบหน่วยความจำคงที่
- Wavelet Refinement Module แบบเลือกใช้ช่วยชดเชยรายละเอียดเชิงท้องถิ่นที่อาจสูญเสียไปในแนวทาง spectral แบบล้วน ๆ โดยมี overhead ด้านการคำนวณต่ำ
วิธีนำไปใช้กับ Transformer เดิม
- SPECTRE สามารถแทนที่เลเยอร์ multi-head attention ได้โดยตรง จึงไม่ต้องปรับโครงสร้างสถาปัตยกรรมครั้งใหญ่
- โมเดลที่ผ่านการพรีเทรนมาแล้วสามารถนำมา fine-tuning ด้วยเลเยอร์ SPECTRE ได้
- พารามิเตอร์ที่อัปเดตคือพารามิเตอร์ใหม่ที่ถูกเพิ่มเข้ามา
- พารามิเตอร์ที่เพิ่มขึ้นมี ไม่ถึง 6% ของน้ำหนักทั้งหมด
- แตกต่างจากแนวทางที่ต้องอาศัยการเพิ่มประสิทธิภาพเฉพาะทางหรือสถาปัตยกรรมที่ไม่เป็นมาตรฐาน เพราะ SPECTRE ยังคงโครงสร้าง Transformer โดยรอบไว้
การทดลองบนพื้นฐาน Llama-3.2-1B
- มีการเปรียบเทียบโดยใช้ attention kernel สามแบบบนแบ็กโบน Llama-3.2-1B เดียวกัน
- standard softmax-dot-product attention(SDPA)
- FlashAttention-2
- SPECTRE mixer
- สภาพแวดล้อมการวัดคือ NVIDIA A100-80GB และความยาวลำดับคือ L ∈ {512, 1k, 4k, 8k, 32k, 128k}
- ตัวชี้วัดคือ throughput แบบ tokens-per-second และ single-batch latency
- throughput ยิ่งสูงยิ่งดี
- latency ยิ่งต่ำยิ่งดี
- SPECTRE แสดงเวลาในการรันที่ใกล้เคียง O(n log n) พร้อมคงความแม่นยำของแบ็กโบนไว้
- เวลาในการรันแทบจะคงที่จนถึง 32k โทเค็น
- ตามบทคัดย่อ เร็วกว่า FlashAttention-2 ได้สูงสุด 7× ที่คอนเท็กซ์ 128k-token
- ตามรายการ contribution ในเนื้อหา เร็วกว่า FlashAttention-2 ได้สูงสุด 7× ในการอนุมานที่ 32k โทเค็น
ผลลัพธ์บนเบนช์มาร์กและขอบเขตการใช้งานจริง
- SPECTRE ให้ผลลัพธ์เทียบเท่าหรือดีกว่า baseline บนงาน language modeling ของ PG-19 และการจัดประเภทของ ImageNet-1k
- ยังคงการผสมบริบทแบบ global ได้ ขณะเดียวกันก็หลีกเลี่ยงต้นทุนกำลังสองของ self-attention ในการประมวลผลคอนเท็กซ์ยาว
- วิธีเร่ง attention ที่อิงกับ sparse pattern, kernel approximation หรือโครงสร้าง low-rank อาจมีข้อจำกัด เช่น ต้องแลกกับ exactness, ต้องพึ่งการเพิ่มประสิทธิภาพที่ไม่เป็นมาตรฐาน หรือไม่รองรับ streaming generation
- SPECTRE ใช้แนวทางในโดเมนความถี่ที่อาศัยคุณสมบัติของ FFT ในการ diagonalize circular convolution และเปลี่ยน global mixing ให้เป็นการคูณแบบ element-wise
- โดยจำกัดพารามิเตอร์เพิ่มเติมไว้ต่ำกว่า 6% จึงมุ่งรองรับการประมวลผลคอนเท็กซ์ระดับหลายแสนโทเค็นบน commodity GPU โดยไม่ต้องใช้ฮาร์ดแวร์เฉพาะทาง
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
โดยพื้นฐานแล้วนี่คือการใช้ ทฤษฎีบทคอนโวลูชัน: คอนโวลูชันที่มีต้นทุนสูงในโดเมนเดิมจะกลายเป็นการคูณแบบง่ายในอีกโดเมนหนึ่ง และกลับกันก็เป็นจริง
ถ้ามีการทำคอนโวลูชันกับข้อมูล ก็แค่แปลงไปยังโดเมนคู่ควบแล้วเปลี่ยนให้เป็นการคูณ
พูดอีกแบบคือ ให้ทำงานกับข้อมูลในโดเมนที่เป็นธรรมชาติของมัน
https://en.wikipedia.org/wiki/Convolution_theorem
ถ้าจะปรับให้มีประสิทธิภาพ ก็ต้องปรับแต่ละขั้นให้ดี และพยายามทำงานให้มากที่สุดในโดเมนที่มีประสิทธิภาพที่สุดเท่าที่ทำได้
มันไม่ใช่แค่เรื่องที่คำนวณง่ายกว่าหรือ?
แถมยังต้องใช้ จำนวนเชิงซ้อน ในการคำนวณ และมีเสถียรภาพเชิงตัวเลขน้อยกว่าเท่าไรนัก เท่าที่ฉันรู้ FFT ไม่ได้ให้ประโยชน์กับคอนโวลูชันทั่วไป
สำหรับ self-attention หรือกรณีใช้งานในงานวิจัยนี้ n อาจใหญ่กว่ามาก ฉันยังไม่ได้อ่านงานวิจัยนะ แต่ปัญหาเรื่องจำนวนเชิงซ้อนก็ยังอยู่
Google เคยนำแนวคิดนี้มาใช้ตั้งแต่ปี 2022 ด้วยงาน FNet: Mixing Tokens with Fourier Transforms
หลังจากนั้นก็พบว่าในสถานการณ์ส่วนใหญ่ ประสิทธิภาพการคูณเมทริกซ์บน TPU เร็วกว่า FFT เสียอีก
https://arxiv.org/abs/2105.03824
“โดยรวมแล้ว แนวทางอย่าง FNet, Performer และ sparse transformer แสดงให้เห็นว่าการผสมโทเค็นแบบคงที่หรือแบบประมาณสามารถลดภาระการคำนวณได้ แต่กลยุทธ์ adaptive spectral filtering ของเราผสานประสิทธิภาพของ FFT เข้ากับ spectral filter ที่เรียนรู้ได้และขึ้นอยู่กับอินพุตอย่างมีเอกลักษณ์ ซึ่งมอบการผสมผสานที่ทรงพลังระหว่างความสามารถในการขยายขนาดและความสามารถในการปรับตัว ที่สำคัญสำหรับงาน modeling ลำดับที่ซับซ้อน”
หลังจากนั้นก็มีส่วนเปรียบเทียบด้วย
แล้วในฝั่ง DSP มี ฮาร์ดแวร์เฉพาะ สำหรับช่วย FFT ไหม? ถามด้วยความอยากรู้จริง ๆ ไม่เคยใช้เอง แต่รู้สึกคลับคล้ายคลับคลาว่าน่าจะช่วยได้
“TPU ไม่มีประสิทธิภาพกับ Fourier transform มากจนผู้วิจัยเลือกใช้ Fourier transform implementation ที่สเกลแบบกำลังสองโดยอาศัย DFT matrix ที่คำนวณไว้ล่วงหน้า แทนที่จะใช้ FFT algorithm สำหรับลำดับที่สั้นกว่า 4096”
“บน Nvidia Quadro P6000 GPU การทำ Fourier transform คิดเป็นเวลาสูงสุด 30% ของเวลาการอนุมานในสถาปัตยกรรม FNet”
บริษัทนี้เคยอ้างในปี 2021 ว่าถ้า Google ใช้ชิปแสงของพวกเขากับ TPU จะลดเวลาอนุมานได้ 40% ถ้า FFTNet รับภาระงานมากขึ้นก็อาจลดได้มากกว่านั้นอีก
https://scribe.rip/optalysys/attention-fourier-transforms-a-...
Fourier transform ถูกนำไปใช้ตามมิติ “โทเค็น” แต่ในหลายการใช้งาน มิตินี้ไม่ได้มีความหมายอะไรนัก ดังนั้นทรานส์ฟอร์เมอร์จึงเป็นตัวเลือกที่ดีสำหรับการจัดการข้อมูลแบบ ไม่แปรตามการเรียงสับเปลี่ยน
ฉันอยากเห็นการทดลองเพิ่มเติมที่ใช้ Fourier transform บน finite groups ซึ่งคนรู้จักกันน้อยกว่า เพราะมันไม่แปรตามการเรียงสับเปลี่ยน และยังมีคุณสมบัติร่วมกับ Fourier transform มาตรฐานหลายอย่าง
แล้วถ้านี่กลายเป็นคลื่นลูกใหญ่ถัดไปของ LLM จริง ฉันก็สงสัยเหมือนกันว่า inference engine อย่าง vLLM หรือ llama.cpp จะผสานรวมสิ่งนี้ได้ง่ายแค่ไหน
https://en.wikipedia.org/wiki/Fourier_transform_on_finite_gr...
เท่าที่ฉันเข้าใจ llama จะใช้การหมุนกับเวกเตอร์ตามตำแหน่งของมันในอินพุต
คณิตศาสตร์นี่เกินความเข้าใจของฉันไปหมด และแม้แต่คำอธิบายรอบ ๆ สมการก็ยังพอเข้าใจแค่คร่าว ๆ มีใครช่วยอธิบายแบบง่าย ๆ ได้ไหมว่าสิ่งนี้เทียบเท่ากับ กลไก attention ได้อย่างไร?
แล้ว “ความถี่” ที่พูดถึงตรงนี้คืออะไร และความสัมพันธ์เชิงตำแหน่งระหว่างโทเค็นถูกเข้ารหัสอย่างไร?
สำหรับการวิเคราะห์สัญญาณหรือภาพจะเห็นภาพได้ชัดที่สุด: https://homepages.inf.ed.ac.uk/rbf/HIPR2/fourier.htm
โดเมนความถี่โดยแก่นแท้แล้วเป็นโดเมน “เชิงซ้อน” ที่แทนด้วยจำนวนเชิงซ้อน ความถี่มีข้อดีคือช่วยให้มองปัญหาในภาพรวมแบบโกลบอล
กลไกนี้ไม่ได้เทียบเท่ากับกลไก attention และมีจุดแลกเปลี่ยนที่ชัดเจนอยู่แน่นอน แต่ก็น่าจะจับความสัมพันธ์สำคัญหลายอย่างที่ attention จับได้
สำหรับ modReLU ตอนนี้ฉันยังไม่มีสัญชาตญาณที่ดีนัก แต่ดูเหมือนว่าจะสำคัญเพราะมันปรับความถี่ได้ในขณะที่ยังคงรักษาการแปลงฟูเรียร์ผกผันไว้
“ความถี่” ในที่นี้อาจเป็นสิ่งที่ค่อนข้างนามธรรมพอสมควร FFT มักถูกใช้ในแบบที่ไม่มีการตีความเรื่องความถี่อย่างชัดเจนอยู่แล้ว หลายครั้งใช้เพราะคุณสมบัติทางคณิตศาสตร์ที่สะดวก เช่นทฤษฎีบทคอนโวลูชัน
ถ้ามันทำงานได้ดีจริงก็น่าทึ่งมาก และถือว่าสวยงามมาก
กล่าวคือเวกเตอร์เอาต์พุตแต่ละตัวขึ้นอยู่กับการที่เวกเตอร์อินพุตนั้นถูกแปลงโดยฟังก์ชันบางอย่างของเวกเตอร์อินพุตอื่น ๆ ทั้งหมด
https://medium.com/optalysys/attention-fourier-transforms-a-...
ในเชิงแนวคิดจะพอมองออกว่านี่คล้ายกับคอนโวลูชันที่ทำให้ง่ายลงเล็กน้อยได้อย่างไร: https://openreview.net/pdf?id=8l5GjEqGiRG
คอนโวลูชันมักถูกใช้เมื่อคุณต้องการพิจารณาสถานะโดยรวมแบบโกลบอลไม่ทางใดก็ทางหนึ่ง
ถ้าจะใส่ causal masking เข้าไปในเฟรมเวิร์กนี้ ดูเหมือนว่าจะต้องทำ FFT ที่ต่างกัน n ครั้ง และก็ไม่มีการพูดถึงการฝังตำแหน่งด้วย
ดังนั้น implementation ของ self-attention ที่ใช้เทียบก็น่าจะเป็น NoPE แบบไม่เป็นเชิงสาเหตุ และถ้าเป็นอย่างนั้นก็อาจเป็นกรณีที่ตั้ง baseline ให้อ่อนลงโดยเจตนา เลยอาจไม่น่าประทับใจเท่าไร
ถ้าผลลัพธ์เข้าใกล้ระดับล้ำสมัยจริง ผู้เขียนก็น่าจะพูดถึงแล้ว
น่าจะเป็นงานอ้างอิงที่เกี่ยวข้อง: https://arxiv.org/abs/2111.13587
Adaptive Fourier Neural Operators: Efficient Token Mixers for Transformers
John Guibas, Morteza Mardani, Zongyi Li, Andrew Tao, Anima Anandkumar, Bryan Catanzaro
อยากรู้ว่ามีสัญชาตญาณไหมว่าทำไมการมองใน โดเมนความถี่ ถึงช่วยได้
ฉันเข้าใจองค์ประกอบกระแสตรง แต่ไม่คิดว่าข้อมูลอินพุตจะมีความเป็นคาบมากพอจนทำให้ความถี่อื่น ๆ มีความหมาย
ดูเหมือนว่าจะไม่ได้อ้างถึงงานก่อนหน้าอย่าง Hyena Operator ซึ่งเมื่อหลายปีก่อนก็แสดงการผสมบริบททั้งหมดแบบ O(n log n) ไปแล้ว
https://arxiv.org/abs/2302.10866
https://arxiv.org/abs/2111.00396
สัญลักษณ์ Big-O พอช่วยให้เห็นภาพคร่าว ๆ ได้บ้าง แต่เหมือนเนื้อหาส่วนใหญ่ที่เกี่ยวกับวิทยาการคอมพิวเตอร์หรือวิศวกรรมไฟฟ้า เรื่องนี้ก็ยังเกินความเข้าใจของฉันอยู่ดี
ในฐานะคนที่อ่อนคณิตศาสตร์มาก ฉันอิจฉาคนที่เข้าใจเรื่องพวกนี้ หรืออย่างน้อยก็เรียนจนได้ทั้งปริญญาวิศวกรรมและใบอนุญาตวิชาชีพ
สิ่งที่ฉันรู้เกี่ยวกับ FFT ก็มีแค่ว่ามันใช้แปลงสัญญาณ ใช้ในงานประมวลผลสัญญาณบางประเภท และเคยได้ยินมาว่ามันเคยเป็นหัวใจสำคัญของการตรวจจับการระเบิดนิวเคลียร์
แนวคิดพื้นฐานคือ: สัญญาณที่มีประโยชน์แทบทั้งหมดสามารถแทนได้ด้วยผลรวมของคลื่นไซน์หลายลูกที่มีความถี่และเฟสต่างกัน ตัวอย่างเช่น สัญญาณไฟฟ้าหรือคลื่นเสียงเป็นสัญญาณหนึ่งมิติที่มีแกน x เป็นเวลา ซึ่งอาจดูเป็นเส้นคดเคี้ยวซับซ้อนที่จัดการได้ยาก
เมื่อใช้การแปลงฟูเรียร์ คุณจะสามารถแยกความถี่แต่ละตัวออกจากสัญญาณที่อิงเวลาได้ จากนั้นก็แก้ไขความถี่บางช่วงตามที่ต้องการได้ เช่น ถ้าสัญญาณมีสัญญาณรบกวนแบบแหลมสุ่มอยู่มาก สิ่งนั้นจะปรากฏเป็นความถี่สูง วิธีทำให้เรียบคือแปลงฟูเรียร์ก่อน จากนั้นทิ้งข้อมูลที่มีความถี่สูงกว่าค่าเกณฑ์ที่กำหนด แล้วใช้การแปลงฟูเรียร์ผกผันกับข้อมูลที่เหลือ เพื่อย้อนกลับไปเป็นสัญญาณต้นฉบับในเวอร์ชันที่เรียบขึ้น วิธีนี้เรียกว่าตัวกรองความถี่ต่ำผ่าน และเกือบจะเหมือนกับการทำค่าเฉลี่ยเคลื่อนที่ของสัญญาณต้นฉบับ
ส่วนที่น่าสนใจคือแนวคิดนี้ขยายไปยังมิติที่สูงขึ้นได้อย่างค่อนข้างตรงไปตรงมา สัญญาณสองมิติที่ทั้งแกน x และ y เป็นเชิงพื้นที่ก็คือภาพ JPEG compression ก็อิงอยู่บนแนวคิดนี้ โดยตัดสัญญาณความถี่สูงออกเพื่อเก็บภาพให้เล็กลง แลกกับการสูญเสียรายละเอียดเล็ก ๆ หรือถ้าตัดมากเกินไปก็จะเกิดอาร์ติแฟกต์เป็นวง ๆ ถ้าเพิ่มมิติเวลาเป็นมิติที่สาม ก็จะกลายเป็นวิดีโอ และยังขยายต่อไปได้อีก
ทั้งหมดนี้เหมาะกับการทำความเข้าใจด้วยภาพมาก จึงสร้างสัญชาตญาณที่ดีได้แม้จะไม่ได้เข้าใจคณิตศาสตร์ทั้งหมดอย่างลึกซึ้ง หน้าที่ดีที่มีภาพและตัวอย่างอินเทอร์แอ็กทีฟมากมาย: https://www.jezzamon.com/fourier/index.html
วิดีโอของ 3Blue1Brown ก็อธิบายได้ดีมากเช่นกัน: https://youtu.be/spUNpyF58BY?si=dz0z-s8NftW3Htun
การแปลงฟูเรียร์ซึ่ง FFT เป็นเวอร์ชันไม่ต่อเนื่องของมัน จะสลายสัญญาณโดเมนเวลาแบบหนึ่งมิตินั้นออกเป็นองค์ประกอบของขนาดและเฟสตามความถี่
ความถี่ก็คือระดับเสียงโดยพื้นฐาน คลื่นไซน์บริสุทธิ์หรือโทนบริสุทธิ์จะคล้ายเสียงที่เคยได้ยินตอนดึก ๆ เมื่อทีวีสมัยก่อนปิดสถานี ในกรณีนั้นค่าส่วนใหญ่จะเป็น 0 และจะมี “สไปก์” หนึ่งจุดที่ตำแหน่งความถี่ของโทนนั้น ยิ่งแอมพลิจูดของสัญญาณมาก ขนาดของสไปก์ก็ยิ่งใหญ่ขึ้น เมื่อระดับเสียงหรือความถี่สูงขึ้นหรือต่ำลง ตำแหน่งของสไปก์นี้ก็จะเลื่อนไปตามแกนนอน
เฟสคือค่าออฟเซ็ตทางเวลาของสัญญาณโดยพื้นฐาน โทนที่ล่าช้าออกไปไม่ทางใดก็ทางหนึ่งจะปรากฏเป็นเฟสที่ต่างออกไป อย่างไรก็ตามนี่ไม่ใช่การวัดแบบสัมบูรณ์ แต่เป็นแบบสัมพัทธ์ เนื่องจากหน่วยเป็นเรเดียนหรือมุม เมื่อครบหนึ่งรอบวงกลมค่าก็จะ “รีเซ็ต” ดังนั้นจึงบอกไม่ได้ว่าสัญญาณเลื่อนไป 1 วินาทีหรือ 2 วินาที
ดังนั้นจากสัญญาณหนึ่งตัว หรือก็คือแอมพลิจูดตามเวลา คุณจึงได้ข้อมูลจริง ๆ สองส่วนคือขนาดและเฟสตามความถี่
ถ้าคุณเข้าใจจำนวนจินตภาพหรือจำนวนเชิงซ้อนอยู่แล้ว สัญญาณสองตัวนี้จริง ๆ ก็เป็นเพียงขนาดและอาร์กิวเมนต์ของเอาต์พุต FFT ซึ่งเป็นฟังก์ชันเชิงซ้อนเท่านั้น
ในยุคของเทเลเมทรี การไม่เอา FFT ไปใช้กับ cloud telemetry เพื่อค้นหาความผิดปกติแบบมีคาบและระบบกึ่งเสถียรก่อนที่จะเกิดเหตุ แทนที่จะรอหลังเกิดเหตุ ดูเหมือนเป็นการพลาดโอกาสครั้งใหญ่
น่าเสียดายที่นี่เป็นเรื่องที่ฉันพอมองออกว่าเป็นไปได้ แต่ยังไม่มีทักษะพอจะลงมือทำ และตารางงานก็แน่นไปหมดแล้ว
“SLA มักถูกละเมิดมากที่สุดหลัง deploy service ไปแล้ว 23~25 นาที หืม ทำไมถึงเป็นแบบนั้น... อ้อ ไม่นะ”
พักเรื่องมุกตลกไว้ก่อน พื้นที่ที่สิ่งนี้ทำเงินได้จริงคือการพยากรณ์รอบของทราฟฟิกเพื่อเพิ่มหรือลดจำนวน server instance และลดต้นทุน
ถ้าทำเป็นโปรเจกต์เวลาส่วนตัว บริษัทคงไม่มีวันอนุมัติแน่ แต่ถ้าห่อเป็นผลิตภัณฑ์สำเร็จรูป นี่คือประเภทงานที่บริษัทพร้อมซื้อทันที