SlyEcho commited on
Commit
160c429
1 Parent(s): a8f706c

fancier Makefile

Browse files
Files changed (2) hide show
  1. .gitignore +1 -1
  2. Makefile +19 -17
.gitignore CHANGED
@@ -1,5 +1,5 @@
1
  convert.py
2
- llama.cpp/
3
  pytorch_model.bin
4
  *.sha
5
  *.tar.gz
 
1
  convert.py
2
+ llama.cpp*/
3
  pytorch_model.bin
4
  *.sha
5
  *.tar.gz
Makefile CHANGED
@@ -2,38 +2,40 @@ MODEL_NAME= open-llama-3b
2
  PYTHON?= python
3
  LLAMA_TAG= 5c64a09
4
  LLAMA_TAR= master-$(LLAMA_TAG).tar.gz
 
5
  HF_REPO= openlm-research/open_llama_3b
6
  HF_REF= main
7
- HF_FILES= pytorch_model.bin tokenizer.model
8
- $(HF_FILES): SITE= https://huggingface.co/$(HF_REPO)/resolve/$(HF_REF)
9
- $(LLAMA_TAR): SITE= https://github.com/ggerganov/llama.cpp/archive/refs/tags
10
 
11
- FILES= $(HF_FILES) $(LLAMA_TAR)
 
 
 
 
12
 
13
  QUANTS= f16 q4_0 q4_1 q5_0 q5_1 q8_0
14
- MODEL_FILES= $(addsuffix .bin,$(addprefix $(MODEL_NAME)-,$(QUANTS)))
15
 
16
  .PHONY: all
17
  all: $(MODEL_FILES) SHA256SUMS
18
 
19
- $(FILES):
20
- curl -L -o $@ --url $(SITE)/$@
 
21
 
22
- llama.cpp: $(LLAMA_TAR)
23
- mkdir -p $@
24
- tar -xf $< --strip-components=1 -C $@
25
 
26
- llama.cpp/quantize: llama.cpp
27
- $(MAKE) -C llama.cpp quantize
28
 
29
- convert.py: convert.py.diff | llama.cpp
30
- patch -ru llama.cpp/convert.py -i $< -o $@
31
 
32
- $(MODEL_NAME)-f16.bin: $(HF_FILES) | convert.py
33
  $(PYTHON) convert.py --outtype f16 --outfile $@ .
34
 
35
- $(MODEL_NAME)-q%.bin: $(MODEL_NAME)-f16.bin | llama.cpp/quantize
36
- llama.cpp/quantize $< $@ q$*
37
 
38
  %.sha: %
39
  sha256sum $< > $@
 
2
  PYTHON?= python
3
  LLAMA_TAG= 5c64a09
4
  LLAMA_TAR= master-$(LLAMA_TAG).tar.gz
5
+ LLAMA_DIR= llama.cpp-master-$(LLAMA_TAG)
6
  HF_REPO= openlm-research/open_llama_3b
7
  HF_REF= main
 
 
 
8
 
9
+ DISTS= gh hf
10
+ SITES.gh= https://github.com/ggerganov/llama.cpp/archive/refs/tags
11
+ FILES.gh= $(LLAMA_TAR)
12
+ SITES.hf= https://huggingface.co/$(HF_REPO)/resolve/$(HF_REF)
13
+ FILES.hf= pytorch_model.bin tokenizer.model
14
 
15
  QUANTS= f16 q4_0 q4_1 q5_0 q5_1 q8_0
16
+ MODEL_FILES= $(foreach q,$(QUANTS),$(MODEL_NAME)-$(q).bin)
17
 
18
  .PHONY: all
19
  all: $(MODEL_FILES) SHA256SUMS
20
 
21
+ DISTFILES= $(foreach d,$(DISTS),$(FILES.$(d)))
22
+ $(DISTFILES) &:
23
+ curl --location $(foreach d,$(DISTS), $(foreach f,$(FILES.$(d)), -o $(f) -z $(f) --url $(SITES.$(d))/$(f)))
24
 
25
+ $(LLAMA_DIR): | $(LLAMA_TAR)
26
+ tar -xf $(LLAMA_TAR)
 
27
 
28
+ $(LLAMA_DIR)/quantize: | $(LLAMA_DIR)
29
+ $(MAKE) -C $(LLAMA_DIR) quantize
30
 
31
+ convert.py: convert.py.diff | $(LLAMA_DIR)
32
+ patch -ru $(LLAMA_DIR)/convert.py -i $< -o $@
33
 
34
+ $(MODEL_NAME)-f16.bin: $(FILES.hf) convert.py
35
  $(PYTHON) convert.py --outtype f16 --outfile $@ .
36
 
37
+ $(MODEL_NAME)-q%.bin: $(MODEL_NAME)-f16.bin | $(LLAMA_DIR)/quantize
38
+ $(LLAMA_DIR)/quantize $< $@ q$*
39
 
40
  %.sha: %
41
  sha256sum $< > $@