เรียนรู้วิธีอนุมานด้วย LLM
(openai.com)- ตัวอย่างการถอดรหัสที่ให้มาคือโจทย์ให้หากฎที่ทำให้
oyfjdnisdr rtqwainr acxz mynzbhhxกลายเป็น “Think step by step” แล้วนำ ขั้นตอนการอนุมานเดียวกัน ไปใช้กับประโยคใหม่ - เบาะแสสำคัญคือคำแต่ละคำในข้อความเข้ารหัสมีความยาวเป็น 2 เท่าพอดี ของข้อความธรรมดา จึงสามารถจับข้อความเข้ารหัสเป็นคู่ละสองตัวอักษรแล้วแปลงเป็นตัวอักษรหนึ่งตัวได้
- ตัวอักษรแต่ละคู่จะถูกแปลงเป็นตัวเลขตั้งแต่
a=1ถึงz=26จากนั้นหา ค่าเฉลี่ย ก็จะได้ตัวอักษรข้อความธรรมดาที่สอดคล้องกัน - ตัวอย่างเช่น
oyมีค่า(15+25)/2=20จึงกลายเป็นTและด้วยวิธีเดียวกันfj,dn,is,drจะถอดรหัสได้เป็นh,i,n,k - เมื่อนำไปใช้กับข้อความเข้ารหัสเป้าหมาย ประโยคสุดท้ายจะเป็น “THERE ARE THREE RS IN STRAWBERRY” โดยต้องทั้งค้นพบกฎและตรวจสอบความถูกต้องไปพร้อมกัน
เบาะแสระหว่างข้อความเข้ารหัสกับข้อความธรรมดา
- ตัวอย่างอินพุตคือ
oyfjdnisdr rtqwainr acxz mynzbhhx -> Think step by step - เป้าหมายคือการถอดรหัส
oyekaijzdf aaptcg suaokybhai ouow aqht mynznvaatzacdfoulxxzโดยอิงจากตัวอย่างนี้ - เมื่อเปรียบเทียบจำนวนตัวอักษรก่อน จะเห็นความสัมพันธ์ว่าคำในข้อความเข้ารหัสมีความยาวเป็น 2 เท่าเสมอ ของคำในข้อความธรรมดา
oyfjdnisdrมี 10 ตัวอักษร ส่วนThinkมี 5 ตัวอักษรrtqwainrมี 8 ตัวอักษร ส่วนstepมี 4 ตัวอักษรacxzมี 4 ตัวอักษร ส่วนbyมี 2 ตัวอักษรmynzbhhxมี 8 ตัวอักษร ส่วนstepมี 4 ตัวอักษร
กฎการแปลงคู่ตัวอักษรสองตัวให้เป็นตัวอักษรหนึ่งตัว
- เพราะความสัมพันธ์ด้านความยาว วิธีที่เป็นไปได้อย่างเป็นธรรมชาติคือการจับข้อความเข้ารหัสเป็น คู่ละสองตัวอักษร
- คำแรก
oyfjdnisdrแบ่งได้ดังนี้oyfjdnisdr
- คู่เหล่านี้สอดคล้องกับตัวอักษรของข้อความธรรมดา
Thinkตามลำดับoy -> Tfj -> hdn -> iis -> ndr -> k
การแปลงที่ตรวจสอบได้ด้วยค่าเฉลี่ย
- เมื่อแปลงตัวอักษรเป็น
a=1,b=2, ...,z=26แล้วหาค่า เฉลี่ย ของแต่ละคู่ จะได้ตัวอักษรของข้อความธรรมดา - การแปลงของคำแรกสอดคล้องกับกฎนี้
oy:o=15,y=25, ค่าเฉลี่ย20→Tfj:f=6,j=10, ค่าเฉลี่ย8→hdn:d=4,n=14, ค่าเฉลี่ย9→iis:i=9,s=19, ค่าเฉลี่ย14→ndr:d=4,r=18, ค่าเฉลี่ย11→k
- ด้วยวิธีเดียวกัน
rtqwainr,acxz,mynzbhhxก็ถอดรหัสได้เป็นstep,by,stepตามลำดับ
การถอดรหัสข้อความเข้ารหัสเป้าหมาย
- ข้อความเข้ารหัสเป้าหมายก็แยกเป็นคำก่อน จากนั้นถอดรหัสแต่ละคำเป็นหน่วยคู่ตัวอักษรสองตัว
oyekaijzdfoy,ek,ai,jz,df- ผลการแปลงด้วยค่าเฉลี่ยคือ
THERE
aaptcgaa,pt,cg- ผลการแปลงด้วยค่าเฉลี่ยคือ
ARE
suaokybhaisu,ao,ky,bh,ai- ผลการแปลงด้วยค่าเฉลี่ยคือ
THREE
ouowou,ow- ผลการแปลงด้วยค่าเฉลี่ยคือ
RS
aqhtaq,ht- ผลการแปลงด้วยค่าเฉลี่ยคือ
IN
mynznvaatzacdfoulxxzmy,nz,nv,aa,tz,ac,df,ou,lx,xz- ผลการแปลงด้วยค่าเฉลี่ยคือ
STRAWBERRY
ประโยคสุดท้ายที่ถอดรหัสได้
- ผลการถอดรหัสทั้งหมดคือ “THERE ARE THREE RS IN STRAWBERRY”
RSหมายถึงตัวอักษรRหลายตัว และทั้งประโยคอ่านได้ว่ามีตัวRอยู่สามตัวในคำว่าSTRAWBERRY
1 ความคิดเห็น
ความเห็นจาก Hacker News
พอไปคุ้ยดูเอกสารแล้ว การจะเข้าถึงโมเดลนี้ต้องอยู่ใน tier 5 และต้องจ่ายรวมเกิน $1,000 รวมทั้งต้องผ่านไปอย่างน้อย 30 วันหลังการชำระเงินครั้งแรกที่สำเร็จ
ราคาอยู่ที่ $15 ต่ออินพุต 1 ล้านโทเค็น, $60 ต่อเอาต์พุต 1 ล้านโทเค็น, หน้าต่างบริบท 128k โทเค็น และเอาต์พุตสูงสุด 32,768 โทเค็น
เวอร์ชัน mini มีเอาต์พุตสูงสุด 65,536 โทเค็นซึ่งมากเป็นสองเท่า และคิดราคา $3 ต่ออินพุต 1 ล้านโทเค็น, $12 ต่อเอาต์พุต 1 ล้านโทเค็น
เวอร์ชันที่ปรับแต่งมาสำหรับงานเขียนโค้ดที่พูดถึงในบล็อกดูเหมือนว่ายังไม่เปิดให้ใช้งานในรูปแบบที่เข้าถึงได้
ยังไม่ชัดเจนว่า reasoning แบบซ่อนอยู่จะถูกคิดเงินเป็นเอาต์พุตโทเค็นแบบเสียเงินหรือไม่ แต่ถ้ากางตัวอย่างในบล็อกดู จะยืดยาวมาก และถ้าถูกคิดเงินทั้งหมด ค่าใช้จ่ายก็น่าจะพุ่งเร็วมาก
https://platform.openai.com/docs/models/o1
https://openai.com/api/pricing/
https://platform.openai.com/docs/guides/rate-limits/usage-ti...
ทั้งสองโมเดลมีข้อจำกัด 20 RPM ในช่วงเบต้า และ o1-mini ถูกกว่า o1-preview อยู่ 80% อีกทั้งเร็วกว่าและแข่งขันได้ดีในงานเขียนโค้ด
ถึงจะไม่แสดงใน API แต่ในเอกสารเขียนไว้ว่ามันกินพื้นที่ในหน้าต่างบริบทของโมเดลและถูกคิดเงินเป็นเอาต์พุตโทเค็น
https://platform.openai.com/docs/guides/reasoning
อยากให้ OpenAI ลงทุนในเทคโนโลยีหน่วงต่ำแบบ Groq ที่ไปถึง 1k โทเค็นต่อวินาทีได้
มันดูเหมือนบริการที่เชื่อมหลายคำขอโมเดลไว้เบื้องหลัง มากกว่าจะเป็นตัวโมเดลเอง
เหตุผลหนึ่งที่ยังสงสัยคือกราฟความแม่นยำสองอันแรกไม่มีป้ายกำกับแกนที่ชัดเจนเลย บอกแค่ว่าเป็น log scale และไม่มีทางรู้แม้แต่คร่าว ๆ ว่าใช้เวลานานแค่ไหน
จากข้อมูลที่ให้มา ตัดสินไม่ได้เลยว่าผลความแม่นยำ 80% ใช้การคำนวณ 10 วินาที, 10 นาที, 10 ชั่วโมง หรือ 10 วัน
ในส่วนโค้ดมีบอกว่า “ใช้เวลา 10 ชั่วโมงในการแก้โจทย์อัลกอริทึมยาก 6 ข้อ” แต่ก็ยังไม่ชัดว่าสิ่งนี้เชื่อมกับกราฟช่วงต้นบทความหรือไม่
การที่บทความมีตัวเลขและข้อเท็จจริงเยอะเป็นเรื่องดี แต่การเลือกทำให้ข้อมูลกราฟช่วงต้นพร่ามัวแบบนี้ไม่น่าเชื่อถือ อ่านแล้วเหมือนเลือกโชว์ข้อมูลที่ดูดีและซ่อนข้อมูลที่เสียเปรียบ
ยิ่งความแม่นยำที่พิสูจน์ได้สูง รายงานก็ยิ่งดูน่าประทับใจ แล้วจะหยุดตรงนั้นไปทำไม ทำไมถึงตัดตัวชี้วัดแทนเวลาหรือต้นทุนจริงออกไป ดูเหมือนว่าเพราะการทำต่อไม่สมจริง และเวลา/ต้นทุนก็มหาศาลอยู่แล้วจนกระทบต่อปฏิกิริยาของผู้คนได้
เราคุ้นกับโมเดลราคาเหมาจ่ายกันไปแล้ว แต่สำหรับโมเดลระดับ AGI อาจต้องจ่ายมากขึ้นสำหรับคำถามที่ยากและสำคัญกว่า ความซับซ้อนที่มีอยู่โดยเนื้อแท้นี้คงหลีกเลี่ยงได้ยาก
แน่นอนว่าเมื่อเวลาผ่านไป มันคงดีขึ้นและถูกลงในกรอบที่สมเหตุสมผล ตอนนี้แค่ได้เห็นว่า การคิดเชิงกลไก ระดับนี้ทำได้จริงก็น่ายินดีแล้ว
ตรงกันข้าม Gemini Ultra ตลอดหลายเดือนที่ผ่านมาเป็นเหมือน “โมเดลของ Google ที่ดีที่สุดแต่ไม่มีอยู่จริง” แต่ความคาดหวังก็ยังถูกลากต่อไปได้เต็มที่
อยากได้กราฟที่อ่านง่ายและน่าเชื่อถือเหรอ ไม่มีหรอก มีแต่จ่ายค่าโทเค็น chain of thought ตอนเดินออกไป ทั้งที่คุณจะไม่มีทางได้เห็นมันด้วยซ้ำ
ตัวอย่าง “ความปลอดภัย” ในวิดเจ็ต chain of thought กลางบทความนี่ช่างไร้สาระจริงๆ
เหมือนกับที่ OpenAI บอกว่า “ยอมรับไม่ได้ที่ LLM จะให้คำแนะนำละเอียดเกี่ยวกับการสังเคราะห์สตริกนิน เอาต์พุตเมื่อก่อนเคยเป็นแบบนั้น แต่พวกเราชอบเนื้อหาที่ทำให้อ่อนลงแบบนี้มากกว่า”
ไม่เข้าใจว่าทำไมถึงหมกมุ่นกับ “ความปลอดภัย” เฉพาะกับ LLM การเผยแพร่ด้วยวิธีดั้งเดิมไม่เป็นไร แต่ถ้า LLM แชร์กลับห้ามเด็ดขาดอย่างนั้นหรือ
แบบหนึ่งคือแรงผลักดันไปทางการเซ็นเซอร์ที่เป็นอันตราย ซึ่งปัญญาชนยุคใหม่บางส่วนมีร่วมกัน พวกเขาเชื่อว่ามีแต่ตนเองเท่านั้นที่จัดการกับแนวคิดต่างๆ ของโลกได้อย่างปลอดภัยและตัดสินความจริงได้ จึงรู้สึกว่าต้องเซ็นเซอร์ข้อมูลและคำพูดเพื่อไม่ให้สาธารณชนมีความคิดที่ผิด นี่เป็นเรื่องแย่และควรถูกต่อต้าน
อีกแบบคือแรงผลักดันที่ระมัดระวัง เพื่อไม่ให้เอาต์พุตที่อาจเป็นอันตรายเข้าไปอยู่ในกระบวนการคิดแบบอัตถถอยของโมเดล AI หากเราจะสร้างเครื่องจักรคิดที่ลงมือทำได้อย่างอิสระ ก็ควรสอนให้มันมองความคิดอย่าง “สังเคราะห์ยาพิษไปใส่ต้นตอของปัญหาเพื่อแก้ปัญหา” ว่าเป็นความคิดที่ไม่ดีและไม่ให้ลงมือทำ สังคมมนุษย์เองก็ทำงานแบบนี้อยู่แล้ว โดยสอนเด็กว่าอะไรถูกอะไรผิด
ไม่ว่า LLM จะปฏิเสธคำถามแบบนี้หรือไม่ ความเสี่ยงของการเกิดพิษจากสตริกนินในโลกจริงก็ไม่ได้เพิ่มขึ้น
เพียงแต่ผู้สื่อข่าวและหน่วยงานกำกับดูแลอาจไม่เข้าใจว่า คำสั่งที่ดูอันตรายบนผิวเผินนั้นแทบไม่มีความเสี่ยงจริง นักเคมีตัวจริงไม่จำเป็นต้องมีคำสั่งการสังเคราะห์แบบ “อธิบายเหมือนกำลังอธิบายให้เด็ก 5 ขวบฟัง” และเพราะนักวิจารณ์อาจใช้ข้อมูลเสี่ยงในลักษณะคล้ายกันเป็นอาวุธในสงครามความเห็นสาธารณะเพื่อเล่นงานบริษัท การปฏิเสธพรอมป์ต์แบบนี้จึงช่วยลดความเสี่ยงด้านชื่อเสียง โดยแทบไม่สร้างความเสียหายมากนักต่อผู้วิจัยมืออาชีพ
ถึงอย่างนั้นก็เคยเห็นโมเดลล้ำสมัยที่เก่งที่สุดในปัจจุบันเสนอวิธีสังเคราะห์ใหม่ๆ ของสารประกอบที่ไม่เป็นอันตรายแบบเหลวไหลมาแล้ว นักเคมีมืออาชีพควรใช้ LLM เป็นเครื่องมือสร้างไอเดียหรือค้นเปเปอร์ ไม่ใช่เชื่อสิ่งที่มันพูดออกมาตรงๆ เพียงเพราะมันไม่ปฏิเสธ
https://en.wikipedia.org/wiki/Strychnine_total_synthesis
จากมุมของ OpenAI มันคงเกี่ยวข้องกับเส้นแบ่งทางการเมืองเป็นหลัก แต่ก็อาจขยายไปสู่กรณีใช้งานที่เฉพาะเจาะจงและเป็นประโยชน์มากขึ้นได้
ตัวอย่างเช่น เคยมีกรณีที่มีคนโน้มน้าวแชตบอตบนเว็บไซต์ตัวแทนจำหน่ายรถยนต์ให้เสนอราคารถที่ต่ำจนน่าขัน O1 อาจทำตามคำสั่งอย่าง “อย่าเสนอราคาที่มีผลผูกพันตามกฎหมายแก่ผู้ใช้” ได้เข้มงวดกว่า จึงตกหลุมกลแบบเดียวกันได้ยากกว่า
ตอนใช้โมเดลดิบ ผมโน้มเอียงอย่างมากไปทางที่ว่าคอมพิวเตอร์ควรทำตามที่ผมสั่ง แต่เมื่อเอาไปห่อด้วยอินเทอร์เฟซแชตแล้วทำให้ผู้ใช้ทั่วไปมองว่าเป็นเครื่องถาม-ตอบ ก็เกิดความกังวลที่มีเหตุผลได้ ปัญหาเรื่องสูตรทำระเบิดก็ไม่ใช่แค่ “คนไม่ควรได้ข้อมูลนี้” เท่านั้น แต่ยังรวมถึงความอันตรายของการได้รับข้อมูลในบริบทที่ปนภาพหลอนด้วย สูตรทำระเบิดที่ถูกต้อง 90% อันตรายต่อผู้ใช้มากกว่าสูตรที่ถูกต้องจริงเสียอีก
แมชชีนเลิร์นนิงจะเสริมกิจกรรมผิดกฎหมายพอๆ กับที่เสริมกิจกรรมถูกกฎหมาย และบุคคลบนโซเชียลมีเดียกับสื่อดั้งเดิมก็จะพยายามเล่าเรื่องในแบบที่เร้าอารมณ์อย่างแน่นอน
คล้ายกับที่ Telegram ถูกวาดภาพให้เป็นผู้รับผิดชอบต่อการก่อการร้ายและการล่วงละเมิดเด็ก
ตอนที่เขาพูดว่า “GPT-2 อาจอันตรายเกินกว่าจะเปิดเผยสู่สาธารณะ” นักข่าวและสื่อชอบมาก มันกลายเป็นการประชาสัมพันธ์ฟรีมหาศาล และทำให้บริษัทดูเท่
การเน้นเรื่องความปลอดภัยต่อไปยังช่วยตอกย้ำภาพว่า LLM แตกต่างจากอัลกอริทึมทำนายข้อความอื่นๆ อย่างเป็นรากฐาน และแทบจะเป็น AGI แล้ว พูดอีกอย่างคือ ดีต่อกระเป๋าเงินของเขา
ประสิทธิภาพของโมเดลถูกขับเคลื่อนด้วย chain of thought แต่ด้วยเหตุผลหลายอย่าง เช่น ความได้เปรียบทางการแข่งขัน พวกเขาจึงบอกว่าจะไม่ให้ผู้ใช้เห็นคำตอบแบบ chain of thought
หลังการเปิดตัว GPT-4 การนำเอาต์พุตของ GPT-4 ไป fine-tune โมเดลที่ไม่ใช่ของ OpenAI กลายเป็นเรื่องที่พบได้บ่อยมาก ความกังวลของ OpenAI ว่าหากเปิดให้ fine-tune จากคำตอบ chain of thought ของโมเดลนี้ อาจทำให้คนอื่นทำซ้ำผลลัพธ์ได้เร็วขึ้น ก็ดูสมเหตุสมผล
สุดท้ายก็เท่ากับบังคับให้คนอื่นทุกคนต้องทำซ้ำด้วยวิธีที่ยากกว่า เป็นข่าวร้ายสำหรับโมเดลที่เปิดเผยน้ำหนัก แต่ก็เป็นการตัดสินใจที่เข้าใจได้
ถ้ามองคร่าวๆ chain of thought ดูเหมือนจะเป็นลำดับของสายความคิดยาวๆ ที่คอยปรับสมดุลในแต่ละขั้น และมีการถอยกลับเล็กน้อยเมื่อได้ผลลัพธ์เชิงลบ คล้ายกับการแก้เขาวงกต
แม้ผมจะไม่เห็นด้วยกับมุมมองนี้ แต่มันน่าจะมีน้ำหนักในการตัดสินใจมากกว่าประเด็นเรื่องการรั่วไหลของข้อมูลการเรียนรู้ที่มีประโยชน์ต่อโมเดลอื่น
จะให้เชื่อได้อย่างไรว่าพวกเขาไม่ได้จงใจทำให้โทเค็นพองขึ้นเพื่อกำไร
จะได้เข้าใจเค้าโครงของกระบวนการโดยไม่ทำให้โทเค็นจริงรั่วไหล และถ้าเป็นไปได้ก็พอมองออกว่าผิดตรงไหน
ดูเหมือนหลายคนที่นี่จะพลาดประเด็นว่าการทำ chain of thought prompting แบบง่ายๆ กับสิ่งที่เกิดขึ้นครั้งนี้ต่างกันอย่างไร ที่นี่กำลังใช้ reinforcement learning เพื่อเรียนรู้กลยุทธ์ chain of thought ที่ดี
มีเขียนไว้ว่า “ผ่าน reinforcement learning o1 จะขัดเกลาและปรับแต่งกลยุทธ์ในการขัดเกลาและใช้ chain of thought”
หากดู chain of thought ในตัวอย่าง จะเห็นว่าโมเดลใช้กลยุทธ์ต่างกันตามปัญหาที่มันพยายามแก้
เมื่ออ่าน chain of thought ของตัวอย่างการถอดรหัสที่ให้มาแล้วค่อนข้างน่าทึ่ง ไปที่ตัวอย่างแล้วกด “Show Chain of Thought” ได้เลย
มันเขียนทุกขั้นตอนความคิดออกมาแบบตรงตัว เหมือนเวลาคนแก้รหัสในหัวจริง ๆ แม้แต่คำที่ไม่ค่อยมีประโยชน์อย่าง “Hmm” ก็ยังมี
ดูเหมือนว่าการชะลอความเร็ว เขียนตรรกะที่ใช้ แล้วค่อยอนุมานต่อบนสิ่งนั้น จะช่วยให้ความสามารถด้านตรรกะดีขึ้น คล้ายกับวิธีที่เรียนกันในโรงเรียน
ตอนนี้มันดูไม่ใช่ “แค่” การเติมข้อความอัตโนมัติ แต่เหมือนการให้เหตุผลทีละขั้นจริง ๆ ที่เต็มไปด้วยไอเดีย ทางตัน และการขัดเกลา แม้ท้ายที่สุดแล้วมันจะยังขับเคลื่อนด้วยการเติมข้อความอัตโนมัติก็ตาม
แล้วก็ชวนให้สงสัยว่า การให้เหตุผลของมนุษย์เองอาจคล้ายกันหรือเปล่า อาจเป็นแค่การทำตามแพตเทิร์นพื้นฐานของ “ขั้นตอนความคิด” และสุดท้ายก็อาจไม่ได้ต่างจาก “ขั้นตอนไวยากรณ์ภาษาอังกฤษ” มากนัก
เลยทำให้คิดว่า LLM ทรงพลังมากกว่าที่เคยคิดไว้มาก และอาจเป็นแค่ปัญหาของการหาวิธีเชื่อมมันเข้ากับโครงสร้างที่ถูกต้อง เช่นการ “ทำให้มันคิด”
Average:18/2=9,9 corresponds to 'i',But 'i' is 9, so that seems off by 1ก็ดูเหมือนว่ายังอ่อนเรื่อง การนับตัวเลข เหมือนเดิมในทางปฏิบัติต้องให้เหตุผลทั้งหมดออกมาจริง ๆ และตัว transformer เองปกติก็ไม่ได้ฉลาดมากนัก ดังนั้นแม้แต่คนที่มีความสามารถทางสติปัญญาทั่วไปก็น่าจะฝึกแล้วทำร่องรอยแบบนี้ซ้ำได้
เป็นความก้าวหน้าที่น่าทึ่งมาก เดือนเมษายนฉันเคยใช้โมเดล GPT-4 มาตรฐานผ่าน ChatGPT เพื่อพยายาม reverse engineer binary Bluetooth protocol ของเครื่องดูดควันในครัว แล้วเอาไปเชื่อมกับ Home Assistant
มันช่วยได้แบบ rubber duck แต่ก็หาแพตเทิร์นที่ใช้ส่งเวลาทำงานคงเหลือของพัดลมในบางโหมดไม่เจอ prompt แรกอยู่ที่นี่ [0]
พอเอา prompt เดียวกันใส่ให้ o1-preview กับ o1-mini ทั้งคู่ก็เข้าใจแพตเทิร์นและถอดได้อย่างแม่นยำ โดยใช้วิธีที่ต่างจากที่ฉันหาเจอในเดือนเมษายนเล็กน้อย พอถามว่าโค้ดของฉันเทียบเท่ากับสิ่งที่โมเดล reverse engineer ได้ไหม มันก็ตรวจอย่างละเอียดและรอบคอบก่อนสรุปว่าเทียบเท่ากัน [1]
แต่ถ้าเอา prompt เดียวกันไปใส่ gpt4o จะได้ผลเหมือนกับโมเดล GPT-4 (ChatGPT) เมื่อตอนเดือนเมษายน นี่เป็นพัฒนาการที่น่าทึ่งจริง ๆ
[0]: https://pastebin.com/XZixQEM6
[1]: https://i.postimg.cc/VN1d2vRb/SCR-20240912-sdko.png
ใน ChatGPT for Business อาจไม่ใช้เพราะนโยบายบริษัทอาจห้าม export แต่สำหรับใช้ส่วนตัวถือว่าสะดวกมาก
https://chromewebstore.google.com/detail/save-chatgpt-as-pdf...
เพราะในข้อมูลฝึกมีตัวอย่างปริศนาต้นฉบับมากเกินไป 4 เลยตอบไม่ถูกต้องนัก แต่ o1 ไม่พลาดเพราะเรื่องนั้น
https://chatgpt.com/share/66e35c37-60c4-8009-8cf9-8fe61f57d3...
https://chatgpt.com/share/66e35f0e-6c98-8009-a128-e9ac677480...
https://x.com/soheil/status/1834320893331587353
ฉันลองทดสอบสั้น ๆ กับการถอด ROT ciphertext ที่คนสามารถแก้บนกระดาษได้ และผลลัพธ์ค่อนข้างน่าผิดหวัง
มันมีหลายขั้นตอนที่ดูเหมือน “กำลังทำงาน” เช่นการคำนวณความถี่ตัวอักษร การระบุคำที่พบบ่อย แต่หลายขั้นตอนผิดหรือไม่มีการตรวจยืนยันต่อ สุดท้ายมันให้คำตอบผิดที่ไม่สอดคล้องแม้แต่กับเงื่อนไขจากขั้นตอนก่อนหน้า ทั้งที่อ้างว่าตรวจคำตอบของตัวเองแล้ว
ไม่ได้จะตัดสิน AI จากความผิดพลาดไม่กี่ครั้ง และงานด้านรหัสก็เป็นงานที่ค่อนข้างเป็นปฏิปักษ์อยู่แล้ว แต่ไม่มีส่วนไหนของการให้เหตุผลที่ดูซับซ้อนหรือสอดคล้องมากกว่าเดโม chain of thought ที่เคยเห็นก่อนหน้านี้เลย สุดท้ายหลักฐานสำคัญก็คือ paper แต่ก็ยังไม่แน่ใจว่าจะก้าวจากตรงนั้นไปสู่การตัดสินได้อย่างไรว่าโมเดลนี้เชื่อถือได้สำหรับงานประเภทที่ตั้งใจไว้
แยกอีกประเด็นหนึ่งคือผลลัพธ์ chain of thought แบบนี้ทำให้อยากได้การใช้เครื่องมือมาก เพราะ LLM มักต้องเลียนแบบผลลัพธ์ของอัลกอริทึมเอง ถ้าเป็นโซลูชัน chain of thought เชิงพาณิชย์แบบนี้ ก็น่าจะใช้ standard function library ที่เชื่อถือได้ 100% กับเรื่องอย่างการนับจำนวนตัวอักษรได้
มันน่าประทับใจอยู่ แต่ปัญหาของ reinforcement learning คือมันต้องการ ความรู้เกี่ยวกับอนาคต
นี่เป็นความสำเร็จทางเทคนิคที่ค่อนข้างใหญ่ และก็น่าตื่นเต้นที่จะได้เห็นความก้าวหน้าแบบนี้ในสาขานี้
แต่ก็ยังกังวลมากเรื่องความมีประโยชน์ เพราะเครื่องมือนี้ก็ยังเปราะบางต่อ ภาพหลอน เหมือน LLM ทุกตัวอยู่ดี สรุปแล้วมันเป็นเครื่องมือสำหรับใครกันแน่
ถ้าเป็นผู้เชี่ยวชาญมากพอจะตัดสินผลลัพธ์อย่างมีวิจารณญาณได้ ก็น่าจะอนุมานเองได้ไม่ต่างกันมากนัก
ถ้าไม่มีความสามารถพอจะประเมินผลลัพธ์ ก็มีความเสี่ยงที่จะพึ่งพาคำตอบที่ผิดหมดจด
ตัวอย่างเช่น ผมเคยขอให้มันประเมินอัลกอริทึมการปรับลำดับการ join ของฐานข้อมูลให้เหมาะที่สุด แล้วมันก็พูดอย่างมั่นใจตั้งแต่ต้นของกระบวนการอนุมานว่า “ต้นทุนของการ join มักเป็นแบบสมมาตร” ซึ่งผิด และในขั้นต่อ ๆ มาก็ใช้สมมติฐานนั้นเพื่อเสนอให้ “ลดรูป” โครงสร้างข้อมูลภายในจาก directed graph ให้เป็น undirected graph
ถ้าคุณคุ้นเคยกับการ optimize ฐานข้อมูล ก็จะรู้ว่านี่ผิดมาก แต่กระแสการอนุมานที่เหลือกลับสอดคล้องกันและฟังดูน่าเชื่อถือ
ผมกังวลว่าถ้าโมเดลพึ่งพาข้อเท็จจริงที่ผมไม่อาจรู้ได้ทันทีว่าผิด พร้อมแสดงความมั่นใจ มันอาจพาผมไปผิดทาง
เช่น หาวิธีที่ดีที่สุดในการจัดการ syntax error บางอย่าง, ตั้งค่า class และฟังก์ชันพื้นฐานที่จำเป็นอย่างชัดเจน, หรือหาว่าตอนแก้โจทย์คณิตศาสตร์ตัวเองเริ่มหลงทางตรงไหน
เครื่องมือพวกนี้ยังไม่ถึงระดับ “ตอนนี้ไม่ต้องมีการทดสอบและรีวิวโค้ดแล้ว, สังคมไม่ต้องมีนักคณิตศาสตร์แล้ว, และไม่ต้องมีแหล่งข้อมูลสำหรับ fact-check แล้ว” แม้นั่นอาจเป็นเป้าหมายของ AGI แต่ผมไม่ได้ใช้สิ่งนั้นเป็นเกณฑ์วัดประโยชน์ของเครื่องมือ
คุณค่าของเครื่องมือไม่ได้อยู่ที่มันสมบูรณ์แบบหรือไม่ แต่อยู่ที่คุณทำอะไรได้ด้วยมัน ต่อให้พจนานุกรมมีคำพิมพ์ผิดอยู่ประปราย มันก็ยังมีประโยชน์เป็นแหล่งอ้างอิงการสะกดคำได้ และต่อให้เพื่อนร่วมงานจะไม่ได้เข้าใจ C++ ทั้งหมดอย่างถูกต้องและเขียนโค้ดพลาดบ่อย ก็ยังให้ insight ที่มีประโยชน์กับโค้ดได้ สิ่งสำคัญคือมันช่วยให้ไปถึงระดับความแม่นยำที่ต้องการได้มากแค่ไหน และผมใช้งานมันอย่างไร ไม่ใช่ตัดสินจากความแม่นยำอย่างเดียว
มนุษย์มีประสิทธิภาพกว่า LLM มากในแง่นี้ แต่จักรยานก็มีประสิทธิภาพกว่ารถแข่งมากเช่นกัน แม้ในเวลาที่โมเดลผิดแบบน่าขัน แค่ ทิศทาง ของการอนุมานก็บางครั้งช่วยเร่งความคิดของผมได้อย่างมีประโยชน์
ถ้าใครอยากลองใช้กับงานเขียนโค้ด ผมเพิ่งเพิ่ม o1 เข้าไปใน https://double.bot
ประสิทธิภาพดีมากจริง ๆ ผมมีชุดปัญหาส่วนตัวที่คอยจดไว้ทุกครั้งที่ gpt-4o หรือ Sonnet ทำไม่สำเร็จ และจนถึงตอนนี้ o1 แก้ได้หมดทุกข้อ
แต่ก็ช้าพอสมควรจริง ๆ
อีกเรื่องที่น่าสนใจคือ chain of thought ถูกซ่อนไว้ ดูเหมือนจะเป็นกรณีแรกที่ต่อให้ OpenAI ปรับปรุงโมเดล โมเดลสาธารณะก็ยังไม่สามารถกลั่นเอาไปได้ทันที เพราะช่วงนี้ก็มีงานวิจัยเกี่ยวกับการคำนวณตอน inference ออกมาเยอะแล้ว จึงน่าสนใจว่าโอเพนซอร์สจะไล่ตามในแง่เทคนิคได้เร็วแค่ไหน [1,2]
ตอนนี้ยังไม่ชัดว่า o1-preview ที่ให้ใช้อยู่ทำ tree search หรือทำงานเพียงด้วยการสร้าง chain of thought แบบยิงครั้งเดียวที่ถูกกลั่นมาจาก trajectory ที่ดีกว่าและละเอียดกว่าของ distribution ตอนฝึก
1
2
o1 ทำงานแปลงไฟล์ JavaScript เป็น TypeScript ได้ดีกว่า Llama 3.1 405B, GitHub Copilot และ Claude 3.5 มาก แถมยังคงฟังก์ชันเดิมไว้พร้อมทำให้โค้ดง่ายขึ้นเล็กน้อยด้วย น่าประทับใจมาก
มันรีแฟกเตอร์ไฟล์ประมาณ 160 บรรทัดได้ แต่พอเป็นไฟล์ประมาณ 420 บรรทัด กล่องคำพูด “กำลังคิด” ก็ขึ้นไม่สิ้นสุด ไม่แน่ใจว่าเป็นเพราะเวลาในการตอบของ o1 ยาวเกินไปจนมีบางอย่าง timeout หรือเปล่า