Mirror: cache_subcommands.md
Air-gap ön-getirme komut çifti. Bağlı bir makinede yerel HuggingFace Hub cache'ini (
cache-models) ve lm-evaluation-harness datasets cache'ini (cache-tasks) doldurun; oluşan ağaçları offline host'a aktarın; oradaforgelm doctor --offlinedoğrular ve trainerlocal_files_only=Trueile çalışır.
forgelm cache-models --model HUB_ID [--model HUB_ID ...] [--safety HUB_ID]
[--output DIR] [--audit-dir DIR]
[--output-format {text,json}] [-q] [--log-level LEVEL]
forgelm cache-tasks --tasks CSV
[--output DIR] [--audit-dir DIR]
[--output-format {text,json}] [-q] [--log-level LEVEL]Uygulama: forgelm/cli/subcommands/_cache.py.
| Flag | Tip | Varsayılan | Açıklama |
|---|---|---|---|
--model HUB_ID |
string (tekrarlanabilir) | — | HuggingFace Hub ID'si (örn. meta-llama/Llama-3.2-3B) veya yerel yol. Birden fazla model için tekrarlayın. |
--safety HUB_ID |
string | — | Önceden cache'lenecek opsiyonel safety classifier (örn. meta-llama/Llama-Guard-3-8B). Dahili olarak model listesine eklenir. |
--output DIR |
path | env-resolved | Cache dizini override. Çözüm sırası: --output > HF_HUB_CACHE > HF_HOME/hub > ~/.cache/huggingface/hub. Birbirinden farklı --output, uyarı üretir; çünkü forgelm doctor --offline ve trainer her ikisi de env-var zincirini okur, --output'u değil. |
--audit-dir DIR |
path | --output |
cache.populate_models_* event'lerinin yazılacağı dizin. Operatör artefaktları audit log'dan farklı bir dizinde stage ediyorsa kullanın. |
--output-format |
text | json |
text |
Render. |
-q, --quiet |
bool | false |
INFO loglarını bastırır. |
--log-level |
DEBUG/INFO/WARNING/ERROR |
INFO |
Log seviyesi. |
--model veya --safety'den en az biri zorunludur; ikisi birlikte verilebilir, böylece base model + Llama Guard tek invocation'da stage edilir.
| Flag | Tip | Varsayılan | Açıklama |
|---|---|---|---|
--tasks CSV |
string (zorunlu) | — | Virgülle ayrılmış lm-eval task adları (örn. hellaswag,arc_easy,truthfulqa,mmlu). Virgül etrafındaki boşluk tolere edilir. |
--output DIR |
path | env-resolved | Cache dizini override. Çözüm sırası: --output > HF_DATASETS_CACHE > HF_HOME/datasets > ~/.cache/huggingface/datasets. Runtime, çözülen yolu try/finally içinde HF_DATASETS_CACHE olarak stamp'ler; uzun ömürlü süreçte / sonraki testte stamp sızdırmaz. |
--audit-dir DIR |
path | --output |
cache.populate_tasks_* event'lerinin yazılacağı dizin. |
--output-format |
text | json |
text |
Render. |
-q, --quiet |
bool | false |
INFO loglarını bastırır. |
--log-level |
DEBUG/INFO/WARNING/ERROR |
INFO |
Log seviyesi. |
cache-tasks, [eval] extra'sını gerektirir (pip install 'forgelm[eval]'); eksik import EXIT_CONFIG_ERROR üretir (operatör eylem alabilir), EXIT_TRAINING_ERROR değil.
HF cache, amacına göre bölümlüdür; HF_HUB_CACHE set etmek dataset indirmelerini yönlendirmez ve tersi de doğrudur.
| Cache | Çözen | Dolduran | Ne yaşar |
|---|---|---|---|
| Hub cache | HF_HUB_CACHE > HF_HOME/hub > ~/.cache/huggingface/hub |
cache-models |
Model snapshot'ları, tokenizer'lar, config'ler (huggingface_hub.snapshot_download blob store). |
| Datasets cache | HF_DATASETS_CACHE > HF_HOME/datasets > ~/.cache/huggingface/datasets |
cache-tasks |
Parquet shard'ları, işlenmiş Arrow split'leri (datasets kütüphanesinin kendi cache'i). |
FORGELM_CACHE_DIRbir ForgeLM env değişkeni değildir. Yukarıdaki kanonik HuggingFace değişkenlerini kullanın.
| Kod | Anlamı |
|---|---|
0 |
İstenen her model / task başarıyla cache'lendi. |
1 |
Config hatası — boş --model+--safety, bozuk model adı, boş --tasks, bilinmeyen lm-eval task adı, eksik [eval] extra'sı. |
2 |
Runtime hatası — HF Hub transport hatası, disk dolu, huggingface_hub import bozuk, bir veya daha fazla task dataset'i hazırlanamadı. |
cache-models, kısmi-batch hatasını raporlar: audit zinciri cache.populate_models_failed event'ini models_completed=[<şimdiye-kadar-yapılan-liste>] payload'ı ile kaydeder; böylece operatör çökmeden önce neyin tamamlandığını bilir ve hatalı modeli atlayarak yeniden çalıştırabilir.
cache-tasks da aynı şekilde raporlar. cached: false ile biten herhangi bir task — indirme hatası ya da lm-eval'in indirilebilir dataset sunmadığı bir task — komutun tamamını success: false ile exit 2'ye düşürür ve hata zarfı per-task satırları tasks altında korur. 0.11.0'dan sonra değişti: 0.11.0'a kadar bu hatalar tasks[].error'a yazılıyor, komut yine 0 ile çıkıyor ve cache.populate_tasks_completed logluyordu; jq -e '.success' ile gate eden bir CI job'ı bu yüzden eksik bir cache'i paketleyip air-gap'li host'a gönderiyordu.
| Event | Ne zaman üretilir | Payload (envelope'a ek) | Madde |
|---|---|---|---|
cache.populate_models_requested |
cache-models invocation başlar. |
models, cache_dir, safety_classifier |
12 |
cache.populate_models_completed |
Her model başarıyla indirildi. | Tüm requested alanları + total_size_bytes, count |
12 |
cache.populate_models_failed |
Bir veya daha fazla model indirme hatası (transport, disk-full, HF auth). | Tüm requested alanları + models_completed, error_class, error_message |
12 |
cache.populate_tasks_requested |
cache-tasks invocation başlar. |
tasks, cache_dir |
12 |
cache.populate_tasks_completed |
Her lm-eval task dataset'i başarıyla hazırlandı. | Tüm requested alanları + count |
12 |
cache.populate_tasks_failed |
Bilinmeyen task adı VEYA hiçbir task hazırlanamadı. | Tüm requested alanları + tasks_completed, error_class, error_message (enumeration hatası) veya tasks_cached, tasks_failed, tasks_unavailable (hiçbiri hazırlanamadı) |
12 |
cache.populate_tasks_partial |
Bazı task'lar hazırlandı, bazıları hazırlanmadı. | Tüm requested alanları + tasks_cached, tasks_failed, tasks_unavailable |
12 |
Audit-logger inşası best-effort'tur: bağlı stage makinesinde FORGELM_OPERATOR set edilmemiş bir operatör debug-seviyesinde bir not görür ve çalıştırma audit zinciri olmadan devam eder. Cache subcommand'larının değeri disk üzerindeki artefaktlardadır, audit zincirinde değil. Ayna girişler: audit_event_catalog-tr.md §Air-gap ön-cache.
$ forgelm cache-models \
--model "Qwen/Qwen2.5-7B-Instruct" \
--safety "meta-llama/Llama-Guard-3-8B"
Cached 2 model(s); 28415.32 MiB total under /home/me/.cache/huggingface/hub.
- Qwen/Qwen2.5-7B-Instruct: 14207.66 MiB (412.8s)
- meta-llama/Llama-Guard-3-8B: 14207.66 MiB (398.2s)$ forgelm cache-models \
--model "meta-llama/Llama-3.2-3B" \
--model "meta-llama/Llama-3.2-3B-Instruct" \
--safety "meta-llama/Llama-Guard-3-8B" \
--output ./airgap-bundle/hubHF_HUB_CACHE=$PWD/airgap-bundle/hub set edilmemişse --output farklılık uyarısı çıkar. Çözüm: ya --output'u kaldırın ya da env var'ı bundle yoluna sabitleyin.
$ forgelm cache-tasks --tasks "hellaswag,arc_easy,truthfulqa,mmlu"
Cached 4 of 4 task(s) under /home/me/.cache/huggingface/datasets.
- hellaswag: ok
- arc_easy: ok
- truthfulqa: ok
- mmlu: ok$ forgelm cache-models \
--model "Qwen/Qwen2.5-7B-Instruct" \
--safety "meta-llama/Llama-Guard-3-8B" \
--output-format json -q \
| jq '.success'
true{
"success": true,
"models": [
{"name": "Qwen/Qwen2.5-7B-Instruct", "cached_path": "...", "size_bytes": 14897516032, "size_mb": 14207.66, "duration_s": 412.8},
{"name": "meta-llama/Llama-Guard-3-8B", "cached_path": "...", "size_bytes": 14897516032, "size_mb": 14207.66, "duration_s": 398.2}
],
"total_size_mb": 28415.32,
"cache_dir": "/home/me/.cache/huggingface/hub"
}- Air-gap deployment rehberi — bağlı-makine → bundle → air-gap-host iş akışı için tam operatör pişirme kitabı.
doctor_subcommand-tr.md—forgelm doctor --offlinedoldurulmuş cache'i doğrular.audit_event_catalog-tr.md— tam audit-event kataloğu.- Air-gap kullanıcı kılavuzu — operatör özet sayfası.
- JSON çıktı şeması — kilitli envelope sözleşmesi.