1 คะแนน โดย GN⁺ 2024-02-02 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • เป็นหน้าเว็บเรียบง่ายสำหรับประกอบ พรอมป์ต์ ChatGPT ด้วยการเติมช่องว่าง
  • เทมเพลตจะให้กรอกตามลำดับคือ บทบาท ผลลัพธ์ที่ต้องการ วิธีดำเนินการ เงื่อนไข คำขอเพิ่มเติม และ รูปแบบผลลัพธ์สุดท้าย
  • ส่วนตัวอย่างก็ใช้โครงสร้างเดียวกันซ้ำ เพื่อแสดงลักษณะของพรอมป์ต์ที่ประกอบเสร็จแล้ว
  • ตอนนี้ตัวอย่างจริงยังว่างอยู่ และแสดงเพียงคำแนะนำว่าให้ “ใช้ builder เพื่อสร้างพรอมป์ต์”
  • ฟังก์ชันที่ตรวจสอบได้ในตอนนี้จึงไม่ใช่การตั้งค่าซับซ้อน แต่ใกล้เคียงกับ แม่แบบประโยคสำหรับตัวสร้างพรอมป์ต์ มากกว่า

การจัดองค์ประกอบพรอมป์ต์แบบเติมช่องว่าง

  • หน้าเว็บนี้อยู่ภายใต้หัวข้อ LLM Prompting และเป็นรูปแบบที่ผู้ใช้ต่อชิ้นส่วนประโยคเข้าด้วยกันเพื่อสร้างพรอมป์ต์
  • ลำดับการกรอกประกอบด้วยชิ้นส่วนประโยคดังนี้
    • Act like a ,
    • I need a ,
    • you will ,
    • in the process, you should ,
    • please ,
    • input the final result in a ,
    • here is an example:

สถานะการแสดงผลปัจจุบัน

  • โครงสร้างพรอมป์ต์เดียวกันนี้ถูกแสดงซ้ำใน ส่วนตัวอย่าง
  • เนื้อหาตัวอย่างจริงยังไม่ได้ถูกเติมไว้
  • ตอนท้ายมีข้อความแนะนำว่า [Empty prompt, use the builder to create a prompt]
  • จากเนื้อหาที่มีให้ดูในตอนนี้ ฟังก์ชันหลักคือ เทมเพลตสร้างพรอมป์ต์แบบเติมช่องว่าง

