🎞️ Videos AI Guessing Image Game by using p5.js and Ollama

Description

มาทำความรู้จักกับการสร้าง AI Guessing Image Game ง่ายๆ ด้วย p5.js และ Ollama ในเซสชันนี้ โบ๊ท ชรันธร ลิ้มสีโล Microsoft Learn Student Ambassador และ student tech lead ประเทศไทย จะมาแบ่งปันแรงบันดาลใจจากเกม Quick, Draw! ของ Google พร้อมอธิบายกลไกการทำงานของโปรเจกต์ที่ผสานความสามารถของ p5.js ในการวาดภาพ และ Ollama ซึ่งเปรียบเหมือนเป็น docker สำหรับรันโมเดล LLaVA (Large Language Vision Assistant) แบบ local โดยไม่ต้องใช้อินเทอร์เน็ต ตัวอย่างการใช้งานจริงจะแสดงให้เห็นถึงวิธีการวาดภาพ อัปโหลด และให้ LLaVA วิเคราะห์ภาพที่วาด มาร่วมเรียนรู้และค้นพบความเป็นไปได้ใหม่ๆ ของ small language model ในการสร้างสรรค์แอปพลิเคชันแบบ multimodal ที่น่าสนใจ

Chapters

  • แนะนำตัวและที่มาของ AI Guessing Image Game 0:00
  • LLM, Multimodal และแรงบันดาลใจจาก Quick, Draw! 1:21
  • Quick, Draw! Dataset และ CNN 2:58
  • Generative AI และ Open Source Models 5:10
  • LLaVA และ Ollama 6:02
  • Ollama Architecture และ Local Model 7:46
  • Demo Workflow: อัปโหลดรูปภาพและถามคำถาม 8:49
  • Demo Code: สำรวจ Repo และ Index.js 10:29
  • Demo Code: เจาะลึก index.js และ Provider 11:50
  • Demo Code: Generate.js และ OpenAI vs. Ollama 13:55
  • Demo: รัน Ollama และ LLaVA 15:32
  • Demo: วาดภาพและทดสอบ AI 16:33
  • Demo: เปลี่ยนคำถามและลองวาดรูปใหม่ 17:32
  • LLaVA และ Responsible AI 19:23
  • สรุป Key takeaway และ Q&A 20:31
  • Multi-modal Model Use Cases และ Project Astra 21:16
  • Creativity + AI + Sustainability = Small Language Model 21:35
  • ต่อยอด Small Language Model และ FOSSASIA 22:18

Transcript

คำบรรยายต่อไปนี้อาจไม่ถูกต้องทั้งหมด หากคุณพบข้อผิดพลาดใดๆ คุณสามารถช่วยแก้ไขข้อผิดพลาดได้บน GitHub

แนะนำตัวและที่มาของ AI Guessing Image Game0:00

ทอล์กสุดท้ายเป็นเรื่องเกี่ยวกับ P5 JS กับ Ollama นะฮะ ก็ทำ Drawing Game ด้วย P5 JS และ Ollama, ขอเสียงปรบมือให้โบ๊ทด้วยฮะ (เสียงปรบมือ)

ครับ ก็ (กระแอม) ขออภัยด้วยนะครับ เพราะว่าวันนี้เสียงอาจจะไม่ได้มี เพราะว่าได้รับฝุ่นเยอะมากครับ ก็สวัสดี ผู้ชมในห้องนะครับ แล้วก็อาจจะมีไปดูใน-- ในคลิปย้อนหลังใน YouTube นะครับ ก็ยินดีต้อนรับเข้าสู่ Section AI Guessing Image Game นะครับ ก็ทำเป็นเล็กๆ น้อยๆ ครับ ผมเองก็ ไม่ค่อยมีความครีเอทีฟมากเท่าไหร่ แต่ว่า เราเองเราได้แบบ inspiration จากตอนที่เรายังเป็นเด็กเนาะ แบบว่าเวลาเราเล่นเกมทายภาพ ก็คือเราวาดภาพแล้วก็ทายกับเพื่อนอะไรประมาณนี้ครับ ก็จริงๆ tech ของเราที่เราจะใช้เนี่ย ก็น่าจะเป็นตัว p5.js นะครับ แล้วก็ในฝั่งของ Ollama นะครับ เดี๋ยวเรามาดูกันว่ามันจะเป็นยังไงนะครับ ก่อนอื่นก็ขอแนะนำตัวกันก่อนนะครับ ชื่อ โบ๊ทนะครับ ชรันธร ลิ้มสีโลครับ ตอนนี้เป็น Microsoft Learn Student Ambassador ครับ ก็เป็น student tech lead ของประเทศไทยครับ แล้วก็ ตอนนี้ก็ intern อยู่ที่ Seven Peaks ในตำแหน่งของ Data Engineer นะครับ

