เผยแพร่เมื่อวันที่ 13 มกราคม 2024
บทความนี้เป็นบทความแรกในชุดบทความ 3 บทความเกี่ยวกับ LLM และแชทบ็อต ส่วนที่ 2 เกี่ยวกับการสร้างแชทบ็อตด้วย WebLLM และส่วนที่ 3 เกี่ยวกับการใช้ Prompt API มีให้รับชมแล้ว
โมเดลภาษาขนาดใหญ่ (LLM) กำลังกลายเป็นองค์ประกอบพื้นฐานที่สำคัญในการพัฒนาซอฟต์แวร์ เนื่องจาก LLM เหมาะอย่างยิ่งในการสร้างและประมวลผลข้อความภาษาธรรมชาติ เพื่อปลดล็อกกรณีการใช้งานต่างๆ เช่น การสกัดข้อมูล การสรุป หรืออำนวยความสะดวกในการสนทนากับข้อมูลผู้ใช้
ในชุดบทแนะนำนี้ เราจะพูดถึงข้อดีและข้อเสียของ LLM ในอุปกรณ์ รวมถึงแนะนำวิธีเพิ่มความสามารถของแชทบ็อตลงในแอปพลิเคชันที่มีอยู่โดยใช้ 2 วิธีแบบในเครื่องและแบบออฟไลน์ ได้แก่ WebLLM ซึ่งเป็นรันไทม์ LLM บนเว็บ และ Prompt API เวอร์ชันทดลองของ Chrome
กรณีการใช้งานที่เป็นไปได้
เราจะสร้างแชทบ็อตบนแอปพลิเคชันรายการสิ่งที่ต้องทำแบบคลาสสิก ซอร์สโค้ดสำหรับแต่ละขั้นตอนมีอยู่ใน GitHub ผู้ใช้จะเพิ่มสิ่งที่ต้องทำใหม่ ทำเครื่องหมายว่าเสร็จแล้ว และลบรายการเหล่านั้นได้
คุณอาจต้องการเพิ่มฟีเจอร์เพื่อให้ผู้ใช้ดูข้อมูลเพิ่มเติมเกี่ยวกับข้อมูลรายการสิ่งที่ต้องทํา หรือดําเนินการอื่นๆ ฟีเจอร์แชทบ็อตช่วยให้ผู้ใช้ทำสิ่งต่อไปนี้ได้
- สอบถามเกี่ยวกับจํานวนงานที่เปิดอยู่
- ระบุสิ่งที่ต้องทำที่ซ้ำกันหรือคล้ายกันมาก
- จัดหมวดหมู่สิ่งที่ต้องทำเป็นกลุ่ม
- รับคําแนะนําสำหรับงานใหม่โดยอิงตามงานที่เสร็จแล้ว
- แปลงานเป็นภาษาต่างๆ
- ส่งออกรายการสิ่งที่ต้องทำในรูปแบบ XML
ตัวอย่างข้างต้นเป็นเพียงตัวอย่างงานบางส่วนที่ LLM จัดการได้
โมเดลภาษาขนาดใหญ่คืออะไร
LLM คือโครงข่ายระบบประสาทเทียมที่ประมวลผลและสร้างข้อความภาษาธรรมชาติ LLM ในปัจจุบันส่วนใหญ่อิงตามสถาปัตยกรรม Transformer ที่พัฒนาขึ้นที่ Google ตัวอย่างเช่น โมเดล Gemini และ Gemma ของ Google, ซีรีส์โมเดล GPT ของ OpenAI และโมเดลโอเพนซอร์ส เช่น LLaMa โดย Meta AI และ Mistral โดย Mistral AI
LLM มีความสามารถที่หลากหลายที่น่าประทับใจเนื่องจากได้รับการฝึกด้วยข้อมูลจํานวนมาก โดยสามารถเข้าใจภาษาต่างๆ มากมาย มีข้อมูลเกร็ดความรู้ แปลภาษาต่างๆ หรือสร้างโค้ดการเขียนโปรแกรม ความสามารถเหล่านี้อาจแตกต่างกันอย่างมากตามขนาดของโมเดล ตามที่อธิบายไว้ในทําความเข้าใจขนาด LLM
LLM ทําให้เกิดการเปลี่ยนแปลงกระบวนทัศน์ในสถาปัตยกรรมซอฟต์แวร์ เนื่องจากภาษาที่เป็นธรรมชาติได้กลายเป็นฟีเจอร์หลักในวิศวกรรมซอฟต์แวร์แล้ว แทนที่จะเรียก API โดยใช้อินเทอร์เฟซที่กําหนดไว้อย่างดี คุณก็แสดงเจตนาเป็นภาษาธรรมชาติในพรอมต์ที่เรียกว่าได้
ข้อจํากัดของ LLM
LLM มีข้อจำกัดบางอย่างด้วย ดังนี้
- ลักษณะการทำงานที่ไม่แน่นอน: LLM สามารถให้คำตอบที่หลากหลายและบางครั้งก็ขัดแย้งกันสำหรับพรอมต์เดียวกัน เนื่องจากเอาต์พุตจะขึ้นอยู่กับโมเดลแบบสุ่มมากกว่ากฎตายตัว
- อาการหลอน: บางครั้งโมเดลเหล่านี้อาจสร้างข้อมูลที่ไม่ถูกต้องหรือไร้สาระ โดยอาศัยรูปแบบที่เรียนรู้แทนความถูกต้องตามข้อเท็จจริง
- การแทรกพรอมต์: LLM อาจเสี่ยงต่อการถูกโจมตีด้วยการแทรกพรอมต์ ซึ่งผู้ใช้จะสร้างพรอมต์การป้อนข้อมูลเพื่อควบคุมให้โมเดลทำงานแตกต่างจากฟังก์ชันที่ต้องการหรือให้แสดงผลลัพธ์ที่ไม่ต้องการ
ดังนั้น ผู้ใช้ต้องยืนยันผลลัพธ์ที่ LLM สร้างขึ้นก่อนดำเนินการใดๆ ที่อาจส่งผลต่อผลลัพธ์
เมื่อจัดการกับ LLM ในอุปกรณ์ คุณต้องพิจารณาขนาดของ LLM โดยจะมีขนาดไฟล์หลายกิกะไบต์และต้องดาวน์โหลดลงในอุปกรณ์ของผู้ใช้ก่อนใช้งานครั้งแรก โมเดลขนาดเล็กมักจะให้คำตอบที่มีคุณภาพต่ำลง โดยเฉพาะเมื่อเทียบกับโมเดลที่ทำงานบนระบบคลาวด์
เลือกโซลูชันในพื้นที่
แนวทางแรกในการผสานรวม LLM เข้ากับเว็บแอปพลิเคชันอาจเป็นการใช้ผู้ให้บริการระบบคลาวด์ ผู้ให้บริการจำนวนมากมี LLM คุณภาพสูง ซึ่งบางรายการมีให้บริการเฉพาะบางผู้ให้บริการ LLM ในระบบคลาวด์จะให้การอนุมานที่รวดเร็วในราคาที่เหมาะสม ซึ่งมักจะคำนวณตามโทเค็นที่ประมวลผล
ในทางตรงกันข้าม โซลูชันในพื้นที่มีข้อดีที่น่าสนใจ LLM ที่โฮสต์ในเครื่องของผู้ใช้จะทำงานโดยตรงในอุปกรณ์ของผู้ใช้ จึงให้เวลาในการตอบสนองที่เชื่อถือได้มากขึ้น เข้าถึงได้แม้ในขณะที่ผู้ใช้ออฟไลน์ และไม่จําเป็นต้องให้ผู้พัฒนาแอปจ่ายค่าสมัครใช้บริการหรือค่าใช้จ่ายอื่นๆ อย่างต่อเนื่อง ที่สำคัญคือช่วยเพิ่มความปลอดภัยของผู้ใช้ได้อย่างมาก การเก็บกิจกรรมทั้งหมดไว้ในอุปกรณ์จะช่วยให้คุณหลีกเลี่ยงการส่งข้อมูลส่วนบุคคลที่ระบุตัวบุคคลนั้นได้ (PII) ไปยังผู้ให้บริการหรือภูมิภาคภายนอกได้
เดโม
คุณสามารถดูตัวอย่างที่เสร็จสมบูรณ์ซึ่งมีความสามารถของแชทบ็อตได้ก่อนที่จะเรียนรู้วิธีสร้างแชทบ็อตด้วยตนเอง
- แอปพลิเคชันสำหรับรายการสิ่งที่ต้องทำเวอร์ชันเดิม
- แอปพลิเคชันสิ่งที่ต้องทำด้วย WebLLM
- แอปพลิเคชันสำหรับจัดการสิ่งที่ต้องทำด้วย Prompt API
- แหล่งที่มาใน GitHub
ถัดไป คุณจะใช้ WebLLM เพื่อเพิ่มแชทบ็อตลงในแอปพลิเคชันรายการสิ่งที่ต้องทํา