Skip to main content

19 posts tagged with "thai"

View all tags

แจกวิธี Train Thai Question Answering AI ใช้ Wangchanberta บน Dataset iApp QA โดย Simple Transformer

· 2 min read
Kobkrit Viriyayudhakorn
CEO, iApp Technology

แจกวิธี Train Thai Question Answering AI ใช้ Wangchanberta บน Dataset iApp QA โดย Simple Transformer

How to make Thai QA System using SimpleTransformer

Colab:

https://colab.research.google.com/drive/1inDOJzCh-iG3_aAU-73tq3FzlCwM8nvY#scrollTo=vLChKnukd3gC


แจกวิธี Train Thai Question Answering AI ใช้ Wangchanberta บน Dataset iApp QA โดย Simple… was originally published in Kobkrit on Medium, where people are continuing the conversation by highlighting and responding to this story.

แจกไบเบิ้ล วิธีการ Finetune BERT, Roberta, Wangchanberta สำหรับงาน NLP ภาษาไทยแบบง่าย พร้อมแจกโค้ดบน Colab!!

· 4 min read
Kobkrit Viriyayudhakorn
CEO, iApp Technology

แจกไบเบิ้ล วิธีการ Finetune BERT, Roberta, Wangchanberta สำหรับงาน NLP ภาษาไทยแบบง่าย พร้อมแจกโค้ดบน Colab!!