LLM, Multimodal และแรงบันดาลใจจาก Quick, Draw!1:21

คราวนี้เนี่ย คือหลังๆ มานี้ผมเองก็จะทำในเรื่องของพวก small language model มากขึ้น

แล้วก็ มาทำพวก possibility possibility ต่างๆ อย่างเป็นพวก multimodal หรือว่าจะเป็นในเรื่องของ reasoning นะครับ ซึ่งในเคสวันเนี้ย อาจจะ Bring ในตัวของ multimodal มาเล่นกันนะครับ คอนเทนต์หลักๆ เนี่ย ก็เราจะมาพูดในตัวของ work inspiration ที่ผมได้มานะครับ แล้วก็ ผมก็จะเล่าว่า ในกลไกต่างๆ เนี่ย ที่เกิดขึ้น ในตัวที่ผมจะเดโม่ตัวนี้

มันมีกลไกยังไงบ้างนะครับ แล้วก็ มี Demo เนี่ย จะให้ลองเล่นนะครับ จากนั้นก็จะมี Take away แล้วก็ตัว FOSSASIA นะครับ ก็หลักๆ แล้วนะครับ เราก็เห็นได้เลยครับว่า ตัว inspiration ของผมเนี่ย ผมได้มาจากตัวเกมนึงของ Google น่ะครับ ที่ชื่อว่า Quick, Draw! เนาะ ซึ่ง เขาก็จะให้โจทย์มาว่าให้เราวาดอะไร ใช่ไหมครับ แล้วทีเนี้ย เวลาเราวาดเนี่ย ตอนแรกเราก็จะวาด อาจจะไม่ได้เป็นทรงที่เขาต้องการ ใช่ไหมครับ มันก็ค่อยๆ interpret ไปเรื่อยๆ ว่า เรากำลังวาดอะไรอยู่ จนสุดท้ายเนี่ย พอเราวาดให้มันได้รูปอย่างที่ เขาต้องการเนี่ย มันก็จะ interpret ว่า สมมุติว่าเขาต้องการว่า เขาอยากได้เป็นหมีเนาะ จากนั้นเนี่ย เราวาด แรกๆ เราอาจจะวาดแล้วไม่ได้เป็นหมีอะครับ แต่ว่า พอผลสุดท้ายเนี่ย พอเราประกอบร่างเสร็จปึ๊บ มันก็กลายเป็นหมีในที่สุดนั่นเองนะครับ

Quick, Draw! Dataset และ CNN2:58

คราวนี้เนี่ยคำถามคือ แล้วมันเรียนรู้ได้ยังไง ว่ามันกลายเป็นหมีในที่สุดได้นะครับ ซึ่งจริงๆ แล้วเนี่ย มันมีพวก dataset ที่มัน combine together แล้วก็เอาไปเทรนเป็นโมเดลนะครับ ซึ่งตัว dataset ที่ว่าเนี่ย มันชื่อว่า Quick, Draw! Dataset ก็เอามาจากตัวชื่อของเกมนั่นเองนะครับ ก็ ทาง Google Creative เขาก็ได้ collect พวก Drawing ต่างๆ ที่ผ่านจากการวาดของแต่ละคนนะครับ

แล้วก็เซฟมา แล้วก็เอามาเทรนมาเรื่อยๆ นะครับ เดี๋ยวมาดูกันว่า แต่ละภาพเนี่ย มันเป็นยังไงนะครับ ถ้าสมมุติว่าในกรณีที่ โจทย์มันให้มาว่าให้เราวาดเป็นเครื่องบิน ใช่ไหมครับ ดังนั้นเนี่ย คนเราเนี่ย หลายล้านคนเนี่ย เขาก็วาดเครื่องบิน มันจะ ไม่ได้แบบเหมือนกันอะครับ มันก็วาดต่างกัน บางคน เครื่องบินมันก็ แบบ ปีกมันอาจจะแหลม

