ณ สิ้นเดือนมิถุนายน Yandex
ได้เปิดตัว โครงข่ายประสาทเทียมที่มีพารามิเตอร์ 100 พันล้านตัวที่เรียกว่า YaLM 100B สู่สาธารณะ เป็นโครงข่ายประสาทเทียมคล้าย GPT ที่ใหญ่ที่สุดในสาธารณสมบัติ มันบอกเกี่ยวกับวิธีที่พวกเขาสอน แสดงตัวอย่างที่ดีที่สุด และความสามารถของเซลล์ประสาท แต่ในทางปฏิบัติและที่บ้านนั้นดีหรือไม่? บทความนี้ไม่ได้กล่าวถึงเรื่องนี้ ยิ่งกว่านั้น การเรียกใช้และตรวจสอบไม่ใช่เรื่องง่าย เนื่องจากต้องใช้ GPU RAM ประมาณ 200 Gb ความคิดเห็นเกี่ยวกับ Habré
นี้ เผยให้เห็นสถานการณ์ได้แม่นยำที่สุด
ถูกกล่าวหาว่าเป็นคนฉลาดทุกคนในยานเดกซ์และพวกเขาไม่ได้โพสต์ฮาวทูปกติด้วยซ้ำ ไม่มี API สำหรับรุ่นใหญ่ ไม่มีรุ่นกลางหรือรุ่นเล็กแบบแยกส่วนสำเร็จรูปสำหรับคนธรรมดา (ใน Google Colab) ไม่มีตัวอย่างเกี่ยวกับวิธีการตั้งค่าแบบจำลอง วิธีสร้างข้อความ เป็นเพียงว่าบทความระบุความแตกต่างสองสามประการสำหรับผู้สนใจและเท่านั้น การพิจารณาให้ละเอียดยิ่งขึ้นว่าธนาคารทำอย่างไรกับตัวอักษร “C” และทำเช่นเดียวกัน ฉันได้รับความประทับใจว่าโมเดลนี้เป็นเพียงหนึ่งในการทดลองที่ล้มเหลวซึ่งน่าเสียดายที่ต้องทิ้งลงในถังขยะ ดังนั้นจึงโพสต์ในโอเพ่นซอร์สเพื่อแสดงให้เห็นว่าโมเดลที่ยอดเยี่ยมที่ยานเดกซ์สร้างขึ้นคืออะไร และยิ่งกว่านั้น ยังเป็นโอเพ่นซอร์สอีกด้วย!
มีคำถามมากมายบนอินเทอร์เน็ตเกี่ยวกับวิธีเรียกใช้ yalm หรือแม้แต่ลองออนไลน์ แต่ไม่มีคำตอบสำหรับเรื่องนี้ ฉันเป็นหนึ่งในผู้ใช้ที่ถามคำถามเหล่านี้ และตั้งหน้าตั้งตาหามัน เนื่องจากฉันต้องการวิธีสร้างข้อความสำหรับหุ่นยนต์ทางการเงินจริงๆ เพื่อให้พวกเขาสามารถทำนายค่าได้ไม่เพียงเท่านั้น แต่ยังแสดงความคิดเห็นในข้อความตามรายงานทางการเงิน โดยพื้นฐานแล้ว มันจะเหมือนกับสิ่งที่นักวิเคราะห์ทางการเงินทำ ด้วยการใช้ปัญญาประดิษฐ์เท่านั้น มีสองวิธีในการเรียกใช้ yalm
เช่าเซิร์ฟเวอร์ในระบบคลาวด์ด้วย 200+ Gb GPU RAM หรือแก้ไขโค้ดและรันด้วย deepspeed zero offload (เมื่อ GPU ประมวลผลส่วนหนึ่งของเครือข่ายประสาทตามลำดับและส่วนที่เหลือจะถูกเก็บไว้ใน CPU RAM หรือ NVMe) อันแรกมีราคาแพงมากประมาณ 2,500 รูเบิลต่อชั่วโมงหรือ 1.7 ล้านต่อเดือน ที่สองที่ไม่รู้จักเพราะ ไม่ได้ระบุรหัสในที่เก็บ มีเพียง
คำแนะนำเกี่ยวกับปัญหาของที่เก็บ ซึ่งทำได้ไม่ยาก มาเริ่มกันง่ายๆ
- คำแนะนำในการเปิดใช้ YaLM 100B
- 1. เราเช่า GPU RAM 200 GB ตัวอย่างเช่นที่นี่
- 2. โคลนที่เก็บด้วยYaLM
- 3. ดาวน์โหลดด่าน (ข้อมูลการฝึกโมเดลพื้นฐาน)
- 4. ติดตั้งnvidia – นักเทียบท่า2
- 5. การสร้างคอนเทนเนอร์สำหรับ YaLM
- 6. เตรียมเนื้อหา
- 6.1 จุดตรวจ
- 6.2 การ์ดจอ
- 7. เรียกใช้คอนเทนเนอร์นักเทียบท่า
- 8. เรียกใช้ตัวอย่างจาก YaLM 100B
- 9. ผลงาน
- จะรัน YaLM โดยไม่มี RAM 200Gb GPU ได้อย่างไร
- สรุป
คำแนะนำในการเปิดใช้ YaLM 100B
1. เราเช่า GPU RAM 200 GB ตัวอย่างเช่นที่นี่
คุณต้องมีหน่วยความจำวิดีโอทั้งหมดอย่างน้อย 200 GB 8×40 = 320 GB. ตัวนี้เข้าได้อย่างเดียว น้อยกว่า 200 เป็นไปไม่ได้ มากกว่านั้นเป็นไปได้ ลูกศรบ่งชี้ CPU RAM เราไม่ได้ดูมัน เธอเป็นใครก็ได้
เราระบุดิสก์ประมาณ 300 GB เพื่อให้มีดิสก์สำรองและควรเป็นดิสก์ที่รวดเร็วเพราะ ข้อมูลหลายสิบกิกะไบต์จะถูกโอนเข้าและออกจากข้อมูล
เมื่อสร้างในแหล่งที่มา ให้เลือก Ubuntu ML (การเรียนรู้ของเครื่อง) สิ่งนี้จำเป็นสำหรับการกำหนดค่าการ์ดวิดีโอและไม่จำเป็นต้องติดตั้งเพิ่มเติม
เมื่อสร้างเซิร์ฟเวอร์ โควต้ามีความแตกต่างกัน คุณอาจรู้สึกว่าอุปกรณ์ไม่พร้อมใช้งาน แต่ที่จริงแล้ว คุณเพียงแค่ต้องเพิ่มโควต้าในการตั้งค่า หลังจากเปิดใช้งานเซิร์ฟเวอร์ (อาจใช้เวลา 5-10 นาที) ให้เชื่อมต่อกับเซิร์ฟเวอร์ผ่าน ssh หรือโดยตรงในเว็บคอนโซลบนหน้าเซิร์ฟเวอร์และดำเนินการคำสั่ง
nvidia-smi
ผลลัพธ์ควรเป็นตารางที่มีการ์ดแสดงผล เวอร์ชันไดรเวอร์ และ cuda ประมาณนี้ค่ะ
ในส่วนหัวของเวอร์ชันไดรเวอร์และตำแหน่ง ทางด้านซ้ายคือหมายเลขเครื่อง ตรงกลางคือขนาดของหน่วยความจำเครื่อง หากคุณไม่มีข้อมูลนี้ แสดงว่าคุณได้รวบรวมเซิร์ฟเวอร์จากแหล่งที่ไม่ถูกต้อง ต้องใช้ Ubuntu ML (Machine Learnong) ตามที่อธิบายไว้ข้างต้น
2. โคลนที่เก็บด้วยYaLM
โคลน sudo git https://github.com/yandex/YaLM-100B/ yalm
cd yalm
โคลนไปยังโฟลเดอร์หลักของคุณ คุณจะได้ไม่ต้องแก้ไขการกำหนดค่านักเทียบท่าในภายหลัง หากโคลนที่อื่น ให้
ไปที่นี่และเพิ่มเส้นทางไปยังตำแหน่งที่โคลน
3. ดาวน์โหลดด่าน (ข้อมูลการฝึกโมเดลพื้นฐาน)
sudo chmod +x ./download/download.sh
sudo bash ./download/download.sh
จะใช้เวลาประมาณหนึ่งชั่วโมง เพื่อไม่ให้เสียเวลาเปล่า ๆ เราสร้างการเชื่อมต่อ ssh ใหม่และพร้อมกัน เราเริ่มสร้างคอนเทนเนอร์นักเทียบท่า
4. ติดตั้งnvidia – นักเทียบท่า2
นักเทียบท่าปกติไม่เหมาะสม
จำเป็นต้อง มี
nvidia-docker2 https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#setting-up-nvidia-container-toolkit
5. การสร้างคอนเทนเนอร์สำหรับ YaLM
cd yalm
sudo chmod +x ./docker/*
sudo bash ./docker/build.sh
มันยังประมาณหนึ่งชั่วโมง
แฮ็คชีวิต คุณสามารถดาวน์โหลดจุดตรวจ ติดตั้งนักเทียบท่า และสร้างคอนเทนเนอร์บนเซิร์ฟเวอร์ราคาถูกด้วยการ์ดแสดงผลเพียงใบเดียว มันจะเหมือนกันในเวลาดังนั้นคุณสามารถประหยัดได้เล็กน้อย หลังจากประกอบบนเซิร์ฟเวอร์ราคาถูก เราจะลบมัน และสร้างเซิร์ฟเวอร์การต่อสู้โดยใช้ดิสก์จากเซิร์ฟเวอร์ราคาถูก แล้วคุณจะไม่ต้องเสียค่าเสียเวลารอการชุมนุมและสูบน้ำออกด่านตรวจมากเกินไป
6. เตรียมเนื้อหา
6.1 จุดตรวจ
หลังจากการดาวน์โหลดจุดตรวจสิ้นสุดลง คุณจะต้องส่งมันเข้าไปในการกำหนดค่า มีสองวิธีคือแก้ไขพารามิเตอร์หรือจุดตรวจการโอน ทุกที่คาดว่าจุดตรวจจะอยู่ในไดเรกทอรีหลักของโครงการตามลำดับสิ่งที่ดาวน์โหลดจะต้องโอนจากโฟลเดอร์ดาวน์โหลดด้านบน อยู่ในโฟลเดอร์ yalm ดำเนินการ
mv ./download/yalm100b_checkpoint ./
หรือเปลี่ยนเส้นทางไปยังไฟล์ในไฟล์ตัวอย่าง
https://github.com/yandex/YaLM-100B/blob/c91b7d7fe8dbf39c9e307d6d324446d0df136a23/examples/generate_interactive.sh#L8-L9
6.2 การ์ดจอ
เราตรวจสอบว่าการ์ดแสดงผลได้รับการตั้งค่าอย่างถูกต้อง หากคุณมีการ์ดวิดีโอแปดตัว ก็ไม่จำเป็นต้องเปลี่ยนอะไร หากตัวเลขต่างกัน เราก็เปลี่ยนบรรทัดเหล่านี้
ในบรรทัดที่สอง ตัวเลขของอุปกรณ์ที่ใช้ (คุณสามารถดูได้ใน nvidia-smi ซึ่งคุณเปิดตัวไปแล้ว) ในสี่จำนวนของพวกเขา
7. เรียกใช้คอนเทนเนอร์นักเทียบท่า
อยู่ในโฟลเดอร์ yalm ให้รันคำสั่ง
sudo bash ./docker/run.sh
หากทุกอย่างเรียบร้อย คุณจะถูกนำไปที่คอนเทนเนอร์ที่คุณต้องไปที่โฟลเดอร์ yalm ในโฮมไดเร็กตอรี่ของคุณ
cd ~/yalm
8. เรียกใช้ตัวอย่างจาก YaLM 100B
เราพร้อมที่จะเปิดตัวหนึ่งในตัวอย่าง มีการอธิบายไว้
ที่
นี่
chmod +x ./examples/generate_interactive.sh
./examples/generate_interactive.sh
อดทนรออีก 10-15 นาทีจนกว่าจะสร้างแบบจำลอง GPT และโหลดตุ้มน้ำหนักจากจุดตรวจ
เมื่อการสร้างเสร็จสิ้น MegatronML จะแจ้งให้คุณป้อนบริบทเพื่อสร้างข้อความ ระวังเมื่อคุณพิมพ์ ในบางกรณี เกิดข้อผิดพลาด โปรแกรมขัดข้อง และคุณจำเป็นต้องเริ่มแอสเซมบลีอีกครั้ง ดังนั้นจึงควรใช้ตัวอย่างที่ดึงข้อความจากไฟล์
9. ผลงาน
ดูน่าสนใจ แน่นอนว่านี่เป็นเพียงตัวอย่างที่ดีเท่านั้น ฉันทำการทดสอบกับตัวอย่างต่างๆ ตามที่คาดไว้ ยิ่งบริบทดีขึ้นเท่าใด ข้อความที่มีความหมายก็จะยิ่งถูกสร้างขึ้น สามารถดูชุดเต็มของรุ่นทดลองได้ที่ลิงค์:
สำหรับราคานี้ ฉันเสียค่าใช้จ่ายประมาณ 9,000 รูเบิลสำหรับการเช่าเซิร์ฟเวอร์ที่มีความสามารถต่างกันตั้งแต่การฝึกอบรมและตั้งแต่การเตรียมการจนถึงรุ่น ความผิดหวังอย่างหนึ่งคือคุณไม่สามารถสร้างทุกอย่างได้ทันที ใช้เวลานานมากในการเริ่มต้นและข้อความไม่สามารถสร้างได้เร็วเท่าที่เราต้องการ เนื่องจากต้นทุนของเซิร์ฟเวอร์ต่อชั่วโมง
จะรัน YaLM โดยไม่มี RAM 200Gb GPU ได้อย่างไร
คุณต้องเพิ่ม deepspeed zero offload ให้กับการกำหนดค่า สำหรับผู้ที่รู้ว่าเรากำลังพูดถึงอะไรมันจะง่ายมากที่จะทำ สำหรับคนอื่น ๆ นี่ไม่ใช่งานเล็กน้อยเลย สิ่งสำคัญคือต้องรู้ว่าออฟโหลดสามารถเป็นได้ทั้งใน CPU RAM หรือ NVMe คุณสามารถลืมเกี่ยวกับ NVMe ได้ในขณะนี้เพราะ กำลังประมวลผลข้อมูลจำนวนมากและดิสก์ไม่สามารถรับมือได้ Zero offload CPU เป็นจริงมากขึ้น จริงอยู่ สำหรับสิ่งนี้ คุณต้องมี CPU RAM 200+ Gb ในสต็อก ซึ่งก็ไม่ถูกเช่นกัน และข้อความหนึ่งจะถูกสร้างขึ้นประมาณ 20-40 นาที เนื่องจากยังไม่สามารถขนานกับการ์ดวิดีโอสองใบได้ ดังที่คุณเห็นในภาพหน้าจอด้านล่าง มีเพียงการ์ดแสดงผลหนึ่งรุ่นเท่านั้นที่มีส่วนเกี่ยวข้องกับรุ่นดังกล่าว และมีเพียงหนึ่งในสี่ของหน่วยความจำเท่านั้น คงต้องดูกันต่อไปว่าทำไมไม่ใช้ 24 GB ทั้งหมด
โดยสรุปแล้วฉันจะบอกว่ามันเป็นไปได้ที่จะทำงานแม้ใน RTX 3070 TI ตัวเดียว แต่ไม่มีความหมายเฉพาะในเรื่องนี้เพราะ NVMe จะไม่อนุญาตให้คุณประมวลผลข้อมูล 150 GB อย่างรวดเร็วในการสลับ ซึ่งอยู่ในส่วนท้ายของ RAM 96 GB
สรุป
แน่นอน ฉันยังคงพยายามค้นหาเส้นทางการเปิดตัวที่เหมาะสมที่สุด แต่จนถึงตอนนี้ ฉันได้ข้อสรุปว่า YaLM 100b แพงเกินไป/ช้าเกินไปสำหรับงานของฉัน สำหรับเงินเท่าๆ กัน ผู้คนจะเขียนมากขึ้นและดีขึ้นมาก แต่ฉันคิดว่ามันชั่วคราวเราจะเห็น หากคุณต้องการความช่วยเหลือเกี่ยวกับการเปิดตัว การตั้งค่า yalm หรือต้องการดูผลลัพธ์ในตัวอย่างบริบทของคุณ ให้เขียนไปที่อีเมลหรือโทรเลข
Статья на Мега актуальную тему! Спасибо.
Крутая статья! Спасибо автору!
СПАСИБО !!!
три дня эту информацию искал
нет подобного о RuGPT3 и Порфириче?