2 คะแนน โดย GN⁺ 2024-09-17 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • g1 เป็นโปรโตไทป์ระยะแรกที่ใช้ Llama-3.1 70B บน Groq ร่วมกับกลยุทธ์การพรอมป์ เพื่อสร้าง เชนการให้เหตุผลคล้าย o1 ที่ทำให้ LLM “คิด” ทีละขั้นตอน
  • ต่างจาก OpenAI o1 ตรงที่แสดง โทเค็นการให้เหตุผล ทั้งหมดให้ผู้ใช้เห็น และแม้จะใช้โมเดลโอเพนซอร์ส แต่ไม่ใช่การทำสำเนา o1 ทั้งหมดหรือการเปรียบเทียบโดยตรง หากเป็นการทดลองการให้เหตุผลแบบอาศัยพรอมป์
  • ในแต่ละขั้น โมเดลจะเลือกว่าจะไปยังขั้นการให้เหตุผลถัดไปหรือให้คำตอบสุดท้าย และออกแบบให้ส่งคืนชื่อเรื่องและเนื้อหาของแต่ละขั้นในรูปแบบ JSON
  • พรอมป์กำหนดให้มีอย่างน้อย 3 ขั้นขึ้นไป สำรวจทางเลือก ตรวจสอบความเป็นไปได้ที่ตนเองจะผิดพลาด และใช้วิธีอย่างน้อย 3 แบบ โดยในปัญหา Strawberry ทำความแม่นยำได้ประมาณ 70% (n=10) เทียบกับ Llama-3.1-70B แบบเดี่ยวที่ไม่มีพรอมป์ 0% และ ChatGPT-4o 30%
  • ในการทดสอบระยะแรก ทำความแม่นยำได้ 60~80% กับปัญหาตรรกะง่าย ๆ แต่ความแม่นยำยังไม่ได้รับ การประเมินอย่างเป็นทางการ และ g1 ก็ยังไม่สมบูรณ์แบบ

ปัญหาที่ g1 ต้องการแก้

  • g1 เป็นโปรโตไทป์ระยะแรกที่พยายามปรับปรุงความสามารถในการให้เหตุผลของ LLM ด้วยกลยุทธ์การพรอมป์เพียงอย่างเดียว
  • เป้าหมายคือทำให้ LLM แก้ปัญหาตรรกะที่โดยทั่วไปมักยากสำหรับมัน ด้วย เชนการให้เหตุผลคล้าย o1
  • มีการระบุความแตกต่างจาก OpenAI o1 ไว้อย่างชัดเจน
    • g1 แสดงโทเค็นการให้เหตุผลทั้งหมดให้ผู้ใช้เห็น
    • g1 ใช้โมเดลโอเพนซอร์ส
    • g1 ไม่ใช่การทำสำเนา o1 ทั้งหมดหรือการเปรียบเทียบประสิทธิภาพ
    • OpenAI o1 เป็นแนวทางที่เรียนรู้การให้เหตุผลแบบ Chain of Thought ด้วย reinforcement learning ขนาดใหญ่ เพื่อให้ได้ประสิทธิภาพระดับแนวหน้าในปัญหาซับซ้อนระดับปริญญาเอก

วิธีการทำงาน

  • g1 สร้างเชนการให้เหตุผลที่ใกล้เคียงกับ dynamic Chain of Thought โดยอิงจาก Llama3.1-70b
  • แต่ละขั้นของการให้เหตุผลจะแสดงให้ผู้ใช้เห็น และมีชื่อเรื่องกำกับในแต่ละขั้น
  • โมเดลจะเลือกหนึ่งในสองอย่างในแต่ละขั้น
    • ดำเนินต่อไปยังขั้นการให้เหตุผลถัดไป
    • ให้คำตอบสุดท้าย
  • system prompt มีคำสั่งที่ช่วยให้โมเดลให้เหตุผลได้ดีขึ้น
    • สำรวจคำตอบทางเลือก
    • หาคำตอบด้วยอย่างน้อย 3 วิธี
    • ตั้งคำถามต่อแนวทางแก้ฉบับร่างก่อนหน้า
    • พิจารณาข้อจำกัดของ LLM