บางคนวาดปีกอาจจะมน ใช่ไหมครับ มันก็มีการ เก็บข้อมูลไปเรื่อยๆ ครับ แล้วก็กลายเป็นสิ่งที่เรียกว่า neural network นะครับ คราวนี้เนี่ย หลักการทำงานว่า เฮ้ย ทำไมมันถึง depict กันอย่างนี้นะครับ มันเรียกว่าตัว convolutional neural network นะครับ ก็จริงๆ เอาสั้นๆ ก็คือ CNN นะครับ ก็มันก็จะเริ่มจาก สิ่งที่เห็นก็คือตัว input นะครับ input เราเป็นรูปภาพที่เราวาดนะครับ หรือว่าเป็นอะไรก็ได้ครับ แล้วก็มาใช้ผ่านตัวสิ่งที่เรียกว่า convolution แล้วก็บวกกับ ReLU นะครับ จากนั้นเนี่ย มันก็ทำการ Pooling กับ ไอ้ภาพ ไอ้ bitmap ใหญ่ แล้วมันเป็น bitmap เล็กเนี่ย ตรงเนี้ย everything ตรงเนี้ย มันก็ทำเป็นซ้ำๆ แล้วกลายเป็นพิกเซล พิกเซลนะครับ มันก็จะ ใช้สิ่งที่เรียกว่า future learning นั่นเองนะครับ จากนั้นเนี่ย พอมันทำไปเรื่อยๆ เนี่ย มันก็ต้องมา classify ครับ แล้ว classify ไปที่สุดเนี่ย มันก็จะแยกว่า เอ้ย มันเป็น car เป็น truck เป็น van หรืออะไรก็แล้วแต่ พอเช็คแต่ละพิกเซลแล้ว พิกเซลแต่ละพิกเซลเนี่ยมัน connect กันเนี่ย มันจะได้รู้แล้วก็ classify ออกมาว่า อ๋อนี่มันเป็นสิ่งนี้นะ อันนั้นเป็นสิ่งนั้นนะ อะไรประมาณนี้นะครับ

Generative AI และ Open Source Models5:10

คราวนี้เนี่ย ในยุคปัจจุบันเนี่ย เรา อาจจะไม่ต้องเทรนโมเดลครับ เพราะว่าเราเห็นได้ว่าตัวของการทำโมเดลเนี่ย มันค่อนข้างที่จะยาก

แล้วก็ใช้ทรัพยากรในการเทรนค่อนข้างที่จะเยอะเนาะ และยุคนี้ก็จะเป็นยุคที่ generative AI ค่อนข้างที่จะมาเยอะมากนะครับ แล้วก็แน่นอนว่าพวก multimodal พวก language model ที่สามารถที่จะ รับเสียง รับภาพอะไรพวกเนี้ย มันมาเยอะขึ้นนะครับ ซึ่งมันมาทั้งในรูปแบบของ proprietary แล้วก็มาเป็นในรูปแบบของ open source แต่ถ้าสมมุติว่าเราเอง เราอยากจะที่จะเล่นแบบ local แบบว่าไม่ต้องใช้อินเทอร์เน็ตอะไรพวกเนี้ยครับ เราสามารถที่จะใช้พวก notebook ของเรา แล้วก็โหลดโมเดลมาจากตัว HuggingFace หรือว่า Ollama นั่นเองนะครับ เดี๋ยวถัดๆ ไปเดี๋ยวก็จะอธิบายว่า ในหลักการของ Ollama เนี่ย มันใช้กันยังไงนะครับ

LLaVA และ Ollama6:02

คราวนี้ ตัวโมเดลที่ผมจะใช้ในวันนี้ก็คือ จะเป็นตัวของ LLaVA นะครับ หรือมันย่อมาจาก Large Language Vision Assistant นะครับ ก็ base on research ของ Microsoft นะครับ ก็หลักๆ เนี่ย ก็จะ depict หรือว่ารับตัวรูปภาพมาก่อน ใช่ไหมครับ แล้วก็

project มันก็ใช้พวก

