गहिरो शिक्षा gpu बेन्चमार्कहरू

हामी हाम्रो कामको लागि भाषा मोडेलहरू निरन्तर प्रशिक्षण दिइरहेका छौं। हाम्रो टोलीले विभिन्न कार्यहरूका लागि छनौट गरिएका दर्जनौं विभिन्न भिडियो कार्डहरू प्रयोग गर्दछ: कतै हामीलाई शक्तिशाली DGX स्टेशन चाहिन्छ, र कतै RTX 2080Ti जस्ता पुरानो गेमिङ कार्ड पर्याप्त छ। मोडेल प्रशिक्षणको लागि इष्टतम GPU छनोटले प्रक्रियाको गति र लागत-प्रभावकारिता दुवैलाई महत्त्वपूर्ण रूपमा असर गर्न सक्छ।

चाखलाग्दो कुरा के छ भने मेसिन लर्निङको लागि GPU तुलनाको साथ इन्टरनेटमा धेरै लेखहरू छन्, तर भाषा मोडेल प्रशिक्षणको लागि गतिमा धेरै कम फोकसहरू छन्। प्रायः केवल अनुमान परीक्षणहरू पाइन्छ। जब नयाँ H100 चिप जारी गरिएको थियो, NVidia को रिपोर्टले भन्यो कि यो प्रशिक्षणमा A100 भन्दा नौ गुणा छिटो थियो, तर हाम्रो कार्यहरूको लागि, नयाँ कार्ड पुरानो भन्दा 90% मात्र छिटो थियो। तुलनात्मक रूपमा, हाम्रा क्लाउड प्रदायकहरूसँग यी GPU हरू बीच 2x मूल्य भिन्नता थियो, त्यसैले पैसा बचत गर्न नयाँ H100 मा स्विच गर्नुको कुनै अर्थ थिएन।

यसका अतिरिक्त, हामीले परीक्षणको लागि DGX स्टेशन लियौं, जसमा 8 A100 80GB ग्राफिक्स कार्डहरू छन् र प्रति महिना 10 हजार डलर खर्च हुन्छ। परीक्षण पछि, यो स्पष्ट भयो कि यस स्टेशनको मूल्य/कार्यसम्पादन अनुपात हामीलाई बिल्कुल उपयुक्त छैन र यो पैसाको लागि, हामी 66 x RTX 3090 लिन सक्छौं, जुन कुलमा धेरै उपयोगी हुनेछ।

हाम्रो अनुवाद भाषा मोडेलहरूमा 500 मिलियन प्यारामिटरहरू छन् (औसतमा 100 मिलियन देखि 300 मिलियन)। यो सम्भव छ कि यदि हामीले प्यारामिटरहरूको संख्या उल्लेखनीय रूपमा बढायौं भने, DGX को मूल्य/कार्यसम्पादन अनुपात राम्रो हुनेछ। हाल, हामी ठूला भाषा मोडेलहरूलाई तालिम दिँदैनौं जसले सबै भाषाहरू बीच सबै भिन्नताहरूमा एकैचोटि अनुवाद गर्न सक्छ, तर प्रत्येक भाषा जोडीको लागि छुट्टै भाषा मोडेलहरू प्रयोग गर्दछ, जस्तै। अंग्रेजी-जर्मन। त्यस्ता प्रत्येक मोडेलले 120 देखि 300 Mb सम्म लिन्छ।

यो ध्यान दिन लायक छ कि विभिन्न भाषाहरूमा इन्टरनेटमा विभिन्न मात्रामा डाटा हुन्छ, र जबकि। उदाहरण को लागी, स्पेनिश को लागी, तपाईले अनुवाद संग 500 मिलियन वाक्यहरु पाउन सक्नुहुन्छ, तर जब तिब्बती जस्तै दुर्लभ भाषाहरु को लागी प्रशिक्षण मोडेल, तपाईले उपलब्ध डाटा को आधार मा मेशिन लर्निंग कार्यहरु को लागी एक विशिष्ट GPU छनोट गर्न आवश्यक छ। अंग्रेजीबाट स्पेनिशमा अनुवाद मोडेल सिर्जना गर्न, हामी 4 x RTX 4500 र 256GB RAM भएको सर्भर प्रयोग गर्छौं। एकै समयमा, तिब्बती भाषालाई RTX 2080 Ti मा 16GB RAM को साथ तालिम दिन सकिन्छ, किनकि यसले न्यूरल नेटवर्कको जटिलता बढाउन र परिणाम स्वरूप, थोरै मात्रामा डाटाको साथ अझ शक्तिशाली सर्भर लिनको लागि कुनै अर्थ राख्दैन।।

