Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥

National Telecom Data & AI Hackathon

Punsiri Boonyakiat
December 06, 2024
54

National Telecom Data & AI Hackathon

NT Academy arranged an internal hackathon about Data, AI, and ML. As a Hackathon mentor, I have a chance to teach ML unsupervised techniques and also generative AI. The Generative AI is based on Gemini Multimodal. The session included hands-on teaching on multimodal prompts, best practices in prompt design, and techniques to write efficient prompts using Gemini AI for maximum effectiveness

Punsiri Boonyakiat

December 06, 2024
Tweet

Transcript

  1. Data & AI Hackathon National Telecom Public Company Limited BOOTCAMP

    D A Y 4 Presented by : Date : PUNSIRI BOONYAKIAT 25 APRIL 2024
  2. About Me Punsiri Boonyakiat Senor Data Engineer @ CJ Express

    Google Cloud Certified Professional Data Engineer
  3. Course outline 1 2 Unsupervised Learning K-Mean Clustering 3 4

    Generative AI - Language Model Prompt Design with GEMINI API DAY 4 NT-BOOTCAMP 3 Principal Component Analysis
  4. Python basic วิธีใช้งาน cloud Jupyter notebook NT-BOOTCAMP สำหรับผู้ใช้งาน Window เปิด

    Window PowerShell และ สำหรับผู้ใช้งาน Mac เปิด Terminal 1. ทำการเชื่อมต่อไปยัง Server บน Cloud ของ​ NT ด้วยคำ สั่ง ssh [email protected] 2. พิมพ์ yes 3. ทำการ Start jupyter-notebook ด้วยคำสั่ง jupyter- notebook --no-browser --port=8888 4. เปิด tab ใหม่ของ Window PowerShell หรือ Terminal เพื่อทำการ mapping ส่ง port ให้เครื่องเรา สามารถใช้งาน Jupyter ที่เครื่องของ​ Cloud ได้ ด้วยคำ สั่ง ssh -N -L localhost:8888:localhost:8888 [email protected] 5.
  5. Python basic วิธีใช้งาน cloud Jupyter notebook NT-BOOTCAMP 6. ทำการ copy

    URL จาก หน้าแรก เพื่อรันใน web browser
  6. 🤖Unsupervised Learning การเรียนรู้นี้เป็นการเรียนรู้เพื่อเข้าใจข้อมูลให้มากขึ้น แต่เป็นการป้อนข้อมูลที่ไม่มีป้ายติดกำกับ (Unlabeled Data) แตกต่างกับ Supervised Learning ที่มีคำตอบที่ถูกต้องเปรียบเสมือนการฝึกสอนอัลกอริทึม

    Unsupervised learning จะไม่มีคำตอบที่ถูก ต้อง และแบ่งออกเป็น 2 ประเภทหลักๆ (1)Clustering การจำแนกกลุ่มข้อมูล เช่นกลุ่มที่จำแนกโดยพฤติกรรมการสั่งซื้อ (2)Association การจำแนกข้อมูลแบบเกี่ยวข้อง เช่นกลุ่มที่มีพฤติกรรม B มักจะเป็นพฤติกรรม C ด้วย 🤖Supervised Learning เป็นการเรียนรู้โดยมีข้อมูลที่ที่ติดป้ายเอาไว้ (Labeled Data) เช่นตัวเลข หรือเป็นรูปภาพผลไม้ส้มแมนดารินที่มีการติดป้ายกำกับไว้ว่า เป็นส้มแมนดาริน การฝึนสอนอัลกอริทึมนี้จำเป็นต้องใช้ข้อมูล Labeled Data อันมหาศาล และข้อมูลเหล่านี้มีคำตอบที่ถูกต้องอยู่ เพื่อให้อัลกอริทึมมีความแม่นยำที่สุด โดย Supervised Learning แบ่งออกเป็น 2 ประเภทหลักๆ คือ (1)Classification ผลลัพธ์ เป็นแบบหมวดหมู่เช่น สีขาว หรือสีฟ้า ใช่หรือไม่ใช่ (2)Regression ผลลัพธ์เป็นตัวเลขเช่น จำนวนเงิน น้ำหนัก
  7. เป้าหมายของการเรียนรู้แบบไม่แบ่งกลุ่ม คือ การค้นหารูปแบบ (pattern) และความสัมพันธ์ (relationship) ภายในข้อมูล โดยที่ไม่ต้องมีการกำหนดเงื่อนไขหรือทิศทางที่ชัดเจน Types of

    Unsupervised Learning การจัดกลุ่ม (Clustering) 1. วิธีการนี้มุ่งเน้นไปที่การจัดกลุ่มข้อมูลที่มีความคล้ายคลึงกันไว้ด้วย กัน การลดมิติข้อมูล (Dimensionality Reduction) 2. ลองนึกภาพข้อมูลขนาดใหญ่ที่มีฟีเจอร์ ร้อยกว่าอัน บางครั้ง ฟีเจอร์เหล่านี้อาจซ้ำกันหรือไม่เกี่ยวข้อง เทคนิคการลดมิติข้อมูลมีวัตถุประสงค์เพื่อลดจำนวนฟีเจอร์ใน ข้อมูลของคุณ โดยยังคงรักษาข้อมูลสำคัญเอาไว้ การเรียนรู้กฎของความสัมพันธ์ (Association Rule Learning) 3. มุ่งเน้นไปที่การค้นหาความสัมพันธ์ระหว่างฟีเจอร์ต่างๆ ภายใน ข้อมูลของคุณ
  8. Elbow Method เป็นเทคนิคที่ใช้สำหรับการหาจำนวนกลุ่มที่เหมาะสมในการจัดกลุ่มข้อมูล (clustering) โดยใช้ K-means clustering algorithm วิธี Elbow

    Method สำหรับการหาจำนวนกลุ่มที่เหมาะสมใน K-means Clustering วิธีการหาจำนวนกลุ่มที่เหมาะสม: รัน K-means clustering algorithm โดยใช้ค่า k ที่แตกต่างกันหลายค่า 1. คำนวณค่า WCSS สำหรับแต่ละค่า k 2. สร้างกราฟ Elbow Method โดยใช้ค่า WCSS และค่า k ที่คำนวณได้ 3. เลือกจำนวนกลุ่ม (k) ที่อยู่บริเวณ "elbow" 4. ในช่วงแรก ค่า WCSS จะลดลงอย่างรวดเร็ว เมื่อจำนวนกลุ่ม (k) เพิ่มขึ้น เมื่อจำนวนกลุ่ม (k) เพิ่มขึ้นถึงจุดหนึ่ง ค่า WCSS จะเริ่มลดลงช้าลง จุดที่ค่า WCSS เริ่มลดลงช้าลงนี้ เรียกว่า "elbow" หลักการของ Elbow Method: กราฟ Elbow Method จะแสดงค่า Within-Cluster Sum of Squares (WCSS) บนแกน Y ค่า WCSS คือ ผลรวมของระยะห่างระหว่างจุดข้อมูลแต่ละจุดกับจุดกึ่งกลาง (centroid) ของกลุ่มที่มันถูกจัดกลุ่มไว้ Within-Cluster Sum of Squares (WCSS)
  9. วิธี Elbow Method สำหรับการหาจำนวนกลุ่มที่เหมาะสมใน K-means Clustering Silhouette เป็นเทคนิคที่ใช้วัดว่า Instance นั้นมีความเหมือนกับ

    Cluster ที่มันอยู่มากเพียงใด เมื่อเทียบกับ Cluster อื่นๆ ค่าของ Silhouette อยู่ในช่วง -1 ถึง 1 ยิ่งมีค่ามากแสดงว่า Instance มีความ คล้ายกับ cluster ของมันมากและมีความ คล้ายกับ Cluster อื่นน้อย
  10. การลดมิติข้อมูล (Dimensionality Reduction) เราสามารถใช้ Emdeding ร่วมกับ Clustering เพื่อแบ่งกลุ่มลูกค้า กลุ่มที่ 1

    อาจเป็นลูกค้าที่ซื้อสินค้าประเภทอิเล็กทรอนิกส์เป็นประจำ กลุ่มที่ 2 อาจเป็นลูกค้าที่ซื้อสินค้าประเภทแฟชั่น กลุ่มที่ 3 อาจเป็นลูกค้าที่ซื้อสินค้าประเภทของใช้ในบ้าน การวิเคราะห์แต่ละกลุ่ม ช่วยให้เราเข้าใจความต้องการ พฤติกรรม และลักษณะเฉพาะของลูกค้าแต่ละกลุ่ม ข้อมูลเหล่านี้ สามารถนำไปใช้ต่อยอด ในการออกแบบกลยุทธ์ทางการตลาด พัฒนาสินค้าและ บริการ หรือสร้างแคมเปญโฆษณา ที่ตรงกับความต้องการของลูกค้าแต่ละกลุ่มได้อย่างมีประสิทธิภาพ
  11. PCA is not scale invariant ค่าของ PCA จะเปลี่ยนแปลงไป ถ้ามีการปรับขนาดข้อมูล (scaling)

    ตัวอย่างเช่น ถ้าเราเปลี่ยนหน่วยวัดจากเซนติเมตรเป็นมิลลิเมตร ผลลัพธ์ของ PCA อาจจะแตกต่างกัน ทิศทางที่มีความแปรปรวนมากที่สุดถือว่ามีความสำคัญมากที่สุด (The directions with largest variance are assumed to be of the most interest) PCA เลือกทิศทาง (แกน) ที่อธิบายความแปรปรวนของข้อมูลได้มากที่สุด ซึ่งถือว่าเป็นทิศทางที่สำคัญที่สุด ข้อจำกัดก็คือ อาจจะมีข้อมูลสำคัญแฝงอยู่ ในทิศทางที่มีความแปรปรวนน้อยกว่า PCA เหมาะสำหรับข้อมูลที่มีความสัมพันธ์กัน (If the variables are correlated, PCA can achieve dimension reduction) PCA มีประสิทธิภาพในการลดมิติของข้อมูล เมื่อตัวแปรในข้อมูลมีความสัมพันธ์กัน โดย PCA จะกำจัดมิติที่ซ้ำซ้อนออกไป ถ้าตัวแปรไม่สัมพันธ์กัน (If not, PCA just orders them according to their variances) อาจจะไม่ได้ช่วยในการลดมิติข้อมูลได้อย่างมีประสิทธิภาพ * What are the limitations of PCA?
  12. Data cycle CRISP-DM :Cross-industry standard process for data mining Business

    Undestand ทำความเข้าใจธุรกิจ ปัญหา และ วัตถุประสงค์ของโครงการ จากนั้นแปลงให้อยู่ในรูปของโจทย์สำหรับการวิเคราะห์ข้อมูล Data Understand รวบรวม ทำความเข้าใจ และ เลือกข้อมูลที่ต้องการวิเคราะห์ Data Preparation แปลงข้อมูลทั้งหมดที่รวบรวมมา ให้กลายเป็นข้อมูลที่พร้อม ใช้งานใน Model Machine Learning Modeling สร้างโมเดลหลายๆแบบที่น่าจะแก้ไขปัญหาที่ต้องการได้ และ ปรับค่าพารามิเตอร์ในแต่ละโมเดล เพื่อให้ได้โมเดลที่เหมาะสม ที่สุดมาใช้ในการแก้ไขปัญหา Evaluation วัดว่าโมเดลมีประสิทธิภาพเพียงพอต่อการนำไปใช้งานแล้ว หรือไม่ Deployment นำ Model ที่สร้างไปใช้งานจริง NT-BOOTCAMP
  13. Python basic NT-BOOTCAMP Content Basic Jupyter Hello world Input Variable

    and Operation If-else Loop Function List Dictionary Set Numpy Files process
  14. Visualization NT-BOOTCAMP Content Matplotlib Line plot style label legend Barplot

    Histrogram Scater plot Box plot Multiple graph Sea born Lets code!
  15. NT-BOOTCAMP All about AI & Machine learning Artificial Intelligence (AI),

    Machine Learning (ML), Deep Learning (DL) คืออะไร-เหมือน/ต่างกันอย่างไร
  16. NT-BOOTCAMP Supervised learning - Basic Regression Supervised learning - Regression

    model Regression model topic Evaluation Metric for Regression Simple linear Regression Multiple linear Regression Polynomial Regression Overfit & Underfit
  17. NT-BOOTCAMP Supervised learning - Classification model Supervised learning - Classification

    model Classification model topic Logistic Regression Feature Engineer Train test split Evaluation Metric for Classification Distance Based (K-Nearest Neighbors)
  18. NT-BOOTCAMP Supervised learning - Decision Tree Supervised learning - Decision

    Tree Decision Tree คือโมเดลที่เลียนแบบการตัดสินใจแบบ มนุษย์ โดยคำว่า Tree นั้นหมายถึงลักษณะผลลัพธ์ที่ได้ของ Decision Tree จะคล้ายกับรูปต้นไม้ที่แบ่งปัจจัยของการ ตัดสินใจ โดยมีโครงสร้าง คือ ตัวบนสุดของ Tree จะเรียกว่า Root node ส่วนตัวที่มีลูกศรชี้ออกมาจะเรียกว่า Internal Node ส่วนตัวสุดท้ายของ Tree จะเรียกว่า Leaf node (ไม่มีลูกศร ชี้ออกมา) ข้อดี ของ Decision Tree นั้นยังสามารถสร้างตัวแปรได้ทั้ง สองแบบ ซึ่งได้แก่ Continuous Variable เราเรียกมันว่า Regression Tree เช่น คำถามที่ว่า ต้องใช้ค่าใช้จ่ายมากกว่า 5,000 บาทหรือไม่ ? (คำตอบอาจเป็นตัวเลขจำนวนเต็มได้ทุกค่า) 1. Category Variable เราเรียกว่า Classification Tree เช่น คำถามที่ว่าฝนนั้นตกหรือไม่ ? (คำตอบถูกแบ่ง ออกเพียงแค่ ฝนตก/ฝนไม่ตก) 2.
  19. Hyperparameter Tuning คือ กระบวนการในการปรับแต่งค่าพารามิเตอร์ที่ใช้ในการฝึกโมเดลของ Machine Learning ฃ เพื่อให้โมเดลมีประสิทธิภาพสูงสุดและประสิทธิภาพในการทำงานที่ดีที่สุด โมเดลใน Machine

    Learning มักมีการกำหนดค่าพารามิเตอร์หลายตัวที่ไม่ได้ถูกเรียนรู้จากข้อมูลตัวอย่างแต่ต้องกำหนดค่า ก่อนการฝึก (hyperparameters) เช่น ค่า K , อัตราการเรียนรู้ (learning rate) ในการฝึก เป็นต้น กระบวนการ Hyperparameter Tuning จึงเกิดขึ้นเพื่อทำการค้นหาค่าพารามิเตอร์ที่ดีที่สุดที่สามารถให้ผลลัพธ์โมเดลที่มี ประสิทธิภาพสูงสุด วิธีการที่ใช้งานมักจะเป็นการทดลองค่าพารามิเตอร์ต่าง ๆ ด้วยการวิธีทดลองแบบทดสอบและผิดพลาด (trial and error) หรือใช้เทคนิคอัลกอริทึมการค้นหา (search algorithms) เช่น Random Search, Grid Search, เพื่อ หาค่าพารามิเตอร์ที่ดีที่สุดให้กับโมเดลในแต่ละครั้งที่ฝึกและทดสอบ NT-BOOTCAMP Supervised learning - Ensemble Method Hyper parameter Tuning
  20. Feature selection เป็นกระบวนการในการเลือกเฉพาะ subset ของ features (คุณลักษณะ) จากข้อมูลที่ใช้ในการสร้างโมเดล เพื่อลด ขนาดของข้อมูล

    ลดความซับซ้อนของโมเดล และประสิทธิภาพในการฝึกโมเดล เพื่อให้ได้ผลลัพธ์ที่ดีที่สุด วิธีทำ feature selection สามารถ ทำได้หลากหลายวิธีตามความเหมาะสมของงานและข้อมูล เช่นดังนี้: Univariate Feature Selection: วิธีนี้เป็นการเลือก features โดยใช้ค่าสถิติหรือการทดสอบเชิงสถิติบนแต่ละ feature โดยอิง จากความสัมพันธ์ระหว่าง feature กับค่าเป้าหมาย (target) ซึ่งสามารถใช้เทคนิคต่าง ๆ เช่น SelectKBest, SelectPercentile จาก scikit-learn ใน Python เพื่อเลือก features ที่มีผลต่อค่าเป้าหมายมากที่สุด. Feature Importance from Trees: สำหรับโมเดลที่ใช้ต้นไม้ในการเรียนรู้ เช่น Decision Trees หรือ Random Forests สามารถใช้ค่าความสำคัญของ features ที่ได้จากโมเดล (เช่น Gini Importance หรือ Mean Decrease in Impurity) เพื่อเลือก features ที่มีความสำคัญสูงสุด. Recursive Feature Elimination (RFE): วิธีนี้ใช้โมเดลเพื่อเลือก features โดยเริ่มจากการฝึกโมเดลด้วยทุก features แล้วลบ features ที่มีค่าความสำคัญต่ำที่สุด จนกว่าจะเหลือจำนวน features ที่ต้องการ. NT-BOOTCAMP Supervised learning - Ensemble Method Feature Selection
  21. มุ่งเน้นไปที่การพัฒนาระบบปัญญาประดิษฐ์ ที่สามารถ เรียนรู้จากข้อมูลขนาดใหญ่ และทำงานที่ซับซ้อนได้ อย่างแม่นยำ Deep learning ทำงานโดยใช้ โครงข่ายประสาท เทียม

    (neural network) เป็นโมเดลทางคณิตศาสตร์จำลองโครงสร้างและการ ทำงานของสมองมนุษย์ โครงข่ายประสาทเทียมเหล่านี้ ประกอบไปด้วย ชั้น (layer) ของ นิวรอนจำลอง (artificial neuron) เชื่อมต่อกันด้วย น้ำหนัก (weight) ข้อมูลจะถูกป้อนเข้าสู่ระบบ ผ่านชั้นนิวรอน แต่ละชั้นทำหน้าที่ประมวลผลข้อมูล ปรับน้ำหนัก และส่งผลลัพธ์ไปยังชั้นถัดไป กระบวนการนี้ซ้ำไปซ้ำมา จนกว่าระบบจะเรียนรู้ที่จะทำนายผลลัพธ์ที่ถูกต้อง Deep learning หรือ การเรียนรู้เชิงลึก เป็นสาขาย่อยของ ปัญญาประดิษฐ์ (AI)
  22. temperature สูง: ผลลัพธ์มีความหลากหลายมากขึ้น มีแนวโน้มที่จะสร้างคำที่ไม่คาดคิดหรือแปลกใหม่ ผลลัพธ์อาจไม่มีความหมายหรือไม่ถูกต้องตามหลักไวยากรณ์ temperature ต่ำ: ผลลัพธ์มีความคล้ายคลึงกับผลลัพธ์ที่ไม่มี temperature มีแนวโน้มที่จะสร้างคำที่ถูกต้องตามหลักไวยากรณ์และมีความหมาย

    ผลลัพธ์อาจซ้ำซากจำเจ Temperature Temperature คือค่าตัวควบคุมคำตอบที่ถูกสร้างขึ้นให้มีลักษณะคำตอบที่เป็นได้ทั้งแบบคาดเดาได้ ตรงประเด็น, คำตอบ แบบคงที่, คำตอบที่มีความหลากหลาย หรือเป็นคำตอบที่สร้างสรรค์
  23. [ค่า temperature = 0]: ข้าวกระเพราเนื้อใส่จานพลาสติก+พร้อมช้อนซ้อม [ค่า temperature = 0.2]: ข้าวกระเพราเนื้อใส่จานพลาสติก+พร้อมช้อนซ้อม+มีแตงกวา

    [ค่า temperature = 0.5]: ข้าวกระเพราเนื้อใส่จานพลาสติก+พร้อมช้อนซ้อม+มีแตงกวา+มีถ้วยพริกน้ำปลา [ค่า temperature = 1]: ข้าวกระเพราเนื้อใส่ถาดใหญ่+มีไข่ดาวให้ 1 ใบ+พร้อมช้อนซ้อม+มีถ้วยน้ำซุปกระดูกหมู+มีแตงกวา+มีถ้วยพริกน้ำปลา [ค่า temperature = 2]: ข้าวกระเพราเนื้อแกะจากออสเตรเลีย+ใส่จานทองคำ+มีไข่ดาวจากไก่ธิเบต+พร้อมช้อนซ้อมทำจากเพช+มีถ้วยน้ำซุปกระดูก เสือ+มีแตงกวาจากเทือกเขาหิมาลัย+มีถ้วยพริกน้ำปลาจากญี่ปุ่น
  24. Top-K และ Top-P เป็นเทคนิคการสุ่มตัวอย่างที่ใช้ในโมเดลภาษาขนาดใหญ่ (LLMs) เพื่อควบคุมความหลากหลายและ ความเกี่ยวข้องของผลลัพธ์ Top-K ทำงานโดยเลือกคำถัดไปที่มีแนวโน้มสูงสุด K

    คำจากคำศัพท์ทั้งหมด วิธีนี้ช่วยให้มั่นใจได้ว่าผลลัพธ์มีแนวโน้มที่จะถูกต้อง ตามหลักไวยากรณ์และมีความหมาย Top-P ต่างจาก Top-K ตรงที่แทนที่จะเลือกคำที่มีแนวโน้มสูงสุดเท่านั้น จะเลือกคำที่มี คะแนนความน่าจะเป็น คูณด้วย ความถี่ ที่มากกว่าเกณฑ์ P Top Probability top_p เป็นค่า parameter ที่ทาง OpenAI มีมาให้เพื่อควบคุมการสุ่ม (random) สร้างข้อความขึ้นมา โดยมีการกำหนดตัวเลข ความน่าจะเป็นของคำที่ถูกหยิบมาพิจารณาก่อนที่จะสร้างคำออกมา ค่า top_p ที่สูงขึ้นหมายความว่าข้อความที่จะถูกสร้างขึ้นจะถูก พิจารณาตัดสินใจก่อนที่จะเลือกใช้คำนั้นเพื่อให้คำตอบมีความเป็นธรรมชาติมากที่สุด Without top-k: อัลกอริทึมจะพิจารณาคำทั้งหมดในคลังศัพท์ของมันที่ทุกๆ รอบ และเลือกคำที่มีความน่าจะเป็นสูงสุด ซึ่งอาจส่งผลให้ ข้อความที่นั้นมีความซ้ำซากหรือเดาทางได้ง่าย With top-k: อัลกอริทึมจะพิจารณาเฉพาะคำที่มีความน่าจะเป็นสูงสุดเพียง k คำเท่านั้น ที่ทุกๆ รอบ ซึ่งอาจทำให้ข้อความที่มีความ หลากหลายและน่าสนใจมากขึ้น แต่ก็อาจส่งผลให้ข้อความนั้นอ่านไม่ค่อยลื่นไหลหรือไม่ถูกหลักไวยากรณ์