Feature learning คล้ายๆ กับ CNN นั่นเองนะครับ แล้วก็ อ่า พอจากนั้นมันก็ classify ไว้ให้เป็นตัว text generation ในเบสของ language model นะครับ ซึ่งความฉลาดมันก็ พอๆ กับ GPT-4 นะครับ แต่ไม่ได้ถึงขนาด GPT-4o หรือว่าอาจจะมาถึงแบบยุค o1, o3 อะไรประมาณนี้นะครับ แต่ก็เป็นตัวที่เป็น open source นั่นเองนะครับ อีกอันนึงก็คือ Ollama ครับ ก็จะเป็น Docker ที่เอาไว้รันโมเดลนะครับ คราวนี้เนี่ยไอ้ตัว Ollama ข้อดีคือมันสามารถรันแบบ local ได้ แล้วก็เราเองเราไม่ต้องใช้อินเทอร์เน็ตในการรันนั่นเองนะครับ มันก็เลยเป็นอะไรที่เรารู้สึกว่า custom ได้ง่าย แล้วก็ เราเองเราไม่ต้องใช้อินเทอร์เน็ต เพราะว่าเราเองเราเจอปัญหาว่าถ้าสมมุติว่าในกรณีที่อินเทอร์เน็ตเนี่ยมันไม่มี หรือว่า unstable อะไรพวกนี้ครับ Ollama สามารถที่จะช่วยหาคำตอบให้กับพวกเราได้ครับ จริงๆ มันก็จะมีพวก integration ต่างๆ ก็จะเป็นแบบว่า เราสามารถ integrate กับ search engine API อะไรประมาณนี้ แล้วก็สามารถที่จะไปเสิร์ชข้อมูลจากข้างนอกได้นะครับ แล้วก็ที่สำคัญก็คือ มันสามารถที่จะทำในรูปแบบอื่นๆ ได้

แค่เรามีโมเดล generative AI ภายในเครื่องนั่นเองครับ

Ollama Architecture และ Local Model7:46

คราวนี้เนี่ยไซซ์ที่เอามาลงอะครับ คือมันอาจจะไม่ได้มีขนาดใหญ่เป็นแบบ ร้อยพันล้านพารามิเตอร์ หรือเป็นหมื่นพันล้านพารามิเตอร์ ไม่ได้ขนาดนั้นนะ เพราะว่า ไอ้ตัวเครื่องเนี่ยมันค่อนข้างที่จะ รับตัวไซซ์ของโมเดลค่อนข้างที่จะน้อยอ่ะครับ แล้วก็สเปคเราก็ไม่ได้ถึงแบบ supercomputer หรือระดับ server base นะครับ ก็ในหลักทำงานจริงๆ ก็ในอาร์คิเทคเจอร์ครับ

ก็สามารถที่จะแบบว่า เราสามารถโหลดโมเดลผ่านจากตัวของ Hugging Face หรือ Marketplace ของตัว Ollama ครับ แล้วก็ทำการ pull ตัวโมเดลออกมานะครับ เดี๋ยวผมอาจจะเปิดตัวของมันให้ดูว่ามันเปิดยังไงนะครับ แล้วก็สามารถที่จะรันผ่านตัว local machine ได้นะครับ คราวนี้เนี่ยมันก็จะทำการ serve ก็คือทำการเปิด Server เพื่อให้แอปพลิเคชันตัวอื่นสามารถจะใช้ได้นะครับ แล้วก็ ใช้ผ่าน Client ปกตินะครับ

Demo Workflow: อัปโหลดรูปภาพและถามคำถาม8:49

คราวนี้เนี่ยหลักการจริงๆ ก็คือพอเราอัปโหลดรูปภาพปุ๊บใช่ไหมครับ ก็คือเอารูปภาพแปะในโฟลเดอร์ใช่ไหมครับ แล้วก็รัน Command ใช่ไหมครับ แบบว่า ลองถามได้ไหมว่า เออ

พอเราแปะรูปภาพตรงนี้แล้ว เราก็ถามว่าใครวาดรูปภาพนี้อะไรประมาณนี้ครับ แล้วก็ไอ้ตัว LLaVA ครับ ก็ทำการประมวลผล แล้วก็ depict มา แล้วก็ Generate เป็นคำตอบออกมานะครับ ว่ามันก็เป็นรูปภาพของโมนาลิซ่านะ แล้วก็วาดด้วย วาดโดย เลโอนาร์โด ดา วินชี อะไรประมาณนี้นะครับ แล้วก็ วันนี้สิ่งที่เราจะมาโชว์เนี่ยคือ เราเองอะ