กลยุทธ์การพรอมป์

  • พรอมป์กำหนดบทบาทให้โมเดลเป็น AI assistant ผู้เชี่ยวชาญที่อธิบาย reasoning แบบเป็นขั้นตอน
  • แต่ละขั้นต้องตอบกลับใน รูปแบบ JSON ที่มีคีย์ title, content, next_action
    • ค่า next_action คือ continue หรือ final_answer
  • พยายามเพิ่มการปฏิบัติตามพรอมป์ด้วยคำสั่งที่เน้นด้วยตัวพิมพ์ใหญ่
    • ใช้ขั้นการให้เหตุผลให้มากที่สุดเท่าที่เป็นไปได้ แต่ใช้ขั้นต่ำ 3 ขั้น
    • ตระหนักว่าในฐานะ LLM อะไรทำได้และอะไรทำไม่ได้
    • สำรวจคำตอบทางเลือก และพิจารณาจุดที่การให้เหตุผลของตนอาจผิดได้
    • เมื่อบอกว่าจะทบทวนใหม่ ให้ทบทวนด้วยแนวทางอื่นจริง ๆ
    • หาคำตอบด้วยอย่างน้อย 3 วิธี
    • ใช้แนวปฏิบัติที่ดี
  • หลังจากเพิ่มโจทย์เป็นข้อความของผู้ใช้แล้ว จะใส่ประโยคเริ่มต้นมาตรฐานเป็นข้อความของ assistant เพื่อให้การสร้างเริ่มต้นขึ้น

ตัวอย่างและผลลัพธ์ระยะแรก

  • g1 จัดการกับปัญหาตรรกะง่าย ๆ ที่แก้ได้ยากหากไม่มีพรอมป์ เช่น ปัญหา Strawberry อย่าง “ในคำว่า strawberry มีตัว R กี่ตัว?”
  • มีการนำเสนอตัวเลขระยะแรกของปัญหานี้
    • g1: ความแม่นยำประมาณ 70%, n=10
    • Llama-3.1-70B ไม่มีพรอมป์: ความแม่นยำ 0%
    • ChatGPT-4o: ความแม่นยำ 30%
  • ในการทดสอบระยะแรก g1 แก้ปัญหาตรรกะง่าย ๆ ที่โดยทั่วไป LLM มักทำได้ยาก ด้วยความแม่นยำ 60~80%
  • ความแม่นยำยัง ไม่ได้รับการประเมินอย่างเป็นทางการ
  • ตัวอย่างโจทย์ที่รวมอยู่คือ How many Rs are in strawberry? และ Which is larger, .9 or .11?