1 ความคิดเห็น

 
GN⁺ 2024-02-02
ความคิดเห็นจาก Hacker News
  • สงสัยว่าช่วงนี้คนยังใช้ custom prompt กันบ่อยแค่ไหน
    เมื่อก่อนผลลัพธ์ดีขึ้นมาก เลยอินกับ prompt engineering และการเขียน custom prompt อยู่ลึกพอสมควร แต่พอมีอัปเดตแต่ละครั้ง วิธีชี้นำความสนใจของ ChatGPT อย่างมีประสิทธิภาพก็เปลี่ยนไปเรื่อย ๆ จนเริ่มยุ่งยากขึ้น
    ตอนนี้ก็ยังใช้ custom ChatGPT บ้างเป็นครั้งคราว แต่ส่วนใหญ่ใช้ ChatGPT แบบปกติ และก็รู้สึกว่าความต่างด้านคุณภาพลดลงแล้ว
    prompt ที่ยาวทำให้เวลาตอบช้าลงมาก เลยเริ่มชอบ คำตอบที่ดีพอ ซึ่งเร็วกว่า มากกว่าคำตอบที่ดีกว่าแต่ช้า จะพยายามให้ได้คำตอบสมบูรณ์แบบในครั้งเดียวก็จริง แต่ถ้ายังไม่พอก็ค่อยถามต่อทีหลังง่ายกว่า

    • ตอนนี้คิดว่ามันควรถูกมองว่าเป็น การจับทาง prompt มากกว่า “prompt engineering” เสียอีก ส่วน prompt engineering จริง ๆ เช่นการทำ A/B test พร้อม evaluation นั้นกลับมีอยู่น้อยจนน่าตกใจ และหลายครั้งก็อาจไม่ใช่วิธีคิดที่เหมาะตั้งแต่ต้น
      สิ่งที่ต้องมีคือการสร้างสัญชาตญาณต่อ ChatGPT และลองคิดแบบ theory of mind ว่า ChatGPT ต้องการอะไรจึงจะทำงานได้ดีขึ้น
      ส่วนใหญ่แค่รู้วิธีแก้ไข prompt ก็ใช้ ChatGPT ได้ดีแล้ว นี่แทบจะเป็นฟีเจอร์ลับ และในแอปก็ยังใช้ไม่ได้
      การเรียนรู้วิธีโต้ตอบกับ AI อาจไม่เหมาะกับสติที่ปลอดโปร่งที่สุดก็ได้ เลยอยากแนะนำค็อกเทลแรง ๆ หรือกัญชาด้วย แต่ข้ออ้างสุดท้ายนั้นควรมีการทดลองแบบควบคุมก่อน
    • ประสบการณ์เหมือนกันเลย น่าจะมีการ fine-tune โมเดลต่อเนื่องจากแชตของผู้ใช้จริงอยู่แล้ว เลยเหมือนว่ามันเข้าใจ prompt แบบพิมพ์ลวก ๆ ตอนเดินทางได้ดีขึ้นเรื่อย ๆ
    • น่าสนใจที่บอกว่ายิ่ง input ยาว คำตอบยิ่งช้า ฉันไม่เคยรู้สึกว่าช้าลงเลย เลยสงสัยว่ามันเกิดเฉพาะกับ แพ็กเกจฟรี ของ ChatGPT หรือเปล่า
    • ยกเลิกบัญชีไปหลังจากที่ ChatGPT4 ทำให้ปิด ฟีเจอร์เข้าถึง Bing ไม่ได้
    • ไม่คิดว่าตัวเองเคยเข้าไปคลุกกับ “prompt engineering” อย่างลึกซึ้งนะ คิดว่า prompt engineering ไม่เคยเป็น และจะไม่มีวันเป็นสาขาที่มีตัวตนชัดเจนจริง ๆ
  • ถ้าจะให้มีประโยชน์มากสำหรับคนที่เพิ่งเข้ามาในสายนี้ ยังต้องมีอะไรอีกหลายอย่าง ซึ่งบางส่วนก็ดีที่เริ่มทำไปแล้ว
    น่าจะมี เทมเพลต หลายแบบทั้งสำหรับคำสั่งล่วงหน้าและ prompt หลังประมวลผล เช่น prompt ที่ผ่านการพิสูจน์แล้วว่าช่วยให้ output ตรงตามรูปแบบเฉพาะอย่าง JSON, รายการ, หรือ CSV แบบจำกัด ได้มากที่สุด หรือเทมเพลต input ที่ช่วยกันการ jailbreak พื้นฐานใน prompt หลักให้มากที่สุด
    คนที่ใช้ ChatGPT ทุกวันอาจค้นพบวิธีวอร์มอัปที่ดีที่สุดหรือวิธีป้องกัน output หลุดฟอร์มแบบไม่คาดคิดไปแล้ว แต่การให้มือใหม่มาเรียนรู้สิ่งเหล่านี้เองตั้งแต่ต้นใช้เวลานานมาก ดังนั้นถ้ามีเทมเพลตที่เชื่อถือได้ก็จะยอดเยี่ยมสำหรับผู้เริ่มต้น

    • ถ้าต้องการ response จาก API ที่เป็น JSON ถูกต้อง สามารถขอแบบ JSON mode ได้: https://platform.openai.com/docs/api-reference/chat/create#c...
    • เวลาต้องการให้คำตอบออกมาเป็น JSON ที่ถูกต้อง คำสั่งแรง ๆ ประมาณนี้ใช้ได้ผลค่อนข้างดี
      “ผลลัพธ์ต้องเป็น JSON ที่ถูกต้องและต้องมีเนื้อหาครบทั้งหมด ห้ามออกนอกรูปแบบนี้ไม่ว่ากรณีใด ๆ ทุกค่าต้องสมบูรณ์และห้ามขาดแม้แต่ค่าเดียว ห้ามเพิ่มข้อความใดนอกเหนือจากผลลัพธ์ JSON”
      ถ้าพูดแค่ว่าขอ JSON ที่ valid อย่างเดียว มันไม่ได้เป็นไปตามหวังเสมอไป เช่น GPT-4 API อาจใส่ formatting เพิ่มมาให้ เลยต้องค่อย ๆ สั่งละเอียดขึ้นเรื่อย ๆ
  • ตอนนี้กำลังลงลึกกับงานที่เกี่ยวกับ ChatGPT มาก และสร้างแอปอยู่สัปดาห์ละ 1–2 ตัว เลยอาจมีอคติอยู่บ้าง
    ถ้ากลุ่มเป้าหมายคือคนที่ยังไม่คุ้นกับ large language model แบบอิง prompt ปัญหาและขอบเขตของวิธีแก้ก็น่าจะยังไม่ได้ถูกนิยามไว้อย่างชัดเจนพอสำหรับพวกเขา
    ตัวอย่างเช่น ตัวเลือกที่กำหนดไว้ล่วงหน้ายังน้อยเกินไป และมีส่วนที่บอกว่า “กำหนดเอง” มากเกินไป ความหมายของตัวเลือกที่ให้มาก็ไม่ชัดเจน เช่น “you will Detect” จะช่วยผู้ใช้อย่างไรนั้นเข้าใจได้ยาก
    สุดท้ายเลยไม่ชัดว่าตัวเลือกต่าง ๆ ส่งผลต่อ output อย่างไร และเครื่องมือนี้ก็กลายเป็นปัญหาไก่กับไข่ บอกว่าจะช่วยให้เข้าใจระบบ แต่ถ้าจะใช้ให้มีประสิทธิภาพก็ต้องเข้าใจระบบก่อนอยู่ดี
    ระดับนี้อาจจะง่ายกว่าถ้าไปให้ ChatGPT ช่วยเขียน prompt ที่มีประสิทธิภาพให้เลย

    • ผมตั้งสมมติฐานว่ากลุ่มเป้าหมายคือคนที่พอรู้จัก large language model แบบอิง prompt อยู่บ้าง และต้องการคำแนะนำเล็กน้อย ถ้าเป็นแบบนั้น นี่ก็ดูเป็น framework ที่เรียบง่ายและดีมากสำหรับพัฒนาทักษะ
    • ผมไม่เคยทำโปรเจกต์ที่สั้นกว่าไม่กี่เดือนเลย เลยสงสัยว่า แอปที่ทำเสร็จได้ในครึ่งสัปดาห์ เป็นประมาณไหน มีลิงก์ให้ดูไหม
  • เวลาเราคุยกับบอตพวกนี้ เรากำลังคุยกับอะไรกันแน่?
    https://medium.com/@colin.fraser/who-are-we-talking-to-when-...
    การนำเสนอเทคโนโลยีนี้ผ่านอินเทอร์เฟซแชตที่มีลักษณะเหมือนบุคคล หรือพูดอีกแบบคือทำให้ดูเหมือนสวมชุดมนุษย์ เป็นการตัดสินใจโดยเจตนา ถ้าหากมี AGI อเนกประสงค์ที่ถูกกักอยู่ข้างในจริง การโต้ตอบผ่านแชตก็คงดูเป็นธรรมชาติ
    แต่ในทางกลับกัน มันก็ทำให้คิดได้ง่ายว่าการที่เทคโนโลยีโต้ตอบผ่านแชต เท่ากับว่ามันคือ AGI ไปเลย หากลองไปเล่นกับ large language model โดยตรงใน Playground จะเห็นว่าการแชตก็เป็นเพียงชั้นของ ควันและกระจก ที่ช่วยเสริมภาพลวงว่ามีคู่สนทนาอยู่จริง

    • GPT เหนือสิ่งอื่นใดคือ นักแสดงด้นสด มันถูกฝึกให้ต่อข้อความที่ได้รับมาให้ฟังดูเป็นธรรมชาติที่สุด ดังนั้นเมื่อไม่รู้ว่าควรมีอะไรต่อ มันก็จะประดิษฐ์สิ่งที่ฟังดูน่าเชื่อถือขึ้นมา
      จากนั้นนักแสดงด้นสดอเนกประสงค์คนนี้ก็ถูกฝึกต่อให้รับบทเฉพาะ คือคนที่ตอบคำถาม แต่ถ้าปล่อยให้ตอบได้ทุกคำถาม ก็อาจให้คำแนะนำที่เป็นอันตรายได้ จึงต้องฝึกให้เป็นผู้ตอบคำถามที่ให้คำแนะนำอย่างไม่เป็นอันตราย
      ถ้าจะให้โมเดลช่วยทำงาน เราต้องรู้ว่าควรให้มันรับบทแบบไหน บทบาทแบบ “คนที่พยายามตอบคำถาม” นั้นยืดหยุ่น และช่วยให้ปรับคำตอบให้เหมาะเฉพาะได้มากขึ้น
      ดังนั้น อินเทอร์เฟซแบบสนทนา จึงเป็นครึ่งหนึ่งเพราะมันเป็น UI ที่อธิบายตัวเองได้ และอีกครึ่งหนึ่งก็เพื่อชี้นำให้โมเดลทำหน้าที่ที่เป็นประโยชน์
  • ดูเหมือนว่านี่ไม่ได้เชื่อมกับ ChatGPT เป็นพิเศษอะไร แค่เป็นฟอร์มที่ให้คลิกบล็อกข้อความมาประกอบกัน และน่าจะใช้ได้กับโมเดลภาษาขนาดใหญ่ไหนก็ได้
    ผมคิดว่าการยึดติดกับโมเดลภาษาขนาดใหญ่ของผู้ให้บริการแบบปิดรายใดรายหนึ่งไม่ได้ช่วยให้วงการนี้ก้าวหน้า

    • เห็นด้วย ชัดเจนว่าไม่ได้ทำมาเฉพาะสำหรับ ChatGPT และใกล้เคียงกับฟอร์มสำหรับเติมบางส่วนของประโยคมากกว่า เพียงแต่ ChatGPT เป็นชื่อที่คนจำได้ง่ายที่สุดชื่อหนึ่ง และดูเหมือนจะให้ผลลัพธ์หลายรูปแบบได้ดีกว่า
      ตัวสร้างพรอมป์นี้ใช้ได้กับโมเดลภาษาขนาดใหญ่ทุกตัว
  • น่าจะดีถ้ามีการวิเคราะห์จริง ๆ ว่าฟีเจอร์ของพรอมป์แต่ละอย่างช่วยปรับปรุงคำตอบอย่างไร

    • ขอโปรโมตนิดหนึ่ง อาจจะมีเครื่องมือแบบนั้นอยู่นะ :) https://github.com/agenta-ai/agenta
      เรากำลังสร้างแพลตฟอร์มสำหรับประเมินพรอมป์และเวิร์กโฟลว์ของโมเดลภาษาขนาดใหญ่ที่ซับซ้อนยิ่งขึ้น
      จากผู้ใช้ที่เราเห็น ผลลัพธ์ของพรอมป์มีความสุ่มตามความน่าจะเป็นสูงมาก จึงสรุปเป็นกฎทั่วไปได้ยาก ตัวอย่างเช่น ผู้ใช้คนหนึ่งที่กำลังสร้างเครื่องมือช่วยงานขายพบว่า แค่สลับลำดับประโยคในพรอมป์ ความแม่นยำก็เพิ่มขึ้นมาก
    • เมื่อเดือนที่แล้ว ในเชิงอรรถของบทความบล็อกมีการเขียนว่า ถ้าใส่ใน system prompt ว่า “ถ้าตอบดีจะให้ทิป 500 ดอลลาร์” ประสิทธิภาพของโมเดลจะดีขึ้น แต่บน Hacker News คนโกรธกันมากและเรียกมันว่าเป็นวิทยาศาสตร์ลวง: https://news.ycombinator.com/item?id=38782678
      ตอนนี้กำลังเตรียมบทความใหม่เพื่อแสดงผลนี้ในเชิงวิชาการมากขึ้น
    • น่าเสียดายที่เรื่องนี้ยากมากเป็นพิเศษด้วยสองเหตุผล
      อย่างแรก พื้นที่ของอินพุตแทบจะไร้ขอบเขต มีทั้งอินพุตภาษาธรรมชาติแบบใดก็ได้ แหล่งข้อมูลเสริมแบบเลือกใช้ และกรณีใช้งานได้ตามใจ ดังนั้นจึงยากมากที่จะรู้ล่วงหน้าว่าคำตอบจะ “ดีขึ้น” ได้หรือไม่ก่อนนำไปใช้กับกรณีใช้งานจริง
      อย่างที่สอง พื้นที่ของเอาต์พุตก็วัดได้ยากเช่นกัน ความมีประโยชน์อาจถูกนิยามต่างกันไปในแต่ละคน และยิ่งซับซ้อนขึ้นอีกเมื่อเริ่มใช้ GPT เพื่อสร้างผลงานเชิงสร้างสรรค์ แทนที่จะเป็นแค่ “เสิร์ชเอนจินที่ดีกว่าเดิม”
  • ผมไม่เคยเข้าใจความหมายของคำว่า “prompt engineering” เลย สุดท้ายแล้วมันเคยไปไกลกว่า “สามารถอธิบายปัญหาที่พยายามจะแก้หรือ งานที่พยายามจะทำให้ชัดเจนและแม่นยำได้หรือไม่” จริงหรือเปล่า มันดูเหมือนเป็นแค่ทักษะการสื่อสารพื้นฐาน
    ผมไม่เคยเห็นข้อมูลเชิงเข้มงวดเลยว่าพรอมป์รูปแบบเฉพาะอย่าง “คุณคือ B และทำ C และต้องทำ D” จะดีกว่าคำสั่งที่ชัดเจนและกระชับแบบอื่นอย่างมีนัยสำคัญ
    น่าประหลาดใจที่เราเอาสิ่งที่แต่ก่อนเรียกว่าทักษะการสื่อสารที่ดีมาตั้งชื่อใหม่ แต่ภาพจำเก่า ๆ ที่ว่าวิศวกรเขียนหนังสือไม่เก่งอาจจะใกล้เคียงความจริงกว่าที่คิด

  • สงสัยว่ารูปแบบ “จงทำตัวเป็น ~” ยังจำเป็นอยู่ไหม
    สำหรับ GPT-4 ผมเลิกใช้แล้ว “persona” ตั้งต้นก็ตอบพรอมป์ส่วนใหญ่ได้ดีพออยู่แล้ว และการบอกว่า “จงทำตัวเป็นผู้เชี่ยวชาญด้าน ...” ก็ไม่ได้ให้ผลลัพธ์ที่ดีขึ้นอย่างเห็นได้ชัด
    เครื่องมือที่อยากได้จริง ๆ คือเครื่องมือที่ให้ลองและเปรียบเทียบหลายพรอมป์ที่แก้ไขเล็กน้อยได้อย่างเบาแรงแต่มีประสิทธิภาพ เพื่อให้พอมองออกว่าแบบไหนดีกว่า สงสัยว่ามีใครเคยเห็นเครื่องมือดี ๆ แบบนี้บ้างไหม

    • สงสัยว่าคุณหมายถึงการทดสอบหลายพรอมป์กับชุดคำถามหรือเปล่า ผมหาเครื่องมือที่ทำมาเพื่อจุดประสงค์นั้นโดยตรงไม่เจอ และเวลาจะเปรียบเทียบพรอมป์ ผมก็ใช้สคริปต์สั้น ๆ วนรันคำถามกับพรอมป์
      ถ้าจะสร้างเครื่องมือที่แค่เพิ่มพรอมป์ที่อยากทดสอบเข้าไปก็คงสนุกดี แต่โจทย์แรกที่นึกออกคือการสร้างชุดคำถามที่จะใช้
      ผมก็สงสัยเหมือนกันว่าการทดสอบพรอมป์ที่พูดถึงนี้หมายถึงการทดสอบ system prompt กับชุดคำถาม หรือเป็นการถามคำถามเดียวกันหลายแบบ
    • ผมคิดว่ารูปแบบนั้นเดี๋ยวนี้ไม่ค่อยมีประโยชน์แล้ว
      แล้วถ้าผมทำเครื่องมือแบบนั้นเสร็จและพร้อมใช้ จะ DM ไปทาง Twitter
  • โดยทั่วไปดูเหมือนว่ายิ่งรายการคำสั่งยาวเท่าไร ChatGPT ก็ยิ่งมีโอกาสทำตามแต่ละคำสั่งได้น้อยลง เหมือนความสนใจถูกแบ่งออก ดังนั้นถ้าบอกแค่ “ทำ A” มันจะทำ A แต่ถ้าบอกว่า “ทำ A แล้วก็ทำ B” มันจะทำทั้งสองอย่าง แต่แต่ละอย่างจะทำได้เพียงบางส่วน
    ประสบการณ์ที่ดีที่สุดของผมคือให้พรอมป์สั้นหรือยาวปานกลาง แล้วค่อยใช้ตัวอย่างแบบone-shot หรือ few-shot ต่อจากนั้น โดยเฉพาะเวลาที่อยากให้มันทำหลายอย่างพร้อมกัน few-shot จะดีมาก