Notifications
Clear all

รวมงาน AI เจ๋งๆ (งานใหม่ๆ อยู่โพสต์หลังๆ)

18 ข้อความ
1 Users
0 Likes
3,956 Views
The Neural Engineer
(@neural-engineer)
Honorable Member Admin
เข้าร่วมเมื่อ: 6 years ago
ข้อความ: 400
Topic starter  
UPDATE 11 มีค 2022 อีกหลาย demo เหนือชั้นที่นี่ครับ

   
ตอบกลับอ้างอิง
The Neural Engineer
(@neural-engineer)
Honorable Member Admin
เข้าร่วมเมื่อ: 6 years ago
ข้อความ: 400
Topic starter  
0-shot “Style-transfer” สำหรับ StyleGAN !! (Notebook ลองเล่นท้ายบทความ)
ThaiKeras and Kaggle - 27 มีค 2022
 
รูปที่1
 
.
 
วันนี้อยากชวนเพื่อนๆ มาเล่น StyleGAN-NADA ซึ่งเป็น "0-shot out-of-domain style-transfer" สำหรับ pretrained StyleGAN โดย StyleGAN นั้นเป็นสุดยอด generative model ที่สามารถสร้างสรรค์รูปที่สวยงามระดับภาพ่ถ่ายได้เป็นโมเดลแรกๆ
 
"0-shot out-of-domain style-transfer" คืออะไร ?
 
พูดภาษาบ้านๆ ก็คือ สมมติเรามี pretrained StyleGAN ที่เป็นโมเดลที่ถูกสอนให้วาดรูปต่างๆ ได้อย่างสวยงาม
(เช่น pretrained weights ที่วาดรูป ดารา หรือน้องหมา หรือน้องแมวอย่างใดอย่างนึงได้) เราจะสามารถปรับ style ของรูปที่วาดให้เป็น รูปสไตล์ปิกาสโซ หรือสไตล์การ์ตูนญี่ปุ่น หรือสไตล์การ์ตูนดิสนีย์ ดังแสดงในรูปที่2 ได้
“โดยที่ไม่ต้องให้ตัวอย่างแม้แต่ตัวอย่างเดียว” (ที่มาของคำว่า 0-shot)
 
รูปที่2
 
.
 
และการทำ style-transfer ไปเป็นภาพวาดหรือการ์ตูนต่างๆ ดังกล่าวนั้น
นั้นแตกต่างจากความสามารถที่ฝังใน pretrained weights ของ StyleGAN เดิมอย่างสิ้นเชิง จึงเป็นที่มาของความสามารถด้าน “out-of-domain” ครับ
 
(ขยายความ : ซึ่งแตกต่างจาก in-domain Style transfer เช่น การเปลี่ยนสไตล์ภาพถ่ายให้มีสีผิว
ทรงผม หันหน้าไปทางทิศที่กำหนด ซึ่งเป็นการเปลี่ยนสไตล์เหมือนกัน แต่ยังอยู่ในขอบเขตความสามารถของ
StyleGAN เดิม การเปลี่ยนสไตล์แบบนี้จึงเรียกว่า in-domain ครับ)
 
.
 
StyleGAN-NADA ทำ 0-shot out-of-domain transfer ได้อย่างไร?
 
ไอเดียคร่าวๆ อธิบายได้ตามรูปที่ 1 และรูปที่ 3 ครับ
 
รูปที่ 3.
 
.
 
Input ที่ NADA ต้องการนั้นคือ text 2 ข้อความเท่านั้น โดย text แรกคือ source text ที่อธิบายสไตล์เดิม
ที่ติดมากับ pretrained weights เช่น อาจใช้คำว่า ‘’photo” ก็ได้เพราะ StyleGAN จะวาดภาพออกมาในสไตล์ภาพถ่าย
 
Text ที่สองก็คือ destination text หรือ text ที่อธิบาย style ที่เราอยากเปลี่ยน เช่น “pixar” , “disney”, “mona lisa”
หรือ “sketch” เป็นต้น
 