ग्राफिक्स प्रोसेसर र सैद्धान्तिक आंकडा चयन गर्दै

OpenNMT-tf फ्रेमवर्क प्रयोग गरेर हाम्रो आन्तरिक डाटा स्टुडियो प्लेटफर्ममा भाषा मोडेल प्रशिक्षण भयो। यस चरणमा डेटा तयारी, मोडेल प्रशिक्षण, र सन्दर्भ अनुवादको साथ मोडेल तुलना समावेश थियो। प्रशिक्षणको क्रममा FP32 को सट्टा FP16 को प्रयोगले हामीलाई अनुवादको गुणस्तर घटाउन बिना भाषा मोडेलहरूको प्रशिक्षण समयलाई उल्लेखनीय रूपमा घटाउन अनुमति दियो, तर हाम्रा सबै GPU हरूले यसलाई समर्थन गरेनन्।

ग्राफिक्स प्रोसेसर छनोट गर्दा, प्रोसेसिङ पावर (TFLOPS), भिडियो मेमोरी (VRAM), GPU बेन्चमार्क नतिजा, पुस्तकालय र फ्रेमवर्क समर्थन, बजेट, र अन्य कारकहरू (ग्राफिक्स कार्ड साइज र फारम कारक, पावर आवश्यकताहरू) जस्ता मेट्रिक्सहरू विचार गर्न मानक छ।, शीतलन, र तपाइँको प्रणाली संग अनुकूलता)। पाठ उत्पादन मोडेलहरू प्रशिक्षण गर्दा, तपाईंले यो पनि ध्यानमा राख्नु पर्छ कि विभिन्न भाषाहरूले विभिन्न मात्रामा स्रोतहरू खपत गर्नेछन्। उदाहरणका लागि, 1 बाइट ल्याटिन भाषाहरूको लागि एउटा क्यारेक्टर, सिरिलिक भाषाहरूको लागि 2 बाइटहरू, र हाइरोग्लिफहरू भएका भाषाहरूको लागि 3 बाइटहरू इन्कोड गर्न प्रयोग गरिन्छ। तपाइँको ग्राफिक्स कार्डले कुन विशेषताहरू हुनेछ भनेर बुझ्दा सिक्ने प्रक्रियाको गतिमा महत्त्वपूर्ण प्रभाव पार्छ।

प्रयोग गरिएका GPU हरूको सन्दर्भमा मोडेलहरूलाई प्रशिक्षण दिंदा, भिडियो कार्डहरूलाई प्रयोगको अवधि अनुसार दुई समूहमा विभाजन गरिएको थियो: प्रारम्भिक भिडियो कार्डहरू, जुन सिक्ने गतिको पहिलो मापन गर्न प्रयोग गरिएको थियो, र हाल प्रयोगमा रहेका कार्डहरू। यी ग्राफिक्स कार्डहरूको मुख्य विशेषताहरू क्रमशः तालिका 1 र तालिका 2 मा फेला पार्न सकिन्छ।

तालिका 1 - पहिले प्रयोग गरिएको ग्राफिक्स प्रोसेसर र तिनीहरूको प्राविधिक प्यारामिटरहरू
 

Number of GPUsGPUVRAM, GCUDAFP16,
TFLOPS
FP32,
TFLOPS
1Tesla V100-SXM2HBM2, 167.031.3316.31
2Tesla V100-SXM2HBM2, 327.031.3315.67
1RTX 4060 TiGDDR6, 88.922.0622.06
1Nvidia A40GDDR6, 488.637.4237.42
2Nvidia A40GDDR6, 968.637.4237.42
1Nvidia A100HBM2, 408.077.9719.49
1Nvidia A100HBM2, 808.077.9719.49
1Nvidia RTX A6000GDDR6, 488.638.7138.71
1Nvidia A10GDDR6, 248.631.2431.24
8Nvidia A10GDDR6, 1928.631.2431.24
1Nvidia H100HBM3, 809.0204.951.22


