mirror of
https://github.com/unslothai/unsloth.git
synced 2026-07-19 12:43:48 +00:00
* MLX CI: find llama-cli where save_pretrained_gguf actually installs it
The GGUF reload step hardcoded the CWD-relative paths llama.cpp/llama-cli and
llama.cpp/build/bin/llama-cli, but save_pretrained_gguf builds and installs llama.cpp
under unsloth_zoo's LLAMA_CPP_DEFAULT_DIR ($UNSLOTH_LLAMA_CPP_PATH, else
~/.unsloth/llama.cpp), so the reload could not find the binary and failed the Mac M1
job with "llama-cli not found". _find_llama_cli now searches that install directory
(and honors the env override) before falling back to the old CWD layout, with a
recursive glob as a last resort. The search is a strict superset of the previous
paths, so it cannot regress a layout that already worked.
* MLX CI: return an absolute llama-cli path from the locator
Resolve the located binary to an absolute path. If UNSLOTH_LLAMA_CPP_PATH is a
relative directory (e.g. "."), Path(".") / "llama-cli" normalizes to the bare name
"llama-cli", and subprocess.run treats a separator-less argument as a PATH lookup
rather than a file to execute, raising FileNotFoundError. resolve() makes the returned
path absolute so it always runs the intended binary.
* MLX CI: give llama-cli EOF on stdin so GGUF reload cannot hang
With the binary now found, the GGUF reload actually invokes llama-cli and it timed
out after 300s generating 24 tokens on a 270m model, which is a stdin block rather
than slow generation: subprocess.run captured stdout/stderr but left stdin inherited,
so -no-cnv still left llama-cli waiting for interactive input. Pass
stdin=subprocess.DEVNULL so it receives an immediate EOF and runs the single prompt to
completion.
---------
Co-authored-by: danielhanchen <michaelhan2050@gmail.com>
|
||
|---|---|---|
| .. | ||
| notebooks | ||
| python | ||
| qlora | ||
| saving | ||
| security | ||
| sh | ||
| studio | ||
| studio_setup_ps1 | ||
| utils | ||
| version_compat | ||
| vllm_compat | ||
| __init__.py | ||
| _zoo_aggressive_cuda_spoof.py | ||
| conftest.py | ||
| run_all.sh | ||
| test_attention_implementation.py | ||
| test_callback_signature_drift.py | ||
| test_cli_export_unpacking.py | ||
| test_enforce_kwargs_spacing.py | ||
| test_finetune_last_n_layers.py | ||
| test_fused_ce_not_return_dict_logits.py | ||
| test_gemma4_chat_template.py | ||
| test_get_model_name.py | ||
| test_ignored_tokenizer_casing.py | ||
| test_import_fixes_drift.py | ||
| test_loader_glob_skip.py | ||
| test_missing_torchvision_vlm.py | ||
| test_model_registry.py | ||
| test_moe_lora_targets.py | ||
| test_multi_image_grpo_chunking.py | ||
| test_nvfp4_quant_load.py | ||
| test_offline_loading_helpers.py | ||
| test_peft_tensor_parallel_compat.py | ||
| test_peft_weight_converter_compat.py | ||
| test_pretrain_compile_reset.py | ||
| test_public_api_surface.py | ||
| test_raw_text.py | ||
| test_resolve_model_class.py | ||
| test_studio_install_workspace_guard.py | ||
| test_studio_root_resilience.py | ||
| test_studio_shutdown_thread_wait.py | ||
| test_synthetic_chunk_data.py | ||
| test_tool_mask_zoo_compat.py | ||
| test_uninitialized_position_ids.py | ||
| test_video_path_validation.py | ||
| test_vllm_broken_detection.py | ||
| test_windows_rocm_bnb_version.py | ||