mirror of
https://github.com/ggerganov/llama.cpp.git
synced 2024-12-24 10:24:35 +00:00
Deprecation warning to assist with migration to new binary names (#8283)
* Adding a simple program to provide a deprecation warning that can exist to help people notice the binary name change from #7809 and migrate to the new filenames. * Build legacy replacement binaries only if they already exist. Check for their existence every time so that they are not ignored.
This commit is contained in:
parent
a03e8dd99d
commit
e500d6135a
78
Makefile
78
Makefile
@ -64,10 +64,14 @@ TEST_TARGETS = \
|
|||||||
tests/test-tokenizer-1-spm
|
tests/test-tokenizer-1-spm
|
||||||
|
|
||||||
# Legacy build targets that were renamed in #7809, but should still be removed when the project is cleaned
|
# Legacy build targets that were renamed in #7809, but should still be removed when the project is cleaned
|
||||||
LEGACY_TARGETS = main quantize quantize-stats perplexity imatrix embedding vdot q8dot train-text-from-scratch convert-llama2c-to-ggml \
|
LEGACY_TARGETS_CLEAN = main quantize quantize-stats perplexity imatrix embedding vdot q8dot train-text-from-scratch convert-llama2c-to-ggml \
|
||||||
simple batched batched-bench save-load-state server gguf gguf-split eval-callback llama-bench libllava.a llava-cli baby-llama \
|
simple batched batched-bench save-load-state server gguf gguf-split eval-callback llama-bench libllava.a llava-cli baby-llama \
|
||||||
retrieval speculative infill tokenize benchmark-matmult parallel finetune export-lora lookahead lookup passkey gritlm
|
retrieval speculative infill tokenize benchmark-matmult parallel finetune export-lora lookahead lookup passkey gritlm
|
||||||
|
|
||||||
|
# Legacy build targets that were renamed in #7809, but we want to build binaries that for them that output a deprecation warning if people try to use them.
|
||||||
|
# We don't want to clutter things too much, so we only build replacements for the most commonly used binaries.
|
||||||
|
LEGACY_TARGETS_BUILD = main quantize perplexity embedding server finetune
|
||||||
|
|
||||||
# Deprecation aliases
|
# Deprecation aliases
|
||||||
ifdef LLAMA_CUBLAS
|
ifdef LLAMA_CUBLAS
|
||||||
$(error LLAMA_CUBLAS is removed. Use GGML_CUDA instead.)
|
$(error LLAMA_CUBLAS is removed. Use GGML_CUDA instead.)
|
||||||
@ -193,7 +197,7 @@ ifdef GGML_RPC
|
|||||||
BUILD_TARGETS += rpc-server
|
BUILD_TARGETS += rpc-server
|
||||||
endif
|
endif
|
||||||
|
|
||||||
default: $(BUILD_TARGETS)
|
default: $(BUILD_TARGETS) $(LEGACY_TARGETS_BUILD)
|
||||||
|
|
||||||
test: $(TEST_TARGETS)
|
test: $(TEST_TARGETS)
|
||||||
@failures=0; \
|
@failures=0; \
|
||||||
@ -228,7 +232,7 @@ test: $(TEST_TARGETS)
|
|||||||
fi
|
fi
|
||||||
@echo 'All tests passed.'
|
@echo 'All tests passed.'
|
||||||
|
|
||||||
all: $(BUILD_TARGETS) $(TEST_TARGETS)
|
all: $(BUILD_TARGETS) $(TEST_TARGETS) $(LEGACY_TARGETS_BUILD)
|
||||||
|
|
||||||
ifdef RISCV_CROSS_COMPILE
|
ifdef RISCV_CROSS_COMPILE
|
||||||
CC := riscv64-unknown-linux-gnu-gcc
|
CC := riscv64-unknown-linux-gnu-gcc
|
||||||
@ -1098,7 +1102,7 @@ clean:
|
|||||||
rm -vrf ggml/src/ggml-cuda/template-instances/*.o
|
rm -vrf ggml/src/ggml-cuda/template-instances/*.o
|
||||||
rm -rvf $(BUILD_TARGETS)
|
rm -rvf $(BUILD_TARGETS)
|
||||||
rm -rvf $(TEST_TARGETS)
|
rm -rvf $(TEST_TARGETS)
|
||||||
rm -rvf $(LEGACY_TARGETS)
|
rm -rvf $(LEGACY_TARGETS_CLEAN)
|
||||||
find examples pocs -type f -name "*.o" -delete
|
find examples pocs -type f -name "*.o" -delete
|
||||||
|
|
||||||
#
|
#
|
||||||
@ -1494,3 +1498,69 @@ llama-q8dot: pocs/vdot/q8dot.cpp ggml/src/ggml.o \
|
|||||||
$(OBJ_GGML)
|
$(OBJ_GGML)
|
||||||
$(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<)
|
$(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<)
|
||||||
$(CXX) $(CXXFLAGS) $(filter-out $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS)
|
$(CXX) $(CXXFLAGS) $(filter-out $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS)
|
||||||
|
|
||||||
|
#
|
||||||
|
# Deprecated binaries that we want to keep around long enough for people to migrate to the new filenames, then these can be removed.
|
||||||
|
#
|
||||||
|
# Mark legacy binary targets as .PHONY so that they are always checked.
|
||||||
|
.PHONY: main quantize perplexity embedding server finetune
|
||||||
|
|
||||||
|
main: examples/deprecation-warning/deprecation-warning.cpp
|
||||||
|
ifneq (,$(wildcard main))
|
||||||
|
$(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<)
|
||||||
|
$(CXX) $(CXXFLAGS) $(filter-out $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS)
|
||||||
|
@echo "#########"
|
||||||
|
@echo "WARNING: The 'main' binary is deprecated. Please use 'llama-cli' instead."
|
||||||
|
@echo " Remove the 'main' binary to remove this warning."
|
||||||
|
@echo "#########"
|
||||||
|
endif
|
||||||
|
|
||||||
|
quantize: examples/deprecation-warning/deprecation-warning.cpp
|
||||||
|
ifneq (,$(wildcard quantize))
|
||||||
|
$(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<)
|
||||||
|
$(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS)
|
||||||
|
@echo "#########"
|
||||||
|
@echo "WARNING: The 'quantize' binary is deprecated. Please use 'llama-quantize' instead."
|
||||||
|
@echo " Remove the 'quantize' binary to remove this warning."
|
||||||
|
@echo "#########"
|
||||||
|
endif
|
||||||
|
|
||||||
|
perplexity: examples/deprecation-warning/deprecation-warning.cpp
|
||||||
|
ifneq (,$(wildcard perplexity))
|
||||||
|
$(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<)
|
||||||
|
$(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS)
|
||||||
|
@echo "#########"
|
||||||
|
@echo "WARNING: The 'perplexity' binary is deprecated. Please use 'llama-perplexity' instead."
|
||||||
|
@echo " Remove the 'perplexity' binary to remove this warning."
|
||||||
|
@echo "#########"
|
||||||
|
endif
|
||||||
|
|
||||||
|
embedding: examples/deprecation-warning/deprecation-warning.cpp
|
||||||
|
ifneq (,$(wildcard embedding))
|
||||||
|
$(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<)
|
||||||
|
$(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS)
|
||||||
|
@echo "#########"
|
||||||
|
@echo "WARNING: The 'embedding' binary is deprecated. Please use 'llama-embedding' instead."
|
||||||
|
@echo " Remove the 'embedding' binary to remove this warning."
|
||||||
|
@echo "#########"
|
||||||
|
endif
|
||||||
|
|
||||||
|
server: examples/deprecation-warning/deprecation-warning.cpp
|
||||||
|
ifneq (,$(wildcard server))
|
||||||
|
$(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<)
|
||||||
|
$(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS)
|
||||||
|
@echo "#########"
|
||||||
|
@echo "WARNING: The 'server' binary is deprecated. Please use 'llama-server' instead."
|
||||||
|
@echo " Remove the 'server' binary to remove this warning."
|
||||||
|
@echo "#########"
|
||||||
|
endif
|
||||||
|
|
||||||
|
finetune: examples/deprecation-warning/deprecation-warning.cpp
|
||||||
|
ifneq (,$(wildcard finetune))
|
||||||
|
$(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<)
|
||||||
|
$(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS)
|
||||||
|
@echo "#########"
|
||||||
|
@echo "WARNING: The 'finetune' binary is deprecated. Please use 'llama-finetune' instead."
|
||||||
|
@echo " Remove the 'finetune' binary to remove this warning."
|
||||||
|
@echo "#########"
|
||||||
|
endif
|
||||||
|
51
examples/deprecation-warning/README.md
Normal file
51
examples/deprecation-warning/README.md
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
# Migration notice for binary filenames
|
||||||
|
|
||||||
|
> [!IMPORTANT]
|
||||||
|
[2024 Jun 12] Binaries have been renamed w/ a `llama-` prefix. `main` is now `llama-cli`, `server` is `llama-server`, etc (https://github.com/ggerganov/llama.cpp/pull/7809)
|
||||||
|
|
||||||
|
This migration was important, but it is a breaking change that may not always be immediately obvious to users.
|
||||||
|
|
||||||
|
Please update all scripts and workflows to use the new binary names.
|
||||||
|
|
||||||
|
| Old Filename | New Filename |
|
||||||
|
| ---- | ---- |
|
||||||
|
| main | llama-cli |
|
||||||
|
| server | llama-server |
|
||||||
|
| llama-bench | llama-bench |
|
||||||
|
| embedding | llama-embedding |
|
||||||
|
| finetune | llama-finetune |
|
||||||
|
| quantize | llama-quantize |
|
||||||
|
| tokenize | llama-tokenize |
|
||||||
|
| export-lora | llama-export-lora |
|
||||||
|
| libllava.a | libllava.a |
|
||||||
|
| baby-llama | llama-baby-llama |
|
||||||
|
| batched | llama-batched |
|
||||||
|
| batched-bench | llama-batched-bench |
|
||||||
|
| benchmark-matmult | llama-benchmark-matmult |
|
||||||
|
| convert-llama2c-to-ggml | llama-convert-llama2c-to-ggml |
|
||||||
|
| eval-callback | llama-eval-callback |
|
||||||
|
| gbnf-validator | llama-gbnf-validator |
|
||||||
|
| gguf | llama-gguf |
|
||||||
|
| gguf-split | llama-gguf-split |
|
||||||
|
| gritlm | llama-gritlm |
|
||||||
|
| imatrix | llama-imatrix |
|
||||||
|
| infill | llama-infill |
|
||||||
|
| llava-cli | llama-llava-cli |
|
||||||
|
| lookahead | llama-lookahead |
|
||||||
|
| lookup | llama-lookup |
|
||||||
|
| lookup-create | llama-lookup-create |
|
||||||
|
| lookup-merge | llama-lookup-merge |
|
||||||
|
| lookup-stats | llama-lookup-stats |
|
||||||
|
| parallel | llama-parallel |
|
||||||
|
| passkey | llama-passkey |
|
||||||
|
| perplexity | llama-perplexity |
|
||||||
|
| q8dot | llama-q8dot |
|
||||||
|
| quantize-stats | llama-quantize-stats |
|
||||||
|
| retrieval | llama-retrieval |
|
||||||
|
| save-load-state | llama-save-load-state |
|
||||||
|
| simple | llama-simple |
|
||||||
|
| speculative | llama-speculative |
|
||||||
|
| train-text-from-scratch | llama-train-text-from-scratch |
|
||||||
|
| vdot | llama-vdot |
|
||||||
|
| tests/test-c.o | tests/test-c.o |
|
||||||
|
|
35
examples/deprecation-warning/deprecation-warning.cpp
Normal file
35
examples/deprecation-warning/deprecation-warning.cpp
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
// Warns users that this filename was deprecated, and provides a link for more information.
|
||||||
|
|
||||||
|
#include <cstdio>
|
||||||
|
#include <string>
|
||||||
|
#include <unordered_map>
|
||||||
|
|
||||||
|
// Main
|
||||||
|
int main(int argc, char** argv) {
|
||||||
|
std::string filename = "main";
|
||||||
|
if (argc >= 1) {
|
||||||
|
filename = argv[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get only the program name from the full path
|
||||||
|
auto pos = filename.find_last_of('/');
|
||||||
|
if (pos != std::string::npos) {
|
||||||
|
filename = filename.substr(pos+1);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Append "llama-" to the beginning of filename to get the replacemnt filename
|
||||||
|
auto replacement_filename = "llama-" + filename;
|
||||||
|
|
||||||
|
// The exception is if the filename is "main", then our replacement filename is "llama-cli"
|
||||||
|
if (filename == "main") {
|
||||||
|
replacement_filename = "llama-cli";
|
||||||
|
}
|
||||||
|
|
||||||
|
fprintf(stdout, "\n");
|
||||||
|
fprintf(stdout, "WARNING: The binary '%s' is deprecated.\n", filename.c_str());
|
||||||
|
fprintf(stdout, " Please use '%s' instead.\n", replacement_filename.c_str());
|
||||||
|
fprintf(stdout, " See https://github.com/ggerganov/llama.cpp/tree/master/examples/deprecation-warning/README.md for more information.\n");
|
||||||
|
fprintf(stdout, "\n");
|
||||||
|
|
||||||
|
return EXIT_FAILURE;
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user