नोट
१। CUDA 7.0 भन्दा माथिको साथ, FP16 को प्रयोगले CUDA संस्करण र ग्राफिक्स कार्डको विशेषताहरूमा निर्भर गर्दै, प्रशिक्षण गतिमा बढावा दिनेछ।
२। यदि ग्राफिक्स कार्डको स्पेसिफिकेशनले FP16 देखि FP32 कार्यसम्पादन अनुपात 1 देखि 1 भन्दा बढी छ भनी संकेत गर्छ भने, मिश्रित परिशुद्धता प्रयोग गर्दा स्पेसिफिकेशनमा तोकिएको रकमले प्रशिक्षण गति बढाउने ग्यारेन्टी गरिनेछ। उदाहरणका लागि, Quadro RTX 6000 को लागि 32.62 (2:1) को FP16 TFLOPS मानले कसरतलाई कम्तिमा दुई गुणा (अभ्यासमा 2.4 गुणा) गति दिनेछ

तालिका २ - हाल प्रयोग गरिएका GPU मोडेलहरू र तिनीहरूका मुख्य विशेषताहरू
 

Number of GPUs in useGPUVRAM, GCUDAFP16,
TFLOPS
FP32,
TFLOPS
1Quadro RTX 6000GDDR6, 247.532.6216.31
2Quadro RTX 6000GDDR6, 487.532.6216.31
4Quadro RTX 6000GDDR6, 967.532.6216.31
2Nvidia TITAN RTXGDDR6, 487.532.6216.31
4Nvidia RTX A4500GDDR6, 968.623.6523.65
1Nvidia GeForce RTX 3090GDDR6X, 248.635.5835.58
1Nvidia GeForce RTX 3070GDDR6, 88.620.3120.31

* - FP16,TFLOPS र FP32,TFLOPS को लागि मानहरू प्रति GPU निर्दिष्टीकरणहरूबाट लिइन्छ

GPU प्रशिक्षण र परीक्षण प्रक्रिया

मोडेलहरू 18 GPU को सेट प्रयोग गरेर प्रशिक्षित गरिएको थियो। न्यूरल नेटवर्क प्रशिक्षणको प्रक्रियामा, हामीले धेरै भाषा जोडीहरू (सय भन्दा बढी भाषाहरू) प्रयोग गर्यौं। GPU परीक्षणहरूले कुन हार्डवेयरले विशिष्ट कार्यहरूको लागि उत्तम प्रदर्शन गर्छ भनेर पहिचान गर्न मद्दत गरेको छ। हाम्रो भाषा जोडीहरूको प्रशिक्षणको क्रममा, निम्न न्यूरल नेटवर्क प्यारामिटरहरूलाई आधारको रूपमा लिइयो:
 

  • भोकाब साइज = 30 000
  • numunits = 768
  • तहहरू = 6
  • हेड्स = 16
  • भित्री आयाम = 4 096


सर्वप्रथम, तालिका १ मा आधारित पहिलो समूहसँग सम्बन्धित GPU हरू चित्रण गरौं। 1,000 पाइलाको अनुमानित गति र 100,000 इकाइहरूको ब्याच साइज गुणनमा मोडेललाई तालिम दिन बिताएको मिनेट र सेकेन्डमा समयलाई सूचकहरूको तुलनाको आधारको रूपमा लिइनेछ।

हामी जोड दिन्छौं कि पहिलो समूहको लागि, गति मापन को प्रयोग संग प्रदर्शन गरिएको थियो पङ्क्तिबद्ध संयन्त्र र मात्र प्रयोग FP32 यो संयन्त्र प्रयोग नगरी केही सर्भरहरूमा सिक्ने गति धेरै छिटो हुन सक्छ।

पङ्क्तिबद्ध संयन्त्रले आधार र अनुवादित पाठमा मिल्दो सबस्ट्रिङहरूलाई अनुमति दिन्छ। यो ढाँचा गरिएको पाठ अनुवाद गर्न आवश्यक छ, जस्तै वेब पृष्ठहरू, जब वाक्यमा सबस्ट्रिङ फरक फन्टमा हाइलाइट गर्न सकिन्छ र हाइलाइटिङको साथ अनुवाद गरिनु पर्छ।

