<?xml version="1.0" encoding="UTF-8"?>        <rss version="2.0"
             xmlns:atom="http://www.w3.org/2005/Atom"
             xmlns:dc="http://purl.org/dc/elements/1.1/"
             xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
             xmlns:admin="http://webns.net/mvcb/"
             xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
             xmlns:content="http://purl.org/rss/1.0/modules/content/">
        <channel>
            <title>
									คุยกันภาษา AI - ThAI Keras Forum				            </title>
            <link>https://thaikeras.com/community/main-forum/</link>
            <description>ThAI Keras Discussion Board</description>
            <language>en-US</language>
            <lastBuildDate>Sat, 07 Mar 2026 14:49:04 +0000</lastBuildDate>
            <generator>wpForo</generator>
            <ttl>60</ttl>
							                    <item>
                        <title>ThaiAGI Series เพื่อความเข้าใจ AI อย่างลึกซึ้ง</title>
                        <link>https://thaikeras.com/community/main-forum/thaiagi-series-%e0%b9%80%e0%b8%9e%e0%b8%b7%e0%b9%88%e0%b8%ad%e0%b8%84%e0%b8%a7%e0%b8%b2%e0%b8%a1%e0%b9%80%e0%b8%82%e0%b9%89%e0%b8%b2%e0%b9%83%e0%b8%88-ai-%e0%b8%ad%e0%b8%a2%e0%b9%88%e0%b8%b2%e0%b8%87/</link>
                        <pubDate>Mon, 28 Apr 2025 08:38:55 +0000</pubDate>
                        <description><![CDATA[ก่อนอื่นเราต้องรู้ก่อนว่าการศึกษา AI ให้เชี่ยวชาญมีหลายระดับ และเราต้องตั้งเป้าให้เหมาะสมกับเป้าหมายของเราเอง

5 วิถีแห่งความเชี่ยวชาญ AI Expertise ที่คุณต้องรู้
ThaiAGI - February 2025
...]]></description>
                        <content:encoded><![CDATA[<p>ก่อนอื่นเราต้องรู้ก่อนว่าการศึกษา AI ให้เชี่ยวชาญมีหลายระดับ และเราต้องตั้งเป้าให้เหมาะสมกับเป้าหมายของเราเอง</p>
<p>https://substackcdn.com/image/fetch/w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0bd6e20-284a-4364-86cf-078a8e87c024_1223x683.png</p>
<div class="xdj266r x11i5rnm xat24cr x1mh8g0r x1vvkbs x126k92a">
<div dir="auto"><span style="font-size: 18pt"><a href="https://thaiagi.substack.com/p/5-ai-expertise" target="_blank" rel="noopener">5 วิถีแห่งความเชี่ยวชาญ AI Expertise ที่คุณต้องรู้</a></span></div>
<div dir="auto"><span class="html-span xdj266r x11i5rnm xat24cr x1mh8g0r xexx8yu x4uap5 x18d9i69 xkhd6sd x1hl2dhg x16tdsg8 x1vvkbs"></span>ThaiAGI - February 2025</div>
</div>
<div class="x11i5rnm xat24cr x1mh8g0r x1vvkbs xtlvy1s x126k92a">
<div dir="auto"> </div>
</div>
<div class="x11i5rnm xat24cr x1mh8g0r x1vvkbs xtlvy1s x126k92a">
<div dir="auto">การพัฒนาเพื่อให้ตัวเองเป็นผู้เชี่ยวชาญในยุคใหม่ของ AGI นี้ เราควรตั้งเป้าเรียนรู้อะไร? โดยทั่วไปอาจมีคำแนะนำหลายแบบจากผู้รู้หลายท่าน เช่น</div>
</div>
<div class="x11i5rnm xat24cr x1mh8g0r x1vvkbs xtlvy1s x126k92a">
<div dir="auto">- ฝึกตั้งคำถาม <span class="html-span xexx8yu x4uap5 x18d9i69 xkhd6sd x1hl2dhg x16tdsg8 x1vvkbs x3nfvp2 x1j61x8r x1fcty0u xdj266r xat24cr xgzva0m xhhsvwb xxymvpz xlup9mm x1kky2od"><img class="xz74otr x168nmei x13lgxp2 x5pf9jr xo71vjh" src="https://static.xx.fbcdn.net/images/emoji.php/v9/taa/1/16/1f64b_200d_2640.png" alt="🙋‍♀️" width="16" height="16" /></span>พูดคุยกับโมเดล AI ให้ได้คำตอบดีที่สุด (Prompting)</div>
</div>
<div class="x11i5rnm xat24cr x1mh8g0r x1vvkbs xtlvy1s x126k92a">
<div dir="auto">- เขียนโปรแกรมครอบโมเดล AI <span class="html-span xexx8yu x4uap5 x18d9i69 xkhd6sd x1hl2dhg x16tdsg8 x1vvkbs x3nfvp2 x1j61x8r x1fcty0u xdj266r xat24cr xgzva0m xhhsvwb xxymvpz xlup9mm x1kky2od"><img class="xz74otr x168nmei x13lgxp2 x5pf9jr xo71vjh" src="https://static.xx.fbcdn.net/images/emoji.php/v9/tc9/1/16/1f9d1_200d_1f4bb.png" alt="🧑‍💻" width="16" height="16" /></span> ให้ทำงาน routine หรือ งานหลากหลายได้สะดวก (Agentic AI)</div>
</div>
<div class="x11i5rnm xat24cr x1mh8g0r x1vvkbs xtlvy1s x126k92a">
<div dir="auto">- ศึกษาโมเดล AI อย่างลึกซึ้ง <span class="html-span xexx8yu x4uap5 x18d9i69 xkhd6sd x1hl2dhg x16tdsg8 x1vvkbs x3nfvp2 x1j61x8r x1fcty0u xdj266r xat24cr xgzva0m xhhsvwb xxymvpz xlup9mm x1kky2od"><img class="xz74otr x168nmei x13lgxp2 x5pf9jr xo71vjh" src="https://static.xx.fbcdn.net/images/emoji.php/v9/tdd/1/16/1f9d0.png" alt="🧐" width="16" height="16" /></span> ทั้งในแง่สมการคณิตศาสตร์ และการเขียนโปรแกรมสร้างมันขึ้นมา</div>
</div>
<div class="x11i5rnm xat24cr x1mh8g0r x1vvkbs xtlvy1s x126k92a">
<div dir="auto">แท้จริงแล้ว ทุกแนวทางก็ถือเป็นวิถีที่จะทำให้เราเป็นผู้เชี่ยวชาญด้าน AI เพียงแต่ขึ้นอยู่กับว่างานหลักที่เราต้องใช้งาน AI อยู่ในรูปแบบไหน และเราเองปรารถนาที่จะไปลึกแค่ไหน</div>
</div>
<div class="x11i5rnm xat24cr x1mh8g0r x1vvkbs xtlvy1s x126k92a">
<div dir="auto">จึงเป็นที่มาของบทความนี้ ที่จะแบ่งการพัฒนาความรู้ด้าน AI เป็น 5 วิถี เพื่อให้เป็นผู้เชี่ยวชาญเรื่อง AI ในแบบที่เหมาะสมกับตัวคุณเอง</div>
</div>
<div class="x11i5rnm xat24cr x1mh8g0r x1vvkbs xtlvy1s x126k92a">
<div dir="auto">5 วิถีนี้จริงๆ แล้วเรียงจากง่ายไปยาก เราจึงสามารถมองได้อีกแบบเป็น “บันได 5 ขั้น” หรือ “5 Levels of AI Expertise” ก็ได้ครับ</div>
</div>
<div class="x11i5rnm xat24cr x1mh8g0r x1vvkbs xtlvy1s x126k92a">
<div dir="auto">Level <span class="html-span xexx8yu x4uap5 x18d9i69 xkhd6sd x1hl2dhg x16tdsg8 x1vvkbs x3nfvp2 x1j61x8r x1fcty0u xdj266r xat24cr xgzva0m xhhsvwb xxymvpz xlup9mm x1kky2od"><img class="xz74otr x168nmei x13lgxp2 x5pf9jr xo71vjh" src="https://static.xx.fbcdn.net/images/emoji.php/v9/t7a/1/16/31_20e3.png" alt="1️⃣" width="16" height="16" /></span></div>
<div dir="auto">ระดับผู้ใช้งาน (User Level) : สำหรับงานส่วนตัวและธุรกิจทั่วไป ต้องเชี่ยวชาญเรื่อง Prompting และติดตามเรียนรู้ tools และ technology ใหม่ๆ สม่ำเสมอ เพื่อให้ได้คำตอบจาก AI ที่สมบูรณ์ มีเหตุผล ตรงตามความต้องการมากที่สุด</div>
</div>
<div class="x11i5rnm xat24cr x1mh8g0r x1vvkbs xtlvy1s x126k92a">
<div dir="auto">Level <span class="html-span xexx8yu x4uap5 x18d9i69 xkhd6sd x1hl2dhg x16tdsg8 x1vvkbs x3nfvp2 x1j61x8r x1fcty0u xdj266r xat24cr xgzva0m xhhsvwb xxymvpz xlup9mm x1kky2od"><img class="xz74otr x168nmei x13lgxp2 x5pf9jr xo71vjh" src="https://static.xx.fbcdn.net/images/emoji.php/v9/t99/1/16/32_20e3.png" alt="2️⃣" width="16" height="16" /></span></div>
<div dir="auto">ระดับโปรแกรมเมอร์ (Programmer Level): สำหรับการนำ AI ไปต่อยอดสร้าง Applications หรือการใช้งาน AI กับปัญหาที่มีความซับซ้อนมากขึ้น โดยปัญหาเหล่านี้ต้องมีการปรึกษา AI ซ้ำหลายรอบ (iterations) หรือมีการตรวจหรือพัฒนาคำตอบ ต้องมุ่งเน้น Agentic Programming เพื่อให้การติดต่อ AI หลายรอบนี้ทำได้อย่างง่ายและประสิทธิภาพสูง</div>
</div>
<div class="x11i5rnm xat24cr x1mh8g0r x1vvkbs xtlvy1s x126k92a">
<div dir="auto">Level <span class="html-span xexx8yu x4uap5 x18d9i69 xkhd6sd x1hl2dhg x16tdsg8 x1vvkbs x3nfvp2 x1j61x8r x1fcty0u xdj266r xat24cr xgzva0m xhhsvwb xxymvpz xlup9mm x1kky2od"><img class="xz74otr x168nmei x13lgxp2 x5pf9jr xo71vjh" src="https://static.xx.fbcdn.net/images/emoji.php/v9/tb8/1/16/33_20e3.png" alt="3️⃣" width="16" height="16" /></span></div>
<div dir="auto">ระดับนักพัฒนา (Developer Level): สำหรับบริษัท นักวิจัย นักวิทยาศาสตร์ วิศวกรด้าน AI ที่จริงจังและต้องการปรับเปลี่ยนพฤติกรรมและความรู้ของ AI อย่างมีนัยสำคัญ การนำ AI ไปช่วยเหลือในงานผลิตภัณฑ์เฉพาะทาง เช่น ออกแบบโมเลกุลยา เป็นต้น ควรต้องศึกษา AI Fundamental อย่างลึกซึ้ง เนื่องจากต้องมีการออกแบบโปรแกรมการสอน และข้อมูลสอน AI ให้ถูกต้อง</div>
</div>
<div class="x11i5rnm xat24cr x1mh8g0r x1vvkbs xtlvy1s x126k92a">
<div dir="auto">(การแข่งขันเขียนโปรแกรมบน Kaggle ขั้นเริ่มต้นจนถึงเหรียญทองแดง จะอยู่ราวๆ ขั้นนี้)</div>
</div>
<div class="x11i5rnm xat24cr x1mh8g0r x1vvkbs xtlvy1s x126k92a">
<div dir="auto">Level <span class="html-span xexx8yu x4uap5 x18d9i69 xkhd6sd x1hl2dhg x16tdsg8 x1vvkbs x3nfvp2 x1j61x8r x1fcty0u xdj266r xat24cr xgzva0m xhhsvwb xxymvpz xlup9mm x1kky2od"><img class="xz74otr x168nmei x13lgxp2 x5pf9jr xo71vjh" src="https://static.xx.fbcdn.net/images/emoji.php/v9/td7/1/16/34_20e3.png" alt="4️⃣" width="16" height="16" /></span></div>
<div dir="auto">ระดับนักพัฒนาขั้นสูง (Advanced Level): สำหรับองค์กรขนาดใหญ่ ที่ไม่เพียงต้องการปรับความรู้และพฤติกรรมของ AI แต่ยังต้องการรีดเค้นให้ AI มีประสิทธิภาพสูงที่สุด (แม่นยำ เร็ว และประหยัดที่สุด) ต้องเรียนรู้ตลอดเวลาเพื่อประยุกต์ใช้เทคนิคขั้นสูง และดัดแปลงงานวิจัยใหม่ๆ ที่ได้รับการพิสูจน์และยอมรับในวงกว้าง โดยอาจต้องมีการแก้ ดัดแปลงโค้ด จาก OpenSource อย่างมีนัยสำคัญ</div>
</div>
<div class="x11i5rnm xat24cr x1mh8g0r x1vvkbs xtlvy1s x126k92a">
<div dir="auto">(การแข่งขันเขียนโปรแกรมบน Kaggle ชิงระดับเหรียญทองหรือเหรียญเงิน น่าจะอยู่ในขั้นนี้)</div>
</div>
<div class="x11i5rnm xat24cr x1mh8g0r x1vvkbs xtlvy1s x126k92a">
<div dir="auto">Level <span class="html-span xexx8yu x4uap5 x18d9i69 xkhd6sd x1hl2dhg x16tdsg8 x1vvkbs x3nfvp2 x1j61x8r x1fcty0u xdj266r xat24cr xgzva0m xhhsvwb xxymvpz xlup9mm x1kky2od"><img class="xz74otr x168nmei x13lgxp2 x5pf9jr xo71vjh" src="https://static.xx.fbcdn.net/images/emoji.php/v9/tf6/1/16/35_20e3.png" alt="5️⃣" width="16" height="16" /></span></div>
<div dir="auto">ระดับดาราในวงการ (Star Level) : หรืออาจเรียกว่า นักวิจัยระดับโลก สำหรับนักวิจัยที่อยู่ในวงการและมีส่วนร่วมในการขับเคลื่อนทิศทางด้วยการคิดค้นนวัตกรรม AI ในระดับสากล ต้องมีพื้นฐาน Level 3 และ 4 อย่างแข็งแรง รวมทั้งเข้าใจงานวิจัยในงานประชุมวิชาการด้าน AI ที่ดีที่สุด เช่น ICLR, NIPS หรือ ICML อย่างลึกซึ้งทั้งภาคทฤษฎี สมการคณิตศาสตร์ และการ Implementation</div>
</div>
<div class="x11i5rnm xat24cr x1mh8g0r x1vvkbs xtlvy1s x126k92a">
<div dir="auto">ยังมีอ่านรายละเอียดในแต่ละ Level (อีกมาก) ในบทความฉบับเต็ม ติดตามอ่านได้ในรูปแบบ magazine ที่นี่คร้าบ: <span class="html-span xdj266r x11i5rnm xat24cr x1mh8g0r xexx8yu x4uap5 x18d9i69 xkhd6sd x1hl2dhg x16tdsg8 x1vvkbs"><a class="x1i10hfl xjbqb8w x1ejq31n xd10rxx x1sy0etr x17r0tee x972fbf xcfux6l x1qhh985 xm0m39n x9f619 x1ypdohk xt0psk2 xe8uvvx xdj266r x11i5rnm xat24cr x1mh8g0r xexx8yu x4uap5 x18d9i69 xkhd6sd x16tdsg8 x1hl2dhg xggy1nq x1a2a7pz xkrqix3 x1sur9pj x1fey0fg x1s688f" role="link" href="https://l.facebook.com/l.php?u=https%3A%2F%2Fthaiagi.substack.com%2Fp%2F5-ai-expertise%3Ffbclid%3DIwZXh0bgNhZW0CMTAAYnJpZBExQVR1YjN2SzJxY0U5emVraQEew_PXVV-ldpm6ygaryXoqqleKRTIOOVYP4TliThA0ozL-z3Dx-dXe8UwrwVk_aem_7YL9CsuydCbMg1_ywAnxRw&amp;h=AT2mZz0cIViT36B4J2I3-mAbwmQq4eiPRJd4khCZipzcUH3B-G9lWLvBoVf47IP3NU111AwS3rJHl5DeYteI456uBV-M2LpKH1FRlKRmdB9RlGCVur83TiiOSJxSrmJV-HNvQo-wQ74edep5cw&amp;__tn__=-UK-y-R&amp;c=AT0dlbkQWrUM2KoHx3PW2wvWfalEddvm7UY3LNDcrMc6SEOpS8mi7HjtOLPX6u6VpmS05_L1EeiRZ2Nm4jWjl-DTDuaC2fLn8unOdvC6tgdSL8aQ79jtkIVoIp_NsYvQUKGS3Ep8FpOsa1Grot8vBzHINecfY8w7jwUWFNdIfOlVgFELg7pD7ozfeo1l4KgjX2CnoDegWfi9joeUeaVMGLPsNuWnxOSd95CFiotRaXEknAkwpIj1" target="_blank" rel="nofollow noopener noreferrer">https://thaiagi.substack.com/p/5-ai-expertise</a></span></div>
</div>]]></content:encoded>
						                            <category domain="https://thaikeras.com/community/main-forum/">คุยกันภาษา AI</category>                        <dc:creator>The Neural Engineer</dc:creator>
                        <guid isPermaLink="true">https://thaikeras.com/community/main-forum/thaiagi-series-%e0%b9%80%e0%b8%9e%e0%b8%b7%e0%b9%88%e0%b8%ad%e0%b8%84%e0%b8%a7%e0%b8%b2%e0%b8%a1%e0%b9%80%e0%b8%82%e0%b9%89%e0%b8%b2%e0%b9%83%e0%b8%88-ai-%e0%b8%ad%e0%b8%a2%e0%b9%88%e0%b8%b2%e0%b8%87/</guid>
                    </item>
				                    <item>
                        <title>AI and Business</title>
                        <link>https://thaikeras.com/community/main-forum/ai-and-business/</link>
                        <pubDate>Tue, 31 Jan 2023 10:09:01 +0000</pubDate>
                        <description><![CDATA[จัดระเบียบ ประมวลผลเอกสารทั้งหลายด้วย Document AI(บทความนี้ถอดมาจากต้นฉบับ)เอกสารกองพะเนินที่ต้องมีคนนั่งอ่าน จัดระเบียบ ยังมีอยู่ในบริษัทส่วนใหญ่ ถึงแม้เราจะเข้าสู่โลกยุค Digital แล้วก็ตามถ...]]></description>
                        <content:encoded><![CDATA[<p><span style="text-decoration: underline;font-size: 18pt"><strong>จัดระเบียบ ประมวลผลเอกสารทั้งหลายด้วย Document AI</strong></span><br /><span>(บทความนี้ถอดมาจากต้นฉบับ </span><a class="x1fey0fg xmper1u x1edh9d7" href="https://huggingface.co/blog/document-ai"><span>https://huggingface.co/blog/document-ai</span></a><span> )</span><br /><br /><span>เอกสารกองพะเนินที่ต้องมีคนนั่งอ่าน จัดระเบียบ ยังมีอยู่ในบริษัทส่วนใหญ่ ถึงแม้เราจะเข้าสู่โลกยุค Digital แล้วก็ตาม</span><br /><br /><span>ถ้ามีใครสักคนมานั่งพิมพ์เอกสารเหล่านี้ลงคอมพิวเตอร์ แล้วจัดระเบียบให้เรียบร้อย สามารถ "search" หาเอกสารต่างๆ ได้เหมือนกับเรา search google คงจะดีมิใช่น้อย</span><br /><br /><span>นั่นจึงเป็นที่มาของ Document AI ที่พยายามจะมาช่วยจัดการงานถึกๆ บางส่วนนี้ให้กับคุณ</span><br /><br /><span>ปัจจุบัน Document AI อาจจำแนกได้เป็น 6 ประเภทได้แก่</span><br /><span> 1) OCR</span><br /><span> 2) Document Image Classification</span><br /><span> 3) Layout Analysis</span><br /><span> 4) Document Parsing</span><br /><span> 5) Table detection, extraction &amp; recognition</span><br /><span> 6) Document Q&amp;A</span><br /><br /><span>----</span></p>
<p><br /><span> 1) OCR (Optical Character Recognition) หรือการอ่านตัวหนังสือ (ลายมือหรือตัวพิมพ์) จากรูปภาพ นั้นเป็นงานที่พัฒนากันมาหลายสิบปีและมีโมเดลดีๆ ให้ใช้มากมาย ยกตัวอย่างเช่น EasyOCR  หรือ TransformerOCR  โมเดล OCR บางครั้งต้องนำมาใช้ก่อนจะนำไปเข้า Document AI ประเภทอื่นๆ </span><br /><br /><span>---</span><br /><br /><span> 2) Document Classification หรือ การจำแนกประเภทเอกสารต่างๆ เช่น เอกสารเป็นบันทึก เป็นจดหมายราชการ หรือเป็น email เป็นต้น </span><br /><span> </span><br /><span>วิธีการที่ง่ายที่สุดในการทำ Doc Classification คือนำเอกสารต่างๆ เข้า OCR ก่อนที่จะฝึกและจำแนกด้วย Text Model เช่น BERT เป็นต้น</span><br /><span> </span><br /><span> อย่างไรก็ดี "รูปแบบการจัดเรียง" หรือ layout ของเอกสารเหล่านี้ มักมีเอกลักษณ์เฉพาะตัว (ดูรูปที่ 1 และหัวข้อถัดไป) ดังนั้นถ้าเรานำการจัดเรียง หรือ layout มาพิจารณาด้วย (นอกจากข้อความจาก OCR) จะทำให้การ classification ง่ายขึ้นอย่างมาก จึงเป็นที่มาของโมเดลเช่น LayoutLM, LayoutLMv2 และ LayoutLMv3  เป็นต้น</span><br /><span> </span></p>
<p><img src="https://i.imgur.com/Zs11GfM.png" /></p>
<p><br /><span> ใน dataset มาตรฐาน OCR+BERT นั้นทำทำความแม่นยำ 89% ในขณะที่ LayoutLM3 นั้นแม่นยำถึง 95% จากการใช้ Layout</span><br /><br /><span>----</span><br /><br /><span> 3) Layout Analysis : การวิเคราะห์ layout คือการจำแนกแต่ละบล็อกของเอกสาร (ดูรูปที่ 2) เช่น บล็อกตาราง บล็อกรูปภาพ หรือบล็อกข้อความ รวมทั้งตำแหน่งของแต่ละบล็อก เป็นต้น</span></p>
<p><img src="https://i.imgur.com/hXUCh5u.png" /></p>
<p><br /><span> งาน layout analysis นี้สามารถมองเป็นงาน image object detection ได้ดังแสดงในรูปที่ 2 ซึ่งจะทำให้ได้คลาสและตำแหน่งของบล็อกที่ต้องการ</span><br /><span> </span><br /><span> สามารถใช้งาน LayoutLMv3 จัดการงานนี้ได้ครับ</span><br /><br /><span>---</span><br /><br /><span> 4) Document Parsing : คือขั้นต่อจาก Layout Analysis นั่นคือนอกจากจะ detect แต่ละบล็อกได้อย่างถูกต้องแล้ว ยังสามารถดึงข้อมูลในบล็อกแต่ละประเภทได้อย่างเหมาะสมอีกด้วย ลองใช้โมเดล Donut  หรือ ErnieLayout  ได้ครับ</span><br /><br /><span>---</span><br /><br /><span> 5) Table Detection, Extraction and Recognition : งานดึงข้อมูลจาก Table อาจต้องใช้โมเดลอื่นที่มีความแม่นยำมากกว่าโมเดล Document Parsing ทั่วไป โมเดล Table Transformers  ถูกออกแบบมาเพื่องานนี้โดยเฉพาะครับ </span><br /><br /><span>---</span><br /><br /><span> 6) Document Q&amp;A : ขั้นถัดไปของ Document AI คือไม่ใช่แค่บันทึกข้อมูลในเอกสารลงคอมพิวเตอร์อย่างถูกต้องเท่านั้น แต่เรายังสามารถถามคำถามต่างๆ เกี่ยวกับเอกสารเหล่านั้นได้ โดยเป็นคำถามภาษามนุษย์ ไม่ใช่ภาษาคอมพิวเตอร์เช่น SQL ดูตัวอย่างในรูปที่ 3 ครับ</span></p>
<p><img src="https://i.imgur.com/GcqTHEv.png" /></p>
<p><br /><span>โมเดลเช่น Donut  สามารถจัดการงานเหล่านี้ได้และลองเล่นได้ที่นี่ครับ </span><a class="x1fey0fg xmper1u x1edh9d7" href="https://huggingface.co/spaces/impira/docquery"><span>https://huggingface.co/spaces/impira/docquery</span></a><br /><span> </span><br /><span>---</span><br /><span> </span><br /><span>เพิ่มเติม 1. โมเดลเช่น LayoutLM เวอร์ชั่นต่างๆ ไม่อนุญาตให้นำไปใช้งานได้แบบ commercial ก่อนจะใช้งานโมเดลเหล่านี้ในทาง commercial ให้ตรวจสอบ licence ดีๆ</span><br /><br /><span>เพิ่มเติม 2. ในการสร้าง Database ของ Document เหล่านี้เพื่อ query ในการใช้งานในอนาคต เราสามารถใช้โมเดลใดก็ได้ข้างบน ประมวลผล Document ให้เปลี่ยนเป็นรูป Vector และสามารถสร้าง Vector Fast Query System เช่น FAISS  ในการค้นข้อมูลได้ครับ</span><br /><br /><span>.</span><br /><br /><span>เพิ่มเติม 3 : ดูตัวอย่าง notebook การใช้งานโมเดลต่างๆ ได้ที่นี่ครับ</span><br /><br /><a class="x1fey0fg xmper1u x1edh9d7" href="https://github.com/NielsRogge/Transformers-Tutorials"><span>https://github.com/NielsRogge/Transformers-Tutorials</span></a><br /><br /><br /><span style="text-decoration: underline"><strong>อ้างอิง</strong></span></p>
<p><br /><span> EasyOCR : </span><a class="x1fey0fg xmper1u x1edh9d7" href="https://huggingface.co/spaces/tomofi/EasyOCR"><span>https://huggingface.co/spaces/tomofi/EasyOCR</span></a></p>
<p><br /><span> Transformer OCR : </span><a class="x1fey0fg xmper1u x1edh9d7" href="https://huggingface.co/docs/transformers/model_doc/trocr"><span>https://huggingface.co/docs/transformers/model_doc/trocr</span></a></p>
<p><br /><span> LayoutLMv3 : </span><a class="x1fey0fg xmper1u x1edh9d7" href="https://huggingface.co/docs/transformers/main/en/model_doc/layoutlmv3"><span>https://huggingface.co/docs/transformers/main/en/model_doc/layoutlmv3</span></a></p>
<p><br /><span> Donut : </span><a class="x1fey0fg xmper1u x1edh9d7" href="https://huggingface.co/docs/transformers/model_doc/donut"><span>https://huggingface.co/docs/transformers/model_doc/donut</span></a></p>
<p><br /><span> ErnieLayout : </span><a class="x1fey0fg xmper1u x1edh9d7" href="https://huggingface.co/spaces/PaddlePaddle/ERNIE-Layout"><span>https://huggingface.co/spaces/PaddlePaddle/ERNIE-Layout</span></a></p>
<p><br /><span> Table Transformers : </span><a class="x1fey0fg xmper1u x1edh9d7" href="https://huggingface.co/docs/transformers/main/en/model_doc/table-transformer"><span>https://huggingface.co/docs/transformers/main/en/model_doc/table-transformer</span></a></p>
<p><br /><span> FAISS : </span><a class="x1fey0fg xmper1u x1edh9d7" href="https://github.com/facebookresearch/faiss"><span>https://github.com/facebookresearch/faiss</span></a></p>]]></content:encoded>
						                            <category domain="https://thaikeras.com/community/main-forum/">คุยกันภาษา AI</category>                        <dc:creator>The Neural Engineer</dc:creator>
                        <guid isPermaLink="true">https://thaikeras.com/community/main-forum/ai-and-business/</guid>
                    </item>
				                    <item>
                        <title>All about Segmentation</title>
                        <link>https://thaikeras.com/community/main-forum/all-about-segmentation/</link>
                        <pubDate>Thu, 26 Jan 2023 06:32:26 +0000</pubDate>
                        <description><![CDATA[หลากหลายบริษัทต้องการทำ AI หรือ Machine Learning ไปประยุกต์ใช้ใน business cases ของตน ทว่าประเด็นนึงที่ต้องตระหนักก็คือโมเดล AI หรือ Machine Learning ส่วนใหญ่นั้นต้องการ &quot;กระบวนการทำ labels&quot;...]]></description>
                        <content:encoded><![CDATA[<div class="x11i5rnm xat24cr x1mh8g0r x1vvkbs xdj266r x126k92a"><div dir="auto">หลากหลายบริษัทต้องการทำ AI หรือ Machine Learning ไปประยุกต์ใช้ใน business cases ของตน ทว่าประเด็นนึงที่ต้องตระหนักก็คือโมเดล AI หรือ Machine Learning ส่วนใหญ่นั้นต้องการ "กระบวนการทำ labels" ที่ต้องใช้คนมาระบุประเภทหรือชนิดของข้อมูลใน business cases นั้นๆ ซึ่งกระบวนการทำ labels นี้กินเวลาและค่าใช้จ่ายมาก</div></div><div class="x11i5rnm xat24cr x1mh8g0r x1vvkbs xtlvy1s x126k92a"><div dir="auto">โชคยังดีที่ทิศทางใหม่ของการพัฒนาโมเดล AI ให้ความสำคัญกับ "few-shots" (เรียนรู้จากการสอนไม่กี่ครั้ง) รวมทั้ง "zero-shot" (เรียนรู้โดยไม่ต้องสอน -- ใช้เทคนิคดึงข้อมูลต่างๆ ที่มนุษย์บันทึกไว้ในอินเตอร์เน็ตมาใช้แทนการสอน)</div></div><div dir="auto"> </div><div class="x11i5rnm xat24cr x1mh8g0r x1vvkbs xtlvy1s x126k92a"><div dir="auto">ตัวอย่างสำคัญของโมเดลประเภท zero-shot คือ CLIP จาก OpenAI ในปี 2021 ที่สามารถจำแนกรูปภาพต่างๆ ได้อย่างมหัศจรรย์ รวมทั้งยังมีจุดเด่นมากกว่าโมเดลมาตรฐานทั่วไป เพราะเข้าใจรูปถ่ายมุมแปลกๆ หรือกระทั่งรูปอื่นๆ ที่ไม่ใช่รูปถ่ายได้อย่างดีอีกด้วย (โมเดลมาตรฐานมักถูกสอนจากรูปถ่ายมุมปกติเป็นหลัก ทำให้จำแนกรูปมุมมองแปลก หรือรูปประเภทอื่นๆ เช่นรูปวาดแทบไม่ได้เลย)</div></div><div dir="auto"> </div><div dir="auto"><img src="https://i.imgur.com/UH8MO50.jpg" /></div><div dir="auto"> </div><div class="x11i5rnm xat24cr x1mh8g0r x1vvkbs xtlvy1s x126k92a"><div dir="auto">ล่าสุด NVIDIA ที่่ได้แรงบันดาลใจจาก CLIP ได้เผยแพร่โมเดล zero-shot semantic segmentation (ดูรูปแนบ) ชื่อว่า "GroupViT" ที่สามารถจำแนกประเภทของวัตถุใน "ระดับ pixels" ซึ่งน่าจะเป็นประโยชน์กับ business cases หลากหลาย และยังแสดงให้เห็นว่า language models มาช่วยขยายความสามารถ vision models ได้อย่างยอดเยี่ยม</div><div dir="auto"> </div></div><div dir="auto">github: <a class="x1fey0fg xmper1u x1edh9d7" href="https://github.com/xvjiarui/GroupViT">https://github.com/xvjiarui/GroupViT</a><br /><br />demo: <a class="x1fey0fg xmper1u x1edh9d7" href="https://huggingface.co/spaces/xvjiarui/GroupViT">https://huggingface.co/spaces/xvjiarui/GroupViT</a><br /><br />colab notebook: <a class="x1fey0fg xmper1u x1edh9d7" href="https://colab.research.google.com/github/xvjiarui/GroupViT/blob/master/demo/GroupViT_hf_inference_notebook.ipynb">https://colab.research.google.com/github/xvjiarui/GroupViT/blob/master/demo/GroupViT_hf_inference_notebook.ipynb</a></div><div dir="auto"> </div><div dir="auto"> </div>]]></content:encoded>
						                            <category domain="https://thaikeras.com/community/main-forum/">คุยกันภาษา AI</category>                        <dc:creator>The Neural Engineer</dc:creator>
                        <guid isPermaLink="true">https://thaikeras.com/community/main-forum/all-about-segmentation/</guid>
                    </item>
				                    <item>
                        <title>Graph Neural Networks (GNNs) สำหรับผู้เริ่มต้น อย่างละเอียด</title>
                        <link>https://thaikeras.com/community/main-forum/graph-neural-networks-gnns/</link>
                        <pubDate>Thu, 13 Jan 2022 05:30:42 +0000</pubDate>
                        <description><![CDATA[Graph Neural Networks สำหรับผู้เริ่มต้น (tutorial อธิบายแนวคิดเบื้องต้นอย่างละเอียด)ThaiKeras and Kaggle - 9 Jan 2022 สวัสดีครับ ถ้าถามถึงโมเดล Deep Learning ที่คนส่วนใหญ่ใช้งานมากที่สุด รวม...]]></description>
                        <content:encoded><![CDATA[<p><span style="text-decoration: underline;font-size: 24pt"><strong>Graph Neural Networks สำหรับผู้เริ่มต้น (tutorial อธิบายแนวคิดเบื้องต้นอย่างละเอียด)</strong></span></p><p><em>ThaiKeras and Kaggle - 9 Jan 2022</em></p><p> </p><p>สวัสดีครับ ถ้าถามถึงโมเดล Deep Learning ที่คนส่วนใหญ่ใช้งานมากที่สุด รวมทั้งให้ประสิทธิภาพความแม่นยำสูงสุด เชื่อว่า Convolution Neural Networks (CNNs) และ Transformers น่าจะเป็น 2 โมเดลที่พวกเรานึกถึงเป็นอันดับแรก เนื่องจากสองโมเดลนี้ใช้งานได้กับประเภท Data ที่พบกันได้มากที่สุด เช่น รูปภาพ วิดิโอ ข้อความ และเสียง (Image, Video, Text และ Speech) เป็นต้น</p><p>อย่างไรก็ดียังมีข้อมูลอีกหลายประเภทที่มีโครงสร้างเฉพาะ ทำให้ CNNs หรือ Transformers ไม่สามารถใช้ประโยชน์จากโครงสร้างเฉพาะนั้นได้ในประโยชน์สูงสุด เช่น</p><ul><li>ข้อมูล Social Media เช่น Pinterest ที่มี data อยู่สองประเภทคือ "Pin" (รูปภาพ) และ "Board" (คอลเลคชั่นของรูปภาพ) โดยแต่ละ Pin อยู่ได้หลายบอร์ด และแต่ละบอร์ดมีได้หลาย Pins ตามรูปที่ 1 และเราต้องการให้โมเดลทำนายความสัมพันธ์ระหว่าง Pin และ Board <p><img src="https://i.ibb.co/gZC11QC/1-pinterest.png" /></p></li></ul><p>สังเกตว่าปัญหานี้ input จะประกอบไปด้วยรูป pin หลายๆ รูปเชื่อมโยงกัน ซึ่งต่างจากกรณีใช้งานของ CNNs ปกติ ที่มักใช้ทำนายคุณสมบัติของรูปภาพ หรือ Pin ทีละรูป</p><ul><li>ข้อมูลทางเคมี เช่น ปัญหาการคิดค้น "ยา" ประเภทใหม่ (Drug Discovery) โดยตัวยานั้นแท้จริงแล้วคือ "โมเลกุล" ของอะตอมต่างๆ ทางเคมีที่มาอยู่รวมกันด้วยพันธะทางเคมีต่างๆ ซึ่ง Transformers หรือ CNNs ไม่สามารถนำโครงสร้างของ "พันธะ" เหล่านั้นมาคำนวนในโมเดลได้โดยตรง ดูรูปที่ 2<p><img src="https://i.ibb.co/CzQVy33/2-molecule.png" /></p></li><li>ข้อมูลทางชีววิทยา เช่น สายสตริง RNA ซึ่งประกอบไปด้วยตัวอักษร A G U C ซึ่งในการโมเดลและทำนายคุณสมบัติของ RNA นั้นเราอาจจะมองว่า RNA เป็น string ธรรมดาเรียงต่อกัน และใช้โมเดลเช่น Recurrent Neural Networks (RNNs) หรือ Transformers ก็ได้ ทว่าแท้จริงแล้วสายสตริง RNA นั้นมี "รูปร่าง" การขดตัวเฉพาะตัวอยู่ ดังแสดงในรูปที่ 3 และข้อมูลที่จุดที่แต่ละตัวอักษรสัมผัสกันนั้น ไม่สามารถป้อนให้ RNNs หรือ Transformers ตรงๆ ได้</li></ul><p><img src="https://i.ibb.co/RQjRLrj/3-rna.png" /></p><p> </p><p>ตัวอย่างทั้ง 3 และข้อมูลที่เจอใน applications อื่นอีกมากมายนั้นสามารถ represent ได้ด้วย "กราฟ" ทางคณิตศาสตร์ ซึ่งประกอบไปด้วยเซ็ตของ Nodes และเซ็ตของ Edges โดย edge ก็คือเส้นเชื่อมระหว่าง 2 nodes ใดๆ ในกราฟ ซึ่งจะเห็นได้ว่าไม่ว่าจะเป็น พันธะเคมี การเชื่อมระหว่าง Pin/Board หรือตัวอักษรที่ติดกันในสาย RNA สามารถโมเดลด้วย edge ในกราฟได้</p><p>นั่นคือในปัญหาดังกล่าว เราสามารถระบุ input ให้อยู่ในรูปกราฟได้นั่นเอง ดังนั้นจึงเป็นจุดกำเนิดโมเดล deep learning ประเภทใหม่ที่สามารถรับกราฟเป็น input เพื่อทำนายในสิ่งที่เราสนใจได้ ซึ่งโมเดลที่ว่านั้นก็คือ Graph Neural Networks (GNNs) นั่นเอง</p><p>(ทบทวนทฤษฎีกราฟที่นี่ <a href="https://en.wikipedia.org/wiki/Graph_theory">https://en.wikipedia.org/wiki/Graph_theory</a> )</p><p> </p><p>.</p><p> </p><p><span style="text-decoration: underline"><strong>Graph Neural Networks (GNNs)</strong></span></p><p>GNN ก็คือโมเดล neural network ที่รับกราฟเป็น input และ output เป็นคำทำนาย ซึ่งโดยปกติทำนายได้ 3 รูปแบบ คือ Graph prediction, node prediction และ edge prediction เช่น</p><ul><li>Graph prediction ใน Drug Discovery : ทำนายว่า "กราฟ" ของโมเลกุลนั้นสามารถทำหน้าที่เป็น "ยา" (ฆ่าเชื้อ หรือยับยั้งเชื้อ ฯลฯ) ได้ดีหรือไม่ ดังแสดงในรูปที่ 4</li><li>Node prediction ใน RNA string : ทำนายว่าแต่ละโหนดในกราฟของ RNA นั้น "ทนทาน" ต่อความร้อนในมากแค่ไหน (ทำนายทุกโหนดในกราฟ)</li><li>Edge prediction ใน Pinterest : ทำนายว่า Pin ใหม่ที่ user เพิ่ง upload เข้ามาควรจะถูก recommend ใน board ใดหรือไม่ (มี edge เชื่อมระหว่างโหนด pin และโหนด board หรือไม่)</li></ul><p>https://i.ibb.co/kmW6cyh/4-drug-prediction.png</p><p>.</p><p> </p><p><span style="text-decoration: underline"><strong>ว่าด้วยเรื่องการระบุ input ให้อยู่ในรูปกราฟ</strong></span></p><p>ใน CNNs หรือ Transformers , inputs นั้นจะอยู่ในรูปของ vectors หรือ matrix หรือ tensor ขึ้นกับจำนวนมิติของ input เช่น image 1 รูปอาจเป็น 3D tensor ขนาด 512x512x3 ส่วน texts อาจเป็น sequence of vectors (หรือ matrix = 2D tensor) อาทิ เช่น 2,048 x 500,000 โดย 2048 คือจำนวน "คำ" สูงสุดในข้อความและ 500,000 คือ 1-hot vector ที่ระบุ vocabulary หรือคำศัพท์ทั้งหมดที่โมเดลรู้จัก เป็นต้น</p><p> </p><p>เมื่อ input เราเป็นกราฟนั้น ตามนิยาม inputs ก็มักจะประกอบไปด้วย input สองส่วน นั่นคือ node-input และ edge-input นั่นเอง ดั่งแสดงในรูปที่ 5</p><p>นั่นคือเรา represent Graph G = (X, A) โดย X แทน vectors ทั้งหมดของทุกโหนดในกราฟ ,  ส่วน A ระบุ edges ในกราฟ</p><p> </p><p>ในรูปที่ 5 แสดงกรณีเรามี input 3 กราฟ ซึ่งแทนด้วย G_1สีส้ม G_2เขียว G_3น้ำเงินตามลำดับ</p><p>https://i.ibb.co/7RmLcBM/5-graph-representation.png</p><p>สังเกตกราฟ G_1 สีส้ม</p><ul><li>X_1 ก็คือ matrix ที่แต่ละแถวประกอบไปด้วย vector ของแต่ละโหนด</li><li>A_1 คือ Adjacency-matrix หรือ Edges-matrix ที่ระบุว่าโหนดใดเชื่อมต่ออยู่กับโหนดใด เช่น ในตัวอย่างนี้มีโหนดทั้งหมด 5 โหนดแทนด้วย x0, x1, x2, x3, x4 สังเกตจากสีได้ว่า A_1 ระบุว่า node x_0 เชื่อมกับ x_1 และ x_3 เป็นต้น โดย A_i อาจเป็น 0/1 หรืออาจเป็น real number ซึ่งแสดง weight ของ edge ก็ได้</li></ul><p> </p><p>.</p><p> </p><p>ในการเขียนโค้ดเช่น keras  เนื่องจากกราฟนั้นแทนด้ย 2 input tensors, แทนที่เราจะเรียก model.fit(X,y) ตามปกติเหมือนโมเดลอื่นๆ</p><p>เราก็จะต้องเตรียม 2 inputs X,A และเรียกใช้งานแบบนี้ครับ</p><p>model.fit(, y)</p><p>(โค้ด keras ในบทความหน้า)</p><p>.</p><p> </p><p>ในปัญหา drug discovery นั้น 1 กราฟแทนด้วย 1 โมเลกุลของยาที่เราต้องการทดสอบ ทำนองเดียวกันกับปัญหา RNA ที่ 1 กราฟแทนด้วย 1 RNA string</p><p>ในปัญหา Pinterest's edge prediction ที่อธิบายข้างต้นนั้น การออกแบบกราฟอาจจะไม่ชัดเจนเท่า 2 ปัญหาข้างต้น โดยในทางปฏิบัติเราอาจจัดหมวดหมู่ category ของรูปภาพตาม popular tags โดยอาจจะเจาะจง 10,000 tags ที่ได้รับความนิยมสูงที่สุด  และแทนให้แต่ละ tag คือ 1 กราฟ</p><p>โดยแต่ละ กราฟ นั้นก็จะมี pin และ board ทั้งหมดที่ถูก tag นั้นๆ อยู่ในกราฟ ซึ่งในกรณี pinterest นั้นแต่ละกราฟจะมีขนาดใหญ่มหึมา เนื่องจากแต่ละกราฟอาจประกอบไปด้วยรูป pin ถึงหลักแสน หลักล้าน หรือมากกว่า</p><p> </p><p>.</p><p> </p><p><span style="text-decoration: underline"><strong>เรา represent node-input ในรูป vector ได้อย่างไร?</strong></span></p><p>ในกรณีของโมเลกุลและ RNA นั้นเราสามารถใช้ one-hot vector เพื่อระบุว่าแต่ละโหนดเป็น โมเลกุล/RNA-base ประเภทใด และเรียนรู้ embedding vector ของ 1-hot vector นั้นๆ อีกที (ใช้ tf.keras.layers.Embedding )</p><p> </p><p>ส่วนตัวอย่าง Pinterest ซึ่งแต่ละกราฟประกอบไปด้วยโหนดซึ่งแทนด้วยรูปภาพ pin หลักล้านรูป และโมเดล GNN ต้องรับ input นี้เข้าไปเพื่อทำนายนั้น</p><p>อาจทำให้สงสัยว่าจะเป็นไปได้ในทางปฏิบัติหรือ เพราะในกรณี CNNs ปกตินั้นแค่รับ input ด้วยภาพขนาด 1 batch นั้นในแต่ละ batch ก็มักจะมีขนาดหลักร้อยหรือหลักพันเท่านั้น สำหรับ GPU ที่มีหน่วยความจำมาตรฐานขนาด 16GB-32GB</p><p> </p><p>ในกรณีของ Pinterest และ GNN นั้นแต่ละรูปไม่จำเป็นต้อง input ด้วย raw image (เช่น ขนาด 512x512x3) แต่อาจจะเป็น processed vector หรือ image vector ที่ผ่านโมเดล Neural Networks อื่นมาก่อนแล้ว เช่นเป็น Pooling output ของ EfficientNet-B0 ซึ่งเป็น vector ขนาด 1280x1 เป็นต้น</p><p> </p><p>(ยิ่งไปกว่านั้น ในกรณีนี้ Pinterest ยังออกแบบ Graph sampling หรือการสุ่ม sub-graph เพียงบางส่วนขึ้นมาทำนายเพื่อประหยัดขนาดของข้อมูลได้อีก ดูรายละเอียดได้ที่ Pinterest blog : <a href="https://medium.com/pinterest-engineering/pinsage-a-new-graph-convolutional-neural-network-for-web-scale-recommender-systems-88795a107f48">https://medium.com/pinterest-engineering/pinsage-a-new-graph-convolutional-neural-network-for-web-scale-recommender-systems-88795a107f48</a> )</p><p>.</p><p> </p><p><span style="text-decoration: underline"><strong>Message passing ใน GNN</strong></span></p><p>หัวใจของโมเดล Deep Learning เช่น CNNs หรือ Transformers ก็คือการเปลี่ยน input ที่อยู่ในรูปแบบดั้งเดิม (raw) เปลี่ยนให้เป็นเวกเตอร์ทางคณิตศาสตร์ (เรียก embedding vector) เช่น EfficientNet เปลี่ยนรูปภาพ 512x512x3 ให้เป็น 1280x1  หรือ BERT Transformers เปลี่ยน 1-hot vector ของ "คำศัพท์" แต่ละคำเป็น 768x1 เป็นต้น</p><p> </p><p>โดยการเปลี่ยนข้อมูล input จาก raw ให้เป็นเวกเตอร์นั้นถ้าพูดกันในภาพรวมจะผ่าน 2 กระบวนการดังนี้ (ดูรูปที่ 6)</p><p>https://i.ibb.co/0mX3jw5/6-deep-layers.png</p><p> นำ input เข้า non-linear transformation เมื่อได้ output แล้วก็นำ output นั้นไปเข้า non-linear transformation บล็อกถัดไป ทำอย่างนี้ต่อเนื่องหลายๆ ครั้ง (หลายๆ บล็อคสี่เหลี่ยมในรูปที่ 6) ซึ่งใน Deep Learning นั้น แต่ละ transformation block ก็คือ Neural Network layer นั่นเอง และการทำ transformation ต่อเนื่องหลายรอบนี้เอง ที่เป็นที่มาของคำว่า "Deep" (ลึก) เพราะ Neural network ที่เอา layers มาต่อกันนับสิบหรือร้อย layer เปรียบเปรยได้กับสมการที่มีความยาว หรือ "ความลึก" มากนั่นเอง</p><p> </p><p> ตรงนี้สำคัญมาก -- ในแต่ละ transformation layer นั้น แต่ละโมเดลจะออก "กระบวนการ process input-ย่อย" ที่แตกต่างกัน -- หมายเหตุ input-ย่อย ของรูปภาพคือจุด pixel, หรือ input-ย่อยของข้อความก็คือ "แต่ละคำในข้อความ" เป็นต้น ส่วน input-ย่อยของกราฟ ก็คือโหนดนั่นเอง -- โดยทุกโมเดลที่เรารู้จักกันดีจะมีแนวคิดในการ process input-ย่อยด้วยแนวคิดที่เรียกว่า "Message Passing" หรือ "การกระจาย information จาก input-ย่อยหนึ่ง ไปยังอีก input-ย่อยหนึ่ง" ที่ต่างกันออกไป ดูรูปที่ 7 และรูปที่ 8 เช่น</p><ol><li style="list-style-type: none"><ol><li>ใน CNN นั้น message passing ระหว่าง pixel นึงไปยังอีก pixel จะผ่านกระบวนการที่เรียกว่า convolution นั่นคือ, pixel นึงจะรับ information ( information ที่ส่งผ่านกันนิยมเรียกว่า "message") จาก pixel รอบข้าง</li><li>ใน RNN นั้น message passing จะทำจากคำที่อยู่ติดกัน ส่งไปยังคำถัดไปเรื่อยๆ (ถ้าเป็น bi-directional ก็คือส่ง message ทั้งจากคำด้านหน้า และคำด้านหลัง)</li><li>ใน Transformer นั้น message passing จะเป็นแบบ "fully connected" นั่นคือ ทุกๆ "input-ย่อย" (เช่น คำแต่ละคำในข้อความ) ก็จะกระจาย information หรือ message ไปให้ทุกๆ input-ย่อย นั่นคือคำอื่นๆ ทั้งหมด</li></ol></li></ol><p> </p><p>การออกแบบ message-passing นี้ส่งผลอย่างมีนัยสำคัญกับประสิทธิภาพของแต่ละโมเดล โดยจะดีหรือไม่ขึ้นอยู่กับประเภทของข้อมูล input เช่น message passing ของ Transformer นั้นเหมาะสมกับข้อมูลข้อความ มากกว่า message-passing ของ RNN มาก เพราะ information นั้นสามารถกระจายถึงกันได้อย่างเหมาะสม (ตัวอย่างเช่นคำว่า "it" ในข้อความเช่น "Dog is a very good friend of mine. I love it." โยงกับคำว่า "Dog" ซึ่งมีตำแหน่งอยู่ 10 คำก่อนหน้า "it"</p><p>โดย RNN นั้น message จาก 10 คำก่อนหน้าจะไม่ส่งมาถึงคำปัจจุบันโดยตรงได้เหมือน transformer) นั่นทำให้ปัจจุบันโมเดล transformer นั้นมาทดแทน RNN ไปแทบจะสิ้นเชิง</p><p> </p><p>ทว่าใน input ที่เป็นรูปภาพนั้น การกระจายข้อมูล local message passing ของ CNN ที่เน้นกระจายข้อมูลจาก pixel ใกล้ๆ กัน ก็ยังมีประสิทธิภาพดีกว่าของ Transformer ที่กระจายข้อมูลจากทุกจุดในภาพไปยังจุดอื่นๆ อีกทั้งหมดในภาพ เป็นต้น</p><p> </p><p> </p><p>https://i.ibb.co/T4HHqN8/7-cnn-gcn-convolution.png</p><p><em>รูปที่ 7</em></p><p><em>ซ้าย - message passing ใน convolution ของ CNN จะทำผ่าน pixel รอบข้าง</em></p><p><em>ขวา - message passing ของ GNN จะกระทำผ่านโหนดรอบข้าง ซึ่งพยายามทำให้ใกล้เคียงกับแนวคิดของ convolution นั่นเอง</em></p><p> </p><p><img src="https://i.ibb.co/ChhPSpB/8-rnn-trans-message-passing.jpg" /></p><p><em>รูปที่ 8 บน message passing ของ RNN จะทำจากคำที่อยู่ติดกัน</em></p><p><em>ล่าง message passing ของ transformer จะส่งจากทุกๆ คำไปยังทุกๆ คำ (ซึ่งพบว่าเหมาะสมกับ input ที่เป็นข้อความมากกว่า RNN)</em></p><p> </p><p> </p><p>สำหรับ GNN นั้นโมเดลก็จะประกอบไปด้วย neural network layers หลาย layers เช่นเดียวกันกับโมเดลอื่นๆ ส่วน message passing ในกราฟนั้นโมเดลส่วนใหญ่จะออกแบบให้ส่ง information หรือ message ผ่าน "edges" ในกราฟ ดังแสดงในรูปที่ 7 ครับ ซึ่งการกระจายข้อมูลแบบนี้สามารถแปลงเป็น programming code ได้อย่างง่ายดาย และถือได้ว่ามีการใช้ "โครงสร้างของกราฟ" ที่เราเกริ่นในตอนต้นของบทความได้อย่างเหมาะสม ซึ่งเราจะดูโค้ดกันในบทความหน้า</p><p> </p><p>สำหรับแนวคิดการออกแบบ GNN ก็น่าจะมีราวๆ นี้นะครับ ซึ่งบทความนี้พยายามอธิบายให้ง่ายที่สุดแบบบ้านๆ  จึงอาจจะไม่เป็นทางการบ้าง ทว่าเพื่อนๆ สามารถศึกษาแนวคิด GNN "อย่างจริงจัง" เพิ่มเติมได้จากแหล่งอ้างอิง 2 ที่นี่นะครับ</p><p> </p><ul><li>Intro to graph neural networks (ML Tech Talks) : <a href="https://youtu.be/8owQBFAHw7E">https://youtu.be/8owQBFAHw7E</a></li><li>รวม GNN architecture :  <a href="https://theaisummer.com/gnn-architectures/">https://theaisummer.com/gnn-architectures/</a></li></ul><p> </p><p>ในคราวหน้าเราจะมาศึกษา GNNs ที่มาตรฐานที่สุดคือ Graph Convolution Networks (GCNs) และ Graph Attention Networks (GATs) พร้อม Keras code และ Keras library ที่ชื่อ Spektral กัน</p>]]></content:encoded>
						                            <category domain="https://thaikeras.com/community/main-forum/">คุยกันภาษา AI</category>                        <dc:creator>The Neural Engineer</dc:creator>
                        <guid isPermaLink="true">https://thaikeras.com/community/main-forum/graph-neural-networks-gnns/</guid>
                    </item>
				                    <item>
                        <title>Codex นวัตกรรมใหม่ จุดเริ่มต้นของวิถืเขียนโปรแกรม ที่จะเปลี่ยนการเขียนโปรแกรมไปตลอดกาล</title>
                        <link>https://thaikeras.com/community/main-forum/codex/</link>
                        <pubDate>Fri, 13 Aug 2021 09:03:29 +0000</pubDate>
                        <description><![CDATA[Codex นวัตกรรมใหม่ จุดเริ่มต้นของวิถืเขียนโปรแกรม ที่จะเปลี่ยนการเขียนโปรแกรมไปตลอดกาล วันนี้ถึงคราว OpenAI โชว์นวัตกรรมที่ชื่อว่า Codex ซึ่งเป็นสิ่งที่ OpenAI เชื่อว่าจะเปลี่ยนแปลงการเขียนโ...]]></description>
                        <content:encoded><![CDATA[<div class="" data-block="true" data-editor="esuqe" data-offset-key="btdrs-0-0"><div class="_1mf _1mj" data-offset-key="btdrs-0-0"><span style="text-decoration: underline;font-size: 18pt"><strong>Codex นวัตกรรมใหม่ จุดเริ่มต้นของวิถืเขียนโปรแกรม ที่จะเปลี่ยนการเขียนโปรแกรมไปตลอดกาล</strong></span></div></div><div class="" data-block="true" data-editor="esuqe" data-offset-key="4cs7r-0-0"><div class="_1mf _1mj" data-offset-key="4cs7r-0-0"><span data-offset-key="4cs7r-0-0"> </span></div></div><div class="" data-block="true" data-editor="esuqe" data-offset-key="9ag07-0-0"><div class="_1mf _1mj" data-offset-key="9ag07-0-0"><span data-offset-key="9ag07-0-0">วันนี้ถึงคราว OpenAI โชว์นวัตกรรมที่ชื่อว่า Codex ซึ่งเป็นสิ่งที่ OpenAI เชื่อว่าจะเปลี่ยนแปลงการเขียนโปรแกรมไปตลอดกาล หลังจากเดือนก่อน DeepMind สะเทือนวงการ Bioinformatics ด้วยการเปิดเผย source ของ AlphaFold อย่างสมบูรณ์</span></div></div><div class="" data-block="true" data-editor="esuqe" data-offset-key="blbvi-0-0"><div class="_1mf _1mj" data-offset-key="blbvi-0-0"><span data-offset-key="blbvi-0-0"> </span></div></div><div class="" data-block="true" data-editor="esuqe" data-offset-key="18o5n-0-0"><div class="_1mf _1mj" data-offset-key="18o5n-0-0"><span data-offset-key="18o5n-0-0">.</span></div></div><div class="" data-block="true" data-editor="esuqe" data-offset-key="1bhl5-0-0"><div class="_1mf _1mj" data-offset-key="1bhl5-0-0"><span style="text-decoration: underline"><strong>Codex คืออะไร</strong></span></div></div><div class="" data-block="true" data-editor="esuqe" data-offset-key="4m0cg-0-0"><div class="_1mf _1mj" data-offset-key="4m0cg-0-0"><span data-offset-key="4m0cg-0-0">Codex คือทายาทของ GPT-3 ที่ถูกสอนเพื่อการเขียนโปรแกรมโดยเฉพาะ โดยเทรนบน Opensources หลาย "พันล้าน" บรรทัด ดังนั้นมันมีความสามารถในการเขียนโปรแกรมมิ่งได้แทบทุกภาษาที่สำคัญ เช่น </span></div></div><div class="" data-block="true" data-editor="esuqe" data-offset-key="1h74d-0-0"><div class="_1mf _1mj" data-offset-key="1h74d-0-0"><span data-offset-key="1h74d-0-0">Python, JavaScript, Go, Perl, PHP, Ruby, Swift and TypeScript, และ Shell script</span></div></div><div class="" data-block="true" data-editor="esuqe" data-offset-key="de2kn-0-0"><div class="_1mf _1mj" data-offset-key="de2kn-0-0"><span data-offset-key="de2kn-0-0"> </span></div></div><div class="" data-block="true" data-editor="esuqe" data-offset-key="c7bqi-0-0"><div class="_1mf _1mj" data-offset-key="c7bqi-0-0"><span data-offset-key="c7bqi-0-0">หัวใจของ Codex นั้น OpenAI อธิบายว่า "การเขียนโปรแกรม" แท้จริงแล้วนั้นแบ่งออกเป็น 2 ส่วนหลักๆ</span></div></div><div class="" data-block="true" data-editor="esuqe" data-offset-key="2n940-0-0"><div class="_1mf _1mj" data-offset-key="2n940-0-0"><span data-offset-key="2n940-0-0"> 1) Programmer นำ "เป้าหมาย" ของสิ่งที่ต้องการเขียน มา "ออกแบบ" แตกออกเป็น เป้าหมายย่อยๆ หลายๆ ส่วนที่เมื่อรวมกันแล้ว จะทำงานได้ตามเป้าหมาย</span></div></div><div class="" data-block="true" data-editor="esuqe" data-offset-key="b964c-0-0"><div class="_1mf _1mj" data-offset-key="b964c-0-0"><span data-offset-key="b964c-0-0"> 2) เปลี่ยนเป้าหมายย่อยๆ แต่ละส่วนนั้น ให้เป็นภาษาโปรแกรมมิ่ง เช่น Python, JavaScript, etc.</span></div></div><div class="" data-block="true" data-editor="esuqe" data-offset-key="dl3ba-0-0"><div class="_1mf _1mj" data-offset-key="dl3ba-0-0"><span data-offset-key="dl3ba-0-0"> </span></div></div><div class="" data-block="true" data-editor="esuqe" data-offset-key="1fids-0-0"><div class="_1mf _1mj" data-offset-key="1fids-0-0"><span data-offset-key="1fids-0-0">OpenAI เคลมว่าขั้นที่ 1) หรือขั้นการออกแบบ นั้นคือความสนุกที่แท้จริงของการเขียนโปรแกรม และขั้นที่ 2) นั้นเป็นงานถึก </span></div></div><div class="" data-block="true" data-editor="esuqe" data-offset-key="85bbk-0-0"><div class="_1mf _1mj" data-offset-key="85bbk-0-0"><span data-offset-key="85bbk-0-0"> </span></div></div><div class="" data-block="true" data-editor="esuqe" data-offset-key="aqv9q-0-0"><div class="_1mf _1mj" data-offset-key="aqv9q-0-0"><span data-offset-key="aqv9q-0-0">ดังนั้น Codex จะรับหน้าที่ทำขั้นที่ 2) ทั้งหมดให้เรา โดยเราเพียงระบุตามที่เราออกแบบ ในแต่ละขั้นตอนย่อย เราต้องการเขียนอะไร (ด้วยภาษามนุษย์ บ้านๆ) แล้ว Codex จะทำความเข้าใจ แล้วเขียนโปรแกรมที่เราต้องการออกมาโดยอัตโนมัติ!!</span></div></div><div class="" data-block="true" data-editor="esuqe" data-offset-key="enti9-0-0"><div class="_1mf _1mj" data-offset-key="enti9-0-0"><span data-offset-key="enti9-0-0"> </span></div></div><div class="" data-block="true" data-editor="esuqe" data-offset-key="6rv2g-0-0"><div class="_1mf _1mj" data-offset-key="6rv2g-0-0"><span data-offset-key="6rv2g-0-0">จริงๆ แล้วการเขียนโปรแกรมด้วยภาษามนุษย์ได้มีนักพัฒนาหลายคนได้เห็นความเป็นไปได้ตั้งแต่ตอน GPT-3 ซึ่งไอเดียนี้เองทำให้ OpenAI มาศึกษาเรื่องนี้เพิ่มเติมจริงจัง</span></div></div><div class="" data-block="true" data-editor="esuqe" data-offset-key="cf6vg-0-0"><div class="_1mf _1mj" data-offset-key="cf6vg-0-0"><span data-offset-key="cf6vg-0-0"> </span></div></div><div class="" data-block="true" data-editor="esuqe" data-offset-key="fl7mk-0-0"><div class="_1mf _1mj" data-offset-key="fl7mk-0-0"><span data-offset-key="fl7mk-0-0">จากการวัดผลความถูกต้องอย่างจริงจังของทีม OpenAI นั้น โค้ดที่สร้างด้วย GPT-3 นั้นแม้จะดูใช้ได้ แต่แท้จริงแล้วความถูกต้องไม่ถึง 1% (!?) แต่ว่า Codex ตัวนี้มีความถูกต้องของโปรแกรมมากถึง 37% ! </span></div></div><div class="" data-block="true" data-editor="esuqe" data-offset-key="7vqic-0-0"><div class="_1mf _1mj" data-offset-key="7vqic-0-0"><span data-offset-key="7vqic-0-0"> </span></div></div><div class="" data-block="true" data-editor="esuqe" data-offset-key="8o414-0-0"><div class="_1mf _1mj" data-offset-key="8o414-0-0"><span data-offset-key="8o414-0-0">โดยจากตัวอย่างที่ OpenAI แสดง พบว่าความผิดพลาดที่เกิดขึ้นส่วนใหญ่ เกิดจากความกำกวมของคำสั่งของ user เอง (แบ่งขั้นตอนย่อยไม่ดี) </span></div></div><div class="" data-block="true" data-editor="esuqe" data-offset-key="723of-0-0"><div class="_1mf _1mj" data-offset-key="723of-0-0"><span data-offset-key="723of-0-0"> </span></div></div><div class="" data-block="true" data-editor="esuqe" data-offset-key="8rjbq-0-0"><div class="_1mf _1mj" data-offset-key="8rjbq-0-0"><span data-offset-key="8rjbq-0-0">และถ้า user สามารถแตกปัญหาที่ต้องการเขียนโปรแกรมได้เคลียร์พอ Codex มักจะเขียนโปรแกรมได้ถูกต้องแทบทั้งหมด</span></div></div><div class="" data-block="true" data-editor="esuqe" data-offset-key="m8ih-0-0"><div class="_1mf _1mj" data-offset-key="m8ih-0-0"><span data-offset-key="m8ih-0-0"> </span></div></div><div class="" data-block="true" data-editor="esuqe" data-offset-key="2sicl-0-0"><div class="_1mf _1mj" data-offset-key="2sicl-0-0"><span data-offset-key="2sicl-0-0">เพื่อนสามารถดู "ความสามารถ" ของ Codex ได้ที่นี่ครับ</span></div></div><div class="" data-block="true" data-editor="esuqe" data-offset-key="e98v3-0-0"><div class="_1mf _1mj" data-offset-key="e98v3-0-0"><span class="py34i1dx"><span data-offset-key="e98v3-0-0">https://youtu.be/SGUCcjHTmGY</span></span></div></div><div class="" data-block="true" data-editor="esuqe" data-offset-key="cml00-0-0"><div class="_1mf _1mj" data-offset-key="cml00-0-0"><span data-offset-key="cml00-0-0">ซึ่งเป็นคลิปตัวอย่างของ Codex ที่โปรแกรมเมอร์ทุกคน "ไม่ดูไม่ได้" ครับ</span></div></div><div class="" data-block="true" data-editor="esuqe" data-offset-key="17eg0-0-0"><div class="_1mf _1mj" data-offset-key="17eg0-0-0"><span data-offset-key="17eg0-0-0"> </span></div></div><div class="" data-block="true" data-editor="esuqe" data-offset-key="lv89-0-0"><div class="_1mf _1mj" data-offset-key="lv89-0-0"><span data-offset-key="lv89-0-0">ในคลิปแสดง 3 ตัวอย่าง</span></div></div><div class="" data-block="true" data-editor="esuqe" data-offset-key="46vja-0-0"><div class="_1mf _1mj" data-offset-key="46vja-0-0"><span data-offset-key="46vja-0-0"> </span></div></div><div class="" data-block="true" data-editor="esuqe" data-offset-key="1ba3g-0-0"><div class="_1mf _1mj" data-offset-key="1ba3g-0-0"><span data-offset-key="1ba3g-0-0">1. Codex's Advanced Hello World : สั่งไปว่า "ให้เขียนโปรแกรม ที่ไปดูดราคา BitCoin ล่าสุดมา แล้วส่งราคานั้นไปที่ Email ของ users ทุกคนเพื่อทักทาย (Hellow World)" ในตัวอย่างนี้ Codex รู้เว็บที่สามารถดูดราคา BitCoin ได้เอง และรู้ API การดูดราคาที่ต้องใช้ได้ด้วยตัวเอง</span></div></div><div class="" data-block="true" data-editor="esuqe" data-offset-key="14amq-0-0"><div class="_1mf _1mj" data-offset-key="14amq-0-0"><span data-offset-key="14amq-0-0"> </span></div></div><div class="" data-block="true" data-editor="esuqe" data-offset-key="ftvfv-0-0"><div class="_1mf _1mj" data-offset-key="ftvfv-0-0"><span data-offset-key="ftvfv-0-0">2. สั่งให้ Codex เขียนเกมส์ด้วย JavaScript โดยเป็นเกมส์ที่ผู้เล่นต้องคอยหลบก้อนหินที่ตกลงมาจากท้องฟ้า โดย Codex สามารถเขียนได้จากคำพูดเพียงไม่กี่ประโยคของเรา โดยกระบวนการทั้งหมดใช้เวลาเพียงไม่กี่นาที (!)</span></div></div><div class="" data-block="true" data-editor="esuqe" data-offset-key="23fv7-0-0"><div class="_1mf _1mj" data-offset-key="23fv7-0-0"><span data-offset-key="23fv7-0-0"> </span></div></div><div class="" data-block="true" data-editor="esuqe" data-offset-key="2qe73-0-0"><div class="_1mf _1mj" data-offset-key="2qe73-0-0"><span data-offset-key="2qe73-0-0">3. นอกจากนี้ Codex สามารถเรียนรู้ API ที่ไม่เคยเรียนรู้มาก่อนได้แทบทุกประเภท เราเพียงให้ Codex อ่าน API documentation ซึ่งจะทำให้ Codex สามารถเรียกใช้งาน API ที่ไม่รู้จักมาก่อนได้ โดยในตัวอย่างโชว์ การเชื่อมต่อ Codex เข้ากับ Microsoft Words API ซึ่งทำให้เราสามารถสั่งงาน สั่งเปลี่ยนแปลงเอกสาร Words ได้ด้วยคำพูด อย่างเหนือชั้น</span></div></div><div class="" data-block="true" data-editor="esuqe" data-offset-key="3umfj-0-0"><div class="_1mf _1mj" data-offset-key="3umfj-0-0"><span data-offset-key="3umfj-0-0"> </span></div></div><div class="" data-block="true" data-editor="esuqe" data-offset-key="46v32-0-0"><div class="_1mf _1mj" data-offset-key="46v32-0-0"><span data-offset-key="46v32-0-0">ทุกคนสามารถต่อคิว (Waiting List) ขอทดสอบ Codex ได้ที่นี่</span></div></div><div class="" data-block="true" data-editor="esuqe" data-offset-key="5j2e0-0-0"><div class="_1mf _1mj" data-offset-key="5j2e0-0-0"><span class="py34i1dx"><span data-offset-key="5j2e0-0-0">https://openai.com/join</span></span></div></div><div class="" data-block="true" data-editor="esuqe" data-offset-key="1mc72-0-0"><div class="_1mf _1mj" data-offset-key="1mc72-0-0"><span data-offset-key="1mc72-0-0"> </span></div></div><div class="" data-block="true" data-editor="esuqe" data-offset-key="e4dtp-0-0"><div class="_1mf _1mj" data-offset-key="e4dtp-0-0"><span data-offset-key="e4dtp-0-0">ดูเพิ่มเกี่ยวกับ Codex ที่นี่</span></div></div><div class="" data-block="true" data-editor="esuqe" data-offset-key="4k0ip-0-0"><div class="_1mf _1mj" data-offset-key="4k0ip-0-0"><span class="py34i1dx"><span data-offset-key="4k0ip-0-0">https://openai.com/blog/openai-codex/</span></span></div></div><div class="" data-block="true" data-editor="esuqe" data-offset-key="ackjg-0-0"> </div>]]></content:encoded>
						                            <category domain="https://thaikeras.com/community/main-forum/">คุยกันภาษา AI</category>                        <dc:creator>The Neural Engineer</dc:creator>
                        <guid isPermaLink="true">https://thaikeras.com/community/main-forum/codex/</guid>
                    </item>
				                    <item>
                        <title>โอกาสเรียนปริญญาจากมหาวิทยาลัยระดับท้อป และทักษะงานที่ต้องมีในโลกดิจิตอล</title>
                        <link>https://thaikeras.com/community/main-forum/online-education/</link>
                        <pubDate>Fri, 06 Aug 2021 12:31:42 +0000</pubDate>
                        <description><![CDATA[โอกาสเรียนปริญญาจากมหาวิทยาลัยระดับท้อปของโลก ภัยซ่อนเร้นของมหาวิทยาลัยไทย รู้หรือไม่ว่า ตอนนี้ เราสามารถเรียนปริญญาโทจากมหาวิทยาลัยชั้นนำของโลกแบบออนไลน์ได้โดยสมบูรณ์ มหาวิทยาลัยชั้นนำมากมา...]]></description>
                        <content:encoded><![CDATA[<div class="kvgmc6g5 cxmmr5t8 oygrvhab hcukyx3x c1et5uql ii04i59q"><div dir="auto"><span style="font-size: 18pt"><strong><span style="text-decoration: underline">โอกาสเรียนปริญญาจากมหาวิทยาลัยระดับท้อปของโลก ภัยซ่อนเร้นของมหาวิทยาลัยไทย</span></strong></span></div><div dir="auto"> </div></div><div class="o9v6fnle cxmmr5t8 oygrvhab hcukyx3x c1et5uql ii04i59q"><div dir="auto">รู้หรือไม่ว่า ตอนนี้ เราสามารถเรียนปริญญาโทจากมหาวิทยาลัยชั้นนำของโลกแบบออนไลน์ได้โดยสมบูรณ์</div></div><div class="o9v6fnle cxmmr5t8 oygrvhab hcukyx3x c1et5uql ii04i59q"><div dir="auto"> </div><div dir="auto">มหาวิทยาลัยชั้นนำมากมายเปิดรับนักศึกษาแบบออนไลน์ 100% ในบางหลักสูตร เช่น Imperial College London, University of Pennsylvania, Purdue หรือ University Texas of Austin</div></div><div class="o9v6fnle cxmmr5t8 oygrvhab hcukyx3x c1et5uql ii04i59q"><div dir="auto"> </div><div dir="auto">ได้ปริญญา ความรู้และทำงานกับศาสตราจารย์ระดับโลก มีเกียรติ ศักดิ์ศรีในฐานะศิษย์เก่าแบบเดียวกับไปเรียนที่ต่างประเทศ แถมยังประหยัดค่าใช้จ่ายได้มากกว่า 65-85% จากหลายล้านเหลือหลักแสน (ขึ้นกับมหาวิทยาลัยและค่าครองชีพในเมืองนั้นๆ)</div></div><div class="o9v6fnle cxmmr5t8 oygrvhab hcukyx3x c1et5uql ii04i59q"><div dir="auto"> </div><div dir="auto">การเรียนผ่าน EdTech คือ การปฏิวัติวงการการศึกษาโดยใช้เทคโนโลยีสมัยใหม่ ทำให้สามารถเรียนทั้งปริญญาตรี และโท แบบออนไลน์ได้ 100% โดยไม่จำเป็นต้องเดินทางไปที่ต่างประเทศแต่อย่างใด</div></div><div class="o9v6fnle cxmmr5t8 oygrvhab hcukyx3x c1et5uql ii04i59q"><div dir="auto"> </div><div dir="auto">ผู้นำในวงการ EdTech Platforms ที่น่าจับตา 2 รายคือ Coursera และ EdX มีจุดกำเนิดจากมหาวิทยาลัยชั้นนำ คือ Stanford สำหรับ Coursera และ MIT + Harvard สำหรับ EdX</div></div><div class="o9v6fnle cxmmr5t8 oygrvhab hcukyx3x c1et5uql ii04i59q"><div dir="auto"> </div><div dir="auto"><a class="oajrlxb2 g5ia77u1 qu0x051f esr5mh6w e9989ue4 r7d6kgcz rq0escxv nhd2j8a9 nc684nl6 p7hjln8o kvgmc6g5 cxmmr5t8 oygrvhab hcukyx3x jb3vyjys rz4wbd8a qt6c0cv9 a8nywdso i1ao9s8h esuyzwwr f1sip0of lzcic4wl py34i1dx gpro0wi8" role="link" href="https://l.facebook.com/l.php?u=https%3A%2F%2Fwww.coursera.org%2Fdegrees%2F%3Ffbclid%3DIwAR03-iNZrKYEOsQ4iVBvh-daM8ZXxUdZ7ChfUj9jOXjlLqjHg_e8lMEaP_g&amp;h=AT34ERBPehP9bZJQCd4tYSKM9LEAJK5N3ynL0_5S3mXP_MhwUs6FK1bMKTdRfPhFumG24qy67f0h2wb_omKMQN-QBlaXJSizjIG27Ht6D5Y39dHj4nfcHrqYL0ifDQ1uPqrBDcdtBOnbkBYhkifX&amp;__tn__=-UK-y-R&amp;c=AT0YwZe1xCwWFFwhRgJyxrntdG2UP74A7ZHPvKcVCPHJJfMUJr7vTqvo4qv87tIkzkldP-sIpBr95lykiLO9EFTdzPmNn2uiSSulWuEE9EqzIQx5F4HNv1FCe_0nTcSoak9PFyWmxhSntnkCju2RW0xZwOmhcZjBPPM64ncq1SqRkj1810EDSuu4bMNy1ukc2hpnkIcfWBmI-JS-sNbAPDK0qBlRmnriGaTaxZHAj5v8ZJ_QucWQDtY" target="_blank" rel="nofollow noopener">https://www.coursera.org/degrees/</a></div><div dir="auto"><a class="oajrlxb2 g5ia77u1 qu0x051f esr5mh6w e9989ue4 r7d6kgcz rq0escxv nhd2j8a9 nc684nl6 p7hjln8o kvgmc6g5 cxmmr5t8 oygrvhab hcukyx3x jb3vyjys rz4wbd8a qt6c0cv9 a8nywdso i1ao9s8h esuyzwwr f1sip0of lzcic4wl py34i1dx gpro0wi8" role="link" href="https://l.facebook.com/l.php?u=https%3A%2F%2Fwww.edx.org%2Fmasters%3Ffbclid%3DIwAR1c0fIhj3hqSQkkrGIY1HiYOlZW_bqKFzrAjvXItb-swDUZ_EXsr0Y0J5c&amp;h=AT33vTt6FajU9oZIPjsTKAbcVetGWpcJy4N6Q633fyvabRtRs7XeG__7buDhmCyUxbSxZTgqrT6Hxj2TWa2LrhT7EYyVe6pA_lUjm5oypM4JH-t4WDcdVUqLz090krO6KMBaNS9gvagcOGwJ52SD&amp;__tn__=-UK-y-R&amp;c=AT0YwZe1xCwWFFwhRgJyxrntdG2UP74A7ZHPvKcVCPHJJfMUJr7vTqvo4qv87tIkzkldP-sIpBr95lykiLO9EFTdzPmNn2uiSSulWuEE9EqzIQx5F4HNv1FCe_0nTcSoak9PFyWmxhSntnkCju2RW0xZwOmhcZjBPPM64ncq1SqRkj1810EDSuu4bMNy1ukc2hpnkIcfWBmI-JS-sNbAPDK0qBlRmnriGaTaxZHAj5v8ZJ_QucWQDtY" target="_blank" rel="nofollow noopener">https://www.edx.org/masters</a></div></div><div class="o9v6fnle cxmmr5t8 oygrvhab hcukyx3x c1et5uql ii04i59q"><div dir="auto"> </div><div dir="auto">โดยจุดเริ่มต้นก่อนที่จะมาเป็นปริญญาออนไลน์ 100% นั้นทั้งสอง platforms เริ่มจาก การเปิดโอกาสให้นักเรียนทั่วโลกสามารถเข้าถึงการเรียนรู้ระดับโลกจากมหาวิทยาลัยเหล่านี้ เป็นรายวิชา โดยมี certificate รับรองนักเรียนที่เรียนจบและสอบผ่านมาตรฐานวิชาเหล่านี้</div></div><div class="o9v6fnle cxmmr5t8 oygrvhab hcukyx3x c1et5uql ii04i59q"><div dir="auto"> </div><div dir="auto">จากนั้นทั้ง 2 platforms ก็เริ่มขยาย certificates ให้มาตรฐานขึ้น โดยรวมกลุ่มวิชาที่เกี่ยวข้องไว้ด้วยกัน เป็น certificate สำหรับผู้เชี่ยวชาญเฉพาะทางโดย coursera เรียกว่า Specialization และ EdX เรียกว่า MicroMaster</div></div><div class="o9v6fnle cxmmr5t8 oygrvhab hcukyx3x c1et5uql ii04i59q"><div dir="auto"> </div><div dir="auto">ซึ่งผู้ที่ได้ใบ certificates ในมาตรฐานนี้เรียกได้ว่า พร้อมทำงานจริงในอาชีพที่ต้องใช้ความรู้นั้นๆ เลยทีเดียว</div></div><div class="o9v6fnle cxmmr5t8 oygrvhab hcukyx3x c1et5uql ii04i59q"><div dir="auto">ล่าสุดทั้ง Coursera และ EdX จึงได้ร่วมมือกับมหาวิทยาลัยชั้นนำหลายแห่ง เพื่อเปิดโอกาสให้คนทั่วโลกสามารถเข้าถึงการศึกษาระดับสูงสุดได้ง่ายกว่าเดิม จึงออกมาเป็น หลักสูตรปริญญาออนไลน์ ทั้งตรี และโท ออนไลน์ดังกล่าว</div></div><div class="o9v6fnle cxmmr5t8 oygrvhab hcukyx3x c1et5uql ii04i59q"><div dir="auto"> </div><div dir="auto">โดยปริญญาที่เปิดให้เรียนแม้จะยังมีไม่มาก แต่ก็ถือได้ว่ามีหลากหลายพอควร อาทิ เช่น</div><div dir="auto"><div class="" data-block="true" data-editor="becm6" data-offset-key="bu5fr-0-0"><div class="_1mf _1mj" data-offset-key="bu5fr-0-0"><span data-offset-key="bu5fr-0-0"> - Data </span><span data-offset-key="bu5fr-1-0">Science</span></div></div><div class="" data-block="true" data-editor="becm6" data-offset-key="bvfil-0-0"><div class="_1mf _1mj" data-offset-key="bvfil-0-0"><span data-offset-key="bvfil-0-0"> - Computer Science</span></div></div><div class="" data-block="true" data-editor="becm6" data-offset-key="bdfvt-0-0"><div class="_1mf _1mj" data-offset-key="bdfvt-0-0"><span data-offset-key="bdfvt-0-0"> - Cyber Security</span></div></div><div class="" data-block="true" data-editor="becm6" data-offset-key="3n9rv-0-0"><div class="_1mf _1mj" data-offset-key="3n9rv-0-0"><span data-offset-key="3n9rv-0-0"> - Network and Data Analysis</span></div></div><div class="" data-block="true" data-editor="becm6" data-offset-key="e8t17-0-0"><div class="_1mf _1mj" data-offset-key="e8t17-0-0"><span data-offset-key="e8t17-0-0"> - Civil Engineer</span></div></div><div class="" data-block="true" data-editor="becm6" data-offset-key="be9al-0-0"><div class="_1mf _1mj" data-offset-key="be9al-0-0"><span data-offset-key="be9al-0-0"> - Mechanical Engineer</span></div><div data-offset-key="be9al-0-0">- Finance</div></div><div class="" data-block="true" data-editor="becm6" data-offset-key="dp55p-0-0"><div class="_1mf _1mj" data-offset-key="dp55p-0-0"><span data-offset-key="dp55p-0-0"> - MBA</span></div></div><div class="" data-block="true" data-editor="becm6" data-offset-key="42s04-0-0"><div class="_1mf _1mj" data-offset-key="42s04-0-0"><span data-offset-key="42s04-0-0"> - IT Management </span></div></div><div class="" data-block="true" data-editor="becm6" data-offset-key="fnvd6-0-0"><div class="_1mf _1mj" data-offset-key="fnvd6-0-0"><span data-offset-key="fnvd6-0-0"> - Supply Chain Management</span></div></div><div class="" data-block="true" data-editor="becm6" data-offset-key="1b9nr-0-0"><div class="_1mf _1mj" data-offset-key="1b9nr-0-0"><span data-offset-key="1b9nr-0-0"> - Accounting</span></div></div><div class="" data-block="true" data-editor="becm6" data-offset-key="bg1ga-0-0"><div class="_1mf _1mj" data-offset-key="bg1ga-0-0"><span data-offset-key="bg1ga-0-0"> - Leadership</span></div></div><div class="" data-block="true" data-editor="becm6" data-offset-key="447q1-0-0"><div class="_1mf _1mj" data-offset-key="447q1-0-0"><span data-offset-key="447q1-0-0"> - Innovation and Entrepreneurship</span></div></div><div class="" data-block="true" data-editor="becm6" data-offset-key="4jnm3-0-0"><div class="_1mf _1mj" data-offset-key="4jnm3-0-0"><span data-offset-key="4jnm3-0-0"> - Public Health</span></div></div><div class="" data-block="true" data-editor="becm6" data-offset-key="3rlku-0-0"><div class="_1mf _1mj" data-offset-key="3rlku-0-0"><span data-offset-key="3rlku-0-0"> - Public Policy</span></div></div><div class="" data-block="true" data-editor="becm6" data-offset-key="b8d6j-0-0"><div class="_1mf _1mj" data-offset-key="b8d6j-0-0"><span data-offset-key="b8d6j-0-0"> - International Relation &amp; Strategy</span></div></div><div class="" data-block="true" data-editor="becm6" data-offset-key="1im6o-0-0"><div class="_1mf _1mj" data-offset-key="1im6o-0-0"><span data-offset-key="1im6o-0-0"> - Nutritional Science (Applied Biochemistry &amp; Health Science)</span></div></div></div></div><div class="o9v6fnle cxmmr5t8 oygrvhab hcukyx3x c1et5uql ii04i59q"><div dir="auto"> </div><div dir="auto">ข้อจำกัด คือ สาขาวิชาที่ต้องการใช้ห้องแล็บ และอุปกรณ์ ยังไม่สามารถเรียนออนไลน์ได้ในขณะนี้ ดังนั้น สาขาวิชาเช่น ฟิสิกส์ เคมี หรือเทคโนโลยีชีวภาพจึงยังไม่มีปริญญาออนไลน์ใน platforms เหล่านี้</div></div><div class="o9v6fnle cxmmr5t8 oygrvhab hcukyx3x c1et5uql ii04i59q"><div dir="auto">(แต่อาจเรียนได้ในอนาคต 10 ปีที่จะถึงนี้ เมื่อเทคโนโลยี เช่น AR (Augmented Reality) และ VR (Virtual Reality) พัฒนาไปก้าวหน้ามาก)</div></div><div class="o9v6fnle cxmmr5t8 oygrvhab hcukyx3x c1et5uql ii04i59q"><div dir="auto"> </div><div dir="auto">อีกหนึ่งจุดเด่นของการเรียนปริญญาออนไลน์คือ ระบบ "ปริญญาย่อย" เรียกว่า MasterTrack สำหรับ Coursera และ MicroMaster สำหรับ EdX ให้ทดลองเรียนก่อน</div></div><div class="o9v6fnle cxmmr5t8 oygrvhab hcukyx3x c1et5uql ii04i59q"><div dir="auto"> </div><div dir="auto">โดยปริญญาย่อยนี้ มีเนื้อหาราวๆ 1/4 ของหลักสูตร (แล้วแต่สาขาวิชา) เมื่อจบแล้วได้ใบ certifciate การันตีความรู้ แถมถ้าเราตัดสินใจเรียนต่อในระดับปริญญาจริงจัง ยังสามารถนำปริญญาย่อยนี้ไปคิดรวมในหลักสูตรปริญญาเต็มได้ทั้งหมด</div></div><div class="o9v6fnle cxmmr5t8 oygrvhab hcukyx3x c1et5uql ii04i59q"><div dir="auto"> </div><div dir="auto">นั่้นคือระบบปริญญาย่อย เปิดโอกาสให้เราได้ทดสอบตัวเองว่าเราเหมาะกับปริญญาแต่ละสาขาจริงหรือไม่ โดยถึงแม้เราตัดสินใจหยุดไม่ต่อปริญญาเต็มตัว เราก็ยังได้ใบ certificate การันตีความสามารถในสาขาที่เราผ่านปริญญาย่อยมาแล้ว</div></div><div class="o9v6fnle cxmmr5t8 oygrvhab hcukyx3x c1et5uql ii04i59q"><div dir="auto"> </div><div dir="auto">อย่างไรก็ดีการเข้าเรียนปริญญาออนไลน์ดังกล่าว ก็ใช่ว่าจะทำกันได้ง่ายๆ เพราะทางมหาวิทยาลัยชั้นนำ ยังคัดเลือกผู้สมัครโดยใช้เกณฑ์ที่เข้มข้นเหมือนการเรียนปกติทุกประการ ไม่ว่าจะเป็น ความสามารถทางภาษาระดับสูง ผลการเรียน การสอบที่เกี่ยวข้องกับปริญญานั้นๆ รวมทั้งจดหมายรับรองจากอาจารย์หรือมืออาชีพในแต่ละสายงาน</div></div><div class="o9v6fnle cxmmr5t8 oygrvhab hcukyx3x c1et5uql ii04i59q"><div dir="auto"> </div><div dir="auto"><strong><span style="text-decoration: underline">**สรุปจุดเด่น**</span></strong></div><div dir="auto">1) ค่าใช้จ่ายที่ถูกลงถึง 65-85% (เมื่อรวมกับค่าครองชีพที่ต่างประเทศ โดยแตกต่างกันไปตามแต่ละปริญญา) และยังไม่ต้องจ่ายเต็ม จ่ายตามจำนวนวิชาที่เราลงจริงในแต่ละเทอม</div><div dir="auto">2) ได้ทำงานร่วมกับศาสตราจารย์ระดับโลก ได้สิทธิในการเป็นศิษย์เก่า รวมทั้งปริญญาที่ศักดิ์ศรีเดียวกับการไปเรียนที่ต่างประเทศ</div><div dir="auto">3) ระบบปริญญาย่อย MasterTrack สำหรับ Coursera และ MicroMaster สำหรับ EdX ให้ทดลองเรียนก่อน</div><div dir="auto">4) โอกาสทำงานในต่างประเทศ จาก connections ของอาจารย์ เพื่อนร่วมรุ่นและ Alumni network &amp; Career Service ของมหาวิทยาลัยต่างๆ</div><div dir="auto">5) หาข้อมูลง่ายขึ้น เปรียบเทียบแต่ละเงื่อนไข และหลักสูตรของมหาวิทยาลัย ได้ที่ Coursera และ EdX ได้เลย</div></div><div class="o9v6fnle cxmmr5t8 oygrvhab hcukyx3x c1et5uql ii04i59q"><div dir="auto"> </div><div dir="auto"><span style="text-decoration: underline"><strong>**สรุปจุดที่ต้องพิจารณา**</strong></span></div><div dir="auto">1) ยังมีชนิดปริญญาให้เลือกไม่มากนัก แต่จะค่อยๆ มากขึ้นในอนาคต</div><div dir="auto">2) การสร้างความสัมพันธ์กับเพื่อนร่วมรุ่น ต้องใช้ความพยายามมากขึ้น</div><div dir="auto">3) ค่าใช้จ่ายแม้จะลดลงมหาศาลยังค่อนข้างแพง รวมทั้งเงื่อนไขในการรับเข้าเรียนอื่นๆ ยังโหด เข้มข้น มาตรฐานเดิม</div></div><div class="o9v6fnle cxmmr5t8 oygrvhab hcukyx3x c1et5uql ii04i59q"><div dir="auto">ตัวอย่างค่าใช้จ่าย</div><div dir="auto">Master of Computer Science and Data Science</div><div dir="auto">University of Illinois at Urbana-Champaign ที่่ Coursera</div><div dir="auto"><a class="oajrlxb2 g5ia77u1 qu0x051f esr5mh6w e9989ue4 r7d6kgcz rq0escxv nhd2j8a9 nc684nl6 p7hjln8o kvgmc6g5 cxmmr5t8 oygrvhab hcukyx3x jb3vyjys rz4wbd8a qt6c0cv9 a8nywdso i1ao9s8h esuyzwwr f1sip0of lzcic4wl py34i1dx gpro0wi8" role="link" href="https://l.facebook.com/l.php?u=https%3A%2F%2Fwww.coursera.org%2Fdegrees%2Fmaster-of-computer-science-illinois%3Ffbclid%3DIwAR0C6pKfVYkiZCW4hWZoUWNRbIg-gmPMFjQFLTSBRFJiwQbV92qgLe6dEP4&amp;h=AT3bqcXcQq3nLtLrkrI9lJJcC4i0qLMvsFEEwc0ZHBMBXFSJw9ue3Jjij961HNbyXusNSjOytEp4SdUAg64ySbiaXk1XJUzAquxUlHO60QcIR5DvoJ5ZttkxuER-8PknrBSpZKDu0mR3HX7joTlv&amp;__tn__=-UK-y-R&amp;c=AT0YwZe1xCwWFFwhRgJyxrntdG2UP74A7ZHPvKcVCPHJJfMUJr7vTqvo4qv87tIkzkldP-sIpBr95lykiLO9EFTdzPmNn2uiSSulWuEE9EqzIQx5F4HNv1FCe_0nTcSoak9PFyWmxhSntnkCju2RW0xZwOmhcZjBPPM64ncq1SqRkj1810EDSuu4bMNy1ukc2hpnkIcfWBmI-JS-sNbAPDK0qBlRmnriGaTaxZHAj5v8ZJ_QucWQDtY" target="_blank" rel="nofollow noopener">https://www.coursera.org/degrees/master-of-computer-science-illinois</a></div></div><div class="o9v6fnle cxmmr5t8 oygrvhab hcukyx3x c1et5uql ii04i59q"><div dir="auto">ปริญญาออนไลน์ $21,440 vs. $134000 (จ่ายแค่ราวๆ 16%)</div><div dir="auto">คิดเป็นเงินไทยราว 7แสนบาท vs. 4ล้าน 4แสนบาท</div></div><div class="o9v6fnle cxmmr5t8 oygrvhab hcukyx3x c1et5uql ii04i59q"><div dir="auto">(ค่าใช้จ่ายที่อิลลินอยส์ไม่รวมที่พัก 2 ปี $24000 + ค่าใช้จ่ายสำหรับมหาวิทยาลัย 2ปี $110000 - ดูหมายเหตุด้านล่าง)</div></div><div class="o9v6fnle cxmmr5t8 oygrvhab hcukyx3x c1et5uql ii04i59q"><div dir="auto"> </div><div dir="auto">-----</div><div dir="auto">สุดท้ายนี้ Platform EdTech ที่ปฏิวัติวงการการศึกษาเช่น Coursera หรือ EdX ไม่ได้มา disrupt มหาวิทยาลัยชั้นนำ</div></div><div class="o9v6fnle cxmmr5t8 oygrvhab hcukyx3x c1et5uql ii04i59q"><div dir="auto">แต่จริงๆ แล้วร่วมมือกับมหาวิทยาลัยชั้นนำอย่างแท้จริง เพื่อ disrupt มหาวิทยาลัยอื่นๆ ต่างหาก</div></div><div class="o9v6fnle cxmmr5t8 oygrvhab hcukyx3x c1et5uql ii04i59q"><div dir="auto">เป็นโจทย์ที่น่าสนใจสำหรับมหาวิทยาลัยในประเทศไทยว่าจะรับมือกับภัยคุกคามนี้อย่างไร ?</div></div><div class="o9v6fnle cxmmr5t8 oygrvhab hcukyx3x c1et5uql ii04i59q"><div dir="auto">รู้หรือไม่? นักลงทุนที่สนใจอนาคตของ Coursera และ EdX ก็สามารถร่วมลงทุนได้ผ่านตลาดหลักทรัพย์ของอเมริกา ในชื่อย่อ COUR และ TWOU (เป็นบริษัทแม่ของ EdX) ตามลำดับ อย่างไรก็ดีโปรดศึกษาข้อมูลให้ละเอียดเพิ่มเติมก่อนตัดสินใจลงทุนครับผม <span class="pq6dq46d tbxw36s4 knj5qynh kvgmc6g5 ditlmg2l oygrvhab nvdbi5me sf5mxxl7 gl3lb2sf hhz5lgdu"><img src="https://static.xx.fbcdn.net/images/emoji.php/v9/t4c/1/16/1f642.png" alt="🙂" width="16" height="16" /></span></div></div><div class="o9v6fnle cxmmr5t8 oygrvhab hcukyx3x c1et5uql ii04i59q"><div dir="auto"> </div><div dir="auto"><span style="text-decoration: underline">หมายเหตุ</span></div><div dir="auto">- ค่าใช้จ่ายของ University of Illinois at Urbana-Champaign <a class="oajrlxb2 g5ia77u1 qu0x051f esr5mh6w e9989ue4 r7d6kgcz rq0escxv nhd2j8a9 nc684nl6 p7hjln8o kvgmc6g5 cxmmr5t8 oygrvhab hcukyx3x jb3vyjys rz4wbd8a qt6c0cv9 a8nywdso i1ao9s8h esuyzwwr f1sip0of lzcic4wl py34i1dx gpro0wi8" role="link" href="https://l.facebook.com/l.php?u=https%3A%2F%2Fadmissions.illinois.edu%2FInvest%2Ftuition%3Ffbclid%3DIwAR3WO0aDVeRrVEahDT53MqSNO0VLVRYodfwYJ1o0wx8K6GmiZ5M_rMQvKbg&amp;h=AT0t7NssLMFpCPAXieaYiOqIu85zLlroUYiKrajpQLBYr38jM-HdA-cdcyx5tCMUszDeEiyk69tTmk3-zLXAyFP6O9fgB4kOVYPEip5v76oHHS3mF1TQtsc77d_nLs1ljxKSv0ZFUr_iLIRSr60w&amp;__tn__=-UK-y-R&amp;c=AT0YwZe1xCwWFFwhRgJyxrntdG2UP74A7ZHPvKcVCPHJJfMUJr7vTqvo4qv87tIkzkldP-sIpBr95lykiLO9EFTdzPmNn2uiSSulWuEE9EqzIQx5F4HNv1FCe_0nTcSoak9PFyWmxhSntnkCju2RW0xZwOmhcZjBPPM64ncq1SqRkj1810EDSuu4bMNy1ukc2hpnkIcfWBmI-JS-sNbAPDK0qBlRmnriGaTaxZHAj5v8ZJ_QucWQDtY" target="_blank" rel="nofollow noopener">https://admissions.illinois.edu/Invest/tuition</a></div><div dir="auto">ค่าครองชีพที่ Illinois <a class="oajrlxb2 g5ia77u1 qu0x051f esr5mh6w e9989ue4 r7d6kgcz rq0escxv nhd2j8a9 nc684nl6 p7hjln8o kvgmc6g5 cxmmr5t8 oygrvhab hcukyx3x jb3vyjys rz4wbd8a qt6c0cv9 a8nywdso i1ao9s8h esuyzwwr f1sip0of lzcic4wl py34i1dx gpro0wi8" role="link" href="https://www.numbeo.com/cost-of-living/in/Chicago?fbclid=IwAR18-MDZxIF55_gP9iwY1A2Va1_3cLqVua3uKwgiPEVly46WDw7nZECBKqA" target="_blank" rel="nofollow noopener">https://www.numbeo.com/cost-of-living/in/Chicago</a></div></div>]]></content:encoded>
						                            <category domain="https://thaikeras.com/community/main-forum/">คุยกันภาษา AI</category>                        <dc:creator>The Neural Engineer</dc:creator>
                        <guid isPermaLink="true">https://thaikeras.com/community/main-forum/online-education/</guid>
                    </item>
				                    <item>
                        <title>AI, Bio- &amp; Chem-Informatics</title>
                        <link>https://thaikeras.com/community/main-forum/ai-cheminformatics/</link>
                        <pubDate>Tue, 06 Jul 2021 09:12:26 +0000</pubDate>
                        <description><![CDATA[Keras Cheminformatics - สร้างโมเลกุลกราฟด้วย GANKeras มี Tutorial ใหม่ล่าสุดสำหรับ cheminformatics คือการสร้างโมเลกุลด้วยเทคนิค WGAN-GP (Wassterstien GAN with Gradient Penalty) ครับแรงบันดาล...]]></description>
                        <content:encoded><![CDATA[<p><img src="https://i.ibb.co/Gv8q9mM/MolGAN.png" /></p><p><span style="text-decoration: underline"><strong><span style="font-size: 24pt">Keras Cheminformatics - สร้างโมเลกุลกราฟด้วย GAN</span></strong></span></p><p>Keras มี Tutorial ใหม่ล่าสุดสำหรับ cheminformatics คือการสร้างโมเลกุลด้วยเทคนิค WGAN-GP (Wassterstien GAN with Gradient Penalty) ครับ</p><p>แรงบันดาลใจของงานในฝั่งนี้คือ งานต่างๆ ที่ต้องการทดลองบนโมเลกุลใหม่ๆ เช่นการหา ยาชนิดใหม่ (Drug Discovery) นั้นต้องมีการสร้างโมเลกุลที่มีคุณสมบัติทางเคมีที่ใกล้เคียงโมเลกุลที่เราต้องการ</p><p>อย่างไรก็ดีการหาโมเลกุลใหม่ๆ ที่ว่านั้น ด้วยเทคนิคในปัจจุบัน (เช่น Graph Matching, Node ordering heuristics) นั้นทำได้ไม่ง่าย</p><p>จากความสำเร็จของงานด้าน Deep Learning บน Graph Structure เลยเป็นที่มาที่ทำให้นักวิจัยสามารถออกแบบ GAN ที่ สร้าง molecule graph ใหม่ๆ ได้โดยตรงโดยตัดเทคนิคที่ซับซ้อนดังกล่าวออกไปเลยครับ</p><p> </p><p>ผู้สนใจสามารถดู Keras Tutorial อย่างละเอียดได้ที่นี่</p><p><a href="https://keras.io/examples/generative/wgan-graphs/">https://keras.io/examples/generative/wgan-graphs/</a></p><p> </p><p>Colab</p><p><a href="https://colab.research.google.com/github/keras-team/keras-io/blob/master/examples/generative/ipynb/wgan-graphs.ipynb">https://colab.research.google.com/github/keras-team/keras-io/blob/master/examples/generative/ipynb/wgan-graphs.ipynb</a></p><p> </p><p>Tutorial นี้ได้รับแรงบันดาลใจจากงาน MolGAN</p><p><a href="https://arxiv.org/pdf/1805.11973.pdf">https://arxiv.org/pdf/1805.11973.pdf</a></p><p> </p><p>อย่างไรก็ดีงานในกลุ่ม MolGAN นี้ยังไม่สามารถกำหนดลักษณะทางเคมีที่เราต้องการได้ชัดๆ เหมือนงาน GAN อื่นๆ เช่นกรณี FaceGAN เราสามารถกำหนดได้เลยว่าจะสร้าง หน้าบุคคลที่มีลักษณะอย่างไรบ้าง (ผู้ช่าย ผิวคล้ำ มีหนวด ใส่แว่น)</p><p> </p><p>ซึ่งการสร้าง Molecule graph ใหม่ๆ ที่มีคุณสมบัติทางเคมีที่เรากำหนดเป้ะๆ ก็จะเป็นงานวิจัยล่าสุดที่คนในวงการกำลังพัฒนากันต่อไป</p><p>ถ้ามีใครสนใจร่วมทำงานนี้สามารถ เมลไปคุยกับนักวิจัยที่เบลเยี่ยม ผู้เชียน Tutorial คนนี้ได้ที่นี่ครับ</p><p><a href="https://github.com/akensert">https://github.com/akensert</a>  (เป็นเพื่อนแอดมินเองครับ  :D )</p>]]></content:encoded>
						                            <category domain="https://thaikeras.com/community/main-forum/">คุยกันภาษา AI</category>                        <dc:creator>The Neural Engineer</dc:creator>
                        <guid isPermaLink="true">https://thaikeras.com/community/main-forum/ai-cheminformatics/</guid>
                    </item>
				                    <item>
                        <title>How to Grow Yourself into a success life</title>
                        <link>https://thaikeras.com/community/main-forum/how-to-grow-yourself-into-a-success-life/</link>
                        <pubDate>Thu, 06 May 2021 09:32:47 +0000</pubDate>
                        <description><![CDATA[พยายามเท่าไรแต่ไม่เก่งสักที โจทย์ในการพัฒนาตนเองThaiKeras and Kaggle และเพจเรียนออนไลน์ก็เก่งได้ - 27 มีนาคม 2021 เคยสัมผัสประสบการณ์ไหมว่า ทำไมพยายามเท่าไรแต่รู้สึกไม่เก่งสักที หรือไม่ถึงจุ...]]></description>
                        <content:encoded><![CDATA[<p><span style="text-decoration: underline;font-size: 24pt"><strong>พยายามเท่าไรแต่ไม่เก่งสักที โจทย์ในการพัฒนาตนเอง</strong></span></p><p>ThaiKeras and Kaggle และเพจเรียนออนไลน์ก็เก่งได้ - 27 มีนาคม 2021</p><p> </p><p>เคยสัมผัสประสบการณ์ไหมว่า ทำไมพยายามเท่าไรแต่รู้สึกไม่เก่งสักที หรือไม่ถึงจุดมุ่งหมายสักที</p><p>หลายๆ คนรวมทั้งตัวผู้เขียนในอดีตก็ได้ผ่านความรู้สึกนี้มาเป็นเวลานานหลายปี จนได้เจอแนวคิดที่เป็นคำตอบทำให้พัฒนาตัวเองได้จริงจัง และต่อเนื่อง ถึงแม้ไม่ได้เก่งกาจอะไรแต่ก็อยากแชร์แนวคิดดีๆ นี้เผื่อเป็นแนวทางให้เพื่อนๆ ครับ</p><p>สวัสดีครับเพื่อนๆ บทความนี้ บทความนี้เป็นการเขียนร่วมกันระหว่าง ThaiKeras ( <a href="https://fb.me/thaikeras">https://fb.me/thaikeras</a> ) กับเพจ "เรียนออนไลน์ก็เก่งได้" ( <a href="https://fb.me/onlinecourseth">https://fb.me/onlinecourseth</a> )  เพื่อแชร์แนวทางในการก้าวข้ามขีดจำกัด (ที่ไม่มีจริง) ของตัวเอง</p><p>เราลองเสนอแนวทางการพัฒนาฝีมือให้กับน้องๆ รุ่นใหม่ๆ  ที่อาจยังไม่สามารถ "พัฒนาตัวเอง" ได้เต็ม "ศักยภาพ"</p><p>ในภาพใหญ่ การพัฒนา "ศักยภาพ" ที่ว่านี้ หมายรวมถึงทุกทักษะอะไรก็ตามที่เราหลงใหล</p><p>เนื่องจากเขียนร่วมกับทีม ThaiKeras จะมีกรณีศึกษาเป็นเนื้อหาในฝั่ง IT โดยเฉพาะ Data Science เสริม แต่ก็สามารถปรับใชัได้กับทุกทักษะครับผม</p><p>เข้าเรื่องกันเลย</p><p>"ทำไมไปไม่ถึง?" จากที่ได้คุยกับน้องหลายคน อุปสรรคที่ได้รับฟังมาที่ทำให้พวกเราส่วนใหญ่ไม่สามารถพัฒนาตัวเองได้เท่าที่ควรมีอยู่ 4 ประเด็นหลักๆ คือ</p><ol><li>ไม่มีเวลา</li><li>ไม่มีเงิน</li><li>ไม่เก่งภาษา</li><li>ไม่มีแนวทางที่ถูกต้อง</li></ol><p> </p><p>ในการจะสู้กับอุปสรรคทั้ง 4 นี้ก่อนอื่นให้เรายืนยันกับตัวเองว่า มีความชอบและหลงไหลทักษะที่เราอยากพัฒนา และจิตใจแน่วแน่ พร้อมที่จะให้ "ความสำคัญ" กับการพัฒนาทักษะนี้</p><p>เพราะการพัฒนา ต้องทำต่อเนื่องหลายสัปดาห์ หลายเดือน หรือกระทั่งหลายปี ถ้าไม่ชอบหรือไม่แน่วแน่ ก็จะทำให้เลิกกลางคันได้ครับ</p><p>.</p><p> </p><p>ขอเริ่มจาก B. ซึ่งน่าจะแก้ง่ายที่สุดครับ</p><p> </p><p> </p><p><span style="text-decoration: underline"><strong>อุปสรรคข้อ B. เรื่องเงินไม่น่าใช่ปัญหาในยุคนี้</strong></span></p><p>ในมุมมองของผม ในโลกออนไลน์ปัจจุบันที่เรามีแหล่งเรียนรู้ออนไลน์ดีดีมากมาย ทั้งภาษาไทยทั้งภาษาอังกฤษ โดยคอร์สดีๆ ส่วนมากสามารถเรียนได้ฟรีหรือราคาถูกมากๆ โดยสำหรับลูกเพจ ThaiKeras ตัวอย่างคอร์สด้าน AI หรือ Data Science ฟรีหรือถูกๆ มากมายดูที่ <a href="https://thaikeras.com/2019/onlinecourses/">https://thaikeras.com/2019/onlinecourses/</a></p><p>สำหรับเพื่อนๆ ที่สนใจทักษะอื่นที่ไม่ใช่สาย IT อยากให้เพื่อนๆ ลองดู masterclass.com ที่มีสอนหลากหลายทักษะ เช่น การเขียน การทำหนัง การถ่ายภาพ การทำอาหาร ร้องเพลง ดนตรี ศิลปะ กีฬาต่างๆ ทั้งบาสเกตบอล เทนนิส เสก็ตบอร์ด</p><p>สอนโดยมืออาชีพระดับท้อป ตำนานที่ยังมีชีวิตของทักษะแต่ละด้าน!!</p><p>ค่าเรียนตลอดปี เหมาจ่ายกว่าร้อยคอร์ส อยู่แค่ราวๆ ห้าพันกว่าบาท ซึ่งน่าจะราคาถูกกว่าโทรศัพท์มือถือที่พวกเราใช้  (ยิ่งช่วงนี้มีโปรซื้อ 1 แถม 1 สามารถนำไปแชร์กับเพื่อนๆ  คนอื่นๆ เหลือแค่ไม่ถึงสามพันบาทต่อปีเท่านั้น)</p><p>ส่วนในสายวิชาการ คงไม่มีอะไรดีไปกว่า Khanacademy และ Coursera.org ที่เราเรียนจากมหาวิทยาลัยระดับโลกได้ฟรีๆ  ในแทบทุกวิชาทั้งสายวิทย์และสายศิลป์</p><p>คนที่อยากเจาะลึกด้าน AI และ Data Science ก็แน่นอนเพจเราแนะนำ Kaggle ที่ไม่เพียงให้เรียนรู้ฟรี ยังมีแถมเครื่องคอมพิวเตอร์ระดับสูงและสร้างโปรไฟล์การสมัครงานเจ๋งๆ ให้กับเราอีกด้วย</p><p>ไม่ว่าจะเป็นทักษะใดๆ ผมมั่นใจว่าในโลกออนไลน์มีแหล่งเรียนรู้ดีๆ ไม่แพง ให้เพื่อนๆ น้องๆ แน่นอน ถ้าใครมีทักษะที่ตนเองอยากพัฒนาแต่หาแหล่งเรียนรู้คุณภาพไม่เจอ ลองโพสต์เล่ากันได้นะครับ ผมจะช่วยหาครูดีๆ ออนไลน์ให้</p><p><span data-offset-key="bjhu6-0-0">พึ่งทราบว่า dek-d มีเพจรวมคอร์สเทพฟรี อัพเดตตลอดครับ เรียนเข้าไป วางแผนดีๆ ยังไงก็ประสบความสำเร็จ ชีวิตดีแน่ครับ </span><span class="py34i1dx"><span data-offset-key="bjhu6-1-0">https://web.facebook.com/OneMoreCoursebyDekD</span></span></p><p>กล่าวโดยสรุป ข้อจำกัดข้อ B. น่าจะตัดทิ้งไปได้เลยในยุคปัจจุบัน  </p><p>เราลองมาดูอุปสรรคข้ออื่นๆ กันต่อ</p><p> </p><p>.</p><p><span style="text-decoration: underline"><strong>อุปสรรค C. ไม่เก่งภาษา --&gt; ตั้งเป้าเรียนภาษาแบบพอฟังได้ และพัฒนาด้วยแหล่งเรียนรู้ภาษาไทยไปพลางๆ</strong></span></p><p>แหล่งเรียนรู้ที่แนะนำไปในหัวข้อก่อนๆ ล้วนเป็นภาษาอังกฤษ ทั้งนี้เพราะภาษาอังกฤษเป็นภาษาที่คนทั่วโลกใช้เป็นสื่อกลาง จึงมีแหล่งเรียนรู้ดีดีๆ มากมาย</p><p>ดีแบบ "ทำไมเราไม่เรียนแบบนี้มานานแล้ว *ะ" :D</p><p>ในระยะยาวอุปสรรคด้านภาษา สำหรับน้องๆ หรือเพื่อนๆ ที่คิดว่าตัวเองไม่เก่งภาษา ผมอยากแนะนำให้ "ตั้งเป้า" พัฒนาทักษะด้านนีั้ "จริงจัง" ครับ</p><p>ตั้งเป้าให้ภาษาอังกฤษเราฟังครูรู้เรื่องก็โอเค ยังไม่ต้องถึงขั้นพูดเป็นไฟแลบกับฝรั่ง (แต่แน่นอน ถ้าเราพัฒนาไปเรื่อยๆ เราก็พูดไฟแลบได้)</p><p>ในการ ฟัง พูด อ่าน เขียน สำหรับการเรียนรู้ภาษาในเบื้องต้น อาจเน้นแค่ ฟัง กับ อ่านเป็นหลักไปก่อน และเอาแค่พอฟังผู้สอนรู้เรื่องก็พอ ไม่ต้องรอให้หูเทพมากๆ แบบฟังหนังฝรั่งรู้เรื่อง</p><p>ในคอร์สออนไลน์ที่กล่าวมาในหัวข้อที่แล้ว คุณภาพเสียงและความชัดของผู้สอนจะดีมากๆ ทำให้จริงๆ แล้วเราสามารถฟังภาษาอังกฤษเหล่านี้ได้ไม่ยากเลย "ง่าย" กว่าการดูหนังฝรั่ง sound track มากๆ ครับ </p><p>ขอแค่เราค่อยๆ ไปทีละเสต็ป</p><p>โดยการพัฒนาภาษาอังกฤษ ผมคิดว่าใน youtube มี channels สอนภาษาดีๆ เยอะมากๆ  ตรงนี้ไม่น่าเป็นอุปสรรค รวมทั้ง app ฟรีต่างๆ เช่น duolingo หรือ mondly ก็มีสอนภาษาอังกฤษในรูปแบบภาษาไทย ก็ช่วยได้อีกด้านนึง</p><p>ดู app ภาษาอังกฤษดีๆ อีกมากมายที่นี่ครับ <a href="https://www.macthai.com/2016/08/23/8-apps-podcast-for-learning-english-on-iphone-ipad/">https://www.macthai.com/2016/08/23/8-apps-podcast-for-learning-english-on-iphone-ipad/</a></p><p>อย่างไรก็ดี ในระหว่างพัฒนาภาษาอังกฤษ ก็หาคนไทยเก่งๆ ในทักษะที่เราสนใจมาศึกษาประกอบไปด้วย คนไทยเราเก่งมากๆ ในหลายๆ ด้านและปัจจุบันก็น่าจะมี youtube channel ดีๆ ที่สอนทักษะแต่ละด้านเป็นภาษาไทย น่าจะครบแทบทุกทักษะ</p><p>เมื่อเราเริ่มเก่งภาษาอังกฤษแล้ว เราจึงสามารถต่อยอดความรู้ด้วยแหล่งเรียนรู้ภาษาอังกฤษได้ทันที</p><p>ตัวอย่างแหล่งเรียนรู้ภาษาไทยดีๆ ด้านวิชาการทั่วไป สำหรับน้องๆ ที่ยังเรียนอยู่และอยากพัฒนาเกรดให้ดี มีงบน้อยก็อาจลองดู startdee.com ที่มีติวเตอร์ชั้นเยี่ยมระดับประเทศในบ้านเรามาติวให้ทุกวิชา ในรูปแบบสมัยใหม่ เรียนสนุก เหมาจ่ายทุกวิชาตั้งแต่ป.4 ถึงม.6 ตกเดือนละไม่กี่ร้อยเท่านั้น</p><p>สำหรับสายเทคฯ หรือ IT การฝึก programming ตั้งแต่เบื้องต้น จนถึงงานด้านวิศวกรรม และ web programming ต่างๆ ฯลฯ ลองดูที่เพจ "ลุงวิศวกรสอนคำนวณ" หรือใน youtube ช่อง uncle engineer ซึ่งเป็นเพจที่สอนความรู้ดีๆ ให้พวกเราอยู่เสมอครับ</p><p> </p><p>**หมายเหตุ ผมไม่ได้ค่า commission ใดๆ เลยนะครับ :D</p><p>.</p><p> </p><p><span style="text-decoration: underline"><strong>อุปสรรค A. ไม่มีเวลา --&gt; สู้ด้วยแนวคิด "ก้าวเล็กๆ ที่สม่ำเสมอทุกวัน คือระยะทางที่ยิ่งใหญ่"</strong></span></p><p>บิ้กบอสที่แท้จริงของเจ้า A B C น่าจะเป็นเรื่อง "เวลา" นี่แหละครับ</p><p>การแก้โจทย์นี้ เคล็ดลับคือการปรับแนวคิดใหม่ ไม่มองว่าต้องมีเวลาหลายชั่วโมงต่อวันถึงจะพัฒนาทักษะได้</p><p>แต่ให้เน้นความ "สม่ำเสมอ" ฝึกหรือศึกษา "ทุกวัน" (consistency)</p><p>ครึ่งชั่วโมง "ทุกวัน" ดีกว่า วันเดียว 8-10 ชั่วโมง แล้วก็เหนื่อย เลิก ดังนั้นให้วางแผนทำสล็อตเวลาอย่างน้อยครึ่งชั่วโมงในการพัฒนาทักษะทุกๆ วัน</p><p>ถ้าหาเวลาไม่ได้ต้องตื่นเช้ากว่าเดิมครึ่งชั่วโมง หรือนอนดึกกว่าเดิมครึ่งชั่วโมง ก็ยังอยู่ในขอบข่ายที่ไม่ฝืนมากจนเกินไป</p><p>โดยถ้าวันไหนยุ่งมาก หรืองานด่วนเข้าจริงๆ อาจจะขอแค่ดูคลิปหรืออ่านหนังสือ "5 นาที" ก็ยังถือว่าโอเค</p><p>ใช้หลัก "ก้าวเล็กๆ ที่สม่ำเสมอทุกวัน คือระยะทางที่ยิ่งใหญ่" ปรมาจารย์หลายท่านได้กล่าวไว้</p><p>วันที่ติดธุระสุดๆ ก็ให้แอบไปศึกษาดูคลิปพัฒนาทักษะตอน "เข้าห้องน้ำ" สัก 5 นาที ทุกคนมีเวลาแน่นอนครับ :D</p><p>และในวันปกติ ให้ "ความสำคัญ" กับเรื่องพัฒนาทักษะนี้อยู่ใน "ระดับสูงสุด" (maximum priority) แบ่งเวลาให้ชัดเจน ใครถนัดตอนเช้าก็ฝึกตอนเช้า ใครหาเวลาได้ตอนค่ำก็ฝึกตอนค่ำ หลักสำคัญคือ อย่ายอมให้เรื่องอื่นๆ มาเบียดบังเวลาตรงนี้ไปได้</p><p>จุดสำคัญระหว่างคนที่ประสบความสำเร็จสุดๆ น่าจะเป็นเรื่อง การ "ให้ความสำคัญสูงสุด" แบ่งเวลาพัฒนาที่ทักษะที่สนใจอย่าง "สม่ำเสมอ" นั่นคือ Prioritizing กับ consistency นี้ครับ</p><p>คำว่า "สม่ำเสมอ" คือ ทุกวัน ไม่ว่าจะเป็นวันหยุด วันเกิด วันสงกรานต์ ปีใหม่ หรือแม้กระทั่งวันที่เราป่วยก็ตาม (ถ้าป่วยมากก็เอาแค่ 5 นาที)</p><p>ฝึกฝนและทำจนฝังอยู่ในสายเลือด พอเวลาผ่านไปสัก 1-2 ปี เราจะรู้สึกว่าเราพัฒนามากขึ้นอย่างไม่น่าเชื่อ </p><p>หลักเดียวกับหนังสือชื่อดัง Outlier ของ Malcolm Gladwell ที่ว่าถ้าเราใช้เวลาฝึกทักษะเป็นเวลา 10,000 ชั่วโมงเราจะกลายตะลึงกับการพัฒนาของตัวเราเอง โดยจริงๆ เราจะสังเกตการพัฒนาของตัวเราเองได้ไม่ต้องรอถึงหมื่นชั่วโมงครับ</p><p>คนเก่งๆ บางคนอาจใช้เวลาไม่กี่เดือน แต่อย่าไปเปรียบเทียบกับคนอื่นครับ พวกเราทุกคนถ้ามีความอดทนฝึกฝนสม่ำเสมอ "ทุกวัน" เราจะเก่งขึ้นมากๆ และพัฒนาไปเรื่อยๆ</p><p>คนที่ควรเปรียบเทียบมีคนเดียว คือ ตัวเราเอง "เมื่อวาน" หรือ "สัปดาห์ก่อน" ให้เราเก่งกว่าเดิมสักนิดหน่อยก็ยังดี</p><p>.</p><p> </p><p><span style="text-decoration: underline"><strong>อุปสรรค D. ไม่มีแนวทางที่ถูกต้อง --&gt; ต้องหาอาจารย์ (mentor) และทำการบ้าน "ภาพใหญ่" จากนั้นให้ความสำคัญกับการเข้าใจ "เป้าหมาย" ที่แท้จริงและออกแบบเส้นทางใน “แต่ละขั้นตอน” ให้ชัดเจน</strong></span></p><p>การ "ตั้งเป้าหมายที่แท้จริง" และมอง "ภาพใหญ่" ของทักษะที่เราต้องการพัฒนาให้ถึงจุดสูงสุดมีความสำคัญมากในการกำหนด "แนวทางที่ถูกต้อง" ซึ่งจะตัดสินเราได้เลยว่าจะทำสำเร็จหรือไม่  ในหัวข้อนี้จึงขอขยายความยาวหน่อยนะครับ</p><p>ก่อนอื่นเราต้องรู้ว่าเป้าหมายของเราในการพัฒนาทักษะคืออะไรกันแน่ และภาพรวมประกอบไปด้วยกี่ "ทักษะย่อย" ที่ต้องพัฒนา</p><p>ตัวอย่างเช่น การจะพัฒนาภาษาอังกฤษ ตอบตัวเองให้ได้ชัดๆ ว่าตั้งเป้าแบบไหน พัฒนาเพื่ออะไรกันแน่ อาทิ เช่น</p><ul><li>เตรียมตัวไปเรียนต่อและใช้ชีวิตในต่างประเทศ (ฟัง พูด อ่าน เขียน)</li><li>คุยกับเพื่อนฝรั่งแถวบ้าน (พูด ฟัง)</li><li>ฟัง lecture ภาษาอังกฤษจากแหล่งเรียนรู้ออนไลน์ให้รู้เรื่อง (ฟังและอ่านเป็นหลัก)</li><li>อยากอ่านนิยายในเวอร์ชั่นภาษาอังกฤษได้คล่อง (อ่านเป็นหลัก)</li></ul><p> </p><p>จะเห็นว่า ในการบรรลุแต่ละเป้าหมายจะมีการพัฒนาทักษะที่อาจไม่เหมือนกัน และยากง่ายต่างกันไป โดยการเตรียมตัวไปเรียนต่อและใช้ชีวิตในต่างประเทศ ต้องพัฒนาทั้ง ฟัง พูด อ่าน เขียน ในระดับที่ค่อนข้างสูง  ในขณะที่การอ่านนิยายเรื่องโปรดอาจเน้นแค่ทักษะการอ่าน โดย เน้นจำคำศัพท์ และเข้าใจไวยากรณ์ภาษา แต่ไม่ต้องเน้นฟังและพูด</p><p>เมื่อได้เป้าหมายและภาพใหญ่แล้วก็ศึกษา "เส้นทาง" หรือ Roadmap จากความสามารถเราในปัจจุบันไปสู่ ความสามารถที่เราต้องการเป็น   โดยจะเป็นภารเจาะลึกทักษะย่อยที่จำเป็นให้ย่อยลงไปอีก ให้เรารู้ว่าเราจะพัฒนาตัวเองทีละขั้นได้อย่างไร</p><p>ตัวอย่างการเพิ่ม skill การอ่านนิยายข้างต้น อาจสามารถออกแบบ Roadmap ได้โดยดูจาก <a href="https://www.penguinreaders.co.uk/books/">https://www.penguinreaders.co.uk/books/</a> ที่ได้แบ่ง skill การอ่านไว้เป็น 8 ระดับตั้งแต่ level 0 (ศัพท์ไม่กี่ร้อย) ถึง level 7 (ศัพท์หลายพัน) </p><p>โดยเราสามารถประเมิน level ปัจจุบันของเราได้ว่า หนังสือใน level ไหน ที่เราสามารถอ่านได้อย่างไม่ติดขัด แล้วค่อยวางแผนไต่ระดับไปจนถึง level สูงๆ ก่อนที่จะไปสู่วรรณกรรมต้นฉบับ เป็นต้น </p><p>โดยเราสามารถออกแบบได้เลยว่าใน 1 ปี เราควรอ่านได้กี่เล่ม level ใดบ้าง (ศึกษาจำนวนหน้าและจำนวนคำในแต่ละ level ก่อนออกแบบ) และออกแบบการอ่านแต่ละเดือน แต่ละสัปดาห์ จนถึงแต่ละวัน เพื่อให้บรรลุเป้าหมาย</p><p>ตัวอย่างข้างต้นเป็นตัวอย่างง่ายๆ ในการซอยภาพใหญ่เป็นภาพเล็ก และออกแบบ Roadmap ไปจนถึงสิ่งที่เราต้องทำในแต่ละวัน</p><p>กรณีที่เราไม่เห็นภาพใหญ่ หรือมอง Roadmap ไม่ออก จุดนี้เราต้องหาผู้เชี่ยวชาญมาแนะนำ นั่นคือหา mentor ที่ยินดีแนะนำเรานั่นเองครับ</p><p>ในกรณีส่วนใหญ่เราสามารถหา Roadmap สำหรับเป้าหมายด้านต่างๆ ผ่าน Google ได้ไม่ยากนัก หรือหา Facebook Group ที่มีกลุ่มคนและผู้เชี่ยวชาญที่สนใจเรื่องเดียวกัน เรื่องเดียวกันกับเราก็ได้ครับ</p><p>อนึ่ง ผมเพิ่งเข้าใจความสำคัญเรื่องนี้จริงจังก็ นู่น ตอนอายุเกือบ 30 (ควรจะรู้ตั้งแต่ 10 ขวบ) เมื่อมีโอกาสได้ไปทำงานที่ธนาคารใหญ่แห่งหนึ่งในบ้านเรา และหัวหน้าเป็นคนที่เก่งเรื่องนี้มาก ทำให้ได้เรียนรู้มุมมองที่พลาดมาตลอด</p><p>การแตกภาพใหญ๋ออกเป็นทักษะย่อยที่จำเป็นนั้น ชี้เป็นชี้ตายในเป้าหมายของเรา</p><p>เพราะว่าต่อให้เราวางแผนพัฒนาทุกวัน แต่ถ้าทักษะนั้นในภาพใหญ่ต้องการ ทักษะย่อย 10 ด้าน แต่เราวางแผนฝึกแค่ 5 ด้าน เพราะมองภาพใหญ่ไม่ครบ ฝึกทุกวัน ยังไงก็ไปไม่ถึงจุดหมาย</p><p>.</p><p> </p><p>====กรณีศึกษา AI &amp; DataScience===</p><p>ถ้าเราตั้งเป้าว่าจะพัฒนาทักษะโปรแกรมมิ่งในกรอบเวลา 1 ปี</p><p>เราต้องตั้งเป้าให้ชัดว่า "เรามีความสามารถอะไร เมื่อจบ 1 ปี" โดยเป็นเป้าที่เราควบคุมได้ ไม่มีปัจจัยภายนอกมาเกี่ยวข้อง</p><p>ไม่ควรตั้งเป้าหมายในทำนองเปรียบเทียบกับคนอื่นๆ เพราะเป็นปัจจัยภายนอกที่เราคุมไม่ได้</p><p>เช่น ตั้งเป้าชนะเลิศรายการ Hackathon ซึ่งต้องแข่งขันกับคนอื่น เราไม่สามารถควบคุมให้คนอื่นฝึกฝนน้อยกว่าเราได้</p><p>ตัวอย่างเป้าหมายที่ชัดและเราควบคุมได้ ขอยกเป้าด้าน Deep Learning เป็นกรณีศึกษา เช่นตั้งเป้าว่า</p><p>"ภายในสิ้นปีนี้ สามารถเขียนโปรแกรม "แปลภาษา" ด้วย Transformer โดยใช้ Tensorflow และต้องเข้าใจทุกบรรทัด"</p><p>จากนั้นออกแบบว่าถ้าจะทำตามเป้าได้ ต้องเข้าใจด้านไหนบ้าง แตกเป็นเป้าย่อย ในกรณีนี้ สามารถแบ่งเป้าได้ดังนี้</p><p>1) เข้าใจทฤษฎีและสมการคณิตศาสตร์ของ Transformers ทั้งหมด  2) พื้นการเขียนโปรแกรมด้วย Tensorflow ต้องแน่น 3) ศึกษา data pipeline ที่มาตรฐานที่สุดสำหรับงานแปลภาษา</p><p>จากนั้นเราสามารถซอยสองเป้าข้างบนให้ย่อยลงไปอีกได้ โดยแผนย่อยขึ้นอยู่กับแต่ละคนว่าทักษะด้านไหนที่ตนยังขาดอยู่</p><p>เช่น การจะเข้าใจทฤษฎีของ Transformers อาจต้องตั้งเป้าเรียนพื้นฐาน Deep Learning ก่อน ดังนั้นตั้งเป้าย่อยให้จบคอร์สของ deeplearning.ai ใน coursera ภายใน x เดือน </p><p>อีกสองเป้าทีเหลือก็พิจารณาทำนองเดียวกันว่าต้องแตกขั้นตอนย่อยต่อไปอีกหรือไม่ เช่นจะเข้าใจ Tensorflow ก็ต้องมีพื้นฐาน Numpy ที่ดีมาก่อน เป็นต้น</p><p>เป้านี้อาจโยงไปสู่ปัญหาด้านไม่เก่งภาษา  คนที่ไม่มั่นใจภาษาอังกฤษอาจตั้งเป้าพัฒนาทักษะการฟังก่อน โดย Andrew Ng ผู้สอนคอร์สดังกล่าวเป็นคนที่พูดภาษาอังกฤษช้าและเข้าใจง่ายมากๆ ดังนั้นหาแนวทางฝึกการฟังสัก 1 เดือนก็น่าจะพอ โดยสามารถฝึกจากสื่อภาษาอังกฤษที่คนสอนพูดไทยได้ หรือมี subtitle เป็นต้น</p><p>ถัดไป เราจะได้แผนจากรายปี เป็นรายเดือน แตกรายเดือน เป็นรายสัปดาห์ จนถึงรายวัน เราจะรู้ว่าในแต่ละวันเราต้องทำอะไรบ้าง ซึ่งแนวคิด Roadmap นี้ก็จะสอดคล้องกับแนวคิด "การให้ความสำคัญสูงสุด" (Prioritizing) และ "ความสม่ำเสมอ" (consistency) ที่อธิบายในข้อ A. ด้วย</p><p>และเพื่อให้ผลลัพธ์วัดผลหรือจับต้องได้จริง อาจตั้งเป้าว่าผลลัพธ์สุดท้ายต้องอยู่ในรูป open source ที่ทุกคนสามารถเอาไปใช้ได้ อย่างนี้ก็ได้</p><p> </p><p>.</p><p> </p><p><span style="text-decoration: underline"><strong>==ทำไงดี พัฒนาจริง แต่ไม่ถึงเป้าหมาย==</strong></span></p><p>ไม่เป็นไรครับ!</p><p>ถ้าเราได้ทำตามแผนทุกวันแล้ว แต่ไม่บรรลุเป้าหมาย 100% ก็ไม่ต้องเสียใจ  (เช่น งานอาจยากกว่าที่ออกแบบไว้ หรือติดธุระด่วยหลายวัน ทำให้ช่วงนั้นใช้เวลาได้ฝีกฝนได้แค่ไม่กี่นาทีในแต่ละวัน)</p><p>บรรลุเป้าหมายช้าไปนิดจาก 1 ปี เป็น 1 ปีครึ่ง หรือ 2 ปี ชีวิตเราก็ไม่ได้แย่อะไร  </p><p>มีแต่ดีขึ้นอย่างเดียวเพราะอย่างไรเราก็ก้าวหน้า</p><p>โดยถ้าเราทำสม่ำเสมอเราต้องบรรลุแน่นอนแม้จะช้าไปหน่อย</p><p> </p><p>.</p><p> </p><p><span style="text-decoration: underline"><strong>===แนะนำ แนวคิดดีๆ ===</strong></span></p><p>สาเหตุที่แท้จริงของอุปสรรคในข้อ A และ D นี้น่าจะเป็นเรื่องของ "แนวคิดที่ถูกต้อง"</p><p>ถ้ามี "อาจารย์ (mentor) ที่ให้คำแนะนำในการพัฒนาตัวเองได้อย่างถูกต้อง" เราจะยิ่งฝึกฝนได้ดีขึ้น ในหัวข้อนี้เลยอยากแชร์หนังสือและคลิปเกี่ยวกับเรื่อง "แนวคิด" ที่่ถือได้ว่าเป็นแนวคิด "เปลี่ยนชีวิต" ทีเดียวครับ</p><p> </p><ul><li>7-Habits of Highly Effective People โดย Steven R. Covey หนังสือในตำนานที่ทุกคนรู้จัก ส่วนตัว แนะนำอ่านเวอร์ชั่นวัยรุ่น ซึ่งอ่านง่ายกว่ามาก คือ 7-Habits of Highly Effective Teens โดย Sean Covey ลูกชายของ Steven Covey เองครับ  ถ้าหาซื้อไม่ได้ให้ ลองซื้อ e-book ใน PlayBook หรือ Kindle ก็ได้ครับ</li><li>21 Irrefutable Laws of Leaderships โดย John C. Maxwell เพิ่งกลับมาแปลไทยใหม่ไม่นานมานี้ เล่มนี้ให้ 21 แนวคิดไม่ใช่เป็นประโยชน์แต่กับผู้นำองค์กร แต่เป็น 21 หลักในการใช้ชีวิตให้ถึงศักยภาพที่แท้จริงของพวกเราเองครับ แนวคิดทุกข้อต้องเอามาอ่านและคิดซ้ำทุกปีและจะพบว่าเมื่อเราอัพเกรดตัวเองแล้ว แนวคิดจะลึกซึ้งขึ้นเรื่อยๆ ให้เราพัฒนาต่อไปได้อีก ศึกษาแนวคิดเบื้องต้นของ John ได้ที่ <a href="https://www.youtube.com/watch?v=ntLjk8vELCA">https://www.youtube.com/watch?v=ntLjk8vELCA</a></li><li>Start with Why และ The Infinite Game โดย Simon Sinek ว่าด้วยเรื่องของการเริ่มต้นที่เป้าหมายที่แท้จริงของชีวิต และการพัฒนาอย่าง "ไม่มีจุดจบ" (Inifinite) ซึ่งก็เป็นแนวคิดที่สอดคล้องกับเล่มอื่นๆ ด้านบน แต่ Simon Sinek เป็นนักเล่าเรื่องที่เก่งและสนุกที่สุดคนนึงในยุคนี้ เราจะเข้าใจแนวคิดในมุมมองที่ต่างออกไป แนะนำให้เพื่อนๆ ลองค้น youtube ของ Simon และฟังให้หมดทุกคลิปครับ</li><li>(Growth) Mindset โดย Carol Dweck โดยแนะนำให้ฟังคลิป TED เพื่อเข้าใจแนวคิดหลักเรื่องที่ว่า ทุกคนสามารถพัฒนาความสามารถได้ทุกด้านถ้ามีการฝึกฝนที่ถูกต้องและสม่ำเสมอ <a href="https://youtu.be/hiiEeMN7vbQ">https://youtu.be/hiiEeMN7vbQ</a></li></ul><p>จริงๆ อาจมีอีกหลายเล่มที่อยากแนะนำ แต่ 4-5 เล่มข้างต้นถือเป็น "ที่สุด" สำหรับผมในหัวข้อนี้ครับ :D ทุกเล่มข้างต้นเข้าใจว่ามีแปลไทยทั้งหมด</p><p>ถ้าเพื่อนๆ มีหนังสือหรือแหล่งเรียนรู้ "เปลี่ยนชีวิต" อื่นๆ สามารถแชร์กันได้นะคร้าบบ</p><p> </p><p><span style="text-decoration: underline"><strong>สรุปการแก้สมการ</strong></span></p><p>ก่อนอื่นต้องแน่วแน่ ชอบ และให้ความสำคัญสูงสุดกับทักษะที่เราอยากพัฒนา</p><ol><li>ไม่มีเวลา --&gt; ปรับแนวคิดให้ถูกต้อง แล้วจะแบ่งเวลาได้แน่นอน</li><li>ไม่มีเงิน --&gt; พัฒนา skills ผ่านแหล่งเรียนรู้ออนไลน์ราคาถูกหรือฟรี</li><li>ไม่เก่งภาษา --&gt; ตั้งเป้าให้เรียนภาษาอังกฤษให้พอฟังรู้เรื่องก็พอไม่ต้องเก่ง และเรียนคอร์สภาษาไทยไปพลางๆ ก่อน</li><li>ไม่มีแนวทางชัดเจน --&gt; ต้องชัดเจนในเป้าหมาย จากนั้นเรียนรู้ภาพใหญ่ และออกแบบ Roadmap ที่ถูกต้อง ถ้าจะให้ดีหา mentor ที่เชื่อถือได้ (ออนไลน์ก็ได้)</li></ol>]]></content:encoded>
						                            <category domain="https://thaikeras.com/community/main-forum/">คุยกันภาษา AI</category>                        <dc:creator>The Neural Engineer</dc:creator>
                        <guid isPermaLink="true">https://thaikeras.com/community/main-forum/how-to-grow-yourself-into-a-success-life/</guid>
                    </item>
				                    <item>
                        <title>Deploy โมเดลเป็น Web App ง่ายๆ by Streamlit, Huggingface &amp; WandB</title>
                        <link>https://thaikeras.com/community/main-forum/streamlit/</link>
                        <pubDate>Wed, 21 Apr 2021 09:14:18 +0000</pubDate>
                        <description><![CDATA[update 2023 : รวมบทความเกี่ยวกับ WandB (เลื่อนดูด้านล่าง)

 
---

Deploy โมเดลเป็น Web App ง่ายแบบปลอกกล้วย ด้วย Streamlit


ThaiKeras and Kaggle - 21 เมษายน 2021


 


สวัสดีค...]]></description>
                        <content:encoded><![CDATA[<div class="" data-block="true" data-editor="8rchh" data-offset-key="6tjso-0-0">
<div data-offset-key="6tjso-0-0"><span style="text-decoration: underline">update 2023</span> : รวมบทความเกี่ยวกับ WandB (เลื่อนดูด้านล่าง)</div>
</div>
<div data-offset-key="6tjso-0-0"> </div>
<div data-offset-key="6tjso-0-0">---</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="6tjso-0-0">
<div class="_1mf _1mj" data-offset-key="6tjso-0-0"><span style="text-decoration: underline;font-size: 24pt"><strong>Deploy โมเดลเป็น Web App ง่ายแบบปลอกกล้วย ด้วย Streamlit</strong></span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="6smtr-0-0">
<div class="_1mf _1mj" data-offset-key="6smtr-0-0"><em>ThaiKeras and Kaggle - 21 เมษายน 2021</em></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="afil5-0-0">
<div class="_1mf _1mj" data-offset-key="afil5-0-0"><span data-offset-key="afil5-0-0"> </span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="65ao-0-0">
<div class="_1mf _1mj" data-offset-key="65ao-0-0"><span data-offset-key="65ao-0-0">สวัสดีคร้าบ วันนี้จะแชร์หนึ่งในวิธี Deploy โมเดลของเราบน web app ที่ง่ายและเร็วที่สุดในจักรวาลด้วย Python library ที่ชื่อว่า streamlit ครับ (รูปที่ 1)</span></div>
</div>
<div data-offset-key="4lual-0-0">https://i.ibb.co/dm9MffM/front.png</div>
<div data-offset-key="4lual-0-0"> </div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="fja0j-0-0">
<div class="_1mf _1mj" data-offset-key="fja0j-0-0"><span data-offset-key="fja0j-0-0">ถ้าจะสรุปการ Deployment โมเดลด้วย streamlit ใน 1 วรรค ก็คือ เราเขียน Python ปกติคล้ายเขียนบน Jupyter เลย เพียงแต่การเขียน output แทนที่เราจะใช้ print() เราใช้ streamlit.write() แทน และรับ input ด้วย streamlit.text_input() และเซพไว้ในไฟล์สมมติชื่อ app.py</span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="26qin-0-0">
<div class="_1mf _1mj" data-offset-key="26qin-0-0"><span data-offset-key="26qin-0-0"> </span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="1qp0r-0-0">
<div class="_1mf _1mj" data-offset-key="1qp0r-0-0"><span data-offset-key="1qp0r-0-0">จากนั้นบน server ของเรา เราเพียงสั่ง </span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="es3g1-0-0">
<div class="_1mf _1mj" data-offset-key="es3g1-0-0"><span data-offset-key="es3g1-0-0">streamlit run app.py</span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="55n1b-0-0">
<div class="_1mf _1mj" data-offset-key="55n1b-0-0"><span data-offset-key="55n1b-0-0"> </span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="eqlic-0-0">
<div class="_1mf _1mj" data-offset-key="eqlic-0-0"><span data-offset-key="eqlic-0-0">แค่นี้จบเลยครับ เราจะได้ web app มาใช้งานทันที ง่ายไหมครับ :D</span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="d1fg6-0-0">
<div class="_1mf _1mj" data-offset-key="d1fg6-0-0"><span data-offset-key="d1fg6-0-0">Streamlit สามารถ deploy Machine learning โมเดลได้หลากหลาย โดยดู show cases มากมายได้ที่ streamlit.io (รูปที่ 2)</span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="dpk3t-0-0">
<div class="_1mf _1mj" data-offset-key="dpk3t-0-0">
<div data-offset-key="4lual-0-0"> </div>
<div data-offset-key="4lual-0-0">https://i.ibb.co/YPZy0Vv/2-showcases.png<br /><span data-offset-key="aicv8-0-0"> </span></div>
</div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="c46g2-0-0">
<div class="_1mf _1mj" data-offset-key="c46g2-0-0"><span data-offset-key="c46g2-0-0">ถ้าสนใจลองมาดูรายละเอียดเพิ่มเติมกันในบทความนี้กันครับ</span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="52qbs-0-0">
<div class="_1mf _1mj" data-offset-key="52qbs-0-0"><span data-offset-key="52qbs-0-0"> </span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="8o7f4-0-0">
<div class="_1mf _1mj" data-offset-key="8o7f4-0-0"><span data-offset-key="8o7f4-0-0">.</span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="ftsce-0-0">
<div class="_1mf _1mj" data-offset-key="ftsce-0-0"><span data-offset-key="ftsce-0-0"> </span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="df9c5-0-0">
<div class="_1mf _1mj" data-offset-key="df9c5-0-0"><span data-offset-key="df9c5-0-0">3 หัวใจสำคัญของ Streamlit </span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="8ogf5-0-0">
<div class="_1mf _1mj" data-offset-key="8ogf5-0-0"><span data-offset-key="8ogf5-0-0">--------------------------</span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="8e6h9-0-0">
<div class="_1mf _1mj" data-offset-key="8e6h9-0-0"><span data-offset-key="8e6h9-0-0"> </span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="8j34d-0-0">
<div class="_1mf _1mj" data-offset-key="8j34d-0-0"><span data-offset-key="8j34d-0-0">Streamlit ถูกออกแบบมาโดย 3 หลักการนี้ครับ</span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="92uf7-0-0">
<div class="_1mf _1mj" data-offset-key="92uf7-0-0"><span data-offset-key="92uf7-0-0"> </span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="857c3-0-0">
<div class="_1mf _1mj" data-offset-key="857c3-0-0"><span data-offset-key="857c3-0-0"> 1. Simple API </span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="25hka-0-0">
<div class="_1mf _1mj" data-offset-key="25hka-0-0"><span data-offset-key="25hka-0-0"> การใช้ library streamlit นั้นเข้าใจง่ายมากๆ เช่น streamlit.text_input() ก็จะสร้าง text input widget ขึ้นมาให้ user กรอกข้อมูล </span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="bmksm-0-0">
<div class="_1mf _1mj" data-offset-key="bmksm-0-0"> </div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="dhn36-0-0">
<div class="_1mf _1mj" data-offset-key="dhn36-0-0"><span data-offset-key="dhn36-0-0"> หรือ streamlit.sidebar.text_input() ก็จะสร้าง input widget แบบเดียวกัน แต่ไปอยู่บน sidebar แทน</span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="bg575-0-0">
<div class="_1mf _1mj" data-offset-key="bg575-0-0"> </div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="1mft2-0-0">
<div class="_1mf _1mj" data-offset-key="1mft2-0-0"><span data-offset-key="1mft2-0-0"> streamlit.checkbox('Check this') ก็จะสร้าง checkbox ทันที โดย return ค่าเป็น True/False</span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="2mf53-0-0">
<div class="_1mf _1mj" data-offset-key="2mf53-0-0"><span data-offset-key="2mf53-0-0"> เป็นต้น โดยดู API ทั้งหมดง่ายๆ ได้ที่ Cheat sheet </span><span class="py34i1dx"><span data-offset-key="2mf53-1-0">https://share.streamlit.io/daniellewisdl/streamlit-cheat-sheet/app.py</span></span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="45g6i-0-0">
<div class="_1mf _1mj" data-offset-key="45g6i-0-0"> </div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="cgan7-0-0">
<div class="_1mf _1mj" data-offset-key="cgan7-0-0"><span data-offset-key="cgan7-0-0"> โดย streamlit จะจัดเรียง layout ให้สวยงามตามขนาดหน้าจอของผู้ใช้อย่างอัตโนมัติ</span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="b5nt-0-0">
<div class="_1mf _1mj" data-offset-key="b5nt-0-0"><span data-offset-key="b5nt-0-0"> </span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="cu6pc-0-0">
<div class="_1mf _1mj" data-offset-key="cu6pc-0-0"><span data-offset-key="cu6pc-0-0"> 2. Widget is variable</span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="59d0n-0-0">
<div class="_1mf _1mj" data-offset-key="59d0n-0-0"><span data-offset-key="59d0n-0-0"> ทุกๆ widget ไม่ว่าจะเป็น input, checkbox, slide, หรือ file_upload widgets จะ return ค่าเป็นตัวแปร Python ซึ่งค่าของตัวแปรก็คือค่าที่ user ใส่ค่าเข้ามา เช่น </span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="k0np-0-0">
<div class="_1mf _1mj" data-offset-key="k0np-0-0"> </div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="81j7-0-0">
<div class="_1mf _1mj" data-offset-key="81j7-0-0"><span data-offset-key="81j7-0-0"> txt = streamlit.input_text('Input here:')</span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="3732t-0-0">
<div class="_1mf _1mj" data-offset-key="3732t-0-0"> </div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="d1lb7-0-0">
<div class="_1mf _1mj" data-offset-key="d1lb7-0-0"><span data-offset-key="d1lb7-0-0"> เมื่อ user กรอกข้อความใน text เข้ามา ตัวแปร txt ก็จะอัพเดตเป็น string variable ที่ user กรอกมาโดยอัตโนมัติครับ เราไม่ต้องยุ่งกับ html, css, java script, backend, frontend ใดๆ เลยครับ</span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="as6ni-0-0">
<div class="_1mf _1mj" data-offset-key="as6ni-0-0"> </div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="f26md-0-0">
<div class="_1mf _1mj" data-offset-key="f26md-0-0"><span data-offset-key="f26md-0-0"> 3. Deploy Instantly with Auto update </span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="d96qp-0-0">
<div class="_1mf _1mj" data-offset-key="d96qp-0-0"><span data-offset-key="d96qp-0-0"> เราสามารถ deploy ได้บน server เพียงสั่งคำสั่งเดียว streamlit run app.py</span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="73ehs-0-0">
<div class="_1mf _1mj" data-offset-key="73ehs-0-0"><span data-offset-key="73ehs-0-0"> นอกจากนี้ ทุกครั้งที่เราแก้ source file ที่เกี่ยวข้อง, streamlit จะ detect เองอัตโนมัติและอัพเดต application ของเราทันที โดยที่เราไม่ต้องทำอะไรเลย!! </span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="3qjsf-0-0">
<div class="_1mf _1mj" data-offset-key="3qjsf-0-0"> </div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="c8c2t-0-0">
<div class="_1mf _1mj" data-offset-key="c8c2t-0-0"><span data-offset-key="c8c2t-0-0"> ที่เจ๋งมากๆ ก็คือจริงๆ แล้วเราไม่ต้องเช่าและจัดการ server เองด้วยซ้ำเนื่องจาก Streamlit มีบริการจัดการ server ให้ github users ทุกคน "ฟรีๆ" คนละ 3 apps เพียงแค่ยื่นเจตจำนงที่ </span><span class="py34i1dx"><span data-offset-key="c8c2t-1-0">https://streamlit.io/sharing-sign-up</span></span><span data-offset-key="c8c2t-2-0"> ซึ่งโดยปกติใช้เวลาไม่ถึงหนึ่งสัปดาห์ก็จะได้รับการอนุมัติครับ </span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="f3vbu-0-0">
<div class="_1mf _1mj" data-offset-key="f3vbu-0-0"> </div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="5agto-0-0">
<div class="_1mf _1mj" data-offset-key="5agto-0-0"><span data-offset-key="5agto-0-0"> ถ้าได้สิทธิแล้วเรา deploy ผ่าน github และ streamlit.io ได้เลย โดยไม่ต้องยุ่งกับฝั่ง server ใดๆ </span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="fe4gk-0-0">
<div class="_1mf _1mj" data-offset-key="fe4gk-0-0"><span data-offset-key="fe4gk-0-0"> รายละเอียดเพิ่มเติมของ free streamlit server ดูหัวข้อข้างล่างครับ</span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="aqib2-0-0">
<div class="_1mf _1mj" data-offset-key="aqib2-0-0"> </div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="ft3k7-0-0">
<div class="_1mf _1mj" data-offset-key="ft3k7-0-0"><span data-offset-key="ft3k7-0-0">.</span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="d9ppt-0-0">
<div class="_1mf _1mj" data-offset-key="d9ppt-0-0"><span data-offset-key="d9ppt-0-0"> </span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="21m1k-0-0">
<div class="_1mf _1mj" data-offset-key="21m1k-0-0"><span data-offset-key="21m1k-0-0">Control flow และการจัด layout ของ streamlit</span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="crq6s-0-0">
<div class="_1mf _1mj" data-offset-key="crq6s-0-0"><span data-offset-key="crq6s-0-0">---------------------------</span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="eboq2-0-0">
<div class="_1mf _1mj" data-offset-key="eboq2-0-0"><span data-offset-key="eboq2-0-0"> </span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="22hg6-0-0">
<div class="_1mf _1mj" data-offset-key="22hg6-0-0"><span data-offset-key="22hg6-0-0">ไอเดีย control flow ของ streamlit นั้นง่ายมากครับ นั่นคือ "ทุกครั้งที่มีการอัพเดตข้อมูลใดๆ" (อาทิกรอกข้อความ เลื่อนสไลด์ อัพโหลดไฟล์ หรือติ้ก checkbox) เจ้า streamlit web app จะรันโปรแกรมใหม่หมดตั้งแต่บรรทัดแรกจนถึงบรรทัดสุดท้าย ด้วยข้อมูลล่าสุดที่มีการอัพเดต</span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="ft2j0-0-0">
<div class="_1mf _1mj" data-offset-key="ft2j0-0-0"><span data-offset-key="ft2j0-0-0"> </span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="dn190-0-0">
<div class="_1mf _1mj" data-offset-key="dn190-0-0"><span data-offset-key="dn190-0-0">ส่วนเรื่องการจัดเรียง layout, Streamlit จะสามารถทำ layout โดยแบ่งเป็นหลาย columns และทำ sidebar ได้อย่างง่ายดายตามตัวอย่างนี้</span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="3tsla-0-0">
<div class="_1mf _1mj" data-offset-key="3tsla-0-0"><span class="py34i1dx"><span data-offset-key="3tsla-0-0">https://blog.streamlit.io/introducing-new-layout-options-for-streamlit/</span></span><span data-offset-key="3tsla-1-0"> (รูปที่ 3 และ 4)</span></div>
</div>
<div data-offset-key="c0sgu-0-0"> </div>
<div data-offset-key="c0sgu-0-0">
<div class="" data-block="true" data-editor="8rchh" data-offset-key="dpk3t-0-0">
<div class="_1mf _1mj" data-offset-key="dpk3t-0-0">
<div data-offset-key="4lual-0-0">https://i.ibb.co/XbVCn8z/3-layout.png</div>
</div>
</div>
</div>
<div data-offset-key="c0sgu-0-0"> </div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="30rcl-0-0">
<div class="_1mf _1mj" data-offset-key="30rcl-0-0"><span data-offset-key="30rcl-0-0">การทำ sidebar เรียกว่าง่ายอย่างไม่น่าเชื่อ เราสามารถทำ widget ทุกอย่างบน sidebar ได้เหมือน widget บนหน้าหลักเพียงแค่เติมคำว่า sidebar ลงไปในฟังก์ชันก่อนเรียกใช้งาน เช่น</span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="eq76c-0-0">
<div class="_1mf _1mj" data-offset-key="eq76c-0-0"><span data-offset-key="eq76c-0-0"> </span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="b7rg6-0-0">
<div class="_1mf _1mj" data-offset-key="b7rg6-0-0"><span data-offset-key="b7rg6-0-0">streamlit.checkbox() สร้าง widget บนหน้าหลัก</span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="bfl67-0-0">
<div class="_1mf _1mj" data-offset-key="bfl67-0-0"><span data-offset-key="bfl67-0-0">streamlit.sidebar.checkbox() สร้าง widget บนหน้า sidebar </span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="ddne7-0-0">
<div class="_1mf _1mj" data-offset-key="ddne7-0-0"><span data-offset-key="ddne7-0-0"> </span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="d1giv-0-0">
<div class="_1mf _1mj" data-offset-key="d1giv-0-0"><span data-offset-key="d1giv-0-0">ง่ายจนเหลือเชื่อ</span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="2bii4-0-0">
<div class="_1mf _1mj" data-offset-key="2bii4-0-0"><span data-offset-key="2bii4-0-0"> </span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="4bcpj-0-0">
<div class="_1mf _1mj" data-offset-key="4bcpj-0-0"><span data-offset-key="4bcpj-0-0">นอกจากนี้ web app ของ streamlit จะเป็น Auto-reponsive (ปรับตามขนาดจอ PC, tablet, mobile อัตโนมัติ) โดยที่เราไม่ต้องทำอะไรเลย!!</span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="hble-0-0">
<div class="_1mf _1mj" data-offset-key="hble-0-0"><span data-offset-key="hble-0-0"> </span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="358kq-0-0">
<div class="_1mf _1mj" data-offset-key="358kq-0-0"><span data-offset-key="358kq-0-0"> </span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="8d3vr-0-0">
<div class="_1mf _1mj" data-offset-key="8d3vr-0-0"><span data-offset-key="8d3vr-0-0"> </span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="3puor-0-0">
<div class="_1mf _1mj" data-offset-key="3puor-0-0"><span data-offset-key="3puor-0-0">.</span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="64enr-0-0">
<div class="_1mf _1mj" data-offset-key="64enr-0-0"><span data-offset-key="64enr-0-0"> </span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="92a0-0-0">
<div class="_1mf _1mj" data-offset-key="92a0-0-0"><span data-offset-key="92a0-0-0">มาดูตัวอย่างการใช้งาน streamlit ผ่าน Colab Playground</span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="1tf9u-0-0">
<div class="_1mf _1mj" data-offset-key="1tf9u-0-0"><span data-offset-key="1tf9u-0-0">-----------------------------------------------</span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="9ktfr-0-0">
<div class="_1mf _1mj" data-offset-key="9ktfr-0-0"><span data-offset-key="9ktfr-0-0"> </span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="duj1a-0-0">
<div class="_1mf _1mj" data-offset-key="duj1a-0-0"><span data-offset-key="duj1a-0-0">เพื่อให้เพื่อนๆ ได้เห็นภาพความเจ๋งของ streamlit โดยที่ไม่ต้องรอ streamlit free server ซึ่งใช้เวลาอนุมัติ 2-3 วัน </span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="5kq6k-0-0">
<div class="_1mf _1mj" data-offset-key="5kq6k-0-0"><span data-offset-key="5kq6k-0-0">ผมเลยใช้ Colab มาสร้างเป็น streamlit playground ให้เพื่อนๆ ได้ลองใช้กันครับ ที่นี่ </span><span class="py34i1dx"><span data-offset-key="5kq6k-1-0">http://bit.ly/colab-streamlit-playground</span></span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="7se3f-0-0">
<div class="_1mf _1mj" data-offset-key="7se3f-0-0"><span data-offset-key="7se3f-0-0"> </span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="a061f-0-0">
<div class="_1mf _1mj" data-offset-key="a061f-0-0"><span data-offset-key="a061f-0-0">ในการเล่น playground ก่อนอื่นทำความรู้จักฟังก์ชันทั้งหมดของ streamlit คร่าวๆ ผ่านทาง cheatsheet นี้ครับ </span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="9p7ke-0-0">
<div class="_1mf _1mj" data-offset-key="9p7ke-0-0"><span class="py34i1dx"><span data-offset-key="9p7ke-0-0">https://share.streamlit.io/daniellewisdl/streamlit-cheat-sheet/app.py</span></span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="ch4jj-0-0">
<div class="_1mf _1mj" data-offset-key="ch4jj-0-0"><span data-offset-key="ch4jj-0-0"> </span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="48gh2-0-0">
<div class="_1mf _1mj" data-offset-key="48gh2-0-0"><span data-offset-key="48gh2-0-0">ใน api cheat sheet จะแสดงวิธีการสร้าง text, charts, audio, video, dataframe, interactive widgets</span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="fvtu6-0-0">
<div class="_1mf _1mj" data-offset-key="fvtu6-0-0"><span data-offset-key="fvtu6-0-0">หรือจะใช้ Streamlit.write() ซึ่งเป็น magic function ที่จะแสดงผลแทบจะทุก object ได้ในคำสั่งเดียวก็ได้ครับ</span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="2qvld-0-0">
<div class="_1mf _1mj" data-offset-key="2qvld-0-0"><span data-offset-key="2qvld-0-0"> </span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="6svbj-0-0">
<div class="_1mf _1mj" data-offset-key="6svbj-0-0"><span data-offset-key="6svbj-0-0">ใน Colab เราเรียกใช้ ngrok ซึ่งทำหน้าที่สร้าง external URL ให้ Colab server ซึ่งเราจะกดเข้าไปดู streamlit โปรแกรมของเราได้ที่ xxxxx.ngrok.io ครับ </span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="aj687-0-0">
<div class="_1mf _1mj" data-offset-key="aj687-0-0"><span data-offset-key="aj687-0-0"> </span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="6b413-0-0">
<div class="_1mf _1mj" data-offset-key="6b413-0-0"><span data-offset-key="6b413-0-0">ถ้าเราจะลองแก้ไขโค้ด steramlit ให้ stop cell streamlit แล้วรัน ngrok ใหม่โดยชื่อ URL ตัวหน้าสุดจะเปลี่ยนทุกครั้งที่มีการ stop streamlit/restart ngrok ครับ</span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="2hq79-0-0">
<div class="_1mf _1mj" data-offset-key="2hq79-0-0"><span data-offset-key="2hq79-0-0"> </span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="1ktf0-0-0">
<div class="_1mf _1mj" data-offset-key="1ktf0-0-0"><span data-offset-key="1ktf0-0-0">(รูปที่ 4)</span></div>
</div>
<div data-offset-key="3sje0-0-0"> </div>
<div data-offset-key="3sje0-0-0">
<div class="" data-block="true" data-editor="8rchh" data-offset-key="dpk3t-0-0">
<div class="_1mf _1mj" data-offset-key="dpk3t-0-0">
<div data-offset-key="4lual-0-0">https://i.ibb.co/JvXX42z/4-colab.png</div>
</div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="aicv8-0-0">
<div class="_1mf _1mj" data-offset-key="aicv8-0-0"> </div>
</div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="a00fv-0-0">
<div class="_1mf _1mj" data-offset-key="a00fv-0-0"><span data-offset-key="a00fv-0-0">.</span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="52o6l-0-0">
<div class="_1mf _1mj" data-offset-key="52o6l-0-0"><span data-offset-key="52o6l-0-0"> </span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="forhc-0-0">
<div class="_1mf _1mj" data-offset-key="forhc-0-0"><span data-offset-key="forhc-0-0"> </span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="aepfu-0-0">
<div class="_1mf _1mj" data-offset-key="aepfu-0-0"><span data-offset-key="aepfu-0-0"> </span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="bdou7-0-0">
<div class="_1mf _1mj" data-offset-key="bdou7-0-0"><span data-offset-key="bdou7-0-0">Free streamlit server</span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="61jv8-0-0">
<div class="_1mf _1mj" data-offset-key="61jv8-0-0"><span data-offset-key="61jv8-0-0">----------------------</span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="79rel-0-0">
<div class="_1mf _1mj" data-offset-key="79rel-0-0"><span data-offset-key="79rel-0-0"> </span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="am5hf-0-0">
<div class="_1mf _1mj" data-offset-key="am5hf-0-0"><span data-offset-key="am5hf-0-0">การ deploy ที่สะดวกที่สุดสำหรับคนที่ไม่ต้องการ resource เยอะมากๆ ก็คือขอรับบริการฟรีจาก streamlit ผ่านทาง </span><span class="py34i1dx"><span data-offset-key="am5hf-1-0">https://streamlit.io/sharing-sign-up</span></span><span data-offset-key="am5hf-2-0"> โดยเราต้องใส่ Github URL ของเราให้ streamlit ทราบ เพราะ streamlit จะ deploy ผ่าน Github ของเราโดยตรงครับ!</span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="929j2-0-0">
<div class="_1mf _1mj" data-offset-key="929j2-0-0"><span data-offset-key="929j2-0-0"> </span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="5gt04-0-0">
<div class="_1mf _1mj" data-offset-key="5gt04-0-0"><span data-offset-key="5gt04-0-0">Streamlit free server มี spec ดังนี้ครับ </span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="bcq7e-0-0">
<div class="_1mf _1mj" data-offset-key="bcq7e-0-0"><span data-offset-key="bcq7e-0-0">1 CPU, 800 MB of RAM, and 800 MB Disk</span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="3hksg-0-0">
<div class="_1mf _1mj" data-offset-key="3hksg-0-0"><span data-offset-key="3hksg-0-0"> </span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="aislg-0-0">
<div class="_1mf _1mj" data-offset-key="aislg-0-0"><span data-offset-key="aislg-0-0">โดยไม่มี GPU แต่ถ้าเรามี app ที่เป็นสาธารณะประโยชน์สามารถคุยกับทาง streamlit ได้เป็นกรณีพิเศษ</span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="90p38-0-0">
<div class="_1mf _1mj" data-offset-key="90p38-0-0"><span data-offset-key="90p38-0-0">ถ้าเราใช้บริการ Cloud API เจ้าอื่นๆ เช่น Google Cloud API, Huggingface API, หรือ GPT-3 API เราก็ไม่จำเป็นต้องใช้ GPU ครับ</span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="76eho-0-0">
<div class="_1mf _1mj" data-offset-key="76eho-0-0"><span data-offset-key="76eho-0-0"> </span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="6mv2j-0-0">
<div class="_1mf _1mj" data-offset-key="6mv2j-0-0"><span data-offset-key="6mv2j-0-0">การ deploy ผ่าน streamlit เราเพียงเตรียมไฟล์หลักๆ 2 files คือ app.py ที่มีโค้ด streamlit app (เหมือนใน colab ข้างบน หรือจะเขียนเป็น modules แยกไฟล์สวยๆ ก็ย่อมได้) และ requirements.txt ที่ระบุ library packages ต่างๆ ที่ app.py เรียกใช้ (อาทิเช่น Tensorflow, Transformers, etc.) </span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="6geac-0-0">
<div class="_1mf _1mj" data-offset-key="6geac-0-0"><span data-offset-key="6geac-0-0"> </span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="5l37s-0-0">
<div class="_1mf _1mj" data-offset-key="5l37s-0-0"><span data-offset-key="5l37s-0-0">โดยเมื่อเราได้รับ free server quota แล้วเราก็เพียงไประบุ Github project / branch ของเราที่</span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="4c5ho-0-0">
<div class="_1mf _1mj" data-offset-key="4c5ho-0-0"><span class="py34i1dx"><span data-offset-key="4c5ho-0-0">https://share.streamlit.io/</span></span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="d2orv-0-0">
<div class="_1mf _1mj" data-offset-key="d2orv-0-0"><span data-offset-key="d2orv-0-0">เท่านี้ app ของเราก็จะถูก deploy ง่ายๆ แบบมหัศจรรย์ครับ</span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="agrro-0-0">
<div class="_1mf _1mj" data-offset-key="agrro-0-0"><span data-offset-key="agrro-0-0"> </span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="erv07-0-0">
<div class="_1mf _1mj" data-offset-key="erv07-0-0"><span data-offset-key="erv07-0-0">(รูปที่ 5)</span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="3863s-0-0">
<div class="_1mf _1mj" data-offset-key="3863s-0-0"><span data-offset-key="3863s-0-0"> <img src="https://i.ibb.co/VVksmcK/5-freedeploy.png" /></span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="a2hg8-0-0">
<div class="_1mf _1mj" data-offset-key="a2hg8-0-0"><span data-offset-key="a2hg8-0-0"> </span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="b4174-0-0">
<div class="_1mf _1mj" data-offset-key="b4174-0-0"><span data-offset-key="b4174-0-0">ดู simple demo ที่ deploy บน streamlit ได้ที่นี่ครับ (อันนี้เป็นตัวอย่าง image classification)</span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="2plg-0-0">
<div class="_1mf _1mj" data-offset-key="2plg-0-0"><span class="py34i1dx"><span data-offset-key="2plg-0-0">https://share.streamlit.io/joshmantova/eagle-vision/prod/src/Project_Eagle_Vision.py</span></span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="csjd2-0-0">
<div class="_1mf _1mj" data-offset-key="csjd2-0-0"><span data-offset-key="csjd2-0-0"> </span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="413j5-0-0">
<div class="_1mf _1mj" data-offset-key="413j5-0-0"><span data-offset-key="413j5-0-0">โดยไฟล์ requirements.txt จะอยู่ที่นี่ครับ</span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="ahnam-0-0">
<div class="_1mf _1mj" data-offset-key="ahnam-0-0"><span class="py34i1dx"><span data-offset-key="ahnam-0-0">https://github.com/Joshmantova/Eagle-Vision/blob/prod/requirements.txt</span></span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="6ek5v-0-0">
<div class="_1mf _1mj" data-offset-key="6ek5v-0-0"><span data-offset-key="6ek5v-0-0"> </span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="9di0k-0-0">
<div class="_1mf _1mj" data-offset-key="9di0k-0-0"><span data-offset-key="9di0k-0-0">สำหรับ documents ฉบับเต็มเกี่ยวกับการ deployment บน streamlit free server ดูได้ที่</span></div>
</div>
<div class="" data-block="true" data-editor="8rchh" data-offset-key="8kl72-0-0">
<div class="_1mf _1mj" data-offset-key="8kl72-0-0"><span class="py34i1dx"><span data-offset-key="8kl72-0-0">https://docs.streamlit.io/en/stable/deploy_streamlit_app.html</span></span></div>
</div>]]></content:encoded>
						                            <category domain="https://thaikeras.com/community/main-forum/">คุยกันภาษา AI</category>                        <dc:creator>The Neural Engineer</dc:creator>
                        <guid isPermaLink="true">https://thaikeras.com/community/main-forum/streamlit/</guid>
                    </item>
				                    <item>
                        <title>Deep Language &amp; Knowledge Understanding Series : เจาะลึกความสามารถด้าน &quot;ภาษา&quot; และ &quot;ความรู้&quot; ของโมเดล AI ที่ดีที่สุด</title>
                        <link>https://thaikeras.com/community/main-forum/deep-language-understanding-series/</link>
                        <pubDate>Wed, 05 Aug 2020 04:26:46 +0000</pubDate>
                        <description><![CDATA[ตอนปฐมบทปรากฏการณ์ &quot;Clever Hans&quot; บน NLP  (หรือ Deep NLP ไม่ได้เก่งอย่างที่คิด) By ThaiKeras and Kaggle (28 Jan 2562)สวัสดีครับเพื่อนๆ วันนี้ขออนุญาตเจาะประเด็นเรื่อง ‘’โมเดล AI กลุ่ม Deep NL...]]></description>
                        <content:encoded><![CDATA[<p><span style="font-size: 24pt"><strong>ตอนปฐมบท</strong></span></p><p><span style="text-decoration: underline"><strong><span style="font-size: 18pt">ปรากฏการณ์ "Clever Hans" บน NLP  (หรือ Deep NLP ไม่ได้เก่งอย่างที่คิด)</span> </strong></span></p><p>By ThaiKeras and Kaggle (28 Jan 2562)</p><p>สวัสดีครับเพื่อนๆ วันนี้ขออนุญาตเจาะประเด็นเรื่อง ‘’โมเดล AI กลุ่ม Deep NLP ที่ขึ้นชื่อว่าเก่งกาจด้านภาษาสุดๆ นั้นแท้จริงแล้วเข้าใจ ภาษามนุษย์จริงหรือไม่”</p><p>ในตอนที่แล้วเราได้พูดถึงปรากฏการณ์ “Clever Hans” หรือเจ้าม้าแสนรู้ฮันส์ไปแล้ว ( http://bit.ly/thaikeras-nlp-hans) โดยมีหัวใจสำคัญอยู่ที่ว่า เจ้าม้าฮันส์ที่ดูฉลาดมากตอบคำถามได้ทุกเรื่อง โดยที่ไม่มีการตุกติกอะไรทั้งสิ้น แท้จริงแล้วมันไม่ได้มีความรู้อะไรเลย!! ปรากฏการณ์นี้แสดงให้เห็นว่า “การวัดความฉลาด” นั้นยากกว่าที่คิด และไม่สามารถนำผลการทดลอง (ที่ไม่รัดกุม) มาวัดได้เลย</p><p>ล่าสุดในงานประชุมวิชาการ ACL 2019 ที่เป็นหนึ่งในงานประชุม NLP (งาน AI เกี่ยวกับการเข้าใจภาษามนุษย์) ที่ดีที่สุดในโลก ก็ได้มีนักวิจัยจากหลายแห่งชำแหละปรากฏการณ์เดียวกันนี้ของโมเดล AI หรือ Deep Learning ฝั่ง NLP ระดับสุดยอดเช่น BERT</p><p>(ดูเรื่้อง BERT ได้ที่ http://bit.ly/thaikeras-nlp-transfer ) ว่าแท้จริงโมเดลอัจฉริยะเหล่านี้อาจ “ไม่ได้รู้อะไรเกี่ยวกับภาษามนุษย์” เลย นอกจากมีความเชี่ยวชาญเรื่อง “สถิติ” ของคำต่างๆ เท่านั้น และทำให้นักวิจัยต่างกล่าวว่านี่คือปรากฏการณ์ “Clever Hans Moment ในวงการ NLP” เลยทีเดียว!! (ดูอ้างอิง 1.) เหตุการณ์นี้เป็นอย่างไรลองมาฟังรายละเอียดกันครับ</p><p>https://i.ibb.co/JrTXNjc/hans-bert.jpg</p><p><em><span class="TextRun SCXO207310225 BCX0" lang="TH-TH" xml:lang="TH-TH" data-contrast="auto"><span class="NormalTextRun SCXO207310225 BCX0">รูปที่ </span></span><span class="TextRun SCXO207310225 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="auto"><span class="NormalTextRun SCXO207310225 BCX0">1 </span></span><span class="TextRun SCXO207310225 BCX0" lang="TH-TH" xml:lang="TH-TH" data-contrast="auto"><span class="NormalTextRun SCXO207310225 BCX0">ล้อเลียน </span></span><span class="TextRun SCXO207310225 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="auto"><span class="NormalTextRun SCXO207310225 BCX0">BERT </span></span><span class="TextRun SCXO207310225 BCX0" lang="TH-TH" xml:lang="TH-TH" data-contrast="auto"><span class="NormalTextRun SCXO207310225 BCX0">สุดยอดโมเดล </span></span><span class="TextRun SCXO207310225 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="auto"><span class="NormalTextRun SCXO207310225 BCX0">AI </span></span><span class="TextRun SCXO207310225 BCX0" lang="TH-TH" xml:lang="TH-TH" data-contrast="auto"><span class="NormalTextRun SCXO207310225 BCX0">ในงานด้าน </span></span><span class="TextRun SCXO207310225 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="auto"><span class="NormalTextRun SCXO207310225 BCX0">NLP</span></span><span class="TextRun SCXO207310225 BCX0" lang="TH-TH" xml:lang="TH-TH" data-contrast="auto"><span class="NormalTextRun SCXO207310225 BCX0"> หรือด้านภาษามนุษย์</span></span><span class="TextRun SCXO207310225 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="auto"><span class="NormalTextRun SCXO207310225 BCX0"> </span></span><span class="TextRun SCXO207310225 BCX0" lang="TH-TH" xml:lang="TH-TH" data-contrast="auto"><span class="NormalTextRun SCXO207310225 BCX0">ว่าแท้จริงแล้วเปรียบเสมือนฮันส์ คือไม่ได้รู้เรื่องอะไรเกี่ยวกับภาษาอย่างแท้จริงเลย</span></span><span class="TextRun SCXO207310225 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="auto"><span class="NormalTextRun SCXO207310225 BCX0"> </span></span><span class="TextRun SCXO207310225 BCX0" lang="TH-TH" xml:lang="TH-TH" data-contrast="auto"><span class="NormalTextRun SCXO207310225 BCX0">(ภาพจากอ้างอิง </span></span><span class="TextRun SCXO207310225 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="auto"><span class="NormalTextRun SCXO207310225 BCX0">1.)</span></span><span class="EOP SCXO207310225 BCX0"> </span></em></p><p><span style="text-decoration: underline"><strong>การวัดความฉลาดทางภาษาด้วยการตอบปัญหาทางตรรกะ</strong> </span></p><p>เหตุการณ์นี้เริ่มต้นจากการวัดความเข้าใจในภาษามนุษย์ของโมเดล Deep Learning นั้นจะวัดผลจาก Dataset ที่แล็บต่างๆ รวบรวมมาจากแหล่งข้อมูลทั่วโลก โดยตัวอย่าง Dataset หนึ่งที่ได้รับการยอมรับว่า “น่าจะ” วัดความเข้าใจภาษามนุษย์ของ AI ได้ก็คือ Dataset ขนาดใหญ่ที่มีชื่อว่า Multi-Genre Natural Language Inference (MNLI) ที่มหาวิทยาลัยระดับโลกอย่าง New York University เป็นผู้รวบรวมขึ้นมา โดย Dataset นี้จะมุ่งทดสอบปัญหาความเข้าใจ “ตรรกะ” ซึ่งอธิบายได้ดังนี้</p><p>กำหนดให้โมเดล AI เช่น BERT (ซึ่งถูกฝึกมาอย่างดี) อ่านประโยคสองประโยค แล้วต้องตอบว่า ”ประโยคที่สองนั้นเกี่ยวข้องกับประโยคแรกหรือไม่” โดยมีคำตอบที่เป็นไปได้สามแบบดังนี้</p><p>1. ประโยคสอง “สรุปได้“ จากประโยคแรก — (entailment) <br />ประโยคแรก: The doctor was paid by the actor <br />ประโยคสอง: The actor pays the doctor</p><p>2. ประโยคสอง “ขัดแย้ง” กับประโยคแรก — (contradiction) <br />ประโยคแรก: The doctor was paid by the actor <br />ประโยคสอง: The actor does not pay the doctor</p><p>3. ประโยคสอง “ไม่เกี่ยว” กับประโยคแรก — (neutral) <br />ประโยคแรก: The doctor was paid by the actor <br />ประโยคสอง: The doctor and the actor have fun together</p><p>โดย Dataset MNLI นี้มีขนาดใหญ่ถึง 433,000 คู่ประโยค มาจากหลายแหล่ง และแต่ละประโยค ค่อนข้างมีความหลากหลายและซับซ้อนทางไวยากรณ์กว่าตัวอย่างที่แสดงข้างต้นมาก (ผู้สนใจดูตัวอย่างที่เอกสารอ้างอิง 2. ) ทั้งนี้เพื่อใช้ทดสอบให้แน่ใจว่าโมเดลนั้นเข้าใจภาษาจริงหรือไม่ สมมติฐานก็คือถ้าโมเดลสามารถตอบคำถามในคู่ประโยคที่มีความซับซ้อนระดับนี้ เป็นจำนวนมหาศาลได้ถูกต้องจริง นั่นก็แปลว่า “โมเดลมีความเข้าใจภาษาอย่างแท้จริง”</p><p>แต่สมมติฐานนี้เป็นจริงหรือไม่?</p><p> </p><p><span style="text-decoration: underline"><strong>ความทรงพลังของสถิติและจุดอ่อนของ Datasets</strong> </span></p><p>นักวิจัยสองกลุ่มจาก John Hopkins และ Taiwan ได้ทำการทดลองอย่างละเอียดและพบว่า “สถิติ” ของกลุ่มคำนั้นมีพลังมากกว่าที่เราคิด โดยจุดอ่อนของ MNLI ก็คือ ถึงแม้ว่าข้อมูลจะมีความหลากหลายและซับซ้อนสูง Datasets ชุดนี้ก็ยังมีจุดร่วมบางอย่างอยู่ที่ทำให้โมเดลสามารถสร้าง “กลวิธีในการเดาคำตอบ” (Heuristic) ได้</p><p><img src="https://i.ibb.co/8mCQXHt/bert-heuristic-nli.jpg" /><br /><em><span class="TextRun SCXO228551865 BCX0" lang="TH-TH" xml:lang="TH-TH" data-contrast="auto"><span class="NormalTextRun SCXO228551865 BCX0">รูปที่ </span></span><span class="TextRun SCXO228551865 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="auto"><span class="NormalTextRun SCXO228551865 BCX0">2 </span></span><span class="TextRun SCXO228551865 BCX0" lang="TH-TH" xml:lang="TH-TH" data-contrast="auto"><span class="NormalTextRun SCXO228551865 BCX0">ตัวอย่างวิธีการเดา (</span></span><span class="TextRun SCXO228551865 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="auto"><span class="NormalTextRun SCXO228551865 BCX0">heuristic) </span></span><span class="TextRun SCXO228551865 BCX0" lang="TH-TH" xml:lang="TH-TH" data-contrast="auto"><span class="NormalTextRun SCXO228551865 BCX0">ที่ทีมวิจัยพบว่า </span></span><span class="TextRun SCXO228551865 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="auto"><span class="NormalTextRun SCXO228551865 BCX0">BERT </span></span><span class="TextRun SCXO228551865 BCX0" lang="TH-TH" xml:lang="TH-TH" data-contrast="auto"><span class="NormalTextRun SCXO228551865 BCX0">นำมาใช้</span></span><span class="EOP SCXO228551865 BCX0"> </span></em></p><p>ทีมวิจัยพบว่าแท้จริงแล้ว โมเดล “ค้นพบ” ถึง “วิธีการเดาอย่างง่ายๆ” (Heuristic) ดังปรากฏในรูปที่ 2 ตัวอย่างเช่น</p><p>ถ้าประโยคที่ 2 มี substring ที่สอดคล้องกับประโยคที่ 1 มาก ให้ตอบว่า ประโยคที่ 2 “สรุปได้“ (entailment) จากประโยคที่ 1 <br />(ดูตัวอย่างในคอลัมภ์สุดท้ายของรูปที่ 2.)</p><p>วิธีการเดานี้แม้ไม่ถูกต้อง 100% แต่ก็ให้ผลลัพธ์ถูกต้องราวๆ 80% บน MNLI ซึ่งเพียงพอในการจะ “หลอก” มนุษย์อย่างพวกเราว่า ”AI นั้นเก่งจริง!!”</p><p>อย่างน้อยก็เก่งเหมือนเจ้าม้าฮันส์ที่สามารถคิดวิธี “เดา” เหล่านี้ได้เอง โดยวิธีการเดาเหล่านี้สามารถใช้ได้กับข้อมูลทั่วๆ ไปจริง แต่สามารถตอบผิดได้ 100% ถ้าผู้ถามทราบวิธีการเดาเหล่านี้</p><p> </p><p><span style="text-decoration: underline"><strong>ทำไม Datasets ถึงมีจุดอ่อนง่ายๆ แบบนี้?</strong> </span></p><p>ถึงแม้ว่าทีม NYU ซึ่งเป็นผู้รวบรวม Dataset MNLI ได้พยายามรวบรวมรูปประโยคจากหลายแหล่งในโลก ทว่าก็ยังเป็นรูปประโยคที่พบได้ทั่วไป และ “ไม่ได้” ถูกออกแบบมาเพื่อ “ดักวิธีการเดาง่ายๆ“ เหล่านี้ ซึ่งแสดงให้เห็นว่าการออกแบบการทดลอง และ Datasets มีความสำคัญมาก</p><p> </p><p><span style="text-decoration: underline"><strong>เจ้าม้า BERT ผู้ซึ่งถูกจับได้ และตอบผิดเกือบ 100%</strong> </span><br />ซึ่งทีมวิจัยได้ทดสอบด้วยการออกแบบและสร้าง Dataset NLI อีกชุดที่เรียกว่า HANS (ล้อเลียนเจ้าม้าฮันส์) ซึ่งย่อมาจาก “Heuristic Analysis for NLI System” โดยจงใจสร้างประโยคที่ 2 ให้ขัดแย้งกับประโยคที่ 1 ถึงแม้ประโยคที่ 2 จะเป็น substring ของประโยคแรกก็ตาม ดูตัวอย่างประโยคในคอลัมภ์สุดท้ายของรูปที่ 2 ครับ</p><p>และพบว่าเมื่อให้เจ้าม้า BERT ที่มีความแม่นยำสูงใน MNLI มาทดสอบใน Dataset HANS นี้ (ซึ่งมนุษย์เราตอบได้ถูกเกือบ 100%) ปรากฏว่าเจ้าม้า BERT จะตอบผิดเกือบ 100% เลยครับ!!!</p><p>แสดงว่า BERT ที่ปรากฏตามงานวิจัยที่ผ่านมาว่าเข้าใจภาษามนุษย์อย่างดีนั้น ไม่ได้เข้าใจภาษามนุษย์เลย!! (แบบเดียวกับม้าฮันส์เป้ะ)</p><p> </p><p><span style="text-decoration: underline"><strong>ความสำคัญของการทำนาย “ข้อมูลที่ไม่ค่อยพบเจอ”</strong> </span><br />หลายคนอาจสงสัยว่า "แล้วความรู้ทางสถิติที่สอดคล้องจากข้อมูลมหาศาลมันไม่ดีตรงไหน มันยิ่งทำให้แม่นยำกับโลกความเป็นจริงไม่ใช่เหรอ"? คำตอบคือ ใช่ครับ มันอาจจะแม่นยำกับข้อมูล "ปกติ" แต่มันสามารถทำงานผิดพลาดได้ 100% (พูดภาษาบ้านๆ คือ ผิดแบบน่าอับอาย) ได้ตลอดเวลาถ้าเจอข้อมูลที่ "ไม่ค่อยได้พบเจอ" (หรือ “ไม่เคยเจอ”)</p><p>จุดนี้หลายคนอาจสงสัยต่อว่า เราต้องใส่ใจข้อมูลที่ “ไม่ค่อยเจอ” ด้วยเหรอ?</p><p>ขอตอบให้ชัดครับว่า เรา “จำเป็น” ต้องใส่ใจกับข้อมูลที่ “ไม่ปกติ” เหล่านี้ถ้าโมเดลของเราถูกนำไปใช้ในงานที่เกี่ยวข้องกับ "ความปลอดภัย" ต่างๆ</p><p>ลองจินตนาการถึงโลกอนาคตที่ AI ทำงานแทนมนุษย์เป็นเรื่องปกติ และเรายังไม่สามารถแก้จุดอ่อนนี้ได้ ย่อมเปิดโอกาสให้ผู้ไม่ประสงค์ดี หรือผู้ก่อการร้ายต่างๆ สามารถเล่นงานจุดอ่อนนี้ของ AI และทำให้ระบบความปลอดภัยต่างๆ ล้มเหลวได้ไม่เป็นท่าทันที ปัญหานี้จึงสำคัญมากๆ ในเหตุการณ์ที่ไม่ปกติแต่รุนแรงมากเหล่านี้ครับ</p><p>สำหรับผู้สนใจสามารถอ่านรายละเอียดเพิ่มเติมได้ในงานวิจัยฉบับเต็มในเอกสารอ้างอิง 3 และ 4 ครับ หรืออ่านบทความเพิ่มเติมในบทความเอกสารอ้างอิง 1. ครับ :D</p><p style="margin: 0in;font-size: 11.0pt"><span lang="en-US" style="font-weight: bold;text-decoration: underline">UPDATE </span><span lang="th" style="font-weight: bold;text-decoration: underline">กค. </span><span lang="en-US" style="font-weight: bold;text-decoration: underline">2020 </span><span lang="th">นักวิจัยได้คิดค้นวิธี </span><span lang="en-US">syntactic data augmentation </span><span lang="th">เพื่อให้เจ้าม้า </span><span lang="en-US">Bert </span><span lang="th">มีความเข้าใจ </span><span lang="en-US">syntax </span><span lang="th">ที่หลากหลายมากขึ้น และทำให้ไม่หลงกลข้อมูลใน </span><span lang="en-US">Dataset HANS </span><span lang="th">นี้ง่ายๆ โดยหลังจาก </span><span lang="en-US">augment </span><span lang="th">ไปแล้ว ความแม่นยำของ </span><span lang="en-US">Bert </span><span lang="th">บน </span><span lang="en-US">Dataset HANS </span><span lang="th">นั้นเพิ่มขึ้นหลายเท่าตัว ผู้สนใจดูเพิ่มได้ใน </span><a href="https://arxiv.org/pdf/2004.11999.pdf"><span lang="th">https://arxiv.org/pdf/2004.11999.pdf</span></a></p><p><span style="text-decoration: underline"><strong>เอกสารอ้างอิง</strong> </span></p><p>1. https://thegradient.pub/nlps-clever-hans-moment-has-arrived/</p><p>2. Dataset MNLI : https://www.nyu.edu/projects/bowman/multinli/</p><p>3. Right for the Wrong Reasons: Diagnosing Syntactic Heuristics in Natural Language Inference : https://www.aclweb.org/anthology/P19-1334.pdf</p><p>4. Probing Neural Network Comprehension of Natural Language Arguments : https://www.aclweb.org/anthology/P19-1459.pdf</p><p><span style="font-size: 24pt"><strong> </strong></span></p>]]></content:encoded>
						                            <category domain="https://thaikeras.com/community/main-forum/">คุยกันภาษา AI</category>                        <dc:creator>The Neural Engineer</dc:creator>
                        <guid isPermaLink="true">https://thaikeras.com/community/main-forum/deep-language-understanding-series/</guid>
                    </item>
							        </channel>
        </rss>
		