- Emacs Copilot tạo Code Completion trong buffer Emacs bằng cách sử dụng LLM (Large Language Model) chạy cục bộ
- LLM chạy dưới dạng một lệnh phụ có khả năng ghi nhớ lịch sử chỉnh sửa cục bộ theo từng tệp, và có thể dừng LLM bất cứ lúc nào bằng
C-g
- Khi xóa mã, phần lịch sử tương ứng trong ngữ cảnh của LLM cũng có thể bị xóa; ngôn ngữ lập trình được xác định theo phần mở rộng tệp, không phụ thuộc vào ngôn ngữ
Mô hình WizardCoder 34b
- WizardCoder 34b là một LLM xuất sắc, đạt điểm HumanEval tương đương GPT-4.
- Để sử dụng mô hình này, cần một máy tính mạnh như Mac Studio M2 Ultra; người dùng Macbook Pro có thể cân nhắc phiên bản Q3, còn người dùng PC thông thường có thể cân nhắc mô hình WizardCoder-Python-13b.
- Người dùng có năng lực tính toán thấp hơn, như Raspberry Pi, có thể sử dụng mô hình Phi-2.
Cách bắt đầu
- Viết dòng đầu tiên của hàm, sau đó nhấn
C-c C-k để chuyển quyền điều khiển cho LLM, khi đó nó sẽ tạo phần triển khai còn lại của hàm.
- LLM được tinh chỉnh để dừng lại khi hàm hoàn tất, đồng thời tránh tạo phần giải thích hay chú thích ELI5 (giải thích thật dễ hiểu).
Triển khai tham chiếu
- Sau khi tải LLM, chỉ cần sao chép đoạn mã bên dưới vào buffer Emacs và chạy
M-x eval-buffer.
- Bạn có thể điều chỉnh mã theo sở thích cá nhân.
Liên kết tải Emacs
- Nếu chưa cài Emacs hoặc đang dùng nền tảng khó cài đặt như Windows, có cung cấp liên kết đến bản dựng Emacs dạng một tệp thực thi duy nhất, có thể chạy mà không cần cài đặt.
Liên kết tải LLM
- Có cung cấp liên kết để tải miễn phí một số LLM được biết là hoạt động tốt với Emacs Copilot.
- Có thể chọn kích thước mô hình phù hợp với phần cứng của bạn.
Tệp bộ nhớ đệm
- Nếu bạn quyết định đổi mô hình, cần xóa tất cả các tệp
FILE.cache được tạo trong hệ thống tệp cục bộ.
Lưu ý
- Trên macOS dùng Apple Silicon, cần cài đặt Xcode.
- Nếu dùng zsh, có thể cần chạy bằng
sh -c ./llamafile.
- Trên một số hệ thống Linux, có thể phát sinh lỗi liên quan đến việc đăng ký
binfmt_misc.
OS và CPU được hỗ trợ
- llamafile hỗ trợ nhiều hệ điều hành với yêu cầu cài đặt tối thiểu.
- llamafile hỗ trợ các CPU cụ thể, yêu cầu vi xử lý AMD64 với tập lệnh SSSE3 trở lên hoặc vi xử lý ARM64 với ARMv8a+.
Ghi chú về mô hình
- Các ví dụ llamafile được cung cấp ở trên không nên được hiểu là Mozilla ủng hộ hay khuyến nghị bất kỳ mô hình, giấy phép hoặc bộ dữ liệu cụ thể nào.
Ý kiến của GN⁺
- Trải nghiệm biên tập mang tính đổi mới: Emacs Copilot mang đến cho lập trình viên một cấp độ hỗ trợ lập trình mới, với tiềm năng cải thiện mạnh mẽ hiệu quả và năng suất.
- Khả năng tiếp cận và tùy biến: Người dùng có thể chọn LLM và điều chỉnh môi trường Emacs theo nhu cầu, sở thích của mình, từ đó xây dựng môi trường phát triển mang tính cá nhân hóa.
- Tính tương thích kỹ thuật: Nhờ hỗ trợ nhiều hệ điều hành và CPU, Emacs Copilot có thể được sử dụng bởi nhiều đối tượng hơn, qua đó tăng tính bao trùm và khả năng tiếp cận trong cộng đồng lập trình viên.
1 bình luận
Ý kiến trên Hacker News
Hoài nghi về tính hữu ích của việc tích hợp LLM/IDE
Cảm ơn việc phát triển công cụ LLM tự host
Chia sẻ trải nghiệm tích hợp LLM với Emacs
Trải nghiệm chạy LLM trên MacBook Pro M1 Max
Chỉ trích hàm is_prime trong video demo
Câu hỏi về việc build llamafile không chạy được trên NixOS
Nhu cầu về một tích hợp LLM tổng quát hơn
Người dùng Vim chia sẻ lệnh tùy biến tích hợp LLM
Câu hỏi về lộ trình nâng cấp của Llamafile
Bày tỏ sự hứng thú và ý định thử tích hợp LLM