เราก็พยายามวาดภาพครับ แล้วก็กดอัปเข้าไปนะครับ แล้วก็ submit ไป แล้วให้ตัว LLaVA ประมวลผล แล้วก็ตอบมาว่ามันเป็นสิ่งนี้นั่นเองนะครับ ก็ ประมาณนี้ครับว่า ผมต้องการอย่างนี้ เพราะว่าเราเองเราแบบ

มันเป็นอะไรที่น่าสนใจ แบบว่าบางทีถ้าเราสมมติว่าเราสร้างเกมๆ หนึ่งมาปุ๊บเนี่ย เราเองเราไม่สามารถที่จะ imagine ได้ว่าแบบ เฮ้ย เราจะใช้เกมแบบนี้ เราอยากได้สเปคแบบนี้ แต่ว่าเราไม่รู้ว่าไซส์ของเกมอะมันประมาณไหนใช่ไหมครับ แต่ว่าไอ้ข้อดีตรงนี้ เราสามารถที่แบบว่า สมมติว่าเราร่างภาพปึ๊บ มันเหมือนเป็นการหาคำตอบว่า อย่างน้อยเนี่ย มันเหมือนมีข้อมูลมันถูกเทรนในตัว LLaVA มาแล้วอะครับ ว่าภาพที่เราเคยเห็น แต่เราไม่ชัวร์ข้างนอกที่เราเห็นเนี่ยมันคืออะไรนั่นเองนะครับ

Demo Code: สำรวจ Repo และ Index.js10:29

ก็เดี๋ยวเรามาสู่ในช่วงของเดโม เดี๋ยวเรามาดูตัวโค้ดกันว่า หลักการทำงานใน repo ของผมที่เก็บไว้อะ มันมีอะไรบ้างนะครับ.

โอเค สักครู่นะครับ.

ครับ เข้ามาใน repo ครับ ก็จริงๆ มาดูที่ Index ก่อนเนาะ Index เนี่ยจริงๆ ก็จะมี ผมจะเซ็ตว่าเป็น Photo Box ที่เอาไว้วาดภาพนะครับ แล้วก็ ไอ้เรื่องของ Front End ตรงนี้ ผมเองก็ทำตรงนี้ไว้นะครับ ก็มันก็จะมีประมาณนี้นะครับ เดี๋ยวอย่างนี้เดี๋ยวเราจะไปดูว่าไอ้หลักการทำงานข้างในเนี่ย ใน Source Code เนี่ยมันมีอะไรบ้างนะครับ สมมติใน index.js นะครับ ก็เราเองเราก็จะทำกับ โอ้ ตัวเล็กมากเลย.

ครับ ก็ จริงๆ เนี่ย มันจะมีตัว Import ตัว P5 มานะครับ แล้วก็ Generate ตัว Ollama นะครับ ก็หลักๆ ก็จะเป็นอย่างนี้เนาะ

Demo Code: เจาะลึก index.js และ Provider11:50

จากนั้นเนี่ยเราก็จะเห็นเลยครับว่า Provider ที่เราเซ็ตเนี่ย เราเซ็ตทั้งจากที่เป็นของ…

ตัว set เนี่ย ก็จะมีทั้งเป็นตัวของ Ollama แล้วก็ OpenAI สำหรับใครที่อยากจะใช้ตัว GPT-4o นะครับ ก็ ผมก็เซ็ตพร้อมไว้นะครับ เป็น Constant ไปเลย เป็น Selection ไปว่า Get What This Image Is อะไรประมาณนี้ครับ แล้วก็ มีเซ็ตว่า ใครวาดภาพนี้ หรืออะไรพวกนี้ หรือว่าเราจะทำอะไรต่อกับมันนะครับ แล้วก็ Sketch อะไรพวกนี้ก็แล้วแต่ครับ ก็จะเป็นการเซ็ตตัวของ Canvas อ่ะครับ ว่า เราก็จะทำเป็น Color Picker แล้วก็เราก็เซ็ตไอ้ตัว Generating เป็น false นะครับ แล้วก็ เซ็ต Path Color ตรงนี้ครับ หรือ Brush Size ตรงนี้