न्यूरल नेटवर्कको माथि उल्लिखित प्यारामिटरहरूलाई ध्यानमा राख्दै, पहिलो तालिकाबाट सबैभन्दा राम्रो समय GPU Nvidia H100 द्वारा 22 मिनेटको सिकाइ समयको साथ देखाइएको थियो र मध्यवर्ती समय एउटै ब्रान्ड GeForce RTX 4060 Ti को GPU द्वारा 72 मिनेटको सिकाइ समयको साथ देखाइएको थियो र अन्तिम स्थान GPU Tesla V100-SXM 2 द्वारा 140 मिनेटको सिकाइ समयको साथ लिइएको थियो।

GPU परीक्षणमा 20 मिनेट र 28 सेकेन्डको लर्निङ कर्भसहित आठ Nvidia A10 कार्डहरू, 56 मिनेटको समयका दुई Nvidia A40 कार्डहरू र 86 मिनेटमा दुईवटा Tesla V100-SXM कार्डहरू पनि थिए। GPU को एउटै शृङ्खलाका धेरै कार्डहरूको एकै साथ प्रयोगले मोडेलहरूको प्रशिक्षण प्रक्रियालाई गति दिन सक्छ र उच्च क्षमता भएका GPU हरूसँग लगभग एकै समयमा देखाउन सक्छ, तर यस्तो प्रविधि आर्थिक र प्रक्रियागत रूपमा पर्याप्त तर्कसंगत नहुन सक्छ। सिक्ने गति मापनको नतिजा तालिका नम्बर 3 मा अवलोकन गर्न सकिन्छ।

तालिका ३ - पहिले प्रयोग गरिएको ग्राफिकल नक्सामा प्रशिक्षण समय मापन
 

Using the alignment mechanism
Effective batch size = 100 000
FP 32
Number of GPUs in useGPUApproximate speed (min. sec),
1,000 steps
Batch size in use
8Nvidia A1020,286 250
1Nvidia H1002225 000
1A100 (80 Gb)4025 000
1A100 (40 Gb)5615 000
2Nvidia A405612 500
1RTX A600068,2512 500
1GeForce RTX 4060 Ti724 167
1Nvidia A4082,0812 500
2Tesla V100-SXM864 167
1Nvidia A10104,505 000
1Tesla V100-SXM21404 167


अर्को, हाल प्रयोगमा रहेका ग्राफिक्स ग्यास पेडलहरूको तुलनात्मक विश्लेषण गरौं (तालिका २)। ग्राफिक्स प्रोसेसरहरूको यस समूहको लागि, गति मापन प्रयोग गरी प्रदर्शन गरिएको थियो पङ्क्तिबद्ध संयन्त्र, साथै FP16 र FP32 प्रयोग गर्दै। यस संयन्त्र र मिश्रित परिशुद्धता सहित गति मापन क्रमशः तालिका 4 र 5 मा तल प्रस्तुत गरिनेछ।

त्यसोभए, यस तालिकाबाट GPU को गति मापन गरेपछि, हामी भन्न सक्छौं कि पहिलो स्थान RTX A4500 श्रृंखला GPU द्वारा 31 मिनेटको प्रशिक्षण समयको साथ लिइएको थियो, तर यो जोड दिनु पर्छ कि प्रशिक्षण मोडेलहरूको यस्तो गति द्वारा प्राप्त गरिएको थियो। प्रयोग गरिएको GPU को एकाइहरूको संख्या 4 सम्म बढाउँदै। यस तथ्यलाई बेवास्ता गर्दै, माथि उल्लिखित GPU को प्रशिक्षण गति धेरै उच्च हुनेछ, जसले यसलाई अन्तिम तालिकाको अन्तिम स्थानमा राख्नेछ।

Quadro RTX 6000 श्रृंखला GPU 47 मिनेटको सिक्ने समयको साथ दोस्रो स्थानमा छ। यो ध्यान दिनुपर्छ कि यस्तो प्रशिक्षण गति प्रयोग गरिएको प्रोसेसरको एकाइहरूको संख्या द्वारा उल्टो सर्त गरिएको छ, जुन चार बराबर छ। एउटा मात्र यस्तो GPU प्रयोग गर्दा लगभग 3.2 पटकको गति हानि हुनेछ र फलस्वरूप लगभग 153 मिनेट हुनेछ र यसलाई अन्तिम स्थानमा राख्नेछ।