แล้ว NADA เปลี่ยนสไตล์แบบ 0-shot จาก 2 texts นี้ได้อย่างไร ??
 
คำตอบก็คือใช้พลังของโมเดลมหัศจรรย์อย่าง OpenAI’s CLIP ซึ่งเป็นโมเดลที่สามารถเปลี่ยน text หรือ image ใดๆ ให้อยู่ในรูป vectors ได้ครับ
จากนั้นเราจะคำนวณ ‘’ทิศทาง” ที่จะเปลี่ยนสไตล์จากทิศทางของ texts ทั้งสองข้อความนั้นตามรูปที่่ 3 ครับ
 
จากรูปที่ 1 และ 3 เราจะเห็นว่าเมื่อได้ทิศทางที่ต้องการใน CLIP vector space แล้ว เราก็เพียงแค่ต้องให้ generated images นั้นเปลี่ยนไปในทิศทางเดียวกันใน CLIP vector space ด้วยนั่นเอง
 
เนื่องจาก CLIP นั้นเป็นโมเดลที่ถูกสอนมาให้รับ input ได้ทั้ง images และ texts ดังนั้น images ก็จะถูก CLIP เปลี่ยนเป็นเวกเตอร์แบบเดียวกับ text
 
ดังนั้น StyleGAN-NADA จะมี StyleGAN ทั้งหมด 2 โมเดลฝังอยู่ด้วยกัน แต่ตัวแรกจะถูก freeze weights ไว้ เพื่อให้สอดคล้องกับ source text ส่วนตัวที่สองจะเป็น StyleGAN ที่เราต้องการจะเปลี่ยนสไตล์ก็จะถูกปรับ เรียนรู้ weights จาก backpropagation
 
โดยเมื่อเราได้ image1 ที่วาดจาก Frozen StyleGAN และ image2 ที่ได้จาก Trainable StyleGAN เราก็จะนำ image CLIP vectors ของทั้งสองมาลบกันเพื่อให้ได้เวกเตอร์ทิศทาง (direction vector) ที่เราจะต้องเอามาเทียบกับเวกเตอร์ทิศทางที่ได้จาก Text vectors
 
การสอน StyleGAN-NADA จึงกำหนดจากทิศทางของ text direction vector และทิศของ image direction vector นั้นควรจะหันไปด้านเดียวกัน
ตามรูปที่ 1 และ 3 ครับ ซึ่งสามารถใช้ cosine loss เพื่อการนี้ได้ครับผม
.
 
เพื่อนๆ สามารถลองเล่น StyleGAN-NADA ได้ง่ายๆ ที่ notebook นี้ครับ
(ทีม ThaiKeras refactor โค้ดเดิมให้เป็น Pytorch Lightning ซึ่ง structure คล้ายกับ Keras subclassing มาก ทำให้โค้ดจัดเรียงเป็นระเบียบ อ่านง่ายขึ้นครับ)
 
 
 
ThaiKeras Lighting NADA Github:
 
.
-----
จริงๆ แล้ว StyleGAN ยังสามารถประยุกต์ทำอะไรได้อีกเยอะมากๆ เช่น Image-editing, Super Resolution,
เปลี่ยนภาพเก่าเป็นภาพใหม่ (time-machine) ซึ่งสามารถดู survey ปี 2022 ได้อย่างละเอียดจากทีม Tel Aviv ของอิสราเอล
ที่เป็นทีมที่ทำงานด้าน StyleGAN เยอะมากๆ ที่สุดทีมนึงของโลกครับ
 
This post was modified 2 years ago by The Neural Engineer

   
ตอบกลับอ้างอิง
The Neural Engineer
(@neural-engineer)
Honorable Member Admin
เข้าร่วมเมื่อ: 6 years ago
ข้อความ: 400
Topic starter  