มันจะเป็นค่า Constant เริ่มต้นเวลาเราเปิดโปรแกรมนะครับ แล้วก็มันก็เซ็ตเป็น black แล้วก็ size อยู่ที่ 20 นั่นเองครับ พอมาถึง Canvas นะครับ ก็เราเซ็ตว่า width ก็ประมาณ 600, height ก็ประมาณ 600 นั่นเองนะครับ เราเองเราทำเป็น 2D ครับ แล้วก็ จากนั้นเนี่ยตัวของ Setup นะครับ ก็คือ พร้อม ก็คือ Select ตัวพร้อมที่เราให้ไว้ใช่ไหมครับ จากนั้นเนี่ยตัวพร้อมมันก็ส่งไปที่ตัว Provider นั่นเองครับ จากนั้นเนี่ยไอ้ตัว Provider ตรงนี้ครับ จากนั้นเนี่ยมันจะไปทำงานในฝั่งของ Generate.js นั่นเองนะครับ ซึ่ง เราก็นั่นแหละครับ ก็เป็นหลักการประมาณนี้ แล้วก็ถ้ามีปัญหามันมีปัญหาปุ๊บเนี่ย มันก็ต้องขึ้นว่า Error อะไรประมาณนี้ครับ ก็ หลักๆ ตัวโค้ดก็จะ มีประมาณนี้ครับ แล้วก็มีการเซ็ตตัว Mouse Track อะไรประมาณนี้นะครับ ก็เพื่อให้ตัวของ Canvas มันใช้ได้ง่ายขึ้นนะครับ

Demo Code: Generate.js และ OpenAI vs. Ollama13:55

คราวนี้มาฝั่งของ Generate ครับ ผมเองผมใช้อิมพอร์ตตัว Ollama ที่มันเป็นตัว Local นะครับ แล้วก็ตัว OpenAI นะครับ คราวนี้เนี่ย ไอ้ตัวฝั่งของ Generation ของ OpenAI แล้วก็ จริงๆ อะ เราเองเราสามารถที่จะใช้แบบ OpenAI เพียวๆ ไปเลยก็ได้ครับ แต่ว่าเราเองเราค่อนข้างที่จะ ใช้ ใช้ Ollama เพียวไปด้วยนะครับ เพราะว่า หลังๆ มาเนี่ย เราสามารถที่จะใช้ตัว OpenAI API เนี่ย ในการใช้ตัวของ Ollama ได้นะครับ คราวนี้เนี่ย ในตัวของ Generate OpenAI เองเนี่ย เราก็เลยเซ็ตเลยครับว่า Provider เป็น OpenAI แล้วก็ ตรงนี้เราใส่ question mark ทิ้งไว้

เพราะว่าเราเองเราไม่ได้ใช้ครับ แล้วก็อีกอันนึงก็จะเป็นตัวของ localhost:11434/v1

จริงๆ 11434 อันนี้มันเป็น trivia นะครับ จริงๆ อะ มันย่อมาจาก Llama นะครับ Llama ก็คือ LLAMA (11434) อะไรประมาณนั้นนะครับ อันนี้ อันนี้ผมก็เพิ่งรู้เหมือนกันนะฮะ (หัวเราะ) แล้วก็ อ่า เราก็เซ็ตเป็น Client-side compression ปกติครับ ว่าพอเราได้ เอ่อ พอตัว User ปุ๊บ เรารับตัวอีเมลแล้วก็พร้อมเป็น Text ก็ประมาณนั้นนะครับ แล้วก็ตรงนี้ พอตรงของ Generate ของตัว Ollama เองนะครับ ก็เรา Select โมเดลเป็น LLaVA นะครับก็ตามนั้นนะครับ แล้วก็สมมุติว่าในกรณีที่เราจะเซ็ตพวก Learning rate อะไรพวกนี้ ประมาณนี้ครับ พวก Number of prediction หรือ Temperature ก็สามารถเซ็ตตรงนี้ได้นะครับ

Demo: รัน Ollama และ LLaVA15:32

อืม คราวนี้มาดูในฝั่งของ Ollama กันนะครับ ก็ Ollama เนี่ย มันก็จะเป็นประมาณนี้

ผมเอง ผมเปิดที่ตัว Terminal ก่อน มา! เข้าไปที่ Terminal ครับ แล้วก็จากนั้นเรารันกับสิ่งที่เรียกว่า Ollama ครับ ปึ๊บ Ollama มันก็จะมีหลายๆ Command ใช่ไหมครับ แล้วเราก็สามารถที่จะลิสต์โมเดลได้นะครับ

