บทความดีๆ เกี่ยวกับ...
 
Notifications
Clear all

บทความดีๆ เกี่ยวกับการสร้าง Deep NLP & Chatbot (2023)

12 ข้อความ
2 Users
0 Likes
3,971 Views
The Neural Engineer
(@neural-engineer)
Honorable Member Admin
เข้าร่วมเมื่อ: 6 years ago
ข้อความ: 400
Topic starter  

(2023) สร้าง ChatBot ที่คุยข้อมูลของเราเองได้ด้วยการผนวก ChatGPT เข้ากับข้อมูลของเราโดย LangChain 

ThaiKeras and Kaggle - สิงหาคม 2023

 

https://www.deeplearning.ai/short-courses/langchain-chat-with-your-data/

 

สมมติเราต้องการนำ ChatGPT มาคุยแนะนำสินค้าให้กับลูกค้าบน Lazada, Shopee หรือ แนะนำโรงแรมถูกและดีบน Agoda ที่เหมาะกับเราเมื่อเราระบุสถานที่และงบประมาณ  --- ChatGPT จะสามารถทำได้ไหม?

คำตอบคือ "ทำได้" แต่ทำไม่ได้ทันที ทั้งนี้เพราะ ChatGPT ต้องเรียนรู้หรือทำความรู้จักกับข้อมูลของบริษัทเหล่านั้นก่อน

นั่นคือ Lazada, Shopee หรือ Agoda ต้องผนวก ChatGPT เข้ากับข้อมูลบริษัทก่อน

เนื่องจาก ChatGPT จะไม่มีข้อมูลเชิงลึกของบริษัทใดบริษัทหนึ่งนั่นเอง (นี่จึงเป็นที่มาที่ OpenAI ร่วมมือกับธุรกิจหลากหลายเช่น Shopify หรือ Expedia ใน ChatGPT Plus ที่ให้ผู้ใช้งานเลือกใช้ Plugins สอบถามข้อมูลของธุรกิจเหล่านี้ได้) 

สมมติเราเป็น ML Engineer ของบริษัทข้างต้นและต้องการนำ ChatGPT เข้ามาแนะนำสินค้าหรือพูดคุยกับลูกค้าเราบ้าง เราต้องทำอย่างไร ?   LangChain คือ Opensource Tool ที่มาแรงมากๆ  ถูกสร้างมาเพื่อตอบโจทย์นี้และได้อย่างยอดเยี่ยมครับ (รูปที่ 1)

 

รูปที่ 1 การคุยกับ chatbot แบบปกติ (บน) และด้วยระบบ Agent ที่คิดเป็น เรียกใช้ tool ได้ ทราบ history ในอดีต รวมทั้งอ่านข้อมูลเฉพาะเจาะจงของเราได้ เครดิตรูป TheAIEdge.io

 

 

.

 

LangChain กับ Prompt Engineer และ ReAct Framework

เนื่องจากตอนนี้ในท้องตลาดมีโมเดลตัวอื่นที่ฉลาดใกล้เคียงกับ ChatGPT เช่น Claude หรือ Llama2-chat ในบทความนี้่จึงขอเรียก ChatBots เหล่านี้รวมๆ ว่า Bot นะครับผม

(โดยแท้จริงแล้ว Bot เหล่านี้คือ Large Languague Model ที่ถูก finetune บน ข้อมูลบทสนทนาของมนุษย์นั่นเอง)

 

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

หลักการที่ใส่ข้อมูลเยอะๆ ก่อนคุย (ซึ่งเรียกว่า Prompt) เรียกว่า

“Prompt Engineer” ครับ

 

