Hugging Face là trung tâm lớn nhất cho các mô hình AI, tập dữ liệu và không gian. Nhưng người dùng từ Nga, Trung Quốc và một số quốc gia khác thường xuyên gặp phải tình trạng chặn: trang không tải được, tải mô hình bị ngắt quãng, API trả về lỗi 403. Nếu bạn làm việc với mạng nơ-ron và cần truy cập ổn định vào các kho lưu trữ - proxy giải quyết vấn đề này một cách nhanh chóng và không cần cấu hình phức tạp.
Tại sao Hugging Face không khả dụng: nguyên nhân chặn
Trước khi cấu hình proxy, điều quan trọng là phải hiểu tại sao lại xảy ra vấn đề truy cập. Nguyên nhân có thể khác nhau, và từ đó sẽ quyết định giải pháp nào phù hợp với bạn.
Chặn địa lý từ nhà cung cấp dịch vụ. Ở Nga, một số nhà cung cấp dịch vụ internet chặn hoặc làm chậm lưu lượng truy cập đến các nguồn tài nguyên nước ngoài theo yêu cầu của các cơ quan quản lý. Hugging Face thỉnh thoảng bị rơi vào những hạn chế như vậy - đặc biệt là các máy chủ CDN của nó, nơi chứa các tệp mô hình có kích thước từ vài gigabyte đến hàng trăm GB.
Tường lửa doanh nghiệp. Nếu bạn làm việc tại một công ty hoặc trường đại học, các quản trị viên mạng có thể chặn truy cập vào các kho lưu trữ bên ngoài. Điều này đặc biệt đúng với các cơ quan nhà nước và các tập đoàn lớn, nơi chính sách an ninh cấm tải xuống tệp từ các nguồn không xác định.
Hạn chế từ chính Hugging Face. Vào năm 2024, nền tảng đã áp dụng các hạn chế đối với một số khu vực về việc tải xuống một số mô hình - đặc biệt là những mô hình thuộc diện kiểm soát xuất khẩu của Hoa Kỳ. Các mô hình có nhãn "restricted" có thể yêu cầu xác minh tài khoản hoặc thậm chí không khả dụng từ một số địa chỉ IP nhất định.
Không ổn định kết nối và ngắt quãng. Ngay cả khi không có chặn chính thức, việc định tuyến lưu lượng từ Nga đến các máy chủ Hugging Face ở Hoa Kỳ và Châu Âu có thể không ổn định đến mức việc tải xuống mô hình 20 GB liên tục bị ngắt quãng. Proxy với các máy chủ ở Hoa Kỳ hoặc Châu Âu khắc phục vấn đề này - lưu lượng truy cập đi qua một kênh ổn định.
Giới hạn tần suất theo IP. Hugging Face giới hạn số lượng yêu cầu từ một địa chỉ IP. Nếu bạn tự động tải xuống nhiều mô hình liên tiếp hoặc sử dụng các kịch bản để tải xuống hàng loạt tập dữ liệu, nền tảng có thể tạm thời chặn IP của bạn. Việc luân chuyển proxy giải quyết vấn đề này.
Quan trọng: VPN không giống như proxy. VPN mã hóa toàn bộ lưu lượng của thiết bị và thường làm chậm kết nối. Proxy hoạt động ở cấp độ ứng dụng hoặc kịch bản cụ thể, điều này thuận tiện hơn cho việc tải xuống các tệp lớn và tự động hóa.
Proxy mang lại điều gì khi làm việc với Hugging Face
Máy chủ proxy hoạt động như một trung gian giữa máy tính của bạn và các máy chủ Hugging Face. Thay vì kết nối trực tiếp (có thể bị chặn hoặc không ổn định), yêu cầu đi qua máy chủ proxy nằm ở quốc gia có quyền truy cập bình thường.
Đây là những gì cụ thể mà điều này mang lại trong thực tế:
- Tải xuống tệp lớn ổn định. Các mô hình như LLaMA 3, Mistral, Stable Diffusion có kích thước từ 4 đến 150+ GB. Qua proxy với máy chủ ở Châu Âu hoặc Hoa Kỳ, việc tải xuống diễn ra mà không bị ngắt quãng, vì kênh đến Hugging Face ngắn và ổn định.
- Vượt qua chặn địa lý của nhà cung cấp. Nhà cung cấp của bạn chỉ thấy lưu lượng đến máy chủ proxy - không phải đến Hugging Face. Việc chặn được tự động vượt qua.
- Thay đổi IP để vượt qua giới hạn tần suất. Nếu cần tải xuống nhiều mô hình hoặc tập dữ liệu liên tiếp, việc luân chuyển proxy cho phép tránh các chặn tạm thời theo IP.
- Hoạt động trên các máy chủ không có GUI. Proxy dễ dàng được cấu hình thông qua các biến môi trường - điều này thuận tiện cho việc làm việc trên các máy chủ từ xa, trong các container Docker, trong các notebook Jupyter và trong các pipeline CI/CD.
- Truy cập vào các mô hình restricted. Một số mô hình chỉ có sẵn từ IP của các quốc gia nhất định. Proxy với định vị địa lý cần thiết mở ra quyền truy cập cho chúng.
Đồng thời, proxy không yêu cầu thay đổi trong mã của dự án của bạn - chỉ cần một lần cấu hình trong hệ thống hoặc môi trường, và tất cả các công cụ (huggingface_hub, transformers, git-lfs) sẽ tự động hoạt động qua proxy.
Những loại proxy nào phù hợp để tải xuống mô hình
Không phải tất cả các proxy đều phù hợp như nhau cho việc làm việc với Hugging Face. Hãy xem xét các loại chính và tính khả thi của chúng cho nhiệm vụ này.
| Loại proxy | Tốc độ | Tính ổn định | Cho Hugging Face | Khi nào nên chọn |
|---|---|---|---|---|
| Data Center (DC) | ⚡ Cao | ✅ Cao | ✅ Tuyệt vời | Tải xuống hàng loạt mô hình, kịch bản, CI/CD |
| Residential | 🔄 Trung bình | ✅ Cao | ✅ Tốt | Truy cập vào các mô hình restricted, vượt qua kiểm tra |
| Mobile | 🔄 Trung bình | ⚠️ Phụ thuộc | ⚠️ Thừa thãi | Không cần cho nhiệm vụ này |
| Miễn phí | ❌ Thấp | ❌ Thấp | ❌ Không phù hợp | Không phù hợp cho công việc nghiêm túc |
Đối với hầu hết các nhiệm vụ với Hugging Face, lựa chọn tối ưu là proxy từ các trung tâm dữ liệu. Chúng cung cấp tốc độ tải xuống tối đa (quan trọng khi tải xuống các mô hình có kích thước hàng chục GB), kết nối ổn định và IP cố định. Đối với việc tải xuống mô hình nặng 30 GB, sự khác biệt giữa proxy chậm và nhanh là sự khác biệt giữa 2 giờ và 20 phút.
Proxy Residential sẽ hữu ích nếu bạn gặp phải tình huống mà Hugging Face chặn IP của các trung tâm dữ liệu (điều này xảy ra với một số mô hình restricted). IP residential trông giống như người dùng thông thường và ít gây nghi ngờ hơn với các hệ thống bảo vệ của nền tảng.
Proxy di động cho việc tải xuống mô hình là thừa thãi - chúng đắt hơn, và lợi ích của việc sử dụng chúng (độ tin cậy cao của nền tảng đối với IP di động) không cần thiết ở đây. Hugging Face không phải là một mạng xã hội với bảo vệ chống spam, vì vậy chỉ cần proxy DC hoặc residential thông thường là đủ.
Cấu hình proxy để truy cập qua trình duyệt
Nếu bạn chỉ cần mở trang web Hugging Face, tìm hiểu các mô hình hoặc tải xuống tệp thủ công qua giao diện web - hãy cấu hình proxy trong trình duyệt. Đây là lựa chọn đơn giản nhất.
Tuỳ chọn 1: Tiện ích mở rộng cho trình duyệt (cho các tác vụ đơn lẻ)
Cài đặt tiện ích mở rộng FoxyProxy (Firefox) hoặc Proxy SwitchyOmega (Chrome/Edge). Sau khi cài đặt:
- Mở cài đặt của tiện ích mở rộng
- Thêm một hồ sơ proxy mới
- Chỉ định loại: HTTP hoặc SOCKS5
- Nhập địa chỉ máy chủ (host) và cổng
- Nếu proxy có xác thực - nhập tên đăng nhập và mật khẩu
- Lưu hồ sơ và kích hoạt nó
- Mở huggingface.co - trang web sẽ tải lên
Tuỳ chọn 2: Cài đặt proxy hệ thống (cho Windows)
Nếu bạn muốn proxy hoạt động cho toàn bộ máy tính (bao gồm trình duyệt, kịch bản Python và các ứng dụng khác):
- Mở Cài đặt → Mạng và Internet → Proxy
- Bật "Sử dụng proxy"
- Nhập địa chỉ và cổng
- Trong trường ngoại lệ, thêm localhost và 127.0.0.1
- Lưu cài đặt
💡 Mẹo: Để tải xuống các mô hình lớn qua trình duyệt, hãy sử dụng trình quản lý tải xuống (ví dụ: Free Download Manager) - nó hỗ trợ tiếp tục tải xuống khi kết nối bị ngắt và hoạt động với cài đặt proxy hệ thống.
Cấu hình proxy cho CLI và môi trường Python
Hầu hết người dùng Hugging Face tải xuống các mô hình qua dòng lệnh hoặc kịch bản Python - bằng cách sử dụng các thư viện huggingface_hub, transformers hoặc trực tiếp qua git lfs. Đối với tất cả các công cụ này, proxy được cấu hình thông qua các biến môi trường.
Bước 1. Thiết lập các biến môi trường
Đây là cách linh hoạt nhất - hầu hết các thư viện Python và tiện ích hệ thống tự động nhận các biến này:
# Đối với Linux / macOS (trong terminal hoặc ~/.bashrc / ~/.zshrc) export HTTP_PROXY="http://username:password@proxy-host:port" export HTTPS_PROXY="http://username:password@proxy-host:port" # Đối với Windows (trong PowerShell) $env:HTTP_PROXY = "http://username:password@proxy-host:port" $env:HTTPS_PROXY = "http://username:password@proxy-host:port" # Đối với Windows (trong CMD) set HTTP_PROXY=http://username:password@proxy-host:port set HTTPS_PROXY=http://username:password@proxy-host:port
Thay thế username:password@proxy-host:port bằng thông tin thực tế của proxy của bạn. Nếu proxy không có xác thực - chỉ cần chỉ định http://proxy-host:port.
Bước 2. Tải xuống mô hình qua huggingface_hub
Sau khi thiết lập các biến môi trường, các lệnh tiêu chuẩn hoạt động mà không cần thay đổi:
# Tải xuống mô hình qua CLI huggingface-cli download mistralai/Mistral-7B-v0.1 # Hoặc qua Python from huggingface_hub import snapshot_download snapshot_download(repo_id="mistralai/Mistral-7B-v0.1")
Bước 3. Cấu hình proxy trực tiếp trong Python (nếu các biến môi trường không hoạt động)
Trong một số trường hợp - ví dụ, trong Jupyter Notebook hoặc khi chạy qua IDE - các biến môi trường có thể không được truyền. Sau đó, hãy cấu hình proxy một cách rõ ràng trong mã:
import os import requests from huggingface_hub import snapshot_download # Thiết lập proxy qua os.environ os.environ["HTTP_PROXY"] = "http://username:password@proxy-host:port" os.environ["HTTPS_PROXY"] = "http://username:password@proxy-host:port" # Bây giờ tải xuống mô hình - proxy sẽ tự động áp dụng snapshot_download(repo_id="meta-llama/Meta-Llama-3-8B")
Cấu hình proxy cho git lfs
Nếu bạn đang sao chép kho lưu trữ qua git (phương pháp git clone), bạn cần cấu hình proxy cho git riêng biệt:
# Cấu hình HTTP proxy cho git git config --global http.proxy http://username:password@proxy-host:port git config --global https.proxy http://username:password@proxy-host:port # Sao chép kho lưu trữ chứa mô hình git clone https://huggingface.co/mistralai/Mistral-7B-v0.1 # Để xóa proxy sau khi sử dụng git config --global --unset http.proxy git config --global --unset https.proxy
⚠️ Quan trọng: git lfs (Large File Storage) sử dụng một kênh riêng để tải xuống các tệp lớn. Nếu các biến môi trường HTTP_PROXY được thiết lập toàn cầu - git lfs sẽ nhận chúng. Nếu không - hãy thêm chúng vào .lfsconfig trong thư mục gốc của kho lưu trữ.
Sử dụng proxy trong Docker và môi trường máy chủ
Nhiều kỹ sư ML làm việc với các mô hình trong các container Docker hoặc trên các máy chủ từ xa (AWS, GCP, Hetzner, máy chủ riêng). Nếu máy chủ nằm ở Nga hoặc một quốc gia khác có quyền truy cập hạn chế đến Hugging Face - proxy cần được cấu hình ở cấp độ container hoặc hệ thống.
Tuỳ chọn 1: Truyền proxy vào Docker qua các biến môi trường
Khi khởi động container, hãy truyền các biến môi trường qua cờ -e:
docker run -it \ -e HTTP_PROXY="http://username:password@proxy-host:port" \ -e HTTPS_PROXY="http://username:password@proxy-host:port" \ -e NO_PROXY="localhost,127.0.0.1" \ python:3.11 bash
Tuỳ chọn 2: Proxy trong Dockerfile
Nếu proxy cần thiết trong giai đoạn xây dựng hình ảnh (ví dụ, để tải xuống mô hình trong quá trình docker build):
FROM python:3.11
# Thiết lập proxy cho quá trình xây dựng
ARG HTTP_PROXY
ARG HTTPS_PROXY
ENV HTTP_PROXY=$HTTP_PROXY
ENV HTTPS_PROXY=$HTTPS_PROXY
RUN pip install huggingface_hub transformers
# Tải xuống mô hình trong quá trình xây dựng
RUN python -c "from huggingface_hub import snapshot_download; snapshot_download('mistralai/Mistral-7B-v0.1')"
Khởi động quá trình xây dựng với việc truyền proxy:
docker build \ --build-arg HTTP_PROXY="http://username:password@proxy-host:port" \ --build-arg HTTPS_PROXY="http://username:password@proxy-host:port" \ -t my-ml-app .
Tuỳ chọn 3: Cấu hình proxy ở cấp độ máy chủ (Ubuntu/Debian)
Nếu bạn muốn proxy hoạt động cho tất cả người dùng và quy trình trên máy chủ - hãy thêm cài đặt vào cấu hình hệ thống:
# Thêm vào /etc/environment HTTP_PROXY="http://username:password@proxy-host:port" HTTPS_PROXY="http://username:password@proxy-host:port" NO_PROXY="localhost,127.0.0.1,::1" # Áp dụng các thay đổi source /etc/environment
Sau đó, tất cả các lệnh - pip install, huggingface-cli download, wget, curl - sẽ tự động sử dụng proxy.
Đối với các nhiệm vụ trên máy chủ, nơi tốc độ tải xuống các tệp lớn là quan trọng, proxy từ các trung tâm dữ liệu rất phù hợp - chúng cung cấp băng thông cao và kết nối ổn định, điều này rất quan trọng khi tải xuống các mô hình có kích thước từ 20–100+ GB.
Danh sách kiểm tra: cách kiểm tra xem proxy hoạt động đúng hay không
Trước khi bắt đầu tải xuống một mô hình nặng, hãy đảm bảo rằng proxy đã được cấu hình chính xác. Đây là một danh sách kiểm tra nhanh:
1. Kiểm tra xem proxy có hoạt động hay không
# Kiểm tra qua curl - phải trả về IP của máy chủ proxy, không phải IP thực của bạn
curl -x http://username:password@proxy-host:port https://api.ipify.org
# Kiểm tra qua Python
import requests
proxies = {"http": "http://username:password@proxy-host:port",
"https": "http://username:password@proxy-host:port"}
r = requests.get("https://api.ipify.org", proxies=proxies)
print(r.text) # Phải in ra IP của proxy, không phải của bạn
2. Kiểm tra khả năng truy cập Hugging Face qua proxy
curl -x http://username:password@proxy-host:port https://huggingface.co/api/models?limit=1 # Kết quả mong đợi: JSON chứa dữ liệu về các mô hình (trạng thái 200)
3. Kiểm tra tốc độ tải xuống
# Tải xuống một tệp thử nghiệm nhỏ và đo tốc độ curl -x http://username:password@proxy-host:port \ -o /dev/null \ --progress-bar \ "https://huggingface.co/bert-base-uncased/resolve/main/config.json"
✅ Danh sách kiểm tra trước khi tải xuống mô hình:
- IP của proxy hiển thị khi kiểm tra qua api.ipify.org
- API Hugging Face trả về trạng thái 200
- Tốc độ tải xuống tệp thử nghiệm > 5 MB/s (để làm việc thoải mái)
- Các biến HTTP_PROXY và HTTPS_PROXY được thiết lập trong môi trường cần thiết
- Đối với git - cài đặt proxy được chỉ định qua git config
- Đối với Docker - các biến được truyền qua -e hoặc ARG
- NO_PROXY chứa localhost và 127.0.0.1
Những lỗi thường gặp và cách tránh chúng
Chúng tôi đã tập hợp những vấn đề phổ biến nhất mà người dùng gặp phải khi cấu hình proxy cho Hugging Face và cách giải quyết chúng.
Lỗi 1: SSL certificate verify failed
Một số proxy (đặc biệt là proxy doanh nghiệp) chặn lưu lượng HTTPS và thay thế chứng chỉ SSL. Các thư viện Python không tin tưởng chứng chỉ như vậy và báo lỗi.
Giải pháp: Sử dụng các proxy chất lượng không chặn SSL. Nếu đây là proxy doanh nghiệp - hãy thêm chứng chỉ gốc của công ty vào danh sách tin cậy thông qua biến REQUESTS_CA_BUNDLE.
Lỗi 2: Proxy hoạt động trong trình duyệt, nhưng không trong Python
Các cài đặt proxy hệ thống Windows không phải lúc nào cũng được truyền vào Python. Trình duyệt đọc chúng, nhưng Python thì không.
Giải pháp: Rõ ràng thiết lập các biến môi trường HTTP_PROXY và HTTPS_PROXY trước khi chạy kịch bản hoặc thêm chúng vào đầu tệp Python thông qua os.environ.
Lỗi 3: Tải xuống bắt đầu, nhưng bị ngắt giữa chừng
Proxy với giới hạn lưu lượng hoặc kết nối không ổn định có thể ngắt quãng việc tải xuống các tệp lớn.
Giải pháp: Sử dụng proxy không có giới hạn lưu lượng. Thư viện huggingface_hub hỗ trợ tiếp tục tải xuống - nếu việc tải xuống bị ngắt, hãy chạy lại lệnh với cùng một đường dẫn, và nó sẽ tiếp tục từ nơi dừng lại.
Lỗi 4: 407 Proxy Authentication Required
Proxy yêu cầu xác thực, nhưng nó không được truyền trong yêu cầu.
Giải pháp: Đảm bảo rằng trong URL của proxy đã chỉ định đúng tên đăng nhập và mật khẩu: http://login:password@host:port. Nếu mật khẩu chứa ký tự đặc biệt (@, #, %) - hãy mã hóa chúng qua URL-encoding.
Lỗi 5: Proxy hoạt động, nhưng Hugging Face vẫn không khả dụng
Điều này có nghĩa là máy chủ proxy tự nó nằm trong khu vực bị chặn hoặc có vấn đề với việc định tuyến đến Hugging Face.
Giải pháp: Kiểm tra vị trí địa lý của máy chủ proxy. Để truy cập Hugging Face, hãy chọn proxy với các máy chủ ở Hoa Kỳ, Đức, Hà Lan hoặc các quốc gia châu Âu khác. Tránh proxy từ Nga, Trung Quốc, Iran - chúng có thể gặp phải các hạn chế tương tự.
Lỗi 6: Các biến môi trường không được lưu sau khi khởi động lại
Nếu bạn đã thiết lập các biến thông qua export trong terminal - chúng chỉ hoạt động trong phiên hiện tại.
Giải pháp: Thêm các dòng export HTTP_PROXY=... vào tệp ~/.bashrc hoặc ~/.zshrc (Linux/macOS) hoặc vào các biến môi trường hệ thống Windows thông qua "Thuộc tính hệ thống".
Kết luận
Cấu hình proxy cho Hugging Face là một nhiệm vụ không khó, giải quyết ngay lập tức nhiều vấn đề: vượt qua chặn địa lý, tải xuống ổn định các mô hình nặng, vượt qua giới hạn tần suất và truy cập vào các kho lưu trữ restricted. Lợi thế chính của phương pháp thông qua các biến môi trường là tính linh hoạt: chỉ cần cấu hình một lần, và tất cả các công cụ (huggingface_hub, transformers, git lfs, curl) sẽ tự động hoạt động qua proxy.
Đối với hầu hết các nhiệm vụ - tải xuống mô hình, làm việc với các kịch bản, môi trường máy chủ - lựa chọn tối ưu là proxy từ các trung tâm dữ liệu: chúng cung cấp tốc độ tối đa và tính ổn định khi tải xuống các tệp lớn. Nếu bạn cần truy cập vào các mô hình có hạn chế theo vị trí địa lý hoặc nền tảng chặn IP của các trung tâm dữ liệu - hãy xem xét proxy residential với vị trí địa lý cần thiết: chúng trông giống như người dùng thông thường và gần như không gây ra chặn.
Quy tắc chính khi làm việc với Hugging Face qua proxy - hãy chọn máy chủ ở Hoa Kỳ hoặc Tây Âu, kiểm tra kết nối trước khi tải xuống các mô hình nặng và đừng quên biến NO_PROXY, để lưu lượng truy cập cục bộ đi trực tiếp.