Cài đặt và sử dụng VS Code trên Google Colab
GPU miễn phí từ Google Colab là môi trường rất tốt để phát triển, thử nghiệm các mô hình học máy một cách miễn phí. Tuy vậy, cá nhân tôi thấy việc dùng Notebook của Colab có phần bất tiện hơn việc code bằng trình sửa code quen thuộc là VS Code. Bài viết này sẽ hướng dẫn các bạn cài đặt và sử dụng VS Code ngay trên môi trường Colab để chúng ta vừa có thể dùng trình sửa code ưa thích mà vẫn có được GPU miễn phí từ Google.
Cách 1: Dùng package ColabCode
Phương pháp dùng Python Package khá đơn giản. Các bạn chỉ cần cài đặt một package tên colabcode, import và chạy lệnh setup. Quá trình setup sẽ diễn ra tự động và nhanh chóng. Để thực hiện, bạn hãy sao chép 3 dòng sau vào một file Colab bất kỳ và chạy, hoặc sử dụng file Colab tôi chuẩn bị sẵn tại đây. Tham số password
ở đoạn lệnh bên dưới là mật khẩu đăng nhập VS Code của bạn. Hiểu đơn giản thì package này sẽ sử dụng phiên bản VS Code cho server và sử dụng ngrok để public địa chỉ truy cập ra ngoài. Như vậy bạn có thể truy cập và sử dụng phiên bản VS Code này để chỉnh sửa file trên Colab.
!pip install colabcode
from colabcode import ColabCode
ColabCode(port=10000, password="aicurious")
Bạn sẽ nhìn thầy một link ngrok xuất hiện sau khi quá trình setup hoàn thành. Click vào link như hình dưới.
Cuối cùng, bạn chỉ cần nhập mật khẩu để sử dụng VS Code!
Lưu ý: Với phương pháp ở trên, bạn sẽ không thể chạy các cell khác của notebook khi đang mở VS Code. Để khắc phục điều này, ta có thể sử dụng cách 2 dưới đây để thiết lập VS Code.
Cách 2: Setup thủ công
Phương pháp này dành cho các bạn muốn làm mọi thứ từ đầu :D. Tôi sẽ giới thiệu phương pháp cài đặt thủ công cho VS Code server và dùng ngrok mở cổng ra ngoài để sử dụng. Bạn có thể copy các đoạn lệnh sau và chạy trên Colab Notebook.
Bước 1: Cài đặt và sử dụng ngrok để mở cổng ra ngoài
Sau bước này, chúng ta sẽ bind cổng 10000 của server Colab lên một đường dẫn ngrok. Ở bước 2, chúng ta sẽ cài đặt và chạy VS Code Server trên cổng này để sử dụng. Bạn hãy lưu lại đường dẫn ngrok được sinh ra để sử dụng về sau.
!pip install -qqq pyngrok
from pyngrok import ngrok
url = ngrok.connect(10000)
print(url)
Bước 2: Cài đặt và Chạy VS Code server
Sau khi chạy 2 dòng lệnh dưới, chúng ta sẽ cài đặt và chạy VS Code trên cổng 10000 trên server. Cổng này đã được chúng ta bind vào đường dẫn ngrok ở trên. Sau bước này, bạn có thể truy cập vào đường dẫn đã lưu để sử dụng VS Code.
!curl -fsSL https://code-server.dev/install.sh | sh
!nohup code-server --port 10000 --auth none &
Kết
Vậy là chúng ta đã setup và sử dụng được VS Code ngay trên Colab server. Việc chỉnh sửa code và huấn luyện mô hình đã dễ dàng hơn rất nhiều với những anh em thích VS Code hơn Notebook như tôi. Tuy nhiên, do các phương pháp tôi giới thiệu ở trên sử dụng ngrok để kết nối ra ngoài, Gói free của họ chỉ cho phép 40 kết nối trong 1 phút, chúng ta có thể gặp tình trạng mất kết nối cục bộ trong trang VS Code. Bạn có thể phải chờ đợi một chút để kết nối khôi phục lại nếu bạn thực hiện quá nhiều thao tác cùng lúc.
Colab tricks
Nhân tiện bài viết này, tôi muốn chia sẻ vài trick tôi thường sử dụng với Colab để cho hiệu quả sử dụng tốt hơn mà có thể một vài anh em chưa biết.
Thứ nhất, khi sử dụng Colab, Google sẽ cho bạn một loại GPU bất kỳ. Tuy nhiên nếu bạn muốn có GPU xịn nhất có thể (loại xịn nhất hiện tại là P100), thì chỉ cần sử dụng lệnh
nvidia-smi
để xem loại GPU mình có, và menu Runtime > Factory reset runtime cho đến khi bạn có được GPU mà mình muốn. Cá nhân tôi thấy để có được P100 bạn cũng chỉ cần lặp lại thao tác này vài lần.Thứ hai, trước đây tôi thường phải dùng một đoạn lệnh để giữ tương tác với Colab, tránh Google ngắt kết nối server của mình quá sớm. Các bạn có thể tham khảo đoạn lệnh đó tại đây. Tuy vậy, gần đây tôi không thấy việc ngắt kết nối xảy ra nữa. Có thể họ đã bỏ chính sách này, vì thế anh em có thể sẽ không cần làm vậy nữa.
Trên đây là một vài kinh nghiệm của tôi với việc setup VS Code lên Colab và sử dụng Colab để huấn luyện mô hình. Nếu các bạn có góp ý gì về nội dung bài viết hoặc muốn chia sẻ kinh nghiệm của mình thì hãy để lại comment phía dưới nhé!