ตัวอย่าง Prompt Engineer ที่มีประสิทธิภาพที่เราต้องรู้จักมีดังนี้

 

  • Few-shots : คือ การใส่ "ตัวอย่างคำถามคำตอบ" ที่เราต้องการสัก 2-3 ตัวอย่างไปก่อนที่เราจะเริ่มถามจริง
  • Chain-of-thought : คือการยกตัวอย่างขั้นตอนการคิดให้ Bot ดูโดยละเอียด (ด้วย few-shots) ว่าเวลาตอบคำถาม ให้ค่อยๆ คิดทีละขั้นตอน  ไม่ใช่ตอบทันที ดูรูปที่ 2  เทียบระหว่างการตอบธรรมดากับตอบแบบเป็นขั้นเป็นตอน

รูปที่ 2 เทียบ 1-shot prompt แบบธรรมดากับ 1-shot chain-of-thought

 

.

  • ReAct Framework

เป็น Prompt Engineer ที่นำแนวคิด Few-shot & Chain-of-Thought ไปพัฒนาอีกขั้น โดยในระหว่างคิดเป็นขั้นตอนนั้นเราจะให้ Bot "Action" หรือ "เรียกใช้ tool" ได้ด้วย เช่น สามารถใช้ Search engine หรือติดต่อ Database หรือใช้เครื่องคิดเลข (หรือ tool อื่นๆ) ได้

โดยคำว่า ReAct ย่อมาจาก Reason + Action

ตัวอย่าง ReAct prompt เทียบกับ Chain-of-Thought (Reason Only) ดูได้ในรูปที่ 3 ครับ

โดยจากรูปจะเห็นว่าในการสร้าง ReAct few-shots prompt เราต้องเขียน prompt ตัวอย่างว่า Bot "คิดได้ว่า ต้องใช้ tool อะไร" (ในรูปคือ Search) และเราต้องแปะตัวอย่างที่เป็นผลลัพธ์ของ toolจริงๆ มาไว้ใน prompt 

เช่นถ้าสอนว่า search เราก็ไปดึงผล search จริงๆ มา หรือถ้าสอนว่าค้น database เราก็ต้องไปดึงผลลัพธ์ที่ได้จริงๆ มาไว้ใน promptนอกจากนี้เรายังต้องแสดงตัวอย่างให้ชัดว่า Bot สามารถ "คิดและเรียกใช้ tool" ได้หลายรอบจนกว่าจะมั่นใจในคำตอบ

 

รูปที่ 3 ReAct vs. Chain-of-Thought vs. อื่นๆ

 

** เอ้ะ แต่เดี๋ยวก่อน เวลาใช้งานจริงจะใช้ tool อย่างไร!?

 

เวลาการใช้งาน Bot จริงๆ ถ้าเราใช้ตรงๆ (เช่นเอาคำตอบจาก ChatGPT ตรงๆ ) Bot นั้นก็จะ "มั่ว" หรือ "จินตนาการ" ผลลัพธ์จาก tool ขึ้นมาและ การให้เหตุผลหลังจากนั้นก็อาจจะผิดเพี้ยนตามกันไปหมด

นั่นคือ ถ้า Bot เราใน ReAct framework ได้พูดว่า "Act" ตามด้วย tool มาเมื่อไร (เช่นในรูปที่ 3) ในการใช้งานจริง เราต้องเขียนโปรแกรมให้ Bot หยุดสร้างคำตอบ (เก็บคำตอบปัจจุบันไว้ก่อน)  เขียนโปรแกรมไปเรียก tool จริงๆ และนำผลลัพธ์ที่ได้มาแปะเพิ่ม และป้อนกลับไปให้ Bot ตอบอีกที

จะเห็นได้ว่า การเขียนโปรแกรมให้ Bot คิดเป็นระบบและเรียกใช้ tool ได้นั้นมีความซับซ้อนพอสมควรทีเดียว  ไม่ได้ขอคำตอบ Bot ตรงๆ เหมือนรูปที่ 1 (บน)

