- Emacs Copilot สร้าง Code Completion ภายในบัฟเฟอร์ของ Emacs โดยใช้ LLM (Large Language Model) ที่รันอยู่บนเครื่อง локัล
- LLM จะทำงานเป็นซับคอมมานด์ที่จดจำประวัติการแก้ไขแบบโลคัลแยกตามไฟล์ และสามารถหยุด LLM ได้ทุกเมื่อด้วย
C-g
- เมื่อมีการลบโค้ด ประวัตินั้นอาจถูกลบออกจากคอนเท็กซ์ของ LLM ด้วย และไม่ยึดติดกับภาษา โดยจะระบุภาษาโปรแกรมจากนามสกุลไฟล์
โมเดล WizardCoder 34b
- WizardCoder 34b เป็น LLM ที่ยอดเยี่ยมซึ่งได้คะแนน HumanEval เท่ากับ GPT-4
- การใช้งานโมเดลนี้ต้องใช้คอมพิวเตอร์ที่ทรงพลัง เช่น Mac Studio M2 Ultra ส่วนผู้ใช้ Macbook Pro อาจพิจารณาเวอร์ชัน Q3 และผู้ใช้พีซีทั่วไปอาจพิจารณาโมเดล WizardCoder-Python-13b
- ผู้ใช้ที่มีพลังประมวลผลต่ำกว่า เช่น Raspberry Pi สามารถใช้โมเดล Phi-2 ได้
วิธีเริ่มต้น
- หลังจากเขียนบรรทัดแรกของฟังก์ชันแล้ว ให้กด
C-c C-k เพื่อส่งการควบคุมให้ LLM จากนั้นระบบจะสร้างส่วนที่เหลือของฟังก์ชันให้
- มีการปรับให้ LLM หยุดเมื่อฟังก์ชันเสร็จสมบูรณ์ และหลีกเลี่ยงคำอธิบายหรือคอมเมนต์แบบ ELI5 (อธิบายให้ง่ายมาก)
อิมพลีเมนเทชันอ้างอิง
- หลังจากดาวน์โหลด LLM แล้ว ให้คัดลอกโค้ดด้านล่างลงในบัฟเฟอร์ Emacs และรัน
M-x eval-buffer
- สามารถปรับแต่งโค้ดให้เหมาะกับความชอบส่วนตัวได้
ลิงก์ดาวน์โหลด Emacs
- หากยังไม่ได้ติดตั้ง Emacs หรือใช้แพลตฟอร์มที่ติดตั้งได้ยาก เช่น Windows มีลิงก์ Emacs แบบไฟล์เดียวที่รันได้ทันทีโดยไม่ต้องติดตั้ง
ลิงก์ดาวน์โหลด LLM
- มีลิงก์สำหรับดาวน์โหลด LLM ฟรีหลายตัวที่ทราบกันว่าทำงานร่วมกับ Emacs Copilot ได้ดี
- สามารถเลือกขนาดของโมเดลให้เหมาะกับฮาร์ดแวร์ได้
ไฟล์แคช
- หากตัดสินใจเปลี่ยนโมเดล ต้องลบไฟล์
FILE.cache ทั้งหมดที่ถูกสร้างไว้ในระบบไฟล์โลคัล
ข้อควรระวัง
- หากใช้ Apple Silicon บน macOS จำเป็นต้องติดตั้ง Xcode
- หากใช้ zsh อาจต้องรันด้วย
sh -c ./llamafile
- ในบางระบบ Linux อาจเกิดข้อผิดพลาดที่เกี่ยวข้องกับการลงทะเบียน
binfmt_misc
OS และ CPU ที่รองรับ
- llamafile รองรับระบบปฏิบัติการหลายชนิดโดยมีข้อกำหนดการติดตั้งขั้นต่ำ
- llamafile รองรับ CPU บางประเภท โดยต้องใช้ไมโครโปรเซสเซอร์ AMD64 ที่มีชุดคำสั่ง SSSE3 ขึ้นไป หรือไมโครโปรเซสเซอร์ ARM64 ที่มี ARMv8a+
หมายเหตุเกี่ยวกับโมเดล
- ตัวอย่าง llamafile ที่ให้ไว้ข้างต้นไม่ควรถูกตีความว่าเป็นการสนับสนุนหรือการแนะนำจาก Mozilla ต่อโมเดล, ไลเซนส์ หรือชุดข้อมูลใดโดยเฉพาะ
ความเห็นของ GN⁺
- ประสบการณ์การแก้ไขที่ล้ำสมัย: Emacs Copilot มอบผู้ช่วยการเขียนโค้ดในอีกระดับหนึ่งให้แก่นักพัฒนา และมีศักยภาพในการเพิ่มประสิทธิภาพและผลิตภาพได้อย่างมาก
- การเข้าถึงและการปรับแต่งได้: ผู้ใช้สามารถเลือก LLM และปรับสภาพแวดล้อม Emacs ให้ตรงกับความต้องการและความชอบของตนเอง จึงสามารถสร้างสภาพแวดล้อมการพัฒนาที่เป็นส่วนตัวได้
- ความเข้ากันได้ทางเทคนิค: การรองรับระบบปฏิบัติการและ CPU ที่หลากหลายทำให้ผู้ใช้ในวงกว้างสามารถใช้งาน Emacs Copilot ได้ และช่วยส่งเสริมความครอบคลุมและการเข้าถึงภายในชุมชนนักพัฒนา
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
ตั้งคำถามถึงประโยชน์ของการผสาน LLM/IDE
ขอบคุณสำหรับการพัฒนาเครื่องมือ LLM แบบโฮสต์เอง
แชร์ประสบการณ์การผสาน LLM เข้ากับ Emacs
ประสบการณ์รัน LLM บน MacBook Pro M1 Max
วิจารณ์ฟังก์ชัน is_prime ในวิดีโอสาธิต
ถามเรื่องการ build llamafile ที่รันบน NixOS ไม่ได้
ต้องการการผสาน LLM ที่ทั่วไปกว่านี้
ผู้ใช้ Vim แชร์คำสั่งคัสตอมสำหรับผสาน LLM
ถามเรื่องเส้นทางอัปเกรดของ Llamafile
แสดงความสนใจและความตั้งใจจะลองใช้การผสาน LLM