ชุดซอฟต์แวร์ Transformer จาก Huggingface (https://huggingface.co/) เป็นศูนย์รวม Software, Model และ Datasets ในการใช้ Transformer ทางด้าน NLP ที่ยอดนิยมที่สุดในโลก สนับสนุนทางภาษาไทยและภาษาอังกฤษ และทุกภาษาทั่วโลก

การใช้งานชุดซอฟต์แวร์ Transformer จาก Huggingface นี้ ต้องมีความรู้เฉพาะทางของแต่ละ Model ในตระกูล Transformer และต้องเรียนรู้ API ของ Huggingface ต่างๆ อาทิเช่น Datasets, Trainer, Tokenizer, Inference API ที่ต้องใช้เวลาและการเรียนรู้ค่อนข้างนาน (แต่ก็ดีกว่าไป Clone GIT Repo ของ Transformer แต่ละตัวมาแล้วมาเรียนรู้และเล่นเอง ไปหลายขุมแล้ว)

เพื่อที่จะให้ผู้ที่ทำการเรียนรู้ สามารถนำ Model Transformer นำไปใช้งานได้อย้างรวดเร็ว โดยที่เข้าใจถึงพัฒนาการของงาน NLP จาก One-hot Encoding, Word2Vec, LSTM, Encoder & Decoder และ Transformers ได้ด้วยนั้น

สอน NLP Processing + Toolkits ที่ค่าย Super AI Engineer Season 2 ระหว่างวันที่ 14–15 กุมภาพันธ์ 2565

ทางผมได้รับเชิญ ให้สอนวิธีการพัฒนา AI เหล่านี้ในค่าย Super AI Engineer Season 2 ผู้เข้าร่วมประมาณ 130 ท่าน จัดโดยสมาคมปัญญาประดิษฐ์ประเทศไทย (AIAT) ระหว่างวันที่ 14–15 กุมภาพันธ์ 2565โดยสอนวิธีการสร้าง Model AI ด้าน NLP ตั้งแต่วิธี Basic จนถึงการใช้ Word2Vec, LSTM, BERT, Roberta และสอน Finetune โมโดลโดยการใช้ Tensorflow Keras, Pytorch และสุดท้าย Finetune บนซอฟต์แวร์ชุด Simple Transformer (https://simpletransformers.ai)/ซึ่งเป็นชุดซอฟต์แวร์ที่ที่ทำให้เรา Finetune Model บนข้อมูลบน Pandas ได้โดยง่าย โดยไม่ต้องเขียน Data Class หรือใช้ Data loader บนงาน NLP ภาษาไทยและอังกฤษได้ ซึ่งใน Colab มีตัวอย่างตั้งแต่

  1. Text Cleaning
  2. Text Classification
  3. Text Similarity
  4. Word Segmentation
  5. Name Entity Recognition (NER)
  6. Part of Speech Tagging (POS)
  7. Sentence Segmentation

พร้อมตัวอย่างใช้งานได้จริงผ่าน Notebook บน Google Colaboratory ใน 2 Links นี้

NLP Preprocessing + Text Classification (Monday 14 Feburary)
https://bit.ly/sai2-nlp1

NE + POS + WS + SS (Tuesday 15 Feburary)
https://bit.ly/sai2-nlp2

และสุดท้ายสอนการ Upload Model และ Tokenizer ขึ้นที่หน้าเว็บไซด์ของ Huggingface อีกด้วย ในท้ายของวันที่ 15 Faburary

ใครสนใจลองเข้าไปเรียนรู้ดูได้ หากเจอข้อผิดพลาดอะไร สามารถแจ้งมาที่ได้เลย มาจะทำการ Update แก้ไขให้ครับ

Colab ตัวนี้เป็นแบบ MIT license สามารถใช้ในการแจกจ่าย ดัดแปลง ไปใช้ในทางธุรกิจ อะไรได้หมดเลยครับ ทางผมยินดีครับ ขอบคุณครับ


แจกไบเบิ้ล วิธีการ Finetune BERT, Roberta, Wangchanberta สำหรับงาน NLP ภาษาไทยแบบง่าย… was originally published in Kobkrit on Medium, where people are continuing the conversation by highlighting and responding to this story.

ศักยภาพของ AI สู่โอกาสใหม่แห่งการแข่งขันและความสำเร็จ

· 7 min read
Kobkrit Viriyayudhakorn
CEO, iApp Technology

https://medium.com/media/f8ead5836ef79253f028959f246dd628/href

สวัสดีครับ เจอกันอีกแล้วนะครับ ผม กอบกฤตย์ นะครับ

เนื่องจากทางผมมีโอกาสได้ไปพูดที่งาน Metalex 2019 เป็นครั้งที่สองแล้วนะครับ ในฐานะกรรมการสมาคมปัญญาประดิษฐ์ประเทศไทย (AIAT) ในหัวข้อเรื่อง ศักยภาพของ AI สู่โอกาสใหม่แห่งการแข่งขันและความสำเร็จ ซึ่งเป็นแนวที่ค่อนข้าง Abstract มาก ผมเลยคิดว่า มันก็เป็นโอกาสอันดีเหมือนกัน ที่ได้สรุปข่าว AI ที่สำคัญๆในปี 2019 มารวบรวมให้กับผู้อ่านทุกท่าน และให้ทุกท่านได้เตรียมตัวปรับตัวกับกระแส AI Disruption ที่จะรุนแรงขึ้นเรื่อยๆในปี 2020 นะครับ โดยหัวข้อที่ผมพูดแบ่งเป็น 3 หัวข้อหลักดังนี้นะครับ

หัวข้อที่ 1: เรื่องความก้าวหน้าด้าน AI ของทั้งโลกในปี 2019 ต้องยอมรับว่า สิ่งที่ก้าวหน้าที่สุดในปี 2019 นี่ ผมต้องยกให้กับเรื่อง Transfer Learning เลยครับ Transfer Learning คือการที่ AI เรียนรู้ข้อมูลจากแหล่งอื่นมาก่อน (มักจะเป็น Unsupervised Learning) แล้วสามารถนำมาสร้าง Model ใหม่ตามที่เราต้องการได้โดยใช้ข้อมูลน้อยลงมากๆ และ ไม่ว่าจะเป็น Domain ที่ชัดเจนมากๆ อาทิเช่น Natural Language Processing โดยการสร้าง Langauge Model จาก Corpus บทความขนาดใหญ่ ด้วยวิธี Pre-training แล้วค่อยมาปรับ Fine-tune กับงานที่เราต้องการใช้ภายหลังนะครับ ตัวอย่างที่ชัดเจนคือ Google BERT (https://github.com/google-research/bert)

หนึ่งในนั้นที่น่าสนใจก็คือเรื่อง Machine Translation นะครับ ที่ไม่ต้องใช้เนื้อหา Translation Pair ในการสอน AI แล้ว เพียงแค่นำ Pre-training ของแต่ละภาษามาแล้ว AI จะหาคู่คำแปลได้เองอัตโนมัติด้วยเทคนิคการ Map ให้ Word-Embedding ตรงกันนะครับ ทำให้เราสามารถทำ Machine Translation ได้ด้วยต้นทุนที่ถูกลงมากเลยครับ หากใครสนใจไปลองอ่าน Facebook XLM ดูนะครับ (https://github.com/facebookresearch/XLM)

เรื่อง Speech นะครับ ตอนนี้เค้าสามารถสร้าง Speech Model ด้วยเทคนิค Pre-training โดยให้ AI ฟังเสียงตัวอย่างการพูดจากคนหลายๆพันคนนะครับ โดยที่ไม่ต้องมี Text Script ที่ควบคู่กับเสียงแล้วนะครับ และสามารถสร้างตัว Text-to-Speech (TTS) เป็นเสียงของใครก็ได้ ขอเพียงแค่มีตัวอย่างเสียงของผู้พูดที่เราต้องการเพียงแค่ 5 วินาทีเท่านั้น สามารถลองไปดูรายละเอียดเพิ่มเติมที่ https://github.com/CorentinJ/Real-Time-Voice-Cloning ได้เลยนะครับ

ัวข้อที่ 2 โอกาสใหม่ๆครับ ในปี 2020 เราจะเริ่มเห็นหุ่นยนต์มากขึ้นเรื่อยๆ ในปี 2025 เราจะเห็นหุ่นยนต์จนชินตา และคาดว่าจำนวนประเภทหุ่นยนต์จะมากกว่าจำนวน Species ของสัตว์ทั้งหมดในช่วงปี 2030 เราจะเห็นบริษัททางด้านหุ่นยนต์เติบโตขึ้นมหาศาลครับ อาทิเช่น หุ่นยนต์ทำความสะอาด,​หุ่นยนต์ประจำบ้าน, Smart Speaker และโอกาสต่างๆจากหุ่นยนต์ก็มหาศาลเช่นกัน อาทิเช่น

  1. งานการเขียนโปรแกรม AI เพิ่มความสามารถหุ่นยนต์ในด้านต่างๆ ความต้องการ
  2. ระบบศุนย์รวมข้อมูลและ Control ผ่านระบบ IOT ที่สามารถเชื่อมโยงหุ่นยนต์เข้าไว้ด้วยกัน
  3. ระบบ Big Data ที่ทำให้ AI เข้าใจข้อมูลมากยิ่งขึ้น จนกระทั่งรู้ใจลูกค้ามากยิ่งกว่าตัวลูกค้าเอง เราจะสามารถสร้าง Personalize Marketing ซึ่งจะช่วยสร้างเม็ดเงินมหาศาลจากความสามารถเหล่านี้ครับ

ส่วนประเทศไทยต้องเริ่ม Focus จากฐานการผลิตชิ้นส่วนรถยนต์เครื่องยนต์ที่ใช้นำมัน มาเป็นการผลิตชิ้นส่วนหุ่นยนต์ หรือตัวหุ่นยนต์เองได้แล้วนะครับ (รถยนต์ไฟฟ้าใช้ชิ้นส่วนไม่กี่ชี้นเอง และมักจะผลิตเป็นเนื้อเดียวกันแต่แรก) จะและต้องเร่งให้บริษัททางด้าน IT และ Software House ต้องสามารถใช้งาน AI ได้เป็น พร้อมตอบรับความต้องการของลูกค้าที่มีมากขึ้นในปี 2020 นะครับ

ัวข้อที่ 3 คือเรื่องการแข่งขันนะครับ ก็ค่อนข้างชัดเจนว่า งานที่ถูกสร้างเพราะการมาถึงของ AI จะเพิ่มตำแหน่งงานมากถึงประมาณ 133 ล้านตำแหน่งนะครับ แต่ก็จะทำลายตำแหน่งงานเก่าๆ ที่มาถูก AI ด้วยประมาณ 75 ล้านตำแหน่งเช่นกัน ในประเทศไทยจะมีปัญหาใหญ่มากๆ อันนึงก็คือปัญหา Skill Gap ครับ คือคนที่ทำ AI ได้ จะถูกแย่งตัวกันมาก และคนที่ทำ AI ไม่ได้ จะใช้เวลานานพอสมควร (3 เดือน — 1 ปี) กว่าจะสามารถมาเรียนรู้จนมาทำ AI ได้ คนที่ทำไม่ได้ จะหางานยากขึ้นกว่าเดิมมาก (เพราะตำแหน่งลดลงไปถึง 33%) ส่วนคนที่ทำได้แล้ว จะมีความต้องการเพิ่มขึ้นเป็น 2 เท่าในปี คศ. 2022

คนไทยมีปัญหาในเรื่องพื้นฐานความรู้สำหรับงาน AI ค่อนข้างมาก (ขาดทักษะ STEM) จะส่งผลให้คนจำนวนมากตกที่นั่งลำบากในอนาคตอันใกล้นี้ครับ วิธีการแก้ไขก็คือกลับไปทบทวนวิชาคณิตศาสตร์และคอมพิวเตอร์ครับ เพราะ AI คือใช้คณิตศาสตร์เป็นหลัก จำพวก Linear Algebra, Differiential Equation และทักษะทางด้าน Programming โดยเฉพาะภาษา Python ที่สามารถนำมาเขียน AI ได้ดีที่สุดนะครับ

รายละเอียด Slide ทั้งหมดสามารถดูได้ที่ Slideshare ด้านบนนะครับ

หากท่านชอบ Blog ความรู้แบบนี้ฝากกดรูปตบมือ หรือ ช่วยแชร์บทความลง Social Network ที่ท่านชื่นชอบได้เลยครับ

ขอบคุณครับ

หากใครสนใจอยากจะพัฒนาหรือต้องการที่ปรึกษาด้าน AI สามารถเข้าไปดูผลงานของบริษัทเรา iApp Technology ได้ที่ https://iapp.co.th และ https://ai.iapp.co.th หรือติดต่อได้ที่ kobkrit@iapp.co.th ได้เลยนะครับ #Ai #iApp

https://ai.iapp.co.th

ดูเพิ่มเติมได้ที่ https://iapp.co.th และ https://ai.iapp.co.th :D


ศักยภาพของ AI สู่โอกาสใหม่แห่งการแข่งขันและความสำเร็จ (รายงานความก้าวหน้าของ AI ในช่วงปี 2019) was originally published in Kobkrit on Medium, where people are continuing the conversation by highlighting and responding to this story.

การประมวลภาษาไทย NLP แบบ Transfer Learning ด้วย BERT

· 3 min read
Kobkrit Viriyayudhakorn
CEO, iApp Technology

สวัสดีครับ ไม่ได้ Post กันมาซักพักเลยครับ สบายดีไหมครับ ผม กอบกฤตย์ นะครับ เนื่องจากทางผม ได้รับการเชื้อเชิญโดยคุณ Charin https://www.facebook.com/charin.lin.5 มาพูดในงาน Data Science BKK #9 https://www.facebook.com/groups/dsbkkgroup/ เลยมาพูดเรื่อง BERT ซักหน่อยครับ

BERT เนี่ย มันย่อมาจาก Bidirectional Encoder Representations from Transformers พัฒนาโดย Google ครับ มันเป็น AI Deep Learning แบบ Transformer สำหรับงาน NLP (Natural Language Processing) โดยเฉพาะ ซึ่งเอาชนะ State-of-the-Art ในงาน NLP ได้กระจุยหลายตัวครับ

เวลาเทรน BERT เนี่ย ต้องทำการ Train 2 รอบไม่เหมือนกับ Deep Learning ทั่วๆไปแบบ LSTM หรือ RNN นะครับ มันจะแบ่งเป็น Pre-training เรียนรู้เข้าใจภาษาจากเนื้อหาข้อความภาษาจำนวนมาก(อาทิเช่นมาจาก Wikipedia, Toronto Book Corpus) เป็นการเรียนรู้แบบ Unsupervised Learning ก่อนนะครับ ซึ่ง Data ที่ใช้ไม่คต้องมีการ Label Class อะไร เพื่อให้ BERT เข้าใจ Language Model (LM) ของภาษานั้นๆเสียก่อนครับ

หลังจากที่ BERT เข้าใจ Language Model เรียบร้อยแล้วเราก็จะเอา BERT มาใช้งานในด้านต่างๆอาทิเช่น ทำ Sentimental Analysis ก็ต้องทำการ Train รอบที่สอง เรียกว่า Fine Tune นะครับ เป็นแบบ Supervised Learning โดยที่เราต้องเอา Data ที่เราต้องสอนมัน แบบมี Class อาทิเช่น Wisesight Sentimetal Data set (https://www.kaggle.com/c/wisesight-sentiment) มาปรับ Weight ที่ Layer ท้ายๆของ BERT ครับ ให้มันเรียนรู้ให้แยกแยะ ข้อความอารมณ์ดี หรือข้อความอารมณ์เสียได้

เนื้อหาฉบับเต็มจะอยู่ใน Link Youtube ข้างล่างนะครับ โดยเนื้อหาประกอบไปด้วย

  1. ฺฺBERT ดีอย่างไร
  2. การทำ NLP ในยุค Deep Learning จาก One-hot encoding ถึง BERT
  3. วิธีการทำงานของ BERT
  4. การ Pre-training, Fine-tuning และการใช้งาน BERT ของจริง
  5. มีอะไรจะมาเจ๋งกว่า BERT มาอีกไหม

ดู Video ได้เลยครับ

https://medium.com/media/6ba726cc23e3064c9ac7058aca02de25/href

Slide shares:

https://medium.com/media/dcf1748492673092fc07faa4a3fcabff/href

หากมีคำถามอะไร สามารถทิ้ง Comment ไว้ได้เลยนะครับ จะรีบมาตอบให้เร็วที่สุด หากชอบใจบทความนี้ฝากกดปุ่มตบมือ (Clap) ให้หน่อยนะครับ

หากใครสนใจอยากจะพัฒนาหรือต้องการที่ปรึกษาด้าน AI สามารถเข้าไปดูผลงานของบริษัทเรา iApp Technology ได้ที่ https://iapp.co.th และ https://ai.iapp.co.th หรือติดต่อได้ที่ kobkrit@iapp.co.th ได้เลยนะครับ #Ai #iApp

https://ai.iapp.co.th

ดูเพิ่มเติมได้ที่ https://iapp.co.th และ https://ai.iapp.co.th :D


การประมวลภาษาไทย NLP แบบ Transfer Learning ด้วย BERT was originally published in Kobkrit on Medium, where people are continuing the conversation by highlighting and responding to this story.

จำนวนบริษัทด้าน AI ของไทย เมื่อเทียบกับเพื่อนบ้าน

· 5 min read
Kobkrit Viriyayudhakorn
CEO, iApp Technology

ผล Government Artificial Intelligence Readiness Index ประจำปี 2019 จัดอันดับโดย Oxford Insights

เร็วๆนี้มีข่าวว่า หนึ่งในตัวชี้วัดความพร้อมด้าน AI ของแต่ละประเทศคือ จำนวนบริษัท AI Startups โดยจากการจัดอันดับ Government AI Readiness 2019 [1],[2] โดยทาง Oxford Insights ผู้จัดอันดับนั้น ไปเอาข้อมูลจากเว็ปไซด์ https://www.crunchbase.com มาพิจารณา โชคดีที่ผมได้กรอกข้อมูลของบริษัทผมไว้ บริษัท ไอแอพพ์เทคโนโลยี จำกัด (iApp Technology Co., Ltd. — https://iapp.co.th) จึงเป็นหนึ่งในบริษัท AI ของไทยที่ได้ถูก Index ด้วย (มีอารมณ์ภาคภูมิใจนิดๆ)

เว็บไซด์ Crunchbase.com ถือว่าเป็น Website ฐานข้อมูล Startup ที่ใหญ่ที่สุดในโลก ผมรู้จักเว็บไซด์นี้ครั้งแรก ตอนได้ไปร่วมกับ JFDI.Asia Startup Accelerator ที่สิงคโปร์ในปี 2014 โดยคุณเจ้าของ JFDI.Asia Startup Accelerator คุณ Meng Wong แนะนำให้กรอกข้อมูล Startup ของตัวเองลงเว็บไซด์นี้ ภายในสัปดาห์แรกของการเริ่มเข้าค่ายเลยทีเดียว นักลงทุนทั่วโลกเค้าจะได้รู้จัก เพราะนักลงทุนเค้าจะอ้างอิงฐานข้อมูลนี้เป็นมาตรฐานเสมอๆ

ผมจึงอยากเชิญชวนทุกท่านที่ทำ Startup ทุกท่านว่า หากใครต้องการได้รับ Invest จากนักลงทุนทั่วโลก ควรเสียเวลาเล็กน้อยกรอกข้อมูลของท่านลงในเว็บไซด์นี้ แล้วคนทั้งโลกจะได้รู้จักบริษัทของท่าน

คราวนี้ผมสงสัยจริงๆว่า จำนวนบริษัทในไทย ที่เป็น Artificial Intelligence นั้นมีทั้งหมดกี่บริษัทกันแน่ และเราเป็นอันดับที่เท่าไร่ใน Southeast Asian นี้

เพื่อหาคำตอบ ผมเลยใช้หน้า Search ของ Crunchbase ซึ่งสามารถระบุได้ 2 เงื่อนไข (Package ฟรี) ทางผมเลยใช้ Search Condition ง่ายๆดังรูป ที่ Website ของ Crunchbase

  1. Location = ประเทศนั้นๆ
  2. Category = Artificial Intelligence

(เนื่องจากผมไม่ได้ซื้อ Package Crunchbase Pro ไว้นะครับ เลยแสดงผลแค่ 5 อันดับแรกของแต่ละประเทศเท่านั้น)

ประเทศไทย

ประเทศไทยมี 11 บริษัทครับ บริษัทที่ Rank ดีที่สุดคือ Wongnai นั้นเอง และบริษัทของผมเอง iApp Technology อยู่ที่ 2

บริษัทในประเทศไทยเป็นบริษัท AI Application แนวจับ Domain ต่างๆ หลากหลาย อาทิเช่น อาหาร, NLP ภาษาไทย (AI Consulting), อสังหา, รถยนต์, SEO Digital Marketing…

สิงคโปร์

165 บริษัท หรือประมาณ 15 เท่าของเมืองไทย ส่วนมากเป็นแนว B2B ทั้งนั้น

มาเลเซีย

25 บริษัท ประมาณ 2 เท่ากว่าๆของเมืองไทย ส่วนมากเน้น Digital Marketing AI (B2B) 3 บริษัท และ อาหาร 2 บริษัท

พม่า

1 บริษัท ด้าน Digital Marketing ที่มี AI ช่วยด้วย

ลาว

0 บริษัท

กัมพูชา

1 บริษัท เรื่อง Solution โรงแรมและร้านอาหาร B2B

เวียดนาม

8 บริษัท เป็นแนว Software Development AI และ Real Estate

อินโดนิเซีย

20 บริษัท เป็นแนว Chatbot และ Pure AI ( Image, Neuro Science) ดูเป็น Deep Tech มากๆ

ฟิลิปปินส์

8 บริษัท Chatbot, NLP, Digital Maketing, AI Consulting

บรูไน

0 บริษัท

ติมอร์

0 บริษัท

สรุป

ประเทศไทยอันดับที่ 4 ผมว่าจริงๆ ผมสัมผัสได้ว่าในไทยน่าจะมีมากกว่านี้ อยู่ที่ประมาณ 20–30 บริษัท แต่ละบริษัทเจ๋งๆทั้งนั้น แต่ว่าเค้าไม่ได้เข้ามาใส่ข้อมูลเลยทำให้ข้อมูลมันดูน้อยๆไปหน่อย เลยจะอยากจะเชิญชวนบริษัท AI ในไทยที่ยังไม่ได้มาใส่ข้อมูล มาใส่ใน Crunchbase นะครับ จะได้ช่วยเป็นส่วนนึงให้ประเทศไทยจะได้ Rank Government AI Readiness 2019 สูงกว่านี้อีกนิด ในปีถัดไปครับ

ขอบคุณครับ

เขียนเมื่อ 28 July 2019

หากใครสนใจอยากจะพัฒนาหรือต้องการที่ปรึกษาด้าน AI สามารถเข้าไปดูผลงานของบริษัทเรา iApp Technology ได้ที่ https://iapp.co.th และ https://ai.iapp.co.th หรือติดต่อได้ที่ kobkrit@iapp.co.th ได้เลยนะครับ #Ai #iApp

https://ai.iapp.co.th

ดูเพิ่มเติมได้ที่ https://iapp.co.th และ https://ai.iapp.co.th :D


จำนวนบริษัทด้าน AI ของไทย เมื่อเทียบกับเพื่อนบ้าน was originally published in Kobkrit on Medium, where people are continuing the conversation by highlighting and responding to this story.

Jupyter Lab Terminal non-UTF8 Fix Encoding

· One min read
Kobkrit Viriyayudhakorn
CEO, iApp Technology

Jupyter Lab Terminal non-UTF8 Fix Encoding

We have non-ASIIC filename (Thai UTF-8 filename), which is displayed incorrectly in the Jupyter lab terminal by default. It is display as ??????????.txt.

To solve with this, just type

export LANG=C.UTF-8

into the terminal.

The problem is resolved immediately.

For those whoever want to develop and get consult on creating your own AI model, please getting more information at our company website “iApp Technology” (https://iapp.co.th) and testing our AI demoes (https://ai.iapp.co.th). You can contact me directly at kobkrit@iapp.co.th. Thank you very much. #iApp #Ai

See more at https://iapp.co.th and https://ai.iapp.co.th


Jupyter Lab Terminal non-UTF8Fix Encoding was originally published in Kobkrit on Medium, where people are continuing the conversation by highlighting and responding to this story.

การพัฒนาระบบหุ่นยนต์โต้ตอบสนทนาอัตโนมัติภาษาไทย (Chatbot) ด้วย Dialogflow

· 8 min read
Kobkrit Viriyayudhakorn
CEO, iApp Technology

1

การพัฒนาระบบหุ่นยนต์โต้ตอบสนทนาอัตโนมัติ (Chatbot Agent) นั้น, สามารถทำได้โดยการแปลงคำพูดของผู้ใช้ที่ใช้ภาษาธรรมชาติ อาทิเช่น ภาษาไทยหรือภาษาอังกฤษ (Query) ให้เป็นข้อมูลที่สามารถประมวลผลได้ (Intent). โดยที่การแปลงนี้ (Intent Classification) เกิดขึ้นเมื่อผู้ใช้ป้อนข้อมูล ที่ใกล้เคียงหรือตรงกับกับข้อมูลคำพูด (Training Phase) ของหนึ่งในเจตนา (Intent) ที่นักพัฒนาโปรแกรมกำหนดไว้. เจตนาเหล่านั้นเป็นหัวข้อที่ใช้ดำเนินการตามคำพูดของผู้ใช้.

หุ่นยนต์โต้ตอบอัตโนมัติสามารถออกแบบมาเพื่อจัดการการสนทนา ด้วยความช่วยเหลือจากข้อมูลบริบท (Context), ลำดับความสำคัญของเจตนา (Intent Priority), การดึงข้อมูลสำคัญจากคำพูดของผู้ใช้ (Action and Parameters). นอกจากนี้ยังเปิดให้นักพัฒนาเขียนโปรแกรม (Code) เสริมเพื่อการประมวลผลเพิ่มเติมได้ ผ่านช่องทางเชื่อมต่อต่างๆ อาทิเช่น Webhook หรือ Fulfillment. ซึ่งแผนภาพต่อไปนี้แสดงการจัดการคำขอของผู้ใช้เมื่อมีผู้ใช้ส่งคำพูดมายังระบบหุ่นยนต์โต้ตอบสนทนาอัตโนมัติ.

เมื่อผู้ใช้ส่งข้อความมาผ่านโปรแกรมสนทนา (Chat Messenger) หรือเสียงผ่านไมโครโฟน (Microphone) จากอุปกรณ์ต่างๆ ซึ่งเสียงจะถูกแปลงเป็นข้อความด้วยโปรแกรมรู้จำคำพูด (Speech Recognition) แล้วนั้น. ข้อความคำพูดของผู้ใช้เหล่านี้ (Query) ก็จะถูกแปลงเป็นหัวข้อเจตนา (Intent) โดยใช้เทคนิคทางปัญญาประดิษฐ์ที่ใช้คัดแยกเจตนาจากคำพูด (Intent Classification). โดยใช้ทำงานของโปรแกรมคัดแยกเจตนาจากคำพูดนั้น จะใช้หลักการเทียบความเหมือนกับความคล้ายของคำพูดของผู้ใช้ ว่าใกล้เคียงกับกลุ่มคำพูดตัวอย่างของเจตนานั้น (Training Phase) ซึ่งกำหนดไว้ล่วงหน้านั้นๆหรือไม่} โดยการพิจารณาหัวข้อเจตนา (Intent) ที่เหมาะสมนั้น เราสามารถใช้บริบท (Context) เป็นตัวกำหนดว่าเจตนาไหนจะถูกนำมาพิจารณาในการคัดเลือกบ้าง. โดยที่หากเจตนาไหนไม่ตรงกับบริบทที่กำหนดไว้ ก็จะไม่ถูกคัดเลือก ไม่ว่าจะมีกลุ่มคำพูดตัวอย่างใกล้เคียงกับคำพูดของผู้ใช้มากแค่ไหนก็ตาม.

หลังจากที่คัดเลือกเจตนาได้แล้ว, ระบบก็จะสามารถเลือกคำตอบที่เหมาะสม ซึ่งกำหนดไว้โดยนักพัฒนาระบบหุ่นยนต์โต้ตอบสนทนาอัตโนมัติ. ซึ่งอาจจะเป็นคำตอบตายตัว (Static Response) หรือ คำตอบแบบพลวัต (Dynamic Response) ที่สร้างจากการประมวลโปรแกรมเพิ่มเติม เขียนโดยนักพัฒนาเชื่อมต่อกับระบบหุ่นยนต์โต้ตอบสนทนาอัตโนมัติ (Chatbot Agent) ผ่านช่องทาง API (Fulfillment) ก็ได้. โดยนักพัฒนาระบบหุ่นยนต์โต้ตอบสนทนาอัตโนมัตินั้น สามารถเชื่อมหุ่นยนต์กับบริการ API ภายนอกอื่นๆ (External APIs). ซึ่งเป็นการเปิดช่องทางให้หุ่นยนต์ก็สามารถเชื่อมต่อกับระบบฐานข้อมูลภายนอกใดๆ (RDMS) ก็ได้. สามารถนำช่องทางนี้มาใช้การดึงหรือบันทึกข้อมูล ให้สามารถสร้างคำตอบข้อมูลแบบพลวัต ตรงตามความต้องการของผู้ใช้ได้อีกด้วย.

หลังจากนั้น, ข้อความตอบกลับของผู้ใช้ก็จะถูกส่งกลับไปยังโปรแกรมสนทนา หรือตอบกลับเป็นเสียงผ่านลำโพงผ่านโปรแกรมสังเคราะห์เสียง (Speech Synthesis) ไปยังอุปกรณ์ต่างๆได้อีกด้วย. ทำให้ครบองค์ประกอบการสนทนาระหว่างมนุษย์และหุ่นยนต์ ซึ่งขั้นตอนโดยสรุปนั้นก็คือ

  1. รับเข้าคำสนทนาจากมนุษย์ผ่านข้อความโดยตรง หรือข้อความรู้จำจากเสียงมนุษย์โดยใช้เทคโนโลยีรู้จำเสียงพูด (Speech Recognition)
  2. คัดแยกเจตนาจากคำพูด (Intent Classification) โดยพิจารณาจากกลุ่มคำพูดตัวอย่าง (Training Phase) และบริบท (Context)
  3. เมื่อเราได้เจตนาแล้วเราก็สามารถสร้างคำตอบที่เหมาะสมด้วยการไปดึงคำตอบที่กำหนดไว้ (Static Response) ของเจตนานั้นๆ. หรือ ส่งออกเป็นคำตอบแบบพลวัต (Dynamic Reponse) ซึ่งสร้างด้วยการประมวลผลโค้ด (Code) โดยสามารถไปดึงข้อมูลภายนอกที่ต้องการจะใช้จากฐานข้อมูลหรือบริการภายนอกต่างๆด้วยช่องทาง Fulfillment.
  4. ส่งคำตอบไปยังมนุษย์ โดยอาจจะเป็นข้อความหรือเป็นเสียงก็ได้ ผ่านเทคโนโลยีการสังเคราะห์เสียงจากข้อความ (Speech Synthesis)

เครื่องมือในการพัฒนาระบบหุ่นยนต์โต้ตอบสนทนาอัตโนมัติ

เครื่องมือในการพัฒนาระบบหุ่นยนต์โต้ตอบสนทนาอัตโนมัตินั้น มีอยู่หลายเจ้าในตลาด อาทิเช่น

  • IBM Watson
  • Google Dialogflow (API.AI)
  • Microsoft Luis
  • Snips.ai
  • Wit.ai
  • Recast.ai
  • Amazon.lex

ในการคัดเลือกเครื่องมือในการพัฒนาระบบหุ่นยนต์โต้ตอบสนทนาอัตโนมัติสำหรับภาษาไทยนั้น ทางทีมงานวิจัยได้คำนึงถึงเรื่องในหลายๆด้านดังนี้

ความแม่นยำในการทำคัดแยกเจตนาจากคำพูด (Intent Classification)

จากงานวิจัยประสิทธิภาพเครื่องมือในการพัฒนาระบบหุ่นยนต์โต้ตอบสนทนาอัตโนมัติโดย Konstantin Savenkov, co-Founder and CEO at Inten.to ในปีสิงหาคม 2017 นั้น [1] พบว่าเครื่องมือที่มีความแม่นยำในการทำคัดแยกเจตนาจากคำพูดสูงที่สุด 3 ลำดับแรกก็คือ (1) IBM Watson 0.997 (2) Google Dialogflow (API.AI) 0.996 และ (3) Microsoft Luis 0.992 โดยวัดจากค่า F1 Score เป็นหลัก

การสนับสนุนภาษาไทย

เมื่อเราเข้าไปดูในเรื่องการสนับสนุนภาษาไทย พบว่ามีเพียงเครื่องมือสร้างในการพัฒนาระบบหุ่นยนต์โต้ตอบสนทนาอัตโนมัติจาก Google Dialogflow เท่านั้นที่มีการสนับสนุนภาษาไทย

ความสามารถในการเชื่อมต่อกับ Messenging Platform ที่หลากหลาย

เมื่อเราเข้าไปดูในเรื่องความสามารถในการเชื่อมต่อกับ Messenging Platform ที่หลากหลาย เราก็พบว่า Google Dialogflow สามารถเชื่อมต่อกับเครือข่ายสังคม (Social Network) ต่างๆ มากที่สุดมากถึง 16 เจ้าด้วยกันดังภาพ ซึ่งรวมถึง Platform ยอดนิยมของคนไทยอย่าง Line และ Facebook Messenger อีกด้วย

ด้วยเหตุผลปัจจัยต่างๆข้างต้น ทางเราจึงได้เลือก Google Dialogflow เป็นเครื่องมือหลักในการพัฒนาระบบหุ่นยนต์โต้ตอบสนทนาอัตโนมัติ

วิธีการพัฒนา Chatbot ด้วย Dialogflow

วิธีการสร้างเอเจ้นท์ (Agent Creation)

เริ่มจากทางผู้พัฒนาได้ทำการเข้าเว็บไซด์ https://dialogflow.com เพื่อทำการสร้างหุ่นยนต์โต้ตอบสนทนาอัตโนมัติโดยทำตามขั้นตอนดังนี้

  1. เข้าเว็บไซด์ https://dialogflow.com/

  2. กดที่ “Go to Console” ที่มุมขวาบน

  3. เข้าสู่ระบบด้วย Account ของ Google

  4. กดสร้างบอทใหม่ด้วยกดที่ปุ่มลูกศรลง (v) แล้วกดที่ปุ่ม (+) Create new agent

3. ตั้งชื่อบอทที่พื้นที่สีแดงด้านบน (ในที่นี้คือ “ElderBot” ต้องเป็นภาษาอังกฤษเท่านั้น ภาษาไทยมันจะสร้างไม่ได้ ไม่ขึ้น Error ให้ด้วย =_=) เลือกภาษาให้เป็นภาษาไทยในพื้นที่สีน้ำเงิน (Thai) และกดสร้างในพื้นที่สีเขียว (Create) เพื่อเริ่มสร้างระบบหุ่นยนต์โต้ตอบสนทนาอัตโนมัติ

การกำหนดเจตนา Intent + ตัวอย่างคำพูด Training Phase + คำตอบกลับ Response

  1. กดที่เมนู Intents (เจตนา) ที่เมนูด้านซ้ายก็จะเห็นรายการหัวข้อเจตนาด้านขวา ซึ่งโดยเริ่มต้น มีเจตนาดังนี้
  • Default Fallback Intent เจตนารองรับข้อผิดพลาด

เจตนารองรับข้อผิดพลาดคือเป็นเจตนาที่จะถูกคัดเลือกทุกครั้ง เมื่อไม่มีเจตนาอื่นๆ ในรายการใกล้เคียงกับคำพูดของผู้ใช้ใดๆเลย ซึ่งส่วนมากจะเป็นเจตนาที่บอกผู้ใช้ว่า “บอทไม่เข้าใจ” ให้ผู้ใช้ส่งข้อความเข้ามาใหม่อีกครั้ง

  • Default Welcome Intent เจตนาทักทายเริ่มต้น

จะเป็นเจตนาเริ่มต้นทุกครั้ง เมื่อผู้ใช้เข้าสู่โปรแกรมสนทนาพูดคุย หรือได้ทำการเปิดเครื่องอุปกรณ์เชื่อมต่อกับโปรแกรม Chatbot นี้

2. กดที่ “Create Intent”

3. ใส่ชื่อ Intent ว่า “headache” สำหรับเจตนาสำหรับผู้สูงอายุปวดหัว

4. ที่ Training Phases เป็นคำพูดใดๆ ที่บ่งบอกว่าปวดหัว อาทิเช่น “ปวดหัว”, “มึนหัว” แล้วกด Enter

5. ที่ Response ใส่คำตอบของบอท ที่ตอบกลับเมื่อทราบว่า ผู้ใช้มีเจตนาว่าปวดหัว อาทิเช่น “หนูสมใจรับทราบแล้วค่ะ หนูสมใจจะเรียกพยาบาลมาหานะคะ”

6. กด “Save”

การทดสอบหุ่นยนต์สนทนา (Testing Chatbot)

เมื่อเราได้ทำพัฒนาหุ่นยนต์สนทนาเสร็จแล้ว เราสามารถทดสอบความสามารถของหุ่นยนต์โดยการพิมพ์ทดสอบที่พื้นที่ด้านขวา

  1. ลองพิมพ์ประโยคคำพูดง่ายๆ อาทิเช่น “ตอนนี้ปวดหัว” แล้วกด Enter
  2. ระบบก็จะทำการคัดเลือกเจตนาที่ใกล้เคียงที่สุด แล้วเลือกคำตอบที่กำหนดไว้ปรากฏขึ้นมา

Citation

  1. https://www.slideshare.net/KonstantinSavenkov/nlu-intent-detection-benchmark-by-intento-august-2017

หากใครสนใจอยากจะพัฒนาหรือต้องการที่ปรึกษาด้าน AI สามารถเข้าไปดูผลงานของบริษัทเรา iApp Technology ได้ที่ https://iapp.co.th และ https://ai.iapp.co.th หรือติดต่อได้ที่ kobkrit@iapp.co.th ได้เลยนะครับ #Ai #iApp

https://ai.iapp.co.th

ดูเพิ่มเติมได้ที่ https://iapp.co.th และ https://ai.iapp.co.th :D

การสร้าง Chatbot ภาษาไทยด้วย DialogFlow + ThaiMC

· 2 min read
Kobkrit Viriyayudhakorn
CEO, iApp Technology

วันนี้ได้มีโอกาสได้ไปพูดเรื่องการสร้าง Chatbot ภาษาไทยที่ที่ทำการสมาคมปัญญาประดิษฐ์ให้น้องๆที่เข้าร่วมงานแข่งขัน AIROBIC 2018 มากกว่า 40 ท่าน งานนี้เป็นงาน AI Hackatron ชิงเงินรางวัลกว่า 800,000 บาท ใครสนใจก็เข้าไปดูได้ที่ http://airobic2018.aiat.or.th ได้เลยจ้า

Poster งานจ้า

งานนี้เลยถือโอกาสอบรมการสร้าง Chatbot ภาษาไทยด้วย DialogFlow แบบว่าครบ ละเอียดครบถ้วน ใช้ครบทุก Function โดยมีเนื้อหาดังนี้

**วิธีการสร้าง Chatbot ภาษาไทย
**(1) Bot Persona
(2) Chat Fuel
(3) DialogFlow
(4) DialogFlow: Intent
(5) DialogFlow: Training Phase
(6) DialogFlow: Response
(7) How DialogFlow Work?: Intent Classification
(8) DialogFlow: Context
(9) How DialogFlow Work?: Context
(10) DialogFlow: Integration with LINE
(11) DialogFlow: Fulfillment with iApp Thai Machine Comprehension (ThaiMC)
(12) DialogFlow: Fulfillment with Inline Editor on Firebase
(13) DialogFlow: How to Debug the Error and Improve the bot.
(14) Q/A

โดย ดร.กอบกฤตย์ วิริยะยุทธกร
Dr. Kobkrit Viriyayudhakorn
iApp Technology Limited (http://iapp.co.th)
kobkrit@iapp.co.th

เชิญรับชมได้เลยจ้า

รับชม Video ได้เลยจ้า

Presentation Slide:

การสร้าง Chatbot ภาษาไทยด้วย DialogFlow + ThaiMCการสร้าง Chatbot ภาษาไทย Dr. Kobkrit Viriyayudhakorn (kobkrit@iapp.co.th)docs.google.com

**Source code for Dialogflow Fulfillment
**https://gist.github.com/kobkrit/cbc8818a6408ea2d56fa48c0ccad1e38

บรรยากาศงาน

หากใครสนใจอยากจะพัฒนาหรือต้องการที่ปรึกษาด้าน AI สามารถเข้าไปดูผลงานของบริษัทเรา iApp Technology ได้ที่ https://iapp.co.th และ https://ai.iapp.co.th หรือติดต่อได้ที่ kobkrit@iapp.co.th ได้เลยนะครับ #Ai #iApp

https://ai.iapp.co.th

ดูเพิ่มเติมได้ที่ https://iapp.co.th และ https://ai.iapp.co.th :D

[React Native 2] Modern JavaScript Programming language with ES6/ES2015

· One min read
Kobkrit Viriyayudhakorn
CEO, iApp Technology

The followings are slide presentation for ITS484: Mobile App Development, SIIT, Thammasat University, Thailand (1/2016)

  1. Walkthrough guides for setup ES6 develop environment in Mac by using Babel
  2. Walkthrough guides setup ESLint to check the JavaScript style guide.
  3. Teach Modern JavaScript programming language (ES6/ES2015)
  4. Teach how to write ES6/ES2015 with correct style guides (be the best practices from day one) based on Airbnb

Source code Git repository: https://github.com/kobkrit/react-native-class-2017

Quiz Submission Form: https://goo.gl/forms/TWoTk9nic5dY2r0F2

Quiz Submission Form Short: http://bit.ly/2kuKvlM