เครือข่ายนิวรัลขนาดไหนที่สามารถฝึกฝนบน GPU ระดับผู้บริโภคปัจจุบัน (1060,1070,1080)


9

เป็นไปได้หรือไม่ที่จะให้กฎประมาณหัวแม่มือเกี่ยวกับขนาดของโครงข่ายประสาทที่สามารถใช้งานได้กับ GPU ระดับผู้บริโภคทั่วไป ? ตัวอย่างเช่น:

การเกิดขึ้นของการเคลื่อนที่ (การเสริมแรง)กระดาษฝึกอบรมเครือข่ายโดยใช้การกระตุ้น tanh ของเซลล์ประสาท พวกเขามี 3 ชั้น NN กับ 300,200,100 หน่วยสำหรับภาพถ่ายวอล์คเกอร์ แต่พวกเขาไม่รายงานฮาร์ดแวร์และเวลา ...

แต่กฎของหัวแม่มือสามารถพัฒนาได้หรือไม่? ยังขึ้นอยู่กับผลลัพธ์เชิงประจักษ์ในปัจจุบันเช่น:

หน่วย X ที่ใช้การเปิดใช้งาน sigmoid สามารถเรียกใช้การเรียนรู้แบบ Y ต่อชั่วโมงใน 1,060

หรือใช้ฟังก์ชั่นการเปิดใช้งาน a แทน b ทำให้ประสิทธิภาพลดลงครั้ง

หากนักเรียน / นักวิจัย / จิตใจอยากรู้อยากเห็นกำลังจะซื้อ GPU สำหรับเล่นกับเครือข่ายเหล่านี้คุณจะตัดสินใจได้อย่างไรว่าคุณจะได้รับ เห็นได้ชัดว่า 1060 เป็นตัวเลือกงบประมาณระดับรายการ แต่จะประเมินได้อย่างไรหากไม่ฉลาดกว่าที่จะได้รับเน็ตบุ๊กเร็วแทนที่จะสร้างเดสก์ท็อปพลังงานสูงและใช้จ่าย $ ตามความต้องการโครงสร้างพื้นฐานคลาวด์

แรงจูงใจสำหรับคำถาม: ฉันเพิ่งซื้อ 1,060 และ (ฉลาดเพื่อถามคำถามหลังจากนั้น huh) สงสัยว่าฉันควรจะเก็บ $ และสร้างบัญชี Google Cloud และถ้าฉันสามารถรันการจำลองวิทยานิพนธ์หลักของฉันบน GPU

คำตอบ:


5

โดยปกติปัญหาคือการปรับให้พอดีกับรุ่นลงใน RAM วิดีโอ หากไม่เป็นเช่นนั้นคุณจะไม่สามารถฝึกฝนโมเดลของคุณได้เลยโดยไม่ต้องใช้ความพยายามอย่างมาก (เช่นการฝึกอบรมแยกโมเดล) ถ้าเป็นเช่นนั้นเวลาเป็นปัญหาของคุณเท่านั้น แต่ความแตกต่างในการฝึกอบรมระหว่างผู้บริโภค GPUs กับ Nvidia 1080 และตัวเร่งความเร็ว GPU ที่แพงกว่าอย่าง Nvidia K80 นั้นไม่ใหญ่มากนัก จริงๆแล้วการ์ดผู้บริโภคที่ดีที่สุดนั้นเร็วกว่าตัวเร่ง GPU แต่ขาดคุณสมบัติอื่น ๆ เช่น VRAM การเปรียบเทียบแบบสุ่มและมาตรฐาน: http://timdettmers.com/2017/04/09/which-gpu-for-deep-learning/ , https://medium.com/@alexbaldo/a-comparison-between-nvidias-geforce -gtx-1080 และเทสลา-p100 สำหรับลึกการเรียนรู้ 81a918d5b2c7

ในการคำนวณว่าโมเดลของคุณเหมาะสมกับ VRAM หรือไม่คุณเพียงประมาณว่าคุณมีข้อมูลและพารามิเตอร์ใดบ้าง (อินพุต, เอาต์พุต, น้ำหนัก, เลเยอร์, ​​ขนาดแบทช์, ประเภทข้อมูลและอื่น ๆ )


1
คำตอบที่ดี แต่รุ่นใดที่ไม่เหมาะกับหน่วยความจำ 6 / 8GB? สมมติว่าข้อมูลการฝึกอบรมแต่ละชุด + โมเดล ฉันไม่รู้ว่าจะคำนวณขนาดของแบบจำลองได้อย่างไร แต่ฉันไม่สามารถจินตนาการได้ว่ามีเซลล์ประสาทหลายพันเซลล์และน้ำหนักของพวกมันสามารถเติมหน่วยความจำกิกะไบต์ได้ โมเดลการจดจำรูปภาพที่ได้รับการอบรมล่วงหน้าจาก Google นั้นมีขนาดไม่กี่ร้อย Megs tensorflow.org/tutorials/image_recognitionและสามารถรับรู้ได้มากกว่าคนอื่น ๆ Apple จัดการกับชิปใน iPhone ดังนั้นรูปแบบของตัวเองจะต้องเล็กกว่า T-data มาก และนั่นไม่จำเป็นต้องอยู่ใน RAM ใช่มั้ย
pascalwhoop