"Whisper" โมเดล "multi-lingual" speech recognition ล่าสุดจาก OpenAI ที่เทรนด้วยข้อมูลเสียงจำนวน 680,000 ชั่วโมง สามารถเรียกใช้ได้ง่ายๆ ไม่กี่บรรท้ดบน Huggingface Transformers (เวอร์ชั่น Tensorflow) แล้ว

โมเดลนี้สามารถถอดเสียงพูดได้หลายสิบภาษารวมทั้งภาษาไทย (ดูภาษาที่รองรับที่ https://cdn.openai.com/papers/whisper.pdf Table 14)

ดูตัวอย่างโค้ดในรูปด้านล่าง หรือ Colab โน้ตบุคตัวอย่างที่ https://colab.research.google.com/drive/191WGH59ZZ-xyu8d6GWbuqZHa_MQJmQpA?usp=sharing

credit: โพสต์ของ Amy Roberts : https://www.linkedin.com/feed/update/urn:li:activity:6985927180752949248/

 


   
ตอบกลับอ้างอิง
The Neural Engineer
(@neural-engineer)
Honorable Member Admin
เข้าร่วมเมื่อ: 6 years ago
ข้อความ: 400
Topic starter  

โน้ตย่อความเคลื่อนไหว AI - มีนาคม 2023

 

 

GPT-4, Llama, Alpaca, LoRa, PEFT, MidJourney-v5 และ Stable Diffusion ชื่อเหล่านี้ปรากฏเป็นข่าวในวงการ AI ในทุกฟีดข่าว

 

เวลานี้คือยุคทองของวงการ AI ซึ่งมีโปรแกรมหรือโมเดลคือนวัตกรรมใหม่ที่คนทั้งโลกตื่นเต้นมากมาย ที่สำคัญคือสามารถนำไปสร้าง End-Product ได้จริงระดับมืออาชีพ และทุกคน ไม่ว่าจะเป็น AI Researchers, Programmers, Practitioners หรือ Learners ก็ควรรู้และติดตามเทคโนโลยีแห่งอนาคตนี้ไว้ครับ

 

วันนี้ขอจดโน้ตสรุปโมเดลข้างต้นคร่าวๆ เพื่อเป็นแหล่งอ้างอิงหรือแนวทางให้เพื่อนๆ ได้ไปศึกษากันต่อนะครับ

 

ก่อนอื่นขอจัดหมวดหมู่ภาพใหญ่สำหรับเพื่อนๆ ที่เพิ่งเริ่มศึกษาก่อนนะครับ :

 

GPT-4, ChatGPT, Llama และ Alpaca เป็น Generative text models ใช้สร้างสรรค์บทความหรือตอบปัญหาต่างๆ เป็นภาษามนุษย์โดยมีจุดมุ่งหมายที่จะเป็นเหมือน Jarvis ในเรื่อง Ironman

 

MidJourney และ Stable Diffusion เป็น Generative image models ใช้สร้างสรรค์ภาพต่างๆ ไม่ว่าจะเป็นภาพถ่าย หรือภาพวาดระดับมืออาชีพในหลากหลายสไตล์

 

Adaptor-Transformers และ PEFT models คือ เทคนิคเจ๋งๆ ที่เป็นเสมือน Plugins ขนาดเล็กที่นำมาต่อเติมกับโมเดลใดๆ ก็ได้ข้างต้น เช่น GPT หรือ Diffusion แล้วทำให้สไตล์ของโมเดลต้นฉบับปรับเปลี่ยนไปตามที่เราต้องการ ตัวอย่าง plugin model ที่คนนิยมใช้มากที่สุดคือ LoRa (โดยเอามาใช้กับ stable diffusion)

.

——

Generative Text Models:

——

 

GPT-4 สามารถอ่านรูปได้ด้วยแต่ยังไม่เปิดให้ใช้งานตอนนี้ เวอร์ชั่นอ่าน text อย่างเดียว สามารถลองเล่นได้จาก ChatGPT plus เดือนละ 700 บาท หรือลองเล่น Microsoft Bing Chat ดูฟรีๆ ก็ได้เห็นไอเดียครับ

 

สำหรับความสามารถของ GPT-4 แม้มีหลายคนจะบอกว่ามันฉลาดกว่า ChatGPT3.5 มาก แต่การทดสอบที่ค่อนข้างรัดกุม (เกี่ยวกับเรื่องความสามารถในการเขียนโค้ด) ดูแล้วจะฉลาดกว่าเล็กน้อยเท่านั้นครับ

https://youtu.be/Y9LIDMV-fw4

 

 

Llama คือ โมเดล Opensource (ใช้ได้ฟรี) จาก Meta / Facebook โดย ความเจ๋งของ Llma ก็คือ Meta ได้ทำการทดลองแล้วว่า Llama ขนาด 13B นั้นมีประสิทธิภาพเหนือกว่า GPT-3 175B ที่ใหญ่กว่า 13 เท่าในแทบทุกการวัดผล : https://arxiv.org/pdf/2302.13971.pdf

 

ซึ่งเมื่อรวมกับเทคนิค 8-bits model หรือ PEFT/LoRa (ดูด้านล่าง) ทำให้โมเดล Llama ขนาด 7B และ 13B สามารถรันหรือแม้กระทั่งสอนใน GPU ราคาถูกตามบ้าน : ดูเพิ่ม https://thaikeras.com/community/postid/783/

 

อย่างไรก็ดี Llama ไม่ได้วัดผลเทียบกับ ChatGPT ซึ่งก็คือ GPT-3.5 ที่มีการสอนเพิ่มเติมจาก feedback ของมนุษย์เพิ่มเข้าไปอีก

 

จึงเป็นที่มาของ Alpaca ของ Stanford ที่นำ feedback ของมนุษย์มาสอน llama เพิ่ม ดังนั้นในทางทฤษฎี Alpaca 7B หรือ 13B น่าจะมีประสิทธิภาพใก้ๆ กับ ChatGPT3.5 ครับ : https://crfm.stanford.edu/2023/03/13/alpaca.html

 

==ล่าสุด== ขณะเขียนโน้ตย่อนี้ยังไม่จบ ChatGPT ได้ประกาศอีก 1 module สำคัญคือ ChatGPT plugins ซึ่งต่อ ChatGPT เข้ากับโปรแกรมเช่น

 

  • Wolfram alpha เพื่อตอบปัญหาคณิตศาสตร์ วิทยาศาสตร์ หรือเศรษฐศาสตร์อย่างถูกต้องมากขึ้น 
  • Kayak เพื่อค้นหาตั๋วเครื่องบิน ตามจุดต่างๆ ทั่วโลกจากข้อมูลตั๋วจริงๆ ของ Kayak (ไม่ใช่ข้อมูลเก่าที่ GPT เรียนมา)
  • Instacart เพื่อค้นหาของช้อปปิ้งตามร้านสะดวกซื้อจากข้อมูลจริง
  • อื่นๆ อีกมากมายที่จะตามมาในอนาคต

โดย ChatGPT plugin ซึ่งต่างจาก PEFT plugin ในหัวข้อข้างล่าง  จะทำการแปลง query ของ user ไปเป็น query ให้ partners เช่น Wolfram หรือ Kayak และจะแปลงข้อมูลจาก partners เหล่านั้นกลับมาเป็น prompt เพื่อสร้างคำตอบอีกที (ผู้ใช้งานจะไม่เห็นขั้นตอนเหล่านี้) ดังนั้นคำตอบของ ChatGPT ที่เชื่อมกับ plugin จะมาจากข้อมูลปัจจุบันจริง ไม่ได้มโนหรือมาจากข้อมูลสอนเก่า

 

.

——

Generative Image Models และ PEFT:

——

 

MidJourney v5 เพิ่งจะเปิดตัวเดือนนี้และได้รับคำชมอย่างล้นหลามถึงความสมจริงของ รูปที่ generate  มีหลายคลิป video ที่น่าสนใจ ที่ทำให้เพื่อนๆ ใช้ ChatGPT มาสร้าง prompt ของ MidJourney-v5 ได้งามๆ โดยเราไม่ต้องลำบากไปคิดเอง เช่น

https://youtu.be/Asg1e_IYzR8

 

Stable Diffusion ยังคงเป็นโมเดลคู่แข่งตัวฉกาจของ Midjourney ด้วยความที่มันเป็น opensource ทำให้ใช้ได้ฟรีและถูกพัฒนาไปเร็วแบบก้าวกระโดด ไม่เฉพาะในแง่คุณภาพ แต่ในแง่การใช้งานง่ายด้วยครับ โดยเครื่องมือที่ดังมาก มีชื่อว่า Automatic 1111 Stable Diffusion Web UI. มีบทความภาษาไทยดีๆ ที่จับมือทำตั้งแต่เริ่มลงโปรแกรมและใช้งานอย่างละเอียดโดยคุณ “เทพ excel” ครับ

https://www.thepexcel.com/category/ai/

 

หรือภาษาอังกฤษ : https://stable-diffusion-art.com/automatic1111/

 

โดยจุดเด่นมากๆ ของ Opensource Stable Diffusion ก็คือการที่นักพัฒนานำเทคนิคที่ชื่อว่า PEFT (Parameter Efficient Finetuning) เข้ามาช่วยครับ โดยอย่างที่เกริ่นไปตอนต้น เทคนิค PEFT นี้แท้จริงแล้ว เป็นโมเดล plugin ขนาดเล็กมาก ที่นำมาต่อเข้ากับ transformers ใดก็ได้

และทำหน้าที่ปรับจูนความสามารถของ transformers ตัวเดิมให้เปลี่ยนไปตาม plugin

 

https://huggingface.co/blog/peft

 

ในตัวอย่างของเทพ excel ด้านบนก็มี ใช้ Stable Diffusion เป็น transformers ดั้งเดิมแล้วใส่ plugin “ชุดนักศึกษาไทย เข้าไป ทำให้โมเดล generate ภาพสาวไทยได้สวยขึ้นกว่าเดิมมากๆ

 

PEFT Plugin ที่คนนิยมมากคือ LoRa ซึ่ง plugin เหล่านี้ จุดเด่นก็คือมันเล็ก ขนาดไม่กี่สิบหรือร้อย MB ซึ่งเล็กกว่าโมเดลต้นฉบับนับร้อยเท่า ทำให้นำมาสอนได้อย่างง่ายกับ GPU บ้านๆ (ดูบทความฉบับก่อน)

 

วงการ plugin ไปไกลและเร็วมาก ตอนนี้มีเว็บ civitai.com ที่มี plugins ต่างๆ (รวมทั้ง weights ตัวเต็มของ Stable Diffusion) ให้เลือกดาวโหลดปรับแต่งนับพันรูปแบบ เข้าไปดูเว็บนี้แล้วแทบจะออกไมได้ทีเดียว

 

บทความภาษาไทยนอกจากเพจ เทพ Excel’ ยังมี fb หลายๆ pages ภาษาไทยที่เน้น applications หรือสอนการใช้งาน tools ต่างๆ อย่างละเอียด

 

เพจ DeepPub : https://web.facebook.com/profile.php?id=100088716401766

เพจ คิดไม่ออกบอก AI : https://web.facebook.com/AiforThai

 

วงการ AI วินาทีนี้พัฒนาไปเร็วมาก แอดมินเองก็ยังตามไม่ค่อยทัน

ขอจบสรุปโน้ตสั้นๆ เท่านี้ก่อน ถ้าเพื่อนๆ มี resources ดีๆ แชร์เพิ่มเติมใน comments ได้เลยนะครับ

 


   
ตอบกลับอ้างอิง
Page 3 / 3
Share: