Hub Python Library documentation
Tải xuống tệp
Tải xuống tệp
Tải xuống một tệp duy nhất
hf_hub_download
huggingface_hub.hf_hub_download
< source >( repo_id: strfilename: strsubfolder: str | None = Nonerepo_type: str | None = Nonerevision: str | None = Nonelibrary_name: str | None = Nonelibrary_version: str | None = Nonecache_dir: str | pathlib.Path | None = Nonelocal_dir: str | pathlib.Path | None = Noneuser_agent: dict | str | None = Noneforce_download: bool = Falseetag_timeout: float = 10token: bool | str | None = Nonelocal_files_only: bool = Falseheaders: dict[str, str] | None = Noneendpoint: str | None = Nonetqdm_class: type[tqdm.std.tqdm] | None = Nonedry_run: bool = False ) → str or DryRunFileInfo
Tham số
- repo_id (
str) — Tên người dùng hoặc tên tổ chức và tên kho, phân tách bằng/. - filename (
str) — Tên của tệp trong kho. - subfolder (
str, tùy chọn) — Một giá trị tùy chọn tương ứng với một thư mục bên trong kho mô hình. - repo_type (
str, tùy chọn) — Đặt thành"dataset","space"hoặc"kernel"nếu tải xuống từ kho dataset, space hoặc kernel,Nonehoặc"model"nếu tải xuống từ một model. Mặc định làNone. - revision (
str, tùy chọn) — Một id phiên bản Git tùy chọn, có thể là tên nhánh, một tag, hoặc một commit hash. - library_name (
str, tùy chọn) — Tên của thư viện mà đối tượng tương ứng. - library_version (
str, tùy chọn) — Phiên bản của thư viện. - cache_dir (
str,Path, tùy chọn) — Đường dẫn đến thư mục lưu trữ các tệp được lưu trong bộ nhớ đệm. - local_dir (
strhoặcPath, tùy chọn) — Nếu được cung cấp, tệp đã tải xuống sẽ được đặt trong thư mục này. - user_agent (
dict,str, tùy chọn) — Thông tin user-agent dưới dạng từ điển hoặc chuỗi. - force_download (
bool, tùy chọn, mặc định làFalse) — Liệu tệp có nên được tải xuống ngay cả khi nó đã tồn tại trong bộ nhớ đệm cục bộ hay không. - etag_timeout (
float, tùy chọn, mặc định là10) — Khi lấy ETag, số giây chờ máy chủ gửi dữ liệu trước khi từ bỏ, được truyền vàohttpx2.request. - token (
str,bool, tuỳ chọn) — Token được sử dụng để tải xuống.- Nếu
True, token được đọc từ thư mục cấu hình HuggingFace. - Nếu là chuỗi, nó được sử dụng làm token xác thực.
- Nếu
- local_files_only (
bool, tùy chọn, mặc định làFalse) — NếuTrue, tránh tải xuống tệp và trả về đường dẫn đến tệp được lưu cục bộ nếu tệp đó tồn tại. - headers (
dict, tùy chọn) — Các header bổ sung được gửi kèm theo yêu cầu. - endpoint (
str, tùy chọn) — Điểm cuối của Hub để gửi yêu cầu. Mặc định là giá trị củaHF_ENDPOINT. - tqdm_class (
tqdm, tùy chọn) — Nếu được cung cấp, sẽ ghi đè lên hành vi mặc định của thanh tiến trình. Đối số được truyền phải kế thừa từtqdm.auto.tqdmhoặc ít nhất phải mô phỏng hành vi của nó. Mặc định là thanh tiến trình tùy chỉnh của HF, có thể bị vô hiệu hóa bằng cách đặt biến môi trườngHF_HUB_DISABLE_PROGRESS_BARS. - dry_run (
bool, tùy chọn, mặc định làFalse) — NếuTrue, thực hiện chạy thử mà không thực sự tải xuống tệp. Trả về một đối tượng DryRunFileInfo chứa thông tin về những gì sẽ được tải xuống.
Trả về
str hoặc DryRunFileInfo
- Nếu
dry_run=False: Đường dẫn cục bộ của tệp hoặc, nếu mạng bị tắt, phiên bản tệp được lưu trong bộ nhớ đệm trên đĩa gần nhất. - Nếu
dry_run=True: Một đối tượng DryRunFileInfo chứa thông tin tải xuống.
Gây ra
RepositoryNotFoundError hoặc RevisionNotFoundError hoặc ~utils.RemoteEntryNotFoundError hoặc LocalEntryNotFoundError hoặc EnvironmentError hoặc OSError hoặc ValueError
- RepositoryNotFoundError —
Nếu không tìm thấy kho cần tải xuống. Điều này có thể do kho không tồn tại,
hoặc do kho được đặt ở chế độ
privatevà bạn không có quyền truy cập. - RevisionNotFoundError — Nếu không tìm thấy revision để tải xuống.
~utils.RemoteEntryNotFoundError— Nếu tệp cần tải xuống không được tìm thấy.- LocalEntryNotFoundError — Nếu mạng bị vô hiệu hóa hoặc không khả dụng và tệp không được tìm thấy trong bộ nhớ đệm.
EnvironmentError— Nếutoken=Truenhưng không tìm thấy token.OSError— Nếu không thể xác định được ETag.ValueError— Nếu giá trị của một số tham số không hợp lệ.
Tải xuống một tệp nhất định nếu tệp đó chưa có trong bộ nhớ đệm cục bộ.
Bố cục tệp cache mới trông như sau:
- Thư mục cache chứa một thư mục con cho mỗi repo_id (được đặt tên theo loại repo)
- bên trong mỗi thư mục repo:
- refs là danh sách các cặp revision => commit_hash mới nhất được biết đến
- blobs chứa các blob tệp thực tế (được xác định bằng git-sha hoặc sha256, tùy thuộc vào việc chúng có phải là tệp LFS hay không)
- snapshots chứa một thư mục con cho mỗi commit, mỗi “commit” chứa tập con các tệp đã được giải quyết tại commit đó. Mỗi tên tệp là một symlink trỏ đến blob tại commit đó.
[ 96] .
└── [ 160] models--julien-c--EsperBERTo-small
├── [ 160] blobs
│ ├── [321M] 403450e234d65943a7dcf7e05a771ce3c92faa84dd07db4ac20f592037a1e4bd
│ ├── [ 398] 7cb18dc9bafbfcf74629a4b760af1b160957a83e
│ └── [1.4K] d7edf6bd2a681fb0175f7735299831ee1b22b812
├── [ 96] refs
│ └── [ 40] main
└── [ 128] snapshots
├── [ 128] 2439f60ef33a0d46d85da5001d52aeda5b00ce9f
│ ├── [ 52] README.md -> ../../blobs/d7edf6bd2a681fb0175f7735299831ee1b22b812
│ └── [ 76] pytorch_model.bin -> ../../blobs/403450e234d65943a7dcf7e05a771ce3c92faa84dd07db4ac20f592037a1e4bd
└── [ 128] bbc77c8132af1cc5cf678da3f1ddf2de43606d48
├── [ 52] README.md -> ../../blobs/7cb18dc9bafbfcf74629a4b760af1b160957a83e
└── [ 76] pytorch_model.bin -> ../../blobs/403450e234d65943a7dcf7e05a771ce3c92faa84dd07db4ac20f592037a1e4bdNếu local_dir được cung cấp, cấu trúc tệp từ kho sẽ được nhân bản tại vị trí này. Khi sử dụng tùy chọn này, cache_dir sẽ không được dùng và một thư mục .cache/huggingface/ sẽ được tạo tại gốc của local_dir để lưu trữ một số siêu dữ liệu liên quan đến các tệp đã tải xuống. Mặc dù cơ chế này không mạnh mẽ bằng hệ thống cache chính, nó được tối ưu hóa cho việc thường xuyên kéo phiên bản mới nhất của một kho.
hf_hub_url
huggingface_hub.hf_hub_url
< source >( repo_id: strfilename: strsubfolder: str | None = Nonerepo_type: str | None = Nonerevision: str | None = Noneendpoint: str | None = None )
Tham số
- repo_id (
str) — Tên không gian tên (người dùng hoặc tổ chức) và tên kho, phân tách bằng/. - filename (
str) — Tên của tệp trong kho. - subfolder (
str, tùy chọn) — Một giá trị tùy chọn tương ứng với một thư mục bên trong kho. - repo_type (
str, tùy chọn) — Đặt thành"dataset","space"hoặc"kernel"nếu tải xuống từ kho dataset, space hoặc kernel,Nonehoặc"model"nếu tải xuống từ một model. Mặc định làNone. - revision (
str, tùy chọn) — Một id phiên bản Git tùy chọn, có thể là tên nhánh, một tag, hoặc một commit hash. - endpoint (
str, tùy chọn) — Điểm cuối của Hub để gửi yêu cầu. Mặc định là giá trị củaHF_ENDPOINT.
Xây dựng URL của một tệp từ thông tin đã cho.
Địa chỉ đã được phân giải có thể là một URL do huggingface.co lưu trữ, hoặc một liên kết đến Cloudfront (một mạng phân phối nội dung, hay CDN) dành cho các tệp lớn có dung lượng vượt quá vài MB.
Ví dụ:
>>> from huggingface_hub import hf_hub_url
>>> hf_hub_url(
... repo_id="julien-c/EsperBERTo-small", filename="pytorch_model.bin"
... )
'https://huggingface.co/julien-c/EsperBERTo-small/resolve/main/pytorch_model.bin'Ghi chú:
Cloudfront được nhân bản trên toàn cầu nên tốc độ tải xuống cho người dùng cuối nhanh hơn rất nhiều (đồng thời cũng giúp giảm chi phí băng thông của chúng tôi).
Cloudfront lưu trữ tạm (cache) các tệp một cách tích cực theo mặc định (TTL mặc định là 24 giờ), tuy nhiên đây không phải là vấn đề ở đây vì chúng tôi triển khai một hệ thống phân loại phiên bản dựa trên git trên huggingface.co, điều này có nghĩa là chúng tôi lưu trữ các tệp trên S3/Cloudfront theo cách định danh theo nội dung (tức là tên tệp chính là hash của nó). Việc sử dụng tên tệp định danh theo nội dung có nghĩa là bộ nhớ đệm không bao giờ có thể bị lỗi thời.
Về việc lưu bộ nhớ đệm phía client từ thư viện này, chúng tôi dựa vào entity tag (
ETag) của các đối tượng, đây là định danh của một phiên bản cụ thể của tài nguyên [1]_. ETag của một đối tượng là: git-sha1 của nó nếu được lưu trong git, hoặc sha256 của nó nếu được lưu trong git-lfs.
Tham khảo:
Tải xuống một bản sao của kho
huggingface_hub.snapshot_download
< source >( repo_id: strrepo_type: str | None = Nonerevision: str | None = Nonecache_dir: str | pathlib.Path | None = Nonelocal_dir: str | pathlib.Path | None = Nonelibrary_name: str | None = Nonelibrary_version: str | None = Noneuser_agent: dict | str | None = Noneetag_timeout: float = 10force_download: bool = Falsetoken: bool | str | None = Nonelocal_files_only: bool = Falseallow_patterns: list[str] | str | None = Noneignore_patterns: list[str] | str | None = Nonemax_workers: int = 8tqdm_class: type[tqdm.asyncio.tqdm_asyncio] | None = Noneheaders: dict[str, str] | None = Noneendpoint: str | None = Nonedry_run: bool = False ) → str or list of DryRunFileInfo
Tham số
- repo_id (
str) — Tên người dùng hoặc tên tổ chức và tên kho, phân tách bằng/. - repo_type (
str, tùy chọn) — Đặt thành"dataset","space"hoặc"kernel"nếu tải xuống từ kho dataset, space hoặc kernel,Nonehoặc"model"nếu tải xuống từ một model. Mặc định làNone. - revision (
str, tùy chọn) — Một id phiên bản Git tùy chọn, có thể là tên nhánh, một tag, hoặc một commit hash. - cache_dir (
str,Path, tùy chọn) — Đường dẫn đến thư mục lưu trữ các tệp được lưu trong bộ nhớ đệm. - local_dir (
strhoặcPath, tùy chọn) — Nếu được cung cấp, các tệp đã tải xuống sẽ được đặt trong thư mục này. - library_name (
str, tùy chọn) — Tên của thư viện mà đối tượng tương ứng. - library_version (
str, tùy chọn) — Phiên bản của thư viện. - user_agent (
str,dict, tùy chọn) — Thông tin user-agent dưới dạng từ điển hoặc chuỗi. - etag_timeout (
float, tùy chọn, mặc định là10) — Khi lấy ETag, số giây chờ máy chủ gửi dữ liệu trước khi từ bỏ, được truyền vàohttpx2.request. - force_download (
bool, tùy chọn, mặc định làFalse) — Liệu tệp có nên được tải xuống ngay cả khi nó đã tồn tại trong bộ nhớ đệm cục bộ hay không. - token (
str,bool, tuỳ chọn) — Token được sử dụng để tải xuống.- Nếu
True, token được đọc từ thư mục cấu hình HuggingFace. - Nếu là chuỗi, nó được sử dụng làm token xác thực.
- Nếu
- headers (
dict, tùy chọn) — Các header bổ sung để bao gồm trong yêu cầu. Những header này có độ ưu tiên cao hơn các header khác. - endpoint (
str, tùy chọn) — Điểm cuối của Hub để gửi yêu cầu. Mặc định là giá trị củaHF_ENDPOINT. - local_files_only (
bool, tùy chọn, mặc định làFalse) — NếuTrue, không tải xuống bất kỳ tệp nào ngay cả khi chúng không có trongcache_dirhoặclocal_dir. - allow_patterns (
list[str]hoặcstr, tùy chọn) — Nếu được cung cấp, chỉ các tệp khớp với ít nhất một mẫu sẽ được tải xuống. - ignore_patterns (
list[str]hoặcstr, tùy chọn) — Nếu được cung cấp, các tệp khớp với bất kỳ mẫu nào trong danh sách sẽ không được tải xuống. - max_workers (
int, tùy chọn) — Số lượng luồng đồng thời để tải xuống các tệp (1 luồng = 1 tệp tải xuống). Mặc định là 8. - tqdm_class (
tqdm, tùy chọn) — Nếu được cung cấp, sẽ ghi đè lên hành vi mặc định của thanh tiến trình. Đối số được truyền phải kế thừa từtqdm.auto.tqdmhoặc ít nhất phải mô phỏng hành vi của nó. Lưu ý rằngtqdm_classkhông được truyền cho từng thao tác tải xuống riêng lẻ. Mặc định là thanh tiến trình tùy chỉnh của HF, có thể bị vô hiệu hóa bằng cách đặt biến môi trườngHF_HUB_DISABLE_PROGRESS_BARS. - dry_run (
bool, tùy chọn, mặc định làFalse) — NếuTrue, thực hiện chạy thử mà không thực sự tải xuống các tệp. Trả về một danh sách các đối tượng DryRunFileInfo chứa thông tin về những gì sẽ được tải xuống.
Trả về
str hoặc danh sách DryRunFileInfo
- Nếu
dry_run=False: Đường dẫn snapshot cục bộ. - Nếu
dry_run=True: Một danh sách các đối tượng DryRunFileInfo chứa thông tin tải xuống.
Gây ra
RepositoryNotFoundError hoặc RevisionNotFoundError hoặc IncompleteSnapshotError hoặc EnvironmentError hoặc OSError hoặc ValueError
- RepositoryNotFoundError —
Nếu không tìm thấy kho cần tải xuống. Điều này có thể do kho không tồn tại
hoặc do kho được đặt ở chế độ
privatevà bạn không có quyền truy cập. - RevisionNotFoundError — Nếu không tìm thấy revision để tải xuống.
- IncompleteSnapshotError —
Nếu không thể kết nối với Hub (trạng thái ngoại tuyến, sự cố kết nối, hoặc
local_files_only=True) và bản sao lưu trong bộ nhớ đệm thiếu một số tệp được yêu cầu. EnvironmentError— Nếutoken=Truevà không tìm thấy token.OSError— nếu không thể xác định được ETag.ValueError— Nếu giá trị của một số tham số không hợp lệ.
Tải xuống các tệp của kho.
Tải xuống toàn bộ snapshot các tệp của một repo tại revision được chỉ định. Điều này hữu ích khi bạn muốn tất cả các tệp từ một repo vì bạn không biết trước mình sẽ cần những tệp nào a priori. Tất cả các tệp được đặt lồng trong một thư mục để giữ nguyên đường dẫn và tên tệp tương đối so với thư mục đó. Bạn cũng có thể lọc các tệp cần tải xuống bằng cách sử dụng allow_patterns và ignore_patterns.
Nếu local_dir được cung cấp, cấu trúc tệp từ kho sẽ được nhân bản tại vị trí này. Khi sử dụng tùy chọn này, cache_dir sẽ không được dùng, và một thư mục .cache/huggingface/ sẽ được tạo tại gốc của local_dir để lưu trữ một số siêu dữ liệu liên quan đến các tệp đã tải xuống. Mặc dù cơ chế này không mạnh mẽ bằng hệ thống bộ nhớ đệm chính, nó được tối ưu hóa cho việc thường xuyên kéo phiên bản mới nhất của một kho.
Một phương án thay thế là clone kho mã nguồn, nhưng điều này yêu cầu git và git-lfs phải được cài đặt và cấu hình đúng cách. Ngoài ra, khi clone một kho mã nguồn bằng git, bạn không thể lọc các tệp cần tải xuống.
Đọc cây kho đã được lưu trong bộ nhớ đệm
huggingface_hub.get_cached_repo_tree
< source >( repo_id: strrepo_type: str | None = Nonerevision: str | None = Nonecache_dir: str | pathlib.Path | None = Nonelocal_dir: str | pathlib.Path | None = None ) → list[RepoFile]
Tham số
- repo_id (
str) — Tên người dùng hoặc tên tổ chức và tên kho, phân tách bằng/. - repo_type (
str, tùy chọn) — Đặt thành"dataset","space"hoặc"kernel"nếu liệt kê từ kho dataset, space hoặc kernel,Nonehoặc"model"nếu liệt kê từ một model. Mặc định làNone. - revision (
str, tùy chọn) — Một id phiên bản Git tùy chọn, có thể là tên nhánh, một tag, hoặc một commit hash. Mặc định là nhánh mặc định. Tên nhánh/tag sẽ được phân giải thành commit hash bằng cách sử dụng bộ nhớ đệm cục bộ (refs/). - cache_dir (
str,Path, tùy chọn) — Đường dẫn đến thư mục lưu trữ các tệp được lưu đệm. Mặc định là giá trị củaHF_HUB_CACHE. - local_dir (
strhoặcPath, tùy chọn) — Nếu được cung cấp, đọc danh sách cây được lưu đệm bởi một lượt tải xuốnglocal_dir(từlocal_dir/.cache/huggingface/) thay vì bộ đệm chính. Các bản sửa đổi branch/tag vẫn được phân giải thành commit hash bằng cách sử dụng bộ đệm chính (cache_dir).
Trả về
list[RepoFile]
Danh sách các đối tượng RepoFile được lưu trong bộ nhớ đệm cho phiên bản này.
Gây ra
- CachedRepoTreeNotFoundError — Nếu không có danh sách cây nào được lưu trong bộ nhớ đệm cho phiên bản được yêu cầu (ví dụ: kho chưa bao giờ được tải xuống ở phiên bản này).
Trả về danh sách cây được lưu trong bộ nhớ đệm của một kho tại một phiên bản nhất định, không có bất kỳ cuộc gọi mạng nào.
Danh sách cây là tập hợp các tệp (kèm theo metadata tải xuống) của một repo tại một commit. Nó được tạo trên đĩa như một tác dụng phụ của snapshot_download() (xem các tệp cache trees/<commit_hash>.json) và được dùng để bỏ qua các cuộc gọi mạng trong các lần tải xuống sau. Hàm này trực tiếp phơi bày cache đó.
Nếu bạn cần danh sách cây hiện tại của một kho trên Hub, hãy sử dụng list_repo_tree() thay thế.
Giải quyết một bản sửa
Giải quyết tên branch/tag thành commit hash một lần, sau đó truyền kết quả này để cố định mọi lượt tải xuống cùng một commit. Xem HfApi.resolve_revision() và hướng dẫn về hệ thống cache.
ResolvedRevision
lớp huggingface_hub.ResolvedRevision
< source >( resolved: strinitial: str | None = Nonerepo_id: str | None = Nonerepo_type: str | None = None )
Một bản sửa đổi git đã được phân giải thành một băm commit.
ResolvedRevision là một lớp con của str, do đó nó có thể được truyền vào bất kỳ phương thức nào của huggingface_hub nhận đối số revision. Giá trị chuỗi của nó là revision mà người dùng ban đầu yêu cầu (ví dụ: "main", "refs/pr/4"), giúp các URL và thông báo lỗi dễ đọc hơn, trong khi .resolved chứa commit hash mà nó trỏ đến.
Các instance được tạo bởi HfApi.resolve_revision(), hàm này cũng lưu bộ nhớ đệm ánh xạ revision -> commit hash
trong bộ nhớ đệm cục bộ (thư mục refs/).
Một commit hash chỉ có ý nghĩa đối với repo mà nó được phân giải, vì vậy một instance cũng ghi nhớ repo đó. Việc phân giải lại nó cho một repo khác không phải là lỗi: revision được yêu cầu ban đầu sẽ được phân giải lại (xem HfApi.resolve_revision()).
Ví dụ:
>>> from huggingface_hub import resolve_revision
>>> revision = resolve_revision("openai-community/gpt2")
>>> revision
ResolvedRevision(initial=None, resolved='607a30d783dfa663caf39e06633721c8d4cfcd7e')
>>> revision == "main" # it's a string
True
>>> revision.resolved
'607a30d783dfa663caf39e06633721c8d4cfcd7e'Lấy thông tin mô tả về một tệp
get_hf_file_metadata
huggingface_hub.get_hf_file_metadata
< source >( url: strtoken: bool | str | None = Nonetimeout: float | None = 10library_name: str | None = Nonelibrary_version: str | None = Noneuser_agent: dict | str | None = Noneheaders: dict[str, str] | None = Noneendpoint: str | None = Noneretry_on_errors: bool = False )
Tham số
- url (
str) — URL của tệp, ví dụ được trả về bởi hf_hub_url(). - token (
strhoặcbool, tùy chọn) — Token được sử dụng để tải xuống. Nếu là True, token sẽ được đọc từ thư mục cấu hình của HuggingFace. Nếu là False hoặc None, không có token nào được cung cấp. Nếu là chuỗi, nó sẽ được sử dụng làm token xác thực.- Nếu
True, token được đọc từ thư mục cấu hình HuggingFace. - Nếu
FalsehoặcNone, không có token nào được cung cấp. - Nếu là chuỗi, nó được sử dụng làm token xác thực.
- Nếu
- timeout (
float, tùy chọn, mặc định là 10) — Số giây chờ máy chủ gửi metadata trước khi từ bỏ. - library_name (
str, tùy chọn) — Tên của thư viện mà đối tượng tương ứng. - library_version (
str, tùy chọn) — Phiên bản của thư viện. - user_agent (
dict,str, tùy chọn) — Thông tin user-agent dưới dạng từ điển hoặc chuỗi. - headers (
dict, tùy chọn) — Các header bổ sung được gửi kèm theo yêu cầu. - endpoint (
str, tùy chọn) — Endpoint của Hub. Mặc định là https://huggingface.co. - retry_on_errors (
bool, tùy chọn, mặc định làFalse) — Có nên thử lại khi gặp lỗi (429, 5xx, hết thời gian chờ, lỗi mạng) hay không. Nếu là False, sẽ không thử lại để chuyển nhanh sang bộ nhớ đệm cục bộ.
Lấy metadata của một tệp được phiên bản hóa trên Hub cho một url nhất định.
HfFileMetadata
lớp huggingface_hub.HfFileMetadata
< source >( commit_hash: str | Noneetag: str | Nonelocation: strsize: int | Nonexet_file_data: huggingface_hub.utils._xet.XetFileData | None )
Tham số
- commit_hash (
str, tùy chọn) — commit_hash liên quan đến tệp. - etag (
str, tùy chọn) — Etag của tệp trên máy chủ. - location (
str) — Vị trí để tải xuống tệp. Có thể là URL của Hub hoặc không (CDN). - size (
size) — Kích thước của tệp. Đối với tệp LFS, chứa kích thước của tệp LFS thực tế, không phải con trỏ. - xet_file_data (
XetFileData, tuỳ chọn) — Thông tin Xet cho tệp. Chỉ được đặt nếu tệp được lưu trữ bằng Xet storage.
Cấu trúc dữ liệu chứa thông tin về một phiên bản tệp được lưu trữ trên Hub.
Được trả về bởi get_hf_file_metadata() dựa trên một URL.
Bộ nhớ đệm
Các phương thức hiển thị ở trên được thiết kế để hoạt động với một hệ thống bộ nhớ đệm ngăn chặn việc tải lại tệp. Hệ thống bộ nhớ đệm đã được cập nhật trong v0.8.0 để trở thành hệ thống bộ nhớ đệm trung tâm được chia sẻ giữa các thư viện phụ thuộc vào Hub.
Đọc hướng dẫn hệ thống cache để có trình bày chi tiết về việc lưu cache trên HF.
Update on GitHub