1 คะแนน โดย GN⁺ 2024-04-19 | 1 ความคิดเห็น | แชร์ทาง WhatsApp

Effort คืออะไร?

  • Effort หมายถึงพลังงาน เวลา และทรัพยากรที่投入เพื่อทำบางสิ่งให้สำเร็จหรือบรรลุเป้าหมาย
  • หมายถึงความพยายามและความอุตสาหะที่จำเป็นต่อการเอาชนะอุปสรรคหรือให้ได้ผลลัพธ์ตามต้องการ
  • Effort อาจเป็นได้ทั้งทางกายและทางใจ
    • ความพยายามทางกาย เช่น พลังงานที่ใช้ในการยกของหนักหรือวิ่งมาราธอน
    • ความพยายามทางใจ เช่น สมาธิและพลังใจที่จำเป็นในการแก้ปัญหาที่ซับซ้อนหรือเรียนรู้ทักษะใหม่
  • เป็นองค์ประกอบสำคัญในการประสบความสำเร็จในหลายด้านของชีวิต เช่น การเติบโตส่วนบุคคล การทำงาน และการศึกษา

ความเห็นของ GN⁺

  • Effort ไม่ได้หมายถึงเพียงปริมาณเวลา หรือพลังงานที่ทุ่มลงไปเท่านั้น แต่เป็นแนวคิดที่เกิดจากหลายปัจจัยร่วมกัน เช่น ความต่อเนื่อง สมาธิ และแรงจูงใจ ดังนั้น ต่อให้พยายามอย่างหนัก ก็ไม่ได้หมายความว่าจะประสบความสำเร็จเสมอไป
  • โดยเฉพาะงานที่ต้องใช้ Effort ทางใจ ควรระวังไม่ให้เกิดภาวะหมดไฟ การหาวิธีรักษาระดับ Effort ให้ต่อเนื่องด้วยการพักผ่อนและให้รางวัลที่เหมาะสมจึงเป็นเรื่องสำคัญ
  • แต่ละคนอาจมีวิธีลง Effort ที่ต่างกัน บางคนเหมาะกับการทุ่มเทอย่างเข้มข้นในระยะสั้น ขณะที่บางคนเหมาะกับการค่อย ๆ ลง Effort อย่างสม่ำเสมอในระยะยาว การหาวิธีที่เหมาะกับตัวเองจะมีประสิทธิภาพมากกว่า

1 ความคิดเห็น

 
GN⁺ 2024-04-19
ความคิดเห็นจาก Hacker News
  • อัลกอริทึมนี้จะตัดแต่งพารามิเตอร์แบบเรียลไทม์ และทำให้เมทริกซ์น้ำหนักเป็นแบบ sparse โดยตั้งค่าน้ำหนักที่มีอันดับค่าสัมบูรณ์ต่ำภายในกลุ่มให้เป็น 0
  • จากผลการค้นหาเกี่ยวกับการ pruning โมเดล พบว่ามีงานวิจัยจำนวนมากที่พูดถึง "magnitude-based pruning" ในฐานะ baseline
    • แต่งานวิจัยเหล่านี้มักนำ baseline ไปใช้อย่างย่ำแย่เพื่อทำให้วิธีของตัวเองดูดีเกินจริง และใช่คำศัพท์ทางคณิตศาสตร์จำนวนมากในการอธิบายวิธีของตน
    • ในทางกลับกัน โพสต์บล็อกต้นฉบับอธิบายวิธีการได้เข้าใจง่าย แม้สำหรับคนที่แทบไม่มีความรู้พื้นฐานมาก่อน
  • มีบรรทัดหนึ่งในส่วนการใช้งานบน GPU ที่น่าประทับใจ
    • "มือใหม่ด้านการเขียนโปรแกรม GPU จะถามว่า 'มันทำงานอย่างไร?' ส่วนคนมีประสบการณ์จะถามว่า 'มันทำงานได้อย่างไรกันแน่?'"
  • การกลับเมทริกซ์ จัดเรียงองค์ประกอบตามแถว แล้วกลับมาพิจารณาการคูณจากทิศทางนั้น เรียกว่า format แบบ "compressed sparse row (CSR)"
    • ในการคูณ จะทำในลักษณะเช่นหยิบค่า 1 จากเวกเตอร์มาคูณ 256 แล้วนำไปบวกในแถวที่สามของเวกเตอร์ผลลัพธ์
    • มีข้อเสนอให้ลองดูว่าจะเกิดอะไรขึ้นหากตัดคอลัมน์สุดท้ายที่มีค่าน้อยที่สุดออก
  • ข้อเสนอชื่อไอเดีย: "lobotomize"
  • สิ่งนี้ดูคล้ายกับความเป็น sparse แบบกึ่งมีโครงสร้าง (2:4) ดังนั้นจึงคุ้มค่าที่จะเปรียบเทียบกันอย่างชัดเจน
    • เทคนิคนี้เหมาะกับ Apple Silicon, เร็วขึ้นประมาณ 2 เท่าที่ความเป็น sparse 75%, เป็นแบบไดนามิกและเปลี่ยนไปตามอินพุต, ใช้ตอนรันไทม์, และสามารถเลือกระดับความเป็น sparse ได้
    • ส่วนความเป็น sparse แบบกึ่งมีโครงสร้าง 2:4 เหมาะกับ GPU ที่มี sparse tensor core, เร็วขึ้นประมาณ 2 เท่าที่ความเป็น sparse 50%, เป็นแบบสแตติกและใช้ตอนโมเดลว่างงาน, และดูเหมือนว่าจะให้ผลลัพธ์แย่กว่าเทคนิคนี้ที่ความเป็น sparse 50%
    • น่าสนใจหากได้เปรียบเทียบผลของความเป็น sparse แบบกึ่งมีโครงสร้างที่ 50% (เร็วขึ้น 2 เท่า) กับผลของเทคนิคนี้ที่ความเป็น sparse 75% (เร็วขึ้น 2 เท่า)
  • จากประสบการณ์ที่เคยใช้ CSR มาก่อน เรื่องนี้ไม่น่าแปลกใจนัก และฟอร์แมตใหม่บางแบบอย่าง block ELL แม้โค้ดจะเขียนยากกว่า แต่หลีกเลี่ยงการอ่าน/รวบรวมแบบไม่เรียงลำดับได้ จึงสอดคล้องกับฮาร์ดแวร์มากกว่า
  • ความหน่วง 15ms ดูใกล้เคียงกับ vsync 60Hz (16.7ms) ดังนั้นถ้าอัปเดตหน้าจอหนึ่งครั้งต่อโทเค็น ก็อาจเกิดการซิงก์ขึ้นไม่ทางใดก็ทางหนึ่ง
  • ขอบคุณสำหรับผลงานที่ยอดเยี่ยมและเปิดกว้างแบบนี้ จะจับตาดูการนำสิ่งนี้ไปใช้ใน llama.cpp อย่างใกล้ชิด กำลังมองหาวิธีเพิ่มความเร็วในการอนุมานบน CPU อยู่ และชอบไอเดีย "effort" นี้
  • บทความยอดเยี่ยม! อยากรู้มากว่าประสิทธิภาพต่อ VRAM เป็นอย่างไรเมื่อเทียบกับการ quantization มีแผนจะทำเวอร์ชันข้ามแพลตฟอร์มหรือไม่?
  • ดูเหมือนว่าสิ่งนี้จะเกี่ยวข้องกับ https://arxiv.org/abs/2312.12456 และ https://github.com/SJTU-IPADS/PowerInfer