แล้วก็ทำการลิสต์ออกมาครับ นั่นเองนะครับ ก็ผมเอง ผมได้ทำการโหลดตัว LLaVA เรียบร้อยครับ ว่ามีไซซ์อยู่ประมาณ 4.7 GB นะครับ คราวนี้เนี่ย เวลาผมเดโมปุ๊บเนี่ย ผมก็จะทำการ npm นะครับ

Demo: วาดภาพและทดสอบ AI16:33

โอเค จากนั้นเนี่ย เราก็คลิกเข้าไปครับ

โอเค คราวนี้มันก็ได้มาเป็นตัว Canvas มาแล้วนะครับ คราวนี้เนี่ย เราสมมติว่าเราลองวาดอะไรสักอย่าง เช่น ปึ๊บ ปึ๊บ ปึ๊บ ปึ๊บ ปึ๊บ ปึ๊บ ปึ๊บ ปึ๊บ ปึ๊บ ผมเอง ผมก็วาดไม่ค่อยดีแต่ลอง Ask ดูครับว่ามันมีอะไรนะครับ ก็ให้ลองทายว่าเราลองวาดอะไรใช่ไหมครับ จากนั้นเนี่ยมันก็รอประมวลผลอยู่ข้างในเครื่องอะครับ

อะ มันสามารถ depict ว่าอันนี้เป็นบ้านนะครับ จริง ๆ เราสามารถที่จะเลือกได้เลยครับว่า เราจะถามอะไรกับมันนะครับ แล้วก็ถ้าเราอยากจะเปลี่ยนคำถามก็สามารถที่ไปเปลี่ยนตรงไอ้ index.js ได้นะครับ ก็สามารถเปลี่ยน Prompt ตรงนี้ได้นะครับ

Demo: เปลี่ยนคำถามและลองวาดรูปใหม่17:32

ก็ อืม ประมาณนี้ แล้วก็สามารถที่จะเปลี่ยนสี มีใครอยากจะลองเล่นไหมครับ

(หัวเราะ)

ระวัง ระวัง เฮ้ย เล่นแบบดี ๆ ไม่แกล้ง ไม่แกล้ง อะ เล่นยังไงครับ ก็ เอ่อ จริง ๆ ก็ ให้มันเซ็นใหม่ก่อนเนาะ ให้เคลียร์ก่อน อ้าา แล้วก็เราสามารถที่จะเลือก คำถามกันได้ อ้า Name a painter Who could be the creator of this artwork? เอ่อ ไอ้...นึก Painter อันนึงได้ แต่ว่าไม่ ไม่ค่อยเหมาะกับสถานที่ตรงนี้เท่าไหร่ (หัวเราะ) เปลี่ยนเป็น Guess what this image is เออ วาดอะไรดี

แล้วก็มีรถถัง มันวาดยังไงวะ

รถถัง... อะ ปืนก็ได้.

แล้วก็มีธงชาติ เปลี่ยนสีได้นะฮะ เฮ้ย

สีแดง

สีขาวแล้วก็สีน้ำเงิน

แล้วก็ยังไงฮะ แล้วก็กด Ask ครับ อันนี้จะ จะเพิ่มมือด้วยไหมฮะ ได้ฮะ โอเค โอ๊ย โอ๊ย โอ๊ย โอ๊ย โอ๊ย Ask เลย เดี๋ยวเปลี่ยนเป็นปืนใหญ่

อะไร อันนี้มันปกติธรรมชาติไงคนดี คนดี อะ ลอง Ask ดูครับ เฮ้ย (หัวเราะ)

ครับ ก็มันก็จะรอประมวลผลในเครื่อง รักชาติครับ รักชาติ (ปรบมือ)

LLaVA และ Responsible AI19:23

ซึ่งไอ้ตัวโมเดลของไอ้ Microsoft LLaVA เองเนี่ย มันเองมันก็ depict พยายามที่แบบเซฟความเป็น Safety ของมันอยู่ มัน มันก็ใช้ตัว Responsible AI อยู่ด้วย ก็มันเองมันอะ มันก็เลยแบบไม่รู้ว่าเรากำลังถือปืนอยู่อะ (หัวเราะ) แต่ แต่ว่าถ้าสมมติว่า อะ ผมลองเคลียร์ดู อ่า ลอง ลองวาดอะไรที่มันดาร์ก ๆ อย่างเช่น