ฉันมักจะทำงานกับโมเดล NLP ซึ่งส่วนใหญ่เป็น RNN หลายชั้นและหากขนาดคำศัพท์มีขนาดใหญ่แม้กระทั่ง 8 GB อาจไม่เพียงพอ โปรดจำไว้ว่าการฝึกอบรมมักต้องการพื้นที่มากกว่าการทำนาย (การไล่ระดับสีใช้พื้นที่มากเกินไป)
C. Yduqoli

3

ในฐานะที่เป็นข้อแม้ฉันขอแนะนำว่าถ้าคุณไม่ผลักดันข้อ จำกัด ทางเทคโนโลยีพื้นฐานความเร็วในการคำนวณและทรัพยากรควรเป็นเรื่องรองสำหรับการออกแบบเหตุผลเมื่อพัฒนาสถาปัตยกรรมเครือข่ายประสาท

ที่กล่าวว่าเมื่อต้นปีนี้ฉันทำวิทยานิพนธ์ MS ของฉันเสร็จแล้วซึ่งเกี่ยวข้องกับท่อส่งข้อมูลวิเคราะห์ชีวสารสนเทศด้วยข้อมูลลำดับจีโนมทั้งหมด - โครงการนั้นใช้เวลาในการคำนวณมากกว่า 100,000 ชั่วโมงในการพัฒนาตามผู้จัดการงานกลุ่มของเรา เมื่อถึงกำหนดทรัพยากรอาจเป็นข้อ จำกัด ที่แท้จริงและความเร็วอาจเป็นเรื่องสำคัญ

ดังนั้นเพื่อตอบคำถามของคุณตามที่ฉันเข้าใจ:

ฉันจะดีกว่าไหมถ้าใช้เงินเพื่อซื้อเวลาบนคลาวด์?

อาจ. ไม่กี่ร้อยดอลลาร์ที่คุณใช้ไปกับ 1,060 จะช่วยให้คุณฝึกฝนโมเดลของคุณได้ในระบบคลาวด์ นอกจากนี้เท่าที่ฉันสามารถบอกได้คุณไม่จำเป็นต้องใช้ GPU ในการหมุน 100% ของเวลา (ถ้าคุณพูดการขุดสกุลเงินดิจิตอล) สุดท้ายด้วยอินสแตนซ์บนคลาวด์ที่คุณสามารถปรับขนาดได้ฝึกอบรมหลายรุ่นพร้อมกันซึ่งสามารถเพิ่มความเร็วในการสำรวจและตรวจสอบความถูกต้องของสถาปัตยกรรมใด ๆ ที่คุณเลือก

มีวิธีการวัดเวลาคำนวณของเครือข่ายนิวรัลใน GPU ที่กำหนดหรือไม่

ดีBig Oเป็นหนึ่งในประมาณการ แต่ดูเหมือนคุณต้องการวิธีที่แม่นยำมากขึ้น ฉันแน่ใจว่ามีอยู่ แต่ฉันจะตอบโต้ว่าคุณสามารถประมาณค่าของคุณด้วยการคำนวณหลังซองจดหมายที่อธิบายถึงเธรดหน่วยความจำการวนซ้ำของรหัส ฯลฯ คุณต้องการขุดลงไปใน GPU ไปป์ไลน์การประมวลผลหรือไม่ 1060? คุณอาจจะมีการประมาณที่ดีมากโดยการทำความเข้าใจทุกสิ่งที่เกิดขึ้นระหว่างรหัสของคุณกับโลหะ แต่ท้ายที่สุดมันอาจไม่คุ้มค่ากับเวลาและความพยายาม เป็นไปได้มากที่จะยืนยันว่าสัญลักษณ์ Big O (โมเดลที่เรียบง่ายถ้าคุณต้องการ) จะจับการเปลี่ยนแปลงส่วนใหญ่ในเวลาคำนวณ สิ่งหนึ่งที่คุณสามารถทำได้หากคุณสังเกตเห็นปัญหาคอขวดคือการทำโปรไฟล์ประสิทธิภาพ


2

มันขึ้นอยู่กับสิ่งที่คุณต้องการ คุณสามารถฝึกอบรมเครือข่ายทุกขนาดในทรัพยากรใด ๆ ปัญหาคือเวลาของการฝึกอบรม หากคุณต้องการฝึกอบรม Inception โดยใช้ CPU โดยเฉลี่ยจะใช้เวลาหลายเดือนในการรวมเข้าด้วยกัน ดังนั้นทุกอย่างขึ้นอยู่กับระยะเวลาที่คุณรอดูผลลัพธ์ของคุณตามเครือข่ายของคุณ ในอวนประสาทเราไม่ได้มีเพียงการดำเนินการเพียงอย่างเดียว แต่มีหลายอย่าง (เช่นการต่อกัน, การรวมสูงสุด, การขยาย ฯลฯ ) มันเป็นไปไม่ได้ที่จะทำการประเมินตามที่คุณกำลังค้นหา เพียงแค่เริ่มการฝึกอบรมเครือข่ายที่น่าอับอายและวัดเวลา จากนั้นคุณสามารถแก้ไขระยะเวลาในการฝึกอบรมเครือข่ายที่คุณค้นหา


คุณตระหนักถึงทรัพยากรที่รวบรวมข้อมูลสำหรับงาน NN ที่แตกต่างกันหรือไม่? ดังนั้นรายการ: ประเภท NN, จำนวนหน่วย, พารามิเตอร์ไฮเปอร์, ขนาดชุดข้อมูล, ฮาร์ดแวร์ที่ใช้, เวลาที่ใช้? นั่นจะช่วยในการพัฒนากฎปรีชานิ้วหัวแม่มือ
pascalwhoop
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.