- Emacs Copilot은 로컬에서 실행되는 LLM(Large Language Model)을 사용하여 Emacs 버퍼 내에서 Code Completion을 생성함
- LLM은 파일별로 로컬 편집 기록을 기억하는 서브 커맨드로 실행되며,
C-g를 사용하여 언제든지 LLM을 중단할 수 있음 - 코드를 삭제할 때 LLM의 컨텍스트에서 해당 기록도 삭제될 수 있으며, 언어에 구애받지 않고 파일 확장자에 의해 프로그래밍 언어가 결정됨
WizardCoder 34b 모델
- WizardCoder 34b는 GPT-4와 동일한 HumanEval 점수를 받은 우수한 LLM임.
- 이 모델을 사용하기 위해서는 Mac Studio M2 Ultra와 같은 강력한 컴퓨터가 필요하며, Macbook Pro 사용자는 Q3 버전을, 일반 PC 사용자는 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 다운로드 링크
- Emacs Copilot과 잘 작동하는 것으로 알려진 몇 가지 LLM을 무료로 다운로드할 수 있는 링크 제공.
- 모델의 크기는 하드웨어에 적합하게 선택할 수 있음.
캐시 파일
- 모델을 변경하기로 결정한 경우, 로컬 파일 시스템에 생성된 모든
FILE.cache파일을 삭제해야 함.
주의사항
- macOS에서 Apple Silicon을 사용하는 경우 Xcode가 설치되어 있어야 함.
- zsh 사용 시
sh -c ./llamafile을 사용하여 실행해야 할 수 있음. - 일부 Linux 시스템에서는
binfmt_misc등록과 관련된 오류가 발생할 수 있음.
지원되는 OS와 CPU
- llamafile은 최소 설치 요구 사항을 가진 여러 운영 체제를 지원함.
- llamafile은 특정 CPU를 지원하며, SSSE3 이상의 명령어 세트를 가진 AMD64 마이크로프로세서 또는 ARMv8a+를 가진 ARM64 마이크로프로세서가 필요함.
모델에 대한 참고사항
- 위에 제공된 llamafile 예시는 특정 모델, 라이선스, 데이터 세트에 대한 Mozilla의 지지나 추천으로 해석되어서는 안 됨.
GN⁺의 의견
- 혁신적인 편집 경험: Emacs Copilot은 개발자들에게 새로운 차원의 코딩 보조를 제공하여, 효율성과 생산성을 크게 향상시킬 수 있는 잠재력을 가짐.
- 접근성과 사용자 정의: 사용자는 자신의 필요와 취향에 맞게 LLM을 선택하고 Emacs 환경을 조정할 수 있어, 개인화된 개발 환경 구축이 가능함.
- 기술적 호환성: 다양한 운영 체제와 CPU를 지원함으로써, 광범위한 사용자가 Emacs Copilot을 사용할 수 있으며, 이는 개발자 커뮤니티 내에서의 포용성과 접근성을 증진시킴.