LangChain นั้นกำเนิดมาเพื่อให้ logic ในการคิดของ Bot ตาม ReAct รวมทั้งการเรียกใช้ standard tools ต่างๆ นั้นทำได้อย่างง่ายและไร้รอยต่อมากๆ ครับ (ซึ่งครอบ logic ที่ซับซ้อนไว้ตามรูปที่ 1 ล่าง)

อนึ่ง การที่ Bot นั้นต้องคอยเชื่อมโยง (Chain) ความคิดตัวเองกับการใช้ tools ต่างๆ เข้าด้วยกันอย่างเป็นระบบนั้น เป็นที่มาของชื่อ LangChain นั่นเองครับ

 

และ LangChain จะเรียก Bot ใน ReAct framework (หรือ framework อื่นๆ) ที่มี logic มีระบบในการตัดสินใจเรียกใช้ tools ต่างๆ เชื่อมโยงความคิดอย่างเป็นระบบว่า Agent

พูดง่ายๆ Agent ก็คือ Bot ที่มีโปรแกรมระบบความคิดที่ซับซ้อนครอบอีกที เช่น ReAct (ปัจจุบัน LangChain สนับสนุน framework อื่นๆ นอกจาก ReAct ด้วย อาทิเช่น BabyAGI หรือ AutoGPT   ซึ่งโดยรายละเอียดน่าจะแยกไปอีกบทความนึงนะครับ)

 

.

 

ความสามารถของ LangChain

 

รูปที่ 4 องค์ประกอบของ LangChain ในเดือนสิงหาคม 2023 (เครดิต  - ดัดแปลงจาก theAIEdge.io )

 

LangChain คือ เรียกได้ว่าเป็นโปรแกรมที่คอยควบคุม Prompt Engineer และการใช้ Tool ต่างๆ ให้ราบรื่นตามหลักของ ReAct framework โดยมี API ติดต่อกับ tools เจ้าดังๆ ในตลาดแทบทุกราย

อยากเรียกใช้ tool อะไรก็ง่าย แถมยังเชื่อมกับ ReAct framework โดยอัตโนมัติ

นอกจากนั้นยังอำนวยความสะดวกจัดระเบียบ chat history ให้เราได้อีกด้วย

 

ในปัจจุบัน LangChain ประกอบไปด้วย 6 โมดูล  -- รูปที่ 4 และควรย้อนกลับไปดูรูปที่ 1 -- คือ  

  1. Models ซึ่งก็คือ Bot นั่นเอง โดย LangChain ได้สร้าง interface เชื่อมกับ Bot ดังๆ เช่น ChatGPT, Claude, Huggingface และ อื่นๆ ให้เราเรียกใช้ได้อย่างง่ายๆ เพียงแค่ใส่ API_Key ของแต่ละเจ้าเข้าไป

2. ระบบ Agent หรือก็คือ Logic ที่ควบคุม Bot อีกที เช่น ReAct อย่างที่อธิบายในหัวข้อที่แล้ว โดย Agent ที่เราควรรู้จักคือ ZERO_SHOT_REACT_DESCRIPTION หรือ React ที่ไม่จำบทสนทนาเก่าๆ กับ CONVERSATIONAL_REACT_DESCRIPTION หรือ React ที่มีการจำบทสนทนาเก่าๆ ด้วย (LangChain จำและแปะบทสนทนาเก่าๆ ไว้ใน prompt ให้เราโดยอัตโนมัติ) อย่าลืมว่า LangChain เป็นแค่ตัวกลางการติดต่อ Bot ให้เราเท่านั้น เรายังต้องจ่ายค่า บริการ API ต่างๆ ที่เราเรียกใช้ด้วยตัวเอง เช่น ถ้า Bot เราเก่งมาก มี prompt ที่ซับซ้อนมาก เราก็จะเสียค่าบริการมากขึ้นไปด้วย https://python.langchain.com/docs/modules/agents/agent_types/

 