อะ ลองดู อ้า กด Ask

อ้า มัน อย่างน้อยมันรู้ว่านี่มัน Toy กัน ถ้าแบบ Machine gun จริง ๆ โดน

นึกว่าไปแล้ว (หัวเราะ) โอเคครับ ก็เออประมาณนี้นะครับ

สรุป Key takeaway และ Q&A20:31

สำหรับใครที่สนใจก็สามารถที่จะสแกน QR Code แล้วก็เอาไปลองเล่นได้นะครับ

ก็ตอนแรกของเราเองเราก็ไม่รู้ว่าเอ๊ะเราจะทำอะไรดีกับ Small Language Model เนาะ แต่ว่าพอมันเป็น Multi-modal ปุ๊บมันก็ เออมันน่าสนใจดีว่า เออเราสามารถลองที่จะวาดรูปแล้วก็ต่อ แล้วก็มาลองถ่ายภาพกันได้นะครับ ก็ อื้ม ประมาณนี้ครับ แล้วก็มี Key Takeaway ว่า สิ่งที่ได้มาจากตรงนี้คือเราเองเราได้ความเป็น Multi-modal Model แล้วก็ Creativity เนี่ย เราสามารถที่จะ Bring Possibilities ต่าง ๆ ในการทำอะไรต่าง ๆ มากขึ้นนะครับ แล้วก็จริงๆ แล้วเนี่ยตัว Multi-modal Model

Multi-modal Model Use Cases และ Project Astra21:16

เนี่ยสามารถที่จะช่วยหลาย ๆ อย่างได้นะครับ แล้วก็จริงๆ เนี่ยเราเห็นแบบ Use case พวก Project Astra ของ Google เองก็สามารถที่จะช่วยคนพิการได้นะครับ แล้วก็ในเรื่องของ Perception และ Creativity เนี่ย เราเองเรารับรู้ในสิ่งต่าง ๆ ที่เกิดขึ้นในรอบตัวเรา

Creativity + AI + Sustainability = Small Language Model21:35

แล้วเราก็สามารถที่จะจินตนาการต่อไปได้นะครับ ฉะนั้นเนี่ย สุดท้ายเนี่ย เราเองเราลองเอา Creativity แล้วบวกกับ AI แล้วก็บวกกับความมั่นยั่งยืนก็คือตัว Sustainability เนี่ย มันก็จะกลายเป็น Small Language Model ในที่สุด เพราะว่าคือในยุคที่ AI เนี่ยมันมีบทบาทกับชีวิตของพวกเรามากขึ้นเนี่ย

มันเองมันก็เป็นตัวช่วยของเราได้มากยิ่งขึ้นนั่นเองครับ แล้วก็เราเองเรารู้สึกว่า ณ วันนี้เราอาจจะไม่ต้อง based on ChatGPT หรือว่าเราไม่ได้เบสแบบตัวใหญ่ๆ นะครับ เราเองเรารู้สึกว่าตัวที่มันเป็นตัว Small เองมันก็มี possibility ที่สามารถที่จะ create อะไรกับมันก็ได้เช่นเดียวกันนะครับ

ต่อยอด Small Language Model และ FOSSASIA22:18

ก็จริงๆ แล้วเนี่ยไอ้ตัวข้อมูลพวกเนี้ย ไอ้ตัว Sustainability กับเรื่องของ Small Language Model เนี่ย เราสามารถที่จะ สามารถต่อยอดอะไรต่อไปก็ได้ครับ แล้วก็ ตัวผมเองก็จะเอามาต่อยอดเรื่องราวต่อไปเนี่ย เดี๋ยวผมก็จะมาแชร์ในพาร์ทของงาน FOSSASIA ในวันที่ 14 อ่า มีนาคม ก็เป็นวันศุกร์นั่นเองครับ ก็สามารถที่จะ เข้าไปจอยเซสชันนี้ใน FOSSASIA ได้นั่นเองครับ แล้วก็ทั้งหมดเป็นเซสชันของผมในวันนี้ครับ แล้วก็ขอบคุณทุกๆ คนมากๆ เลยครับ ขอบคุณครับ (ปรบมือ)