1 คะแนน โดย GN⁺ 2023-12-16 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • หากมีเวลาประมาณ 1 ชั่วโมง ต่อวันเพื่อใช้พัฒนาทักษะด้าน AI/ML กำลังมองหาวิธีลงทุนเวลาและพลังงานให้คุ้มค่าที่สุด
  • เสนอทางเลือกอย่าง โปรเจกต์เล็ก ๆ, บล็อก/จดหมายข่าว, คอร์สเรียน, ตำรา, การแข่งขัน Kaggle, การมีส่วนร่วมในฟอรัม·คอมมูนิตี้ AI/ML หรือการผสมผสานสิ่งเหล่านี้
  • ต้องการให้ช่วยแนะนำว่าอะไรจะเป็นประโยชน์ต่อ วิศวกรซอฟต์แวร์ ที่อยากพัฒนาทักษะ ML โดยหากเป็นไปได้ก็อยากทราบสัดส่วนหรือค่าน้ำหนักของเวลาในแต่ละกิจกรรมด้วย

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

 
GN⁺ 2023-12-16
ความคิดเห็นจาก Hacker News
  • การแบ่งปันประสบการณ์ด้านปริญญา

    • สำเร็จการศึกษาระดับปริญญาโทด้าน ML (แมชชีนเลิร์นนิง) จากมหาวิทยาลัยที่ดี สิ่งที่เรียนจากที่มหาวิทยาลัยสามารถเรียนเองได้ก็จริง แต่สถาบันการศึกษามอบสมาธิและแรงกดดันที่ทำเองคนเดียวไม่ได้
    • การลงมือทำตามงานวิจัยเป็นประสบการณ์ที่ได้เรียนรู้มากที่สุด การบรรยายและตำราเป็นเพียงคำพูด แต่การลงมือทำจริงให้ความรู้ที่ลึกกว่ามาก
    • สามารถแนะนำหลักสูตรได้หลากหลาย แต่การแก้ปัญหาอย่างมีสมาธิ 1 ชั่วโมงคือสิ่งที่ดีที่สุด
    • ข้อเสนอโปรเจ็กต์บางอย่าง: ฝึกเบบี้นิวรัลเน็ตสำหรับเรียนรู้ฟังก์ชันง่าย ๆ, ตัวจำแนกตัวเลข MNIST, fine-tune GPT2 ด้วยคอร์ปัสเฉพาะทาง, ฝึก Siamese network เพื่อวัดความคล้ายคลึงกันทางภาพ เป็นต้น
    • แนะนำว่าอย่าเสียเวลาเขียนนิวรัลเน็ตและ backpropagation ของตัวเอง แต่ให้ไปเรียนรู้วิธีใช้เครื่องมือ profiling และ debugging
  • คำแนะนำจากนักวิจัย AI และผู้ก่อตั้งสตาร์ตอัปสายเทคนิค

    • หากพูดถึงความก้าวหน้าล่าสุด ขอแนะนำว่าอย่าเดินตามเส้นทางแบบเป็นเส้นตรง ให้เรียนหนึ่งคอร์สและทำโปรเจ็กต์เล็ก ๆ สักชิ้น พร้อมกำหนดเวลาและพยายามทำให้เสร็จ
    • ค้นหาสาขางานวิจัยที่น่าสนใจ รันโค้ดจาก GitHub ที่เกี่ยวข้อง แล้วหาวิธีปรับปรุงหรือวิธีนำไปใช้ในแอป
    • แนะนำให้เรียนคอร์ส fast.ai, อ่านบล็อกโพสต์ของ Karpathy, และเรียนคอร์ส Stanford cs231n และ cs234 เป็นต้น
    • หาโปรเจ็กต์ที่ตัวเองสนใจแล้วลองรันมัน
  • ความสำคัญของการนำ ML ไปใช้จริง

    • คอมเมนต์จำนวนมากอาจเน้นส่วน low-level ของ ML แต่สิ่งที่ ML ต้องการในตอนนี้คือคนฉลาดในระดับ implementation
    • การใช้เทคโนโลยี LLM ที่มีอยู่เพื่อสร้างซอฟต์แวร์ที่คนทั่วไปใช้งานได้ เป็นงานที่สำคัญและจำเป็น
    • การฝึกฝนในชีวิตประจำวัน ได้แก่ การสเก็ตช์แอปพลิเคชัน, การจัดโครงสร้าง prompt และ function calling, การเรียนรู้วิธีทำการตลาดสิ่งที่สร้างขึ้น, และการสร้างเครื่องมือที่พาจากศูนย์ไปสู่หนึ่ง
    • ตัวอย่างเช่น การนำเทคนิค common-place book ยุคอริสโตเติลมาใช้กับยุคของ embedding สมัยใหม่ และการทำความเข้าใจสเปก MD แบบล้วน ๆ พร้อมผสานโมเดลการสร้างแบบสตรีมมิง
  • เปลี่ยน AI/ML ให้เป็นงานประจำวัน

    • หาวิธีวาง AI/ML ไว้บนเส้นทางสำคัญ เหมือนกับการเรียนภาษาใหม่ ไม่มีอะไรได้ผลเท่ากับการดื่มด่ำอย่างเต็มรูปแบบ
    • หากยังมีพื้นฐานไม่มากพอที่จะได้งานในสายนี้ การหา passion project และคิดหาวิธีแก้ปัญหาใหม่ ๆ อยู่เสมอคือทางเลือกที่ดีรองลงมา
    • สุดท้าย ให้พิจารณากลับไปเรียน แม้จะใช้เวลามากกว่าวันละ 1 ชั่วโมง แต่สามารถเห็นผลลัพธ์ที่เร็วและชัดเจนกว่ากลยุทธ์การเรียนรู้อื่นมาก
  • โรดแมปของนักเรียน ML/AI ทั่วไป

    • ต้องมีความรู้พื้นฐานล่วงหน้า เช่น คณิตศาสตร์และวิทยาการคอมพิวเตอร์ ซึ่งโดยทั่วไปจะรวมถึงแคลคูลัส พีชคณิตเชิงเส้น ความน่าจะเป็นและสถิติ การเขียนโปรแกรม การเขียนโปรแกรมเชิงวัตถุ โครงสร้างข้อมูล และอัลกอริทึม
    • หลังจากเรียนคอร์ส ML พื้นฐานแล้ว จึงค่อยไปต่อกับส่วนพื้นฐานของ DL (ดีปเลิร์นนิง) ซึ่งเปลี่ยนแปลงอย่างรวดเร็ว
    • จากนั้นจะแยกเป็นสาย ML engineering และ ML research โดยสายวิศวกรรมจะเน้นเรื่องเทคนิคที่เกี่ยวข้องกับ ML pipeline ส่วนสายวิจัยจะโฟกัสที่ตัววิทยาศาสตร์เอง
    • อย่างที่หลายคนพูดไว้ การใช้เครื่องมือเพื่อทำ implementation นั้นทั้งสนุกและมีประโยชน์ หากพยายาม implement ทุกโมเดลด้วยตัวเองทั้งหมด อาจเจอความยากลำบากอย่างมาก
    • เมื่อเรียน ML แบบ "ใช้งานจริง" มักพยายาม implement โมเดลในลักษณะที่ป้อนข้อมูลผ่าน API และรับผลลัพธ์กลับมาได้ ซึ่งรวมถึงความท้าทายด้านการจัดการข้อมูล การพัฒนาซอฟต์แวร์และการโฮสต์ ตลอดจนการพัฒนา API
  • การตระหนักถึงข้อจำกัดของ AI/ML

    • อย่าปล่อยจินตนาการไปไกลเกินไป หรือมั่นใจเกินจริงกับสิ่งที่ AI/ML ทำได้
    • เคยทำโปรเจ็กต์ ML อยู่ 2 ปีในบริษัทใหญ่ แต่พบว่าไม่ได้ดีไปกว่าวิธีการทางสถิติแบบเดิม และเพราะไม่สามารถเข้าใจ "กล่องดำ" ของ ML ได้ จึงไม่มีการปรับปรุงกระบวนการอย่างมีนัยสำคัญ
    • งาน ML จำนวนมากเป็นเหมือนคำตอบที่ออกมาก่อนแล้วค่อยไปหาปัญหามารองรับ
    • การเข้าใจวิธีใช้ฐานข้อมูล (SQL และ NoSQL) เป็นสิ่งสำคัญ หากต้องการใช้ ML อย่างมีประสิทธิภาพ จำเป็นต้องมีทักษะยอดเยี่ยมในการเขียนโปรแกรมกับข้อมูลปริมาณมากให้มีประสิทธิภาพสูง
  • วิธีศึกษา AI/ML

    • อ่าน "An Introduction to Statistical Learning with Applications in R/Python" ของ Hastie และคณะตั้งแต่ต้นจนจบ พร้อมทำความเข้าใจแนวคิด/ไอเดีย/นัยสำคัญ/ความละเอียดอ่อนที่อธิบายไว้
    • เตรียมหนังสือคณิตศาสตร์/สถิติไว้ข้างตัว และเมื่อเจอเทคนิคคณิตศาสตร์ที่ไม่รู้จัก ให้เปิดหนังสือเหล่านี้ทันทีหรือดูวิดีโอ YouTube สั้น ๆ เพื่อเข้าใจแนวคิดและวิธีใช้
    • นี่คือวิธีที่ง่ายและตรงที่สุดในการศึกษาและทำความเข้าใจ AI/ML สิ่งอื่นทั้งหมดที่กล่าวถึงในเธรดนี้ควรทำหลังจากทำสิ่งนี้เสร็จแล้ว
  • การผสาน ML กับวิศวกรรม

    • ลองพิจารณาจุดเชื่อมระหว่าง ML กับวิศวกรรม
    • พิจารณาเรื่อง ML ops, การประยุกต์ใช้ DevOps, การทดสอบและ ci/cd ในโลก ML, วิธีเทรนบน GPU หลายตัว และโดยเฉพาะอย่างยิ่งวิธีโฮสต์ LLM ขนาดใหญ่ในต้นทุนต่ำ
    • ในแวดวงวิชาการมีผู้สมัครที่มีพื้นฐานทางวิชาการแข็งแกร่งอยู่หลายร้อยคน แต่มีวิศวกรมากประสบการณ์ที่สามารถทำให้ความทะเยอทะยานของพวกเขาเป็นจริงได้อยู่น้อยมาก
  • โฟกัสที่ดีปเลิร์นนิง

    • LLM ส่วนใหญ่ใช้สถาปัตยกรรม transformer ซึ่งสามารถเรียนรู้เชิงภาพได้ และเรียนผ่านบล็อกโพสต์หรือบทความและสื่อของ Andrej Karpathy ได้
    • อ่านสรุปประจำวันอาทิตย์ทุกสัปดาห์เพื่ออัปเดตงานวิจัยใหม่ที่เผยแพร่ทุกสัปดาห์
    • หากต้องการเรียนรู้ด้านวิศวกรรมเพิ่มเติม อาจเข้าร่วมเซิร์ฟเวอร์ Discord ของ EleutherAI หรือติดตาม GitHub Discussions ของโปรเจ็กต์อย่าง llama.cpp
    • วิธีพัฒนาที่มีประสิทธิภาพที่สุดน่าจะเป็นการ re-implement งานวิจัยหลักของวงการ เพราะมีเป้าหมายชัดเจน มีสัญญาณความสำเร็จที่ชัด และมี implementation มากมายให้ตรวจสอบ เปรียบเทียบ และเรียนรู้
  • ควิซสำหรับผู้เริ่มต้น LLM

    • เพิ่งสอนบทนำเกี่ยวกับ LLM ให้กับนักศึกษาบัณฑิตศึกษาที่ไม่ได้มาจากสาย CS (ชีวการแพทย์) และอยากมอบควิซการบ้าน แต่หาอันที่ดีไม่เจอ จึงสร้างควิซแบบปรนัยขึ้นมาเอง ควิซนี้ "โหด" และถ้าไม่มีความเข้าใจที่แน่นพอก็อาจพลาดได้ หลายคำถามมีความละเอียดอ่อนที่ช่วยทดสอบความเข้าใจและช่วยให้เรียนรู้จากการพยายามหาคำตอบที่ถูกต้อง เป็น Google Forms ที่ไม่เก็บอีเมล