3. Memory หรือโมดูลที่อำนวยความสะดวกจำ Chat History ทั้งหมดให้เรา โดยเชื่อมต่อกับ FrontEnd ได้หลากหลาย https://python.langchain.com/docs/modules/memory/types/

 

4. Prompts อำนวยความสะดวกให้เราในการตั้ง default prompt ในสถานการณ์ต่างๆ   5. Tools โดยมี interface ให้เรียกใช้ API ได้หลากหลายเช่น Google Search, Wikipedia, Wolfram, SQL, และอีกมากมาย

https://python.langchain.com/docs/integrations/tools/

(จินตนาการว่าถ้าเราต้องเขียนโปรแกรมเรียกใช้ tool พวกนี้เองจะเหนื่อยแค่ไหน)

 

6. "Vector" -- เป็นเรื่องใหญ่อีกเรื่องนึง ที่ผู้อ่านควรศึกษาเพิ่มเติมอย่างละเอียด ในบทความนี้เราขอเล่าคร่าวๆ ในหัวข้อถัดไปครับ  

 

.

 

"Vectors" แนวคิดฐานข้อมูลแบบใหม่สำหรับ AI Model

 

รูปที่ 5 แนวคิดของ Vector Store/Database

 

ขอย้อนความในตอนต้นของบทความนี้ เราได้เกริ่นว่า การที่ ChatBot จะพูดคุยข้อมูลในบริษัทของเราได้ ก็ต้องรู้จักและค้นหาข้อมูลในบริษัทเราได้

ทว่าในโลกปัจจุบัน ข้อมูลสินค้า ลูกค้า หรืออื่นๆ ในบริษัทนอกจากจะเป็นข้อมูลในฐานข้อมูลมาตรฐานเช่น SQL แล้ว ยังอาจเป็นข้อมูลอื่นๆ เช่น ภาพ เสียง excel ฯลฯ

เราต้องการให้ Bot ของเราเข้าใจข้อมูลเหล่านี้ และสามารถยกข้อมูลเหล่านี้ขึ้นมาพูดคุยกับลูกค้าได้

 

Vector คือ ข้อมูลทางคณิตศาสตร์ในรูปแบบที่ AI Models เข้าใจได้  โดยเฉพาะในยุค Deep Learning เราสามารถกล่าวได้ว่า โมเดลทุกรูปแบบจะเปลี่ยนข้อมูล input ทั้งหลาย เช่น รูปภาพ เสียง หรือ text ให้เป็น vector ก่อน ที่โมเดลจะทำนายตามจุดประสงค์ของโมเดลเหล่านั้น

การแปลงข้อมูลดิบเป็น Vector มีข้อดีหลายอย่าง เช่น (1) ข้อมูลทุกประเภทสามารถแปลงให้อยู่รูปแบบเดียวกันเป้ะๆ เช่น เวกเตอร์ขนาด 1024 มิติเหมือนกันหมด และ (2) ด้วยพลังของ AI Models ในปัจจุบัน ข้อมูลที่คล้ายกันรูปแบบใดรูปแบบหนึ่ง มักจะแสดงความคล้ายเมื่อเปลี่ยนเป็นเวกเตอร์แล้วด้วย