तेस्रो लाइन TITAN RTX श्रृंखला GPU द्वारा 75 मिनेट र 85 सेकेन्डको समय संग लिइएको थियो। यो सिक्ने गति स्कोर 2 प्रोसेसर को प्रयोग को कारण हो, जसले मोडेल को प्रशिक्षण समय कम गर्यो।

एक इकाईको संख्यामा प्रशिक्षण गतिको सन्दर्भमा निर्विवाद नेता निश्चित रूपमा 78 मिनेट र 26 सेकेन्डको समयको साथ GeForce RTX 3090 श्रृंखला GPU हुनेछ। यस GPU को एकाइहरूको संख्या बढाउँदा मोडेल प्रशिक्षण गतिलाई गति दिनेछ, जसले माथि उल्लिखित सबै GPU मोडेलहरूलाई स्पष्ट रूपमा ओभरटेक गर्नेछ। मोडेल प्रशिक्षण समय मापन मा डाटा तालिका 4 मा देख्न सकिन्छ।

तालिका 4 - पहिले प्रयोग गरिएका GPU हरूमा भाषा मोडेल प्रशिक्षण गतिको तुलनात्मक विश्लेषण
 

Using the alignment mechanism
Effective batch size = 100 000
FP 32
Number of GPUs in useGPUApproximate speed (min. sec),
1,000 steps
Batch size in use
4Nvidia RTX A4500315 000
4Quadro RTX 6000476 250
2Nvidia TITAN RTX75,856 250
1GeForce RTX 309078,266 250
2Quadro RTX 6000886 250
1GeForce RTX 3070104,172 000
1Quadro RTX 60001536 250


निम्न प्रशिक्षण गति मापन FP16 प्रयोग गरी प्रदर्शन गरिएको थियो। FP32 को तुलनामा, आधा-परिशुद्धताले मोडेल प्रशिक्षणको क्रममा खपत हुने मेमोरीको मात्रा घटाउन र GPU मा गणनालाई गति दिन अनुमति दिन्छ। प्रतिनिधित्वको शुद्धता FP32 को प्रयोगको तुलनामा कम हुनेछ।

अघिल्लो तालिकाबाट FP32 प्रयोग गरेर मोडेलहरूको प्रशिक्षण समय मापन गर्दै, हामी भन्न सक्छौं कि न्यूरल नेटवर्कको प्रशिक्षण समय लगभग दुई गुणाले घटेको थियो। कार्यसम्पादन मापन परिणामहरूको आधारमा, हामी तालिका 4 मा मेसिन लर्निङ GPU बेन्चमार्कहरूबाट अवलोकन गर्न सक्छौं कि GPU को स्थिति धेरै हदसम्म अपरिवर्तित रह्यो। Quadro RTX 6000 शृङ्खलाको कार्ड GeForce RTX 3090 GPU लाई ९६ सेकेन्डले हराउँदै पाँचौं स्थानबाट छैटौं स्थानमा उक्लियो। अन्तिम संख्याहरू तालिका 5 मा देखाइएको छ।

तालिका 5 - पहिले प्रयोग गरिएका GPU हरूमा भाषा मोडेल प्रशिक्षण गतिको तुलनात्मक विश्लेषण
 

Using the alignment mechanism
Effective batch size = 100 000
FP 16
Number of GPUs in useGPUApproximate speed (min. sec),
1,000 steps
Batch size in use
4Nvidia RTX A450015,8110 000
4Quadro RTX 600020,3412 500
2Nvidia TITAN RTX32,686 250
2Quadro RTX 600037,9310 000
1GeForce RTX 309038,8910 000
1GeForce RTX 307048,512 500
1Quadro RTX 600052,5610 000

बारम्बार सोधिने प्रश्नहरू (FAQ)

के यो गहिरो शिक्षाको लागि GPU किन्न लायक छ?

गहिरो सिकाइको लागि GPU खरिद गर्नाले प्रशिक्षणको गति र दक्षतालाई उल्लेखनीय रूपमा वृद्धि गर्न सक्छ, यसले गम्भीर परियोजनाहरूको लागि सार्थक लगानी बनाउँछ। यद्यपि, निर्णयले बजेट, विशिष्ट प्रयोगका केसहरू, र क्लाउड समाधानहरू बढी लागत-प्रभावी हुन सक्छ कि भनेर कारकहरू विचार गर्नुपर्छ।