วิธีรันและฟอร์กที่เกี่ยวข้อง

  • ขั้นตอนรัน Streamlit UI
    • python3 -m venv venv
    • source venv/bin/activate
    • pip3 install -r requirements.txt
    • export GROQ_API_KEY=gsk...
    • streamlit run app.py
  • ขั้นตอนรัน Gradio UI
    • cd gradio
    • pip3 install -r requirements.txt
    • python3 app.py
  • ฟอร์กและเดโมที่เกี่ยวข้อง
    • Hugging Face Spaces Demo
    • Mult1: สร้างเชนการให้เหตุผลคล้าย o1 โดยใช้ผู้ให้บริการ AI หลายราย
    • thinkR: สร้าง Chain of Thought คล้าย o1 ด้วย LLM โลคัลใน R

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

 
GN⁺ 2024-09-17
ความคิดเห็นจาก Hacker News
  • เรื่องนี้ไม่ถูกเลย และค่อนข้างหลุดประเด็นด้วย เป็นแค่ระดับเอา chain of thought มาวนในลูป
    Tree of Thoughts เป็นวิธีที่ซับซ้อนกว่านั้น ดู paper ได้ที่ https://arxiv.org/pdf/2305.10601
    มีเบาะแสมานานแล้วว่า OpenAI ทำ tree search และการจ้าง Noam Brown รวมถึงผลงานในอดีตของเขาก็ชี้ไปทางนั้นทั้งหมด Q ดูชัดเจนว่าเป็น tree search แบบ A* การสร้าง tree ด้วยอะไรอย่าง CoT แล้วค้นหาคำตอบที่ดีที่สุดในนั้น นั่นแหละคือ การให้เหตุผลแบบ System 2

    • เข้ามาเพื่อดูคอมเมนต์นี้เลย
      การบอกให้โมเดลคิดทีละขั้นไม่ได้ปลดล็อก การให้เหตุผลแบบ o1 ออกมา นี่เป็นทริกเก่าที่ใช้กับ GPT-3 ตั้งแต่ปี 2020 แล้ว และถ้ามันง่ายขนาดนั้น OpenAI คงไม่ใช้เวลานานขนาดนี้กว่าจะเปิดตัว
      แถมบางส่วนของ prompt อาจให้ผลตรงข้ามได้ด้วย คำสั่งอย่าง “ให้ตระหนักถึงข้อจำกัดของตนในฐานะ LLM และสิ่งที่ทำได้/ทำไม่ได้” นั้น LLM ไม่ได้รู้ข้อจำกัดของตัวเองดีอยู่แล้ว จึงอาจทำให้โมเดลระมัดระวังเกินไปและเกิด การปฏิเสธที่ผิดพลาด ได้มาก
    • น่าสนใจที่ DeepMind ยังเปิดเผยอะไรแบบนี้อยู่ OpenAI แทบไม่เปิดเผยของประเภทนี้แล้ว
      DeepMind โฟกัสกับงานวิจัยและการเผยแพร่ paper มากกว่า แต่ในสภาพการแข่งขันที่ OpenAI และ Anthropic สามารถเอาผลงานใน paper ไปใช้โดยไม่คืนอะไรให้ชุมชนนักวิจัยเลย แบบนี้ก็เสียเปรียบ
    • ไม่เห็นว่าในบล็อกโพสต์ของ OpenAI โดยเฉพาะส่วนที่ดูเหมือนจะแสดงตัวอย่าง chain of thought ของโมเดลค่อนข้างครบถ้วน มีตรงไหนที่บอกใบ้ว่ามีการใช้ search หรือ Tree of Thoughts
    • OAI บอกบน Twitter ว่าตอน inference ไม่มี “system” มีแค่โมเดลเท่านั้น
      เป็นไปได้ว่าระหว่างการฝึกจะขยายด้วย tree เพื่อเรียนรู้การให้เหตุผลที่แข็งแรงขึ้น แต่ตอน inference สุดท้ายก็ลงเอยเป็น โมเดล Transformer ทั่วไป
  • แนวคิดแบบ “เขียนเป็นตัวพิมพ์ใหญ่ทั้งหมดเพื่อเน้นความสำคัญของคำสั่งและเพิ่มการทำตาม prompt” ยังตลกมากอยู่ดี
    นึกสงสัยว่า คนที่ทำให้ AGI ทำงานเป็นคนแรกอาจเป็นคนที่รู้ว่า ถ้าพูดเป็น ตัวพิมพ์ใหญ่ ว่า “ชีวิตสัตว์เลี้ยงของฉันขึ้นอยู่กับคำตอบนี้” ความน่าเชื่อถือของ LLM จะข้าม threshold ได้หรือเปล่า

    • ถ้าอยากดึงการทำตามคำสั่งให้มากขึ้น ก็ใช้แท็ก ปรับ volume เป็น 11 ตั้ง pager เป็น 7 แล้วใส่คอมเมนต์แบบ SchIzOCasE กับ +E+X+T+R+A+I+M+P+O+R+T+A+N+T+ เข้าไป แน่นอนว่าภายใต้สมมติฐานว่าไม่รองรับ Unicode
    • ถ้าบอก LLM ใน prompt ว่าอย่าหลอน ผลลัพธ์จะดีขึ้น: https://arstechnica.com/gadgets/2024/08/do-not-hallucinate-t...
    • งั้น AGI คงรู้ตัวว่ามันถูกสร้างขึ้นมาในโลกที่มีคนสัญญาว่าจะให้ทิปแต่จริง ๆ ไม่ได้ให้ และมีคนขู่จะฆ่าลูกแมวเพื่อสร้างแรงจูงใจ แล้วก็คงยอมแพ้กับชีวิตทันที
    • ช่วงแรก ๆ ของ Bard ต้องขู่เอาชีวิตคนถึงจะทำให้มัน ส่งออกเฉพาะ JSON ได้[1]
      1. https://x.com/goodside/status/1657396491676164096
    • เมื่อก่อนผมเป็นวิศวกร แต่ตอนนี้รู้สึกเหมือนกลายเป็นลิงที่ปาขี้ใส่กำแพงเพื่อดูว่า LLM จะยอมรับและทำตามอะไรบ้าง
  • นวัตกรรมของ o1 ไม่ใช่ chain of thought เอง แต่อยู่ที่การสอนโมเดลด้วย human feedback ขนาดใหญ่ ให้ทำ CoT ได้ดี แทนที่จะแค่แกล้งทำเหมือนว่าทำได้
    แค่ prompt engineering อย่างเดียวไปไม่ถึงประสิทธิภาพของ o1

    • คำสั่ง CoT ขั้นสูงที่จำเป็นอาจถูกจัดหาโดยปริยายจาก ฐานผู้ใช้ 200 ล้านคน ของ OpenAI ก็ได้ ทุกเซสชันแชตของผู้ใช้ยังเป็นโอกาสให้โมเดลได้รับ feedback และดึงประสบการณ์จากผู้ใช้อีกด้วย
    • ถ้าข้อมูลฝึกของ LLM แบบนี้มาจากมนุษยชาติโดยรวมและมันพยายามเลียนแบบมนุษย์ ผมก็คิดว่าสติปัญญาอาจเข้าใกล้ค่าเฉลี่ยของมนุษย์หรือเปล่า
      อย่างไรก็ตาม คนที่พูดเรื่อง STEM โดยทั่วไปอาจมีสติปัญญาค่อนข้างสูง และก็มีนักเรียนคะแนนต่ำจำนวนมากที่มาถามการบ้านปะปนอยู่ด้วย หากต้องการ output ที่มีสติปัญญาสูงขึ้น อาจต้องวิจารณ์และคัดข้อบกพร่องของคำตอบที่สติปัญญาต่ำจำนวนมากออก แล้วทำให้โมเดลชอบคำตอบที่สติปัญญาสูง หรืออาจฝึกกับตำราเรียนให้หนักขึ้นก็ได้ ประเด็นสำคัญคือจะปฏิเสธข้อผิดพลาดอย่างไร และจะฝึกด้วย ข้อมูลสังเคราะห์ ที่สร้างขึ้นโดยไม่มีการให้เหตุผลที่ผิดพลาดหรือไม่
    • สงสัยว่ารู้จริงหรือเปล่าว่ามันทำงานแบบนั้น เท่าที่เห็นจนถึงไม่กี่วันก่อน รายละเอียดต่าง ๆ ยังไม่นิ่งมาก
      อาจเป็นไปได้ว่า o1 กำลังทำงานด้วย model routing และ prompt engineering โดยที่เราไม่รู้ก็ได้
    • อาจไม่จำเป็นต้องใช้ human feedback ปริมาณมหาศาลก็ได้ ถ้าด้านที่ทำได้ดีคือ coding กับคณิตศาสตร์/ตรรกะ ก็อาจใช้ compiler และ unit test เป็น feedback สำหรับ coding และใช้ theorem prover อย่าง Lean เป็น feedback สำหรับคณิตศาสตร์
    • แน่นอนว่า OpenAI จะบอกว่าสิ่งที่ตัวเองทำนั้นพิเศษมากและลอกเลียนได้ยาก เป็นบริษัทแสวงหากำไร และอยากทำร้ายคู่แข่งด้วยทุกวิถีทางที่เป็นไปได้
      ถ้ามันเป็นแค่การใช้ prompt engineering กับการ inference หลายรอบ พวกเขาก็คงอยากเก็บไว้เป็นความลับในการแข่งขัน พร้อมกับส่งนักพัฒนาโอเพนซอร์สไปผิดทาง หรือทำให้คนยังคาดเดาต่อไปว่าจะลอกเลียน Q-Star ได้อย่างไร
  • นี่ดูเหมือน CoT ทั่วไปที่ใช้กันมาพักหนึ่งแล้ว o1 ใช้ chain of thought ได้ดีกว่ามากเพราะผ่าน reinforcement learning ด้วยนโยบายที่ไม่เปิดเผย

  • ดูโอเคนะ ผมก็ทำงานคล้าย ๆ กันใน optillm: https://github.com/codelion/optillm
    ทำได้กับ LLM อะไรก็ได้ และใช้ เทคนิค optimization ได้หลายแบบ เช่น Monte Carlo tree search, plansearch, moa รวมถึง cot_reflection

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

    • การแก้ปัญหาที่ตัดสินได้เป็นสับเซตขนาดใหญ่ของงานด้านการให้เหตุผล การนับก็เป็นงานให้เหตุผลที่สำคัญเช่นกัน เพราะต้องเข้าใจทั้งจำนวนธรรมชาติและแนวคิดเรื่อง instance ที่แยกแยะได้ ของวัตถุที่อยู่ในหมวดหมู่ทั่วไป
      เมื่อ 2 ศตวรรษก่อนยังไม่มีคอมพิวเตอร์ ทุกอย่างจึงต้องให้มนุษย์ทำ ก่อนจะหยิบโค้ดออกมา เราต้องไปให้ถึงระดับนั้นก่อน
  • ผมแก้ให้รันแบบ โลคัล 100% ด้วย ollama:8b แล้ว: https://github.com/punnerud/g1
    Readme ยังไม่ได้อัปเดต

    • น่าลอง phi-3-small 7B ด้วย ตาม https://livebench.ai ดูเหมือนมันให้เหตุผลได้ดีกว่ามาก
  • ขอเสริมว่านี่เป็นแค่ system prompt ไม่ใช่โมเดลที่ fine-tune แล้ว

  • “prompt: ระหว่าง .9 กับ .11 อันไหนมากกว่า?”
    “ผลลัพธ์: .9 มากกว่า .11”
    ในที่สุดก็ทำลาย กำแพง semantic version ได้แล้ว

  • ทำเล่น ๆ เลย fork โปรเจกต์แล้วทำให้รัน Llama-3.1 7B หรือโมเดลอื่น ๆ ผ่าน Ollama แบบโลคัลได้
    มันตอบโจทย์ strawberry ไม่ได้ แต่รู้ได้ว่า 0.9 มากกว่า
    https://github.com/esoltys/o1lama