ซึ่งความคล้ายกันทางเวกเตอร์หลายๆ ครั้งจะลึกกว่าความคล้ายในข้อมูลดิบ ยกตัวอย่างเช่น สมัยก่อนเราหาข้อมูล google โดยใช้ keywords , google สมัยก่อนก็จะสืบค้นเอกสารโดยยึดจาก keywords ที่เราระบุไป (ดูตัวอย่าง word vector ที่ https://thaikeras.com/community/postid/84/ )  

ทำให้เอกสารบางประเภทที่ตรงหรือคล้ายกับสิ่งที่เราต้องการหา แต่มี keywords ต่างกัน ไม่ปรากฏในผลลัพธ์การค้นหา

ทว่าในยุค Deep Learning นั้น words ต่างๆ ที่มีความคล้ายกันกับ Keywords (หรือแม้กระทั่งความคล้ายในระดับ sentences) จะถูกโมเดลตรวจสอบเจอ ทำให้ผลลัพธ์การค้นหาดีกว่าเดิมมาก

นอกจากนี้งานวิจัยในหลายสิบปีที่ผ่านมาได้มีการพัฒนาให้การสืบค้นข้อมูลบนฐานข้อมูลเวกเตอร์ขนาดใหญ่ทำได้รวดเร็วมากๆ ด้วยเทคนิคที่เรียกว่า ANN (Approximate Nearest Neighbors) ที่เป็นหัวใจของ vector databases ทั้งหมดในท้องตลาด

เหตุผลทั้งหมดนี้ จึงทำให้การเปลี่ยนข้อมูลทั้งหลายให้อยู่ในรูปเวกเตอร์ และให้ ChatBot ได้ติดต่อตาม Framework ReAct จึงได้รับความนิยมเป็นอย่างมาก ภาพรวมของไอเดียนี้ดูได้ในรูปที่ 5

 

รูปที่่ 6 ตัวอย่างการใช้งาน Vector Store กับ QA Bot (เครดิตรูปจาก Deeplearning.ai )

 

ขั้นตอนใช้งานแสดงได้ในรูปที่ 6 โดยเมื่อ Bot ระบุต้องการค้นข้อมูลในฐานข้อมูลเวกเตอร์ เรานำประโยคที่ Bot ระบุเปลี่ยนให้เป็เวกเตอร์และดึงเวกเตอร์ที่ใกล้เคียงใน vector store ขึ้นมาและนำข้อมูลดิบของเวกเตอร์ที่ค้นเจอเข้ามาใส่ใน prompt เพิ่มเติมก่อนส่งให้ Bot ต่อไปครับ

เนื่องจากความนิยมอันล้นหลาม vector stores/databases ในท้องตลาดที่ให้เราเลือกใช้จึงมีมากมายดูได้ใน รูปที่ 7 และอ่านเพิ่มเติมในบทความอ้างอิงที่แปะไว้กับรูปที่ 7 นะครับ

 

รูปที่ 7 Vector Database landscape อ่านรายละเอียดได้ที่ https://thedataquarry.com/posts/vector-db-1/

ย้อนกลับมาที่ LangChain -- LangChain มี interface ที่ติดต่อกับ vector databases เจ้าดังๆ ในรูปที่ 7 ได้แทบทั้งหมด ทำให้เราเขียนโปรแกรมได้ง่าย และยังแบ่งโมดูลเกี่ยวกับ vector ออกเป็น 3 ประเภทย่อยคือ

 

(A) vector embedding - แปลงข้อมูลดิบเป็น vector https://python.langchain.com/docs/integrations/text_embedding/  

(B) vector retrieval - เทคนิคการมองความคล้ายในฐานข้อมูล https://python.langchain.com/docs/integrations/retrievers/  

(C) vector database - เลือกผู้ให้บริการฐานข้อมูล https://python.langchain.com/docs/integrations/vectorstores/

ซึ่งหมายความว่าในแต่ละโมดูลย่อย (A)-(C) ข้างต้นเรามีอิสระสามารถ mix & match ผู้ให้บริการได้หลายรายได้อย่างอิสระและง่ายดายบน Langchain นั่นเอง

 

ที่พูดมาทั้งหมดยังไม่รวมความสามารถจิปาถะอื่นๆ ของ LangChain เช่น โมดูลอ่านข้อมูลดิบได้แทบทุกประเภท (รูปที่ 8) https://python.langchain.com/docs/modules/data_connection/document_loaders/ https://python.langchain.com/docs/integrations/document_loaders/

หรือ ฟังก์ชันที่ตัด Documents ยาวๆ ให้สั้นและจัดระเบียบโดยอัตโนมัติ

https://python.langchain.com/docs/modules/data_connection/document_transformers/  

จึงจะเห็นได้ว่า LangChain เป็น library ที่สารพัดประโยชน์จริงๆ และท้าทายเป็นอย่างมากที่จะเล่าความสามารถใน 1 บทความครับ  

 

รูปที่ 8 ตัวอย่างข้อมูลที่ LangChain มีโมดูลรองรับ (เครดิตรูปจาก Deeplearning.ai )

 

==ภาคปฏิบัติ ==

==การใช้งานจริง LangChain + ChatGPT Deploy ด้วย Streamlit==

ถ้าเพื่อนๆ ไม่คุ้นเคยกับ Streamlit อ่าน Streamlit ได้ที่

https://thaikeras.com/community/postid/453/

 

โค้ด streamlit ที่รัน Conversation ReAct Agent นั้น

ด้วยพลังของ LangChain เราสามารถ implemen ได้เพียง 50 กว่าบรรทัด

https://github.com/langchain-ai/streamlit-agent/blob/0e14931196fc72edf66d6a19968dc738d4df3b1e/streamlit_agent/search_and_chat.py

(หมายเหตุ เป็น code ณ วันที่ 24 สิงหาคม 2023)

 

เพื่อนๆ จึงเข้าไปศึกษา Langchain ภาคปฏิบัติได้อย่างไม่ยาก

โดยสรุปหัวใจสำคัญของโค้ดได้ดังนี้ครับ

  • บรรทัดที่ 14-15 สร้าง Memory เพื่อจดจำบทสนทนาทั้งหมดถึงปัจจุบัน โดยเป็น Memory สำหรับ Streamlit web app โดยเฉพาะที่จะจำบทสนทนาทั้งหมดไว้ได้แม้ streamlit session จะ refresh ไปกี่ครั้งก็ตาม
  • บรรทัด 23-33 แสดงบทสนทนาที่่ผ่านมาบน streamlit web page
  • บรรทัดที่ 35 เช็คว่ามี input จากผู้ใช้งานมาหรือไม่ ถ้าใช่
  • บรรทัดที่ 42 สร้างโมเดล (เรียกใช้ OpenAI ChatGPT)
  • บรรทัดที่ 43 สร้าง tool (เรียกใช้ DuckDuckGo Search - จริงๆ จะใช้ Google ก็ได้)
  • บรรทัด 44 ระบุ Agent ชนิด Conversation ReAct บนโมเดลและทูลที่กำหนด
  • บรรทัด 45 สร้าง AgentExecuter ซึ่งเป็นโค้ดที่ LangChain จะใช้รัน Agent จริงๆ โดยจะคอยจัดการ error ต่างๆ เช่นถ้า Agent ของเราเรียกใช้ tool ที่เราไม่ได้เตรียมไว้ ฯลฯ

ศึกษาเพิ่มเติม

https://www.deeplearning.ai/short-courses/langchain-chat-with-your-data/

LangChain AI Handbook by PineCone.ai
This topic was modified 5 years ago 4 times by The Neural Engineer
This topic was modified 1 year ago by The Neural Engineer
This topic was modified 5 months ago 2 times by The Neural Engineer

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

Place holder ... To be posted with topic up to date with post-2023 technology

This post was modified 5 years ago by The Neural Engineer
This post was modified 1 year ago 2 times by The Neural Engineer

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

โพสต์เก่าๆ ก่อนปี 2022 มารวมไว้ที่นี่เป็นที่ระลึก

 

สร้าง Chatbot ด้วย Transformer Architecture บน Keras & TF

“A Transformer Chatbot Tutorial with TensorFlow 2.0”

https://medium.com/tensorflow/a-transformer-chatbot-tutorial-with-tensorflow-2-0-88bf59e66fe2

 

สร้าง Bert-Based Keras/TF Q&A ChatBot ด้วย DeepPavlov library

https://towardsdatascience.com/bert-based-cross-lingual-question-answering-with-deeppavlov-704242c2ac6f

 

สร้าง Classifier แบบง่ายๆ ที่มีฝีมือระดับ BERT

https://towardsdatascience.com/distilling-bert-models-with-spacy-277c7edc426c?gi=edd792fed111

This post was modified 1 year ago by The Neural Engineer

   
ตอบกลับอ้างอิง
porntippanin
(@porntippanin)
New Member
เข้าร่วมเมื่อ: 5 years ago
ข้อความ: 2
 

สอบถามเกี่ยวกับการสร้าง AI-based chatbotค่ะ

ดิฉันเพิ่งศึกษาเกี่ยวกับAI และpython อยากสร้าง chatbot ด้วยการเขียน code ด้วยตัวเอง ไม่ทราบว่าการสร้าง AI-based chatbot มีขั้นตอนการทำอย่างไรบ้างคะ และตัวอย่าง code ให้ศึกษาไหมคะ (ถ้าเป็นภาษาไทยจะดีมากเลยค่ะ)


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

สวัสดีครับ เดี๋ยวทีมงานจะขออนุญาตนำคำตอบที่เราได้คุยกันใน FB มาลงในบอร์ดนี้นะครับ เพื่อเป็นประโยชน์กับเพื่อนๆ คนอื่น

------ (EDIT : ตอบคำถาม)

สวัสดีครับ ตอนนี้ก็มี Dialogflow ( https://dialogflow.com/ ) ที่ช่วยให้เราสามารถสร้าง chatbot ภาษาไทยได้ วิธีการใช้สามารถอ่านได้ใน doc หรือ บทความและคลิปต่างๆ ที่มีคนทำไว้ครับ เช่น

- https://cloud.google.com/dialogflow/docs/tutorials/ - https://medium.com/@kiesp/มาลองทำ-flow-based-chatbot-ง่ายๆโดยใช้-dialogflow-กัน-8317b976c984

สำหรับโค้ด chatbot ภาษาไทย ตอนนี้เท่าที่รู้คือยังไม่มีใครได้ทำและแชร์โค้ดไว้เป็น open source แต่อาจจะศึกษาจาก chatbot ภาษาอังกฤษได้ เช่น DeepPavlov ( https://github.com/deepmipt/DeepPavlov ) หรือ Snips ( https://github.com/snipsco/snips-nlu ) ครับ

 

อนึ่ง การเขียนโค้ด chatbot เอง ถือว่าไม่ง่ายเลยทีเดียว ขอให้สำเร็จครับ สำหรับขั้นตอนของ chatbot ก็ไม่มีสูตรสำเร็จตายตัว แล้วแต่ว่าเราจะออกแบบการทำงานยังไง แต่โดยทั่วไป ก็จะเป็นดังรูปนี้ครับ (รูปจากสไลด์ http://www.polyai.com/wp-content/uploads/2019/09/naacl2018_tutorial.pdf )

ในส่วน NLU (Natural Language Understanding) โดยทั่วไปก็จะมีการหา entity และทำ classification หา intent ตัวอย่างกระบวนการทำก็เช่นในรูปนี้ครับ (รูปจาก https://chatbotslife.com/an-introduction-to-snips-nlu-the-open-source-library-behind-snips-embedded-voice-platform-857038ce394d )

This post was modified 5 years ago 2 times by The Neural Engineer

   
ตอบกลับอ้างอิง
porntippanin
(@porntippanin)
New Member
เข้าร่วมเมื่อ: 5 years ago
ข้อความ: 2
 

รับทราบค่า 


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

สร้าง chatbots ด้วย HuggingFace library, library ของ transformer ที่ดีที่สุดของปี 2020

https://medium.com/huggingface/how-to-build-a-state-of-the-art-conversational-ai-with-transfer-learning-2d818ac26313


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