गहिरो शिक्षाको लागि कुन GPU उत्तम छ?

NVIDIA A100 लाई प्रायः गहिरो शिक्षाको लागि शीर्ष विकल्प मानिन्छ, ठूला मोडेलहरूको लागि असाधारण प्रदर्शन र मेमोरी प्रदान गर्दै। बजेट-सचेत प्रयोगकर्ताहरूका लागि, NVIDIA RTX 3090 ले प्रभावकारी रूपमा प्रशिक्षण मोडेलहरूको लागि बलियो क्षमताहरू प्रदान गर्दछ।

गहिरो शिक्षाको लागि AMD वा NVIDIA राम्रो छ?

NVIDIA लाई सामान्यतया यसको बलियो सफ्टवेयर इकोसिस्टमको कारणले गहिरो शिक्षाको लागि प्राथमिकता दिइन्छ, जसले लोकप्रिय फ्रेमवर्कहरूसँग प्रदर्शन र अनुकूलता बढाउँछ। जबकि AMD GPU हरू सुधार भएका छन्, तिनीहरू अझै पनि अनुकूलन र गहिरो सिकाइ अनुप्रयोगहरूको लागि समर्थनको सन्दर्भमा NVIDIA भन्दा पछाडि छन्।

के GPU ले NLP मा मद्दत गर्छ?

हो, GPU ले समानान्तर गणनाहरू कुशलतापूर्वक ह्यान्डल गरेर प्राकृतिक भाषा प्रशोधन (NLP) मा न्यूरल नेटवर्क प्रशिक्षणलाई महत्त्वपूर्ण रूपमा गति दिन्छ। यो गति बूस्टले छिटो प्रयोग र पुनरावृत्तिको लागि अनुमति दिन्छ, जसले मोडेल प्रदर्शनमा सुधार र प्रशिक्षण समय घटाउँछ।

थप मनमोहक पढाइहरू पर्खिरहेका छन्

अन-प्रिमाइस स्पीच रिकग्निसन के हो?

अन-प्रिमाइस स्पीच रिकग्निसन के हो?

September 19, 2024

अनुवाद प्रणालीमा सांख्यिकीय महत्वको मूल्याङ्कन गर्दै

अनुवाद प्रणालीमा सांख्यिकीय महत्वको मूल्याङ्कन गर्दै

September 10, 2024

मार्केटिङ मा भाषण मान्यता

मार्केटिङ मा भाषण मान्यता

August 23, 2024

हामीलाई सम्पर्क गर्नुहोस्

0/250
* आवश्यक क्षेत्र जनाउँछ

तपाईंको गोपनीयता हाम्रो लागि अत्यन्त महत्त्वपूर्ण छ; तपाईंको डाटा सम्पर्क उद्देश्यका लागि मात्र प्रयोग गरिनेछ।

इमेल

पूरा भयो

तपाईंको अनुरोध सफलतापूर्वक पठाइएको छ

× 
Customize Consent Preferences

We use cookies to help you navigate efficiently and perform certain functions. You will find detailed information about all cookies under each consent category below.

The cookies that are categorized as "Necessary" are stored on your browser as they are essential for enabling the basic functionalities of the site.

We also use third-party cookies that help us analyze how you use this website, store your preferences, and provide the content and advertisements that are relevant to you. These cookies will only be stored in your browser with your prior consent.

You can choose to enable or disable some or all of these cookies but disabling some of them may affect your browsing experience.

Always Active

Necessary cookies are required to enable the basic features of this site, such as providing secure log-in or adjusting your consent preferences. These cookies do not store any personally identifiable data.

No cookies to display.

Always Active

Functional cookies help perform certain functionalities like sharing the content of the website on social media platforms, collecting feedback, and other third-party features.

No cookies to display.

Always Active

Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics such as the number of visitors, bounce rate, traffic source, etc.

No cookies to display.

Always Active

Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.

No cookies to display.

Always Active

Advertisement cookies are used to provide visitors with customized advertisements based on the pages you visited previously and to analyze the effectiveness of the ad campaigns.

No cookies to display.