]> git.djapps.eu Git - pkg/ggml/sources/llama.cpp/log
pkg/ggml/sources/llama.cpp
5 months agosimple-chat : fix BOS being added to each message (#11278)
Georgi Gerganov [Sun, 19 Jan 2025 16:12:09 +0000 (18:12 +0200)]
simple-chat : fix BOS being added to each message (#11278)

5 months agoSYCL: Introducing memory host pool (#11251)
Nicolò Scipione [Sun, 19 Jan 2025 13:33:34 +0000 (14:33 +0100)]
SYCL: Introducing memory host pool (#11251)

* Implement host pool for matrix_info

Creating a new memory pool on the host to store memory location for
matrix_info needed to launch gemm_batch from oneMKL/oneMath.
Removing complex support in gemm_batch since it is not used in llama.cpp

* Remove unnecessary headers and cast

* Reorder member variable to avoid warning on initialization

* Formatting

* Remove unused variable

* Address PR review feedback - remove warning

---------

Signed-off-by: nscipione <redacted>
5 months agoAdding linenoise.cpp to llama-run (#11252)
Eric Curtin [Sat, 18 Jan 2025 14:42:31 +0000 (14:42 +0000)]
Adding linenoise.cpp to llama-run (#11252)

This is a fork of linenoise that is C++17 compatible. I intend on
adding it to llama-run so we can do things like traverse prompt
history via the up and down arrows:

https://github.com/ericcurtin/linenoise.cpp

Signed-off-by: Eric Curtin <redacted>
5 months agocmake : add sanitizer flags for llama.cpp (#11279)
Georgi Gerganov [Sat, 18 Jan 2025 14:18:15 +0000 (16:18 +0200)]
cmake : add sanitizer flags for llama.cpp (#11279)

* cmake : add sanitizer flags for llama.cpp

ggml-ci

* tests : fix compile warnings

ggml-ci

* cmake : move sanitizer flags to llama_add_compile_flags

ggml-ci

* cmake : move llama.cpp compile flags to top level lists

ggml-ci

* cmake : apply only sanitizer flags at top level

ggml-ci

* tests : fix gguf context use in same_tensor_data

* gguf-test: tensor data comparison

* dummy : trigger ggml-ci

* unicode : silence gcc warnings

ggml-ci

* ci : use sanitizer builds only in Debug mode

ggml-ci

* cmake : add status messages [no ci]

---------

Co-authored-by: Johannes Gäßler <redacted>
5 months agoserver : implement cancellable request (#11285)
Xuan Son Nguyen [Sat, 18 Jan 2025 13:12:05 +0000 (14:12 +0100)]
server : implement cancellable request (#11285)

* server : implement cancellable request

* fix typo

* httplib 0.18.5

* fix i underflow

5 months agoscripts : restore hf.sh (#11288)
Georgi Gerganov [Sat, 18 Jan 2025 11:18:32 +0000 (13:18 +0200)]
scripts : restore hf.sh (#11288)

ggml-ci

5 months agotts : add guide tokens support (#11186)
LostRuins Concedo [Sat, 18 Jan 2025 10:20:57 +0000 (18:20 +0800)]
tts : add guide tokens support (#11186)

* Added the ability to use guide tokens for OuteTTS, greatly improving TTS recitation accuracy over long input sequences.

* applied linting suggestions, updated to latest llama_vocab changes, added a safety check, added newline to guide token start

5 months agovulkan: fix coopmat2 flash attention for non-contiguous inputs (#11281)
Jeff Bolz [Sat, 18 Jan 2025 08:26:50 +0000 (02:26 -0600)]
vulkan: fix coopmat2 flash attention for non-contiguous inputs (#11281)

Add code similar to mul_mm_cm2 to force alignment of strides, to avoid
a performance regression.

Add noncontiguous FA tests in test-backend-ops.

Fixes #11268.

5 months agollama.android: add field formatChat to control whether to parse special tokens when...
codezjx [Fri, 17 Jan 2025 12:57:56 +0000 (20:57 +0800)]
llama.android: add field formatChat to control whether to parse special tokens when send message (#11270)

5 months agorpc : early register backend devices (#11262)
Radoslav Gerganov [Fri, 17 Jan 2025 08:57:09 +0000 (10:57 +0200)]
rpc : early register backend devices (#11262)

Early register RPC devices and do not propagate RPC specifics in the
llama model structures.

ref: #10609

5 months agovocab : fix double-eos check (#11273)
Georgi Gerganov [Fri, 17 Jan 2025 07:28:00 +0000 (09:28 +0200)]
vocab : fix double-eos check (#11273)

ggml-ci

5 months agollama : fix deprecation message: vocabable -> vocab (#11269)
David Renshaw [Fri, 17 Jan 2025 07:12:01 +0000 (02:12 -0500)]
llama : fix deprecation message: vocabable -> vocab (#11269)

5 months agoREADME : added kalavai to infrastructure list (#11216)
musoles [Fri, 17 Jan 2025 00:10:49 +0000 (00:10 +0000)]
README : added kalavai to infrastructure list (#11216)

5 months agovulkan: support copy from f32 to q4_0/q4_1/q5_0/q5_1/q8_0/iq4_nl (#11166)
Jeff Bolz [Thu, 16 Jan 2025 21:47:10 +0000 (15:47 -0600)]
vulkan: support copy from f32 to q4_0/q4_1/q5_0/q5_1/q8_0/iq4_nl (#11166)

* vulkan: support copy from f32 to q4_0/q4_1/q5_0/q5_1/q8_0/iq4_nl

Shaders are based on cpy.cu.

* vulkan: support copy from q4_0/q4_1/q5_0/q5_1/q8_0/iq4_nl to f32

* ggml: copy q->f32 assumes some contiguity in the destination

5 months agovulkan: optimize coopmat2 q4_k/q5_k dequant functions. (#11206)
Jeff Bolz [Thu, 16 Jan 2025 21:23:49 +0000 (15:23 -0600)]
vulkan: optimize coopmat2 q4_k/q5_k dequant functions. (#11206)

Do masking on whole dwords, fetch all scales at once.

5 months agovulkan: optimize coopmat2 q2_k dequant function (#11130)
Jeff Bolz [Thu, 16 Jan 2025 21:16:39 +0000 (15:16 -0600)]
vulkan: optimize coopmat2 q2_k dequant function (#11130)

5 months agollama : add internlm3 support (#11233)
RunningLeon [Thu, 16 Jan 2025 18:10:38 +0000 (02:10 +0800)]
llama : add internlm3 support (#11233)

* support internlm3

* fix lint

5 months agoCUDA: backwards pass for misc. ops, add tests (#11257)
Johannes Gäßler [Thu, 16 Jan 2025 15:43:38 +0000 (16:43 +0100)]
CUDA: backwards pass for misc. ops, add tests (#11257)

* CUDA: backwards pass for misc. ops, add tests

* remove restrict from pointers

5 months agollama : add `llama_model_load_from_splits` (#11255)
Xuan Son Nguyen [Thu, 16 Jan 2025 12:54:08 +0000 (13:54 +0100)]
llama : add `llama_model_load_from_splits` (#11255)

* llama : add `llama_model_load_from_splits`

* update

5 months agoggml: aarch64: implement SVE kernels for q4_K_q8_K vector dot (#11227)
fj-y-saito [Thu, 16 Jan 2025 09:11:49 +0000 (18:11 +0900)]
ggml: aarch64: implement SVE kernels for q4_K_q8_K vector dot (#11227)

* Add SVE support for q4_K_q8_K

* Update ggml/src/ggml-cpu/ggml-cpu-quants.c

change to use K_SCALE_SIZE

Co-authored-by: Georgi Gerganov <redacted>
---------

Co-authored-by: Georgi Gerganov <redacted>
5 months agovulkan: scale caching for k quants + misc fixes (#11081)
Eve [Wed, 15 Jan 2025 19:50:13 +0000 (19:50 +0000)]
vulkan: scale caching for k quants + misc fixes (#11081)

* q6_k scale caching

* 16 bit unpack

* q4_k test (slow)

* revert it

* q3_k

* q2_k

* little stuff

* try precalculating products of a and q2_k scales

* Revert "try precalculating products of a and q2_k scales"

This reverts commit 65110b81f23f66331a50c6e889a7c1ab9470a86b.

* unpack should be u16, add vim swap to gitignore (about time)

* better q4_k scales

* q5_k

* better q6_k with separate paths for all threads and partial threads in use, plus some more optimizations

* q2_k better dequant

* q3_k optimizations

* q3_k use hmask simd from cpu avx version

* make the caches happy

* q3_k separate out calculation

* q2_k separate out

* little stuff

* use calc_superblock everywhere

* q2_k optimize scale calculation

* more barriers

5 months agoci : use -no-cnv in gguf-split tests (#11254)
Georgi Gerganov [Wed, 15 Jan 2025 16:28:35 +0000 (18:28 +0200)]
ci : use -no-cnv in gguf-split tests (#11254)

* ci : use -no-cnv in gguf-split tests

ggml-ci

* ci : use -no-cnv in requantize tests

ggml-ci

* scripts : fix [no ci]

5 months agofix: ggml: fix vulkan-shaders-gen build (#10448) upstream/0.0.4488
Junil Kim [Wed, 15 Jan 2025 13:17:42 +0000 (22:17 +0900)]
fix: ggml: fix vulkan-shaders-gen build (#10448)

* fix: ggml: fix vulkan-shaders-gen build

The vulkan-shaders-gen target was not being built correctly
in case of cross-compilation.
Other outputs need to be built for the cross compile target,
but vulkan-shaders-gen needs to be built for the host.

* refactor: ggml: Improve vulkan-shaders-gen toolchain setup

- Add GGML_SHADERS_GEN_TOOLCHAIN CMake option.
- Auto-detect host toolchain if not set.

* refactor: ggml: Improve vulkan-shaders-gen toolchain setup

Use configure_file to generate host_toolchain.cmake from template

* fix: ggml: Fix compile error

Fix compile error not finding vulkan-shaders-gen

* fix: vulkan-shaders-gen build and path handling

Fix build issues with vulkan-shaders-gen:
- Add target dependency for correct build order
- Use CMAKE_HOST_SYSTEM_NAME for executable suffix
- Fix MSVC output directory in host toolchain
- Normalize path handling for cross-compilation

* fix: improve host compiler detection in vulkan shader build

Improve host compiler detection for vulkan shader generation:
- Add NO_CMAKE_FIND_ROOT_PATH to all compiler searches
- Consolidate compiler detection logic
- Fix Windows-specific MSVC detection
- Ensure correct compiler search in cross-compilation

* refactor: Simplify CMake function for detecting host compiler

Simplified the CMake function to improve the process of detecting the host compiler.

* fix: Remove unnecessary Vulkan library linkage in CMakeLists.txt

Since `vulkan-shader-gen.cpp` only requires the `glslc` executable
and not the Vulkan headers or libraries, CMakeLists.txt needs to
be corrected.
(See: ecc93d0558fc3ecb8a5af69d2ece02fae4710ade)

* refactor: Rename host_toolchain.cmake.in

- Rename host_toolchain.cmake.in to cmake/host-toolchain.cmake.in

* refactor: GGML_VULKAN_SHADERS_GEN_TOOLCHAIN

Rename the macro GGML_SHADERS_GEN_TOOLCHAIN to GGML_VULKAN_SHADERS_GEN_TOOLCHAIN

5 months agoRoPE: fix back, CUDA support for back + noncont. (#11240)
Johannes Gäßler [Wed, 15 Jan 2025 11:51:37 +0000 (12:51 +0100)]
RoPE: fix back, CUDA support for back + noncont. (#11240)

* RoPE: fix back, CUDA support for back + noncont.

* fix comments reg. non-cont. RoPE support [no-ci]

5 months agoexamples : add embd_to_audio to tts-outetts.py [no ci] (#11235)
Daniel Bevenius [Wed, 15 Jan 2025 04:44:38 +0000 (05:44 +0100)]
examples : add embd_to_audio to tts-outetts.py [no ci] (#11235)

This commit contains a suggestion for adding the missing embd_to_audio
function from tts.cpp to tts-outetts.py. This introduces a depencency
numpy which I was not sure if that is acceptable or not (only PyTorch
was mentioned in referened PR).

Also the README has been updated with instructions to run the example
with llama-server and the python script.

Refs: https://github.com/ggerganov/llama.cpp/pull/10784#issuecomment-2548377734

5 months agoSYCL: Add gated linear attention kernel (#11175)
Akarshan Biswas [Wed, 15 Jan 2025 03:20:17 +0000 (08:50 +0530)]
SYCL: Add gated linear attention kernel (#11175)

* SYCL: Add Gated Linear attention kernel

* glahpp: add a space at the end of file

* gla: Put the barrier inside the main logic loop

5 months agoci : add -no-cnv for tests (#11238)
Xuan Son Nguyen [Tue, 14 Jan 2025 14:42:23 +0000 (15:42 +0100)]
ci : add -no-cnv for tests (#11238)

5 months agovocab : add dummy tokens for "no_vocab" type (#11231)
Georgi Gerganov [Tue, 14 Jan 2025 10:54:58 +0000 (12:54 +0200)]
vocab : add dummy tokens for "no_vocab" type (#11231)

* vocab : add dummy tokens for "no_vocab" type

ggml-ci

* vocab : minor [no ci]

5 months agoserver : Improve code snippets direction between RTL text (#11221)
ebraminio [Tue, 14 Jan 2025 10:39:33 +0000 (14:09 +0330)]
server : Improve code snippets direction between RTL text (#11221)

5 months agoRefactor test-chat-template.cpp (#11224)
Olivier Chafik [Tue, 14 Jan 2025 10:16:41 +0000 (10:16 +0000)]
Refactor test-chat-template.cpp (#11224)

* Refactor test-chat-template

* Update test-chat-template.cpp

5 months agosync : ggml
Georgi Gerganov [Tue, 14 Jan 2025 08:39:42 +0000 (10:39 +0200)]
sync : ggml

5 months agoscripts : sync gguf (cont)
Georgi Gerganov [Tue, 14 Jan 2025 07:40:15 +0000 (09:40 +0200)]
scripts : sync gguf (cont)

5 months agoscripts : sync gguf
Georgi Gerganov [Tue, 14 Jan 2025 07:36:58 +0000 (09:36 +0200)]
scripts : sync gguf

5 months agoscripts : sync opencl
Georgi Gerganov [Tue, 14 Jan 2025 07:19:58 +0000 (09:19 +0200)]
scripts : sync opencl

5 months agoserver : (UI) Improve messages bubble shape in RTL (#11220)
ebraminio [Mon, 13 Jan 2025 19:23:31 +0000 (22:53 +0330)]
server : (UI) Improve messages bubble shape in RTL (#11220)

I simply have overlooked message bubble's tail placement for RTL
text as I use the dark mode and that isn't visible there and this
fixes it.

5 months agocli : auto activate conversation mode if chat template is available (#11214)
Xuan Son Nguyen [Mon, 13 Jan 2025 19:18:12 +0000 (20:18 +0100)]
cli : auto activate conversation mode if chat template is available (#11214)

* cli : auto activate conversation mode if chat template is detected

* add warn on bad template

* update readme (writing with the help of chatgpt)

* update readme (2)

* do not activate -cnv for non-instruct models

5 months agocuda : CUDA Graph Compute Function Refactor (precursor for performance improvements...
Andreas Kieslinger [Mon, 13 Jan 2025 15:45:53 +0000 (16:45 +0100)]
cuda : CUDA Graph Compute Function Refactor (precursor for performance improvements) (#11042)

* Refactor: Moves cuda graph executable update step to separate function.

* Refactor: Moves cuda graph update check to separate function.

* Refactor: Moves cuda graph maintenance (update or adjusting copy parameters) to separate function for improved readability.

* Fix: Adds missing reference to maintain_cuda_graph() definition.

* Refactor: Improves structure and abstractions by moving CUDA graph evaluation and capture to its own function.

* Refactor: Moves node graph checks and copy ops into individual function for improved readability.

* Refactor: Removes code permanently excluded from compilation to increase readability.

* Style: Adds missing newline

* Style: Consolidates several neighboring '#ifdef USE_CUDA_GRAPH' into a single one

* Refactor: Makes 'cuda_graph_update_required' a local variable

* remove double lines between functions

---------

Co-authored-by: slaren <redacted>
5 months agocontrib : add naming guidelines (cont) (#11177)
Georgi Gerganov [Mon, 13 Jan 2025 13:59:26 +0000 (15:59 +0200)]
contrib : add naming guidelines (cont) (#11177)

5 months agoserver : (UI) Support for RTL text as models input or output (#11208)
ebraminio [Mon, 13 Jan 2025 13:46:39 +0000 (17:16 +0330)]
server : (UI) Support for RTL text as models input or output (#11208)

5 months agocontrib : add naming guidelines (cont) (#11177)
Georgi Gerganov [Mon, 13 Jan 2025 13:08:44 +0000 (15:08 +0200)]
contrib : add naming guidelines (cont) (#11177)

5 months agocommon : support tag-based --hf-repo like on ollama (#11195)
Xuan Son Nguyen [Mon, 13 Jan 2025 12:56:23 +0000 (13:56 +0100)]
common : support tag-based --hf-repo like on ollama (#11195)

* common : support tag-based hf_repo like on ollama

* fix build

* various fixes

* small fixes

* fix style

* fix windows build?

* move common_get_hf_file to common.cpp

* fix complain with noreturn

5 months agocontrib : add naming guidelines (#11177)
Georgi Gerganov [Mon, 13 Jan 2025 12:46:36 +0000 (14:46 +0200)]
contrib : add naming guidelines (#11177)

* contrib : add naming guidelines

* contrib : expand naming guidelines [no ci]

* contrib : cont [no ci]

* contrib : add `_t` suffix guideline [no ci]

* contrib : cont [no ci]

* minor [no ci]

* contrib : move coding guidelines to correct section [no ci]

* contrib : minor reword coding guidelines [no ci]

* contrib : add TODO for preprocessor directives [no ci]

* contrib : expand [no ci]

* minor [no ci]

* contrib : clarify `_context` suffix usage [no ci]

* contrib : filename guidelines [no ci]

* contrib : fix notes [no ci]

5 months agollama : remove 'd' from bad special token log (#11212)
Daniel Bevenius [Mon, 13 Jan 2025 12:38:20 +0000 (13:38 +0100)]
llama : remove 'd' from bad special token log (#11212)

This commit removes the 'd' from the log message in llama-vocab.cpp
when logging a bad special token.

The motivation for this is that currently the output can look something
like the following:
```console
load: bad special token:
    'tokenizer.ggml.image_token_id' = 128256d, using default id -1
```

5 months agoggml : do not define GGML_USE_CUDA when building with GGML_BACKEND_DL (#11211)
Radoslav Gerganov [Mon, 13 Jan 2025 11:31:41 +0000 (13:31 +0200)]
ggml : do not define GGML_USE_CUDA when building with GGML_BACKEND_DL (#11211)

Build fails when using HIP and GGML_BACKEND_DL:
```
/usr/bin/ld: ../ggml/src/libggml.so: undefined reference to `ggml_backend_cuda_reg'
collect2: error: ld returned 1 exit status
```
This patch fixes this.

5 months agoReset color before we exit (#11205)
Eric Curtin [Sun, 12 Jan 2025 18:23:10 +0000 (18:23 +0000)]
Reset color before we exit (#11205)

We don't want colors to leak post termination of llama-run.

Signed-off-by: Eric Curtin <redacted>
5 months agollama : fix chat template gguf key (#11201)
Xuan Son Nguyen [Sun, 12 Jan 2025 12:45:14 +0000 (13:45 +0100)]
llama : fix chat template gguf key (#11201)

5 months agollama : remove notion of CLS token (#11064)
Georgi Gerganov [Sun, 12 Jan 2025 10:15:53 +0000 (12:15 +0200)]
llama : remove notion of CLS token (#11064)

ggml-ci

5 months agollama : add `llama_vocab`, functions -> methods, naming (#11110)
Georgi Gerganov [Sun, 12 Jan 2025 09:32:42 +0000 (11:32 +0200)]
llama : add `llama_vocab`, functions -> methods, naming (#11110)

* llama : functions -> methods (#11110)

* llama : add struct llama_vocab to the API (#11156)

ggml-ci

* hparams : move vocab params to llama_vocab (#11159)

ggml-ci

* vocab : more pimpl (#11165)

ggml-ci

* vocab : minor tokenization optimizations (#11160)

ggml-ci

Co-authored-by: Diego Devesa <redacted>
* lora : update API names (#11167)

ggml-ci

* llama : update API names to use correct prefix (#11174)

* llama : update API names to use correct prefix

ggml-ci

* cont

ggml-ci

* cont

ggml-ci

* minor [no ci]

* vocab : llama_vocab_add_[be]os -> llama_vocab_get_add_[be]os (#11174)

ggml-ci

* vocab : llama_vocab_n_vocab -> llama_vocab_n_tokens (#11174)

ggml-ci

---------

Co-authored-by: Diego Devesa <redacted>
5 months agogguf-py: fixed local detection of gguf package (#11180)
Vinesh Janarthanan [Sat, 11 Jan 2025 09:42:31 +0000 (03:42 -0600)]
gguf-py: fixed local detection of gguf package (#11180)

* updated path to gguf package for non-installed setups

* added reader.py to readme

* Bumped gguf version to 0.15.0

5 months agoconvert : sort print supported models [no ci] (#11179)
Daniel Bevenius [Sat, 11 Jan 2025 04:50:33 +0000 (05:50 +0100)]
convert : sort print supported models [no ci] (#11179)

This commit sorts the list of supported models when printing them out.

The motivation for this change is to make it easier to find a specific
model in the list of supported models. For example:
```console
$ ./convert_hf_to_gguf.py --print-supported-models
Supported models:
- ArcticForCausalLM
- BaiChuanForCausalLM
- BaichuanForCausalLM
- BertForMaskedLM
- BertModel
- BitnetForCausalLM
- BloomForCausalLM
- BloomModel
- CamembertModel
- ChameleonForCausalLM
- ChameleonForConditionalGeneration
- ChatGLMForConditionalGeneration
- ChatGLMModel
- CodeShellForCausalLM
- Cohere2ForCausalLM
- CohereForCausalLM
- DbrxForCausalLM
- DeciLMForCausalLM
- DeepseekForCausalLM
- DeepseekV2ForCausalLM
- DeepseekV3ForCausalLM
- ExaoneForCausalLM
- FalconForCausalLM
- FalconMambaForCausalLM
- GPT2LMHeadModel
- GPTBigCodeForCausalLM
- GPTNeoXForCausalLM
- GPTRefactForCausalLM
- Gemma2ForCausalLM
- GemmaForCausalLM
- GraniteForCausalLM
- GraniteMoeForCausalLM
- GrokForCausalLM
- InternLM2ForCausalLM
- JAISLMHeadModel
- JinaBertForMaskedLM
- JinaBertModel
- LLaMAForCausalLM
- LlamaForCausalLM
- LlavaStableLMEpochForCausalLM
- MPTForCausalLM
- MT5ForConditionalGeneration
- MambaForCausalLM
- MambaLMHeadModel
- MiniCPM3ForCausalLM
- MiniCPMForCausalLM
- MistralForCausalLM
- MixtralForCausalLM
- NemotronForCausalLM
- NomicBertModel
- OLMoForCausalLM
- Olmo2ForCausalLM
- OlmoForCausalLM
- OlmoeForCausalLM
- OpenELMForCausalLM
- OrionForCausalLM
- Phi3ForCausalLM
- PhiForCausalLM
- PhiMoEForCausalLM
- PlamoForCausalLM
- QWenLMHeadModel
- Qwen2ForCausalLM
- Qwen2MoeForCausalLM
- Qwen2VLForConditionalGeneration
- RWForCausalLM
- RWKV6Qwen2ForCausalLM
- RobertaModel
- Rwkv6ForCausalLM
- StableLMEpochForCausalLM
- StableLmForCausalLM
- Starcoder2ForCausalLM
- T5EncoderModel
- T5ForConditionalGeneration
- T5WithLMHeadModel
- UMT5ForConditionalGeneration
- WavTokenizerDec
- XLMRobertaForSequenceClassification
- XLMRobertaModel
- XverseForCausalLM
```

5 months agoexamples : add README.md to tts example [no ci] (#11155)
Daniel Bevenius [Fri, 10 Jan 2025 12:16:16 +0000 (13:16 +0100)]
examples : add README.md to tts example [no ci] (#11155)

* examples : add README.md to tts example [no ci]

* squash! examples : add README.md to tts example [no ci]

Fix heading to be consistent with other examples, and add a quickstart
section to README.md.

* squash! examples : add README.md to tts example [no ci]

Fix spelling mistake.

5 months agoconvert : add --print-supported-models option (#11172)
Daniel Bevenius [Fri, 10 Jan 2025 10:30:53 +0000 (11:30 +0100)]
convert : add --print-supported-models option (#11172)

* convert : add --print-supported-models option

This commit adds a new option to the convert_hf_to_gguf.py script to
print the supported models.

The motivation for this is that it can be useful to know which models
are supported by the script without having to look at the code.

Example usage:
```console
$ ./convert_hf_to_gguf.py --print-supported-models
Supported models:
- GPTNeoXForCausalLM
- BloomForCausalLM
- BloomModel
- MPTForCausalLM
- OrionForCausalLM
- BaichuanForCausalLM
- BaiChuanForCausalLM
- XverseForCausalLM
- FalconForCausalLM
- RWForCausalLM
- GPTBigCodeForCausalLM
- GPTRefactForCausalLM
- StableLmForCausalLM
- StableLMEpochForCausalLM
- LlavaStableLMEpochForCausalLM
- LLaMAForCausalLM
- LlamaForCausalLM
- MistralForCausalLM
- MixtralForCausalLM
- DeciLMForCausalLM
- BitnetForCausalLM
- GrokForCausalLM
- DbrxForCausalLM
- MiniCPMForCausalLM
- MiniCPM3ForCausalLM
- QWenLMHeadModel
- Qwen2ForCausalLM
- Qwen2VLForConditionalGeneration
- WavTokenizerDec
- Qwen2MoeForCausalLM
- GPT2LMHeadModel
- PhiForCausalLM
- Phi3ForCausalLM
- PhiMoEForCausalLM
- PlamoForCausalLM
- CodeShellForCausalLM
- InternLM2ForCausalLM
- BertModel
- BertForMaskedLM
- CamembertModel
- RobertaModel
- NomicBertModel
- XLMRobertaModel
- XLMRobertaForSequenceClassification
- GemmaForCausalLM
- Gemma2ForCausalLM
- Starcoder2ForCausalLM
- Rwkv6ForCausalLM
- RWKV6Qwen2ForCausalLM
- MambaForCausalLM
- MambaLMHeadModel
- FalconMambaForCausalLM
- CohereForCausalLM
- Cohere2ForCausalLM
- OLMoForCausalLM
- OlmoForCausalLM
- Olmo2ForCausalLM
- OlmoeForCausalLM
- JinaBertModel
- JinaBertForMaskedLM
- OpenELMForCausalLM
- ArcticForCausalLM
- DeepseekForCausalLM
- DeepseekV3ForCausalLM
- DeepseekV2ForCausalLM
- UMT5ForConditionalGeneration
- MT5ForConditionalGeneration
- T5ForConditionalGeneration
- T5WithLMHeadModel
- T5EncoderModel
- JAISLMHeadModel
- ChatGLMModel
- ChatGLMForConditionalGeneration
- NemotronForCausalLM
- ExaoneForCausalLM
- GraniteForCausalLM
- GraniteMoeForCausalLM
- ChameleonForCausalLM
- ChameleonForConditionalGeneration
```

* squash! convert : add --print-supported-models option

Fix flake8 error.

5 months agoVulkan: Fix float16 use on devices without float16 support + fix subgroup_size_contro...
0cc4m [Fri, 10 Jan 2025 05:39:33 +0000 (06:39 +0100)]
Vulkan: Fix float16 use on devices without float16 support + fix subgroup_size_control validation error (#11161)

* Vulkan: Remove float16 use in shaders

* Fix validation error about subgroup_size_control extension

5 months agollama: add support for QRWKV6 model architecture (#11001)
Molly Sophia [Fri, 10 Jan 2025 01:58:08 +0000 (09:58 +0800)]
llama: add support for QRWKV6 model architecture (#11001)

llama: add support for QRWKV6 model architecture (#11001)

* WIP: Add support for RWKV6Qwen2

Signed-off-by: Molly Sophia <redacted>
* RWKV: Some graph simplification

Signed-off-by: Molly Sophia <redacted>
* Add support for RWKV6Qwen2 with cpu and cuda GLA

Signed-off-by: Molly Sophia <redacted>
* RWKV6[QWEN2]: Concat lerp weights together to reduce cpu overhead

Signed-off-by: Molly Sophia <redacted>
* Fix some typos

Signed-off-by: Molly Sophia <redacted>
* code format changes

Signed-off-by: Molly Sophia <redacted>
* Fix wkv test & add gla test

Signed-off-by: Molly Sophia <redacted>
* Fix cuda warning

Signed-off-by: Molly Sophia <redacted>
* Update README.md

Signed-off-by: Molly Sophia <redacted>
* Update ggml/src/ggml-cuda/gla.cu

Co-authored-by: Georgi Gerganov <redacted>
* Fix fused lerp weights loading with RWKV6

Signed-off-by: Molly Sophia <redacted>
* better sanity check skipping for QRWKV6 in llama-quant

thanks @compilade

Signed-off-by: Molly Sophia <redacted>
Co-authored-by: compilade <redacted>
---------

Signed-off-by: Molly Sophia <redacted>
Co-authored-by: Georgi Gerganov <redacted>
Co-authored-by: compilade <redacted>
5 months agoSYCL: Refactor ggml_sycl_compute_forward (#11121)
Akarshan Biswas [Fri, 10 Jan 2025 00:13:03 +0000 (05:43 +0530)]
SYCL: Refactor ggml_sycl_compute_forward (#11121)

* SYCL: refactor ggml_sycl_compute_forward

* SYCL: add back GGML_USED(dst) to ggml_sycl_cpy

* SYCL: add function name to noop debug

* SYCL: Some device info print refactoring and add details of XMX availability

5 months agodoc: add cuda guide for fedora (#11135)
Tei Home [Thu, 9 Jan 2025 11:32:06 +0000 (19:32 +0800)]
doc: add cuda guide for fedora (#11135)

Since NVIDIA does not release CUDA for in-maintenance versions of Fedora, the process of setting up the CUDA toolkit on Fedora has become quite involved. This guide should help mere mortals install CUDA for development in a Fedora 39 toolbox environment, without affecting the host system.

5 months agoserver : add tooltips to settings and themes btn (#11154)
Daniel Bevenius [Thu, 9 Jan 2025 10:28:29 +0000 (11:28 +0100)]
server : add tooltips to settings and themes btn (#11154)

* server : add tooltips to settings and themes btn

This commit adds tooltips to the settings and themes buttons in the
webui. The tooltip will be displayed below the actual buttons when
hovered over.

The motivation for this change is to clarify the purpose of the themes
button.

* squash! server : add tooltips to settings and themes btn

This commit adds a tooltip to the '...' button when a chat has been
started. The tooltip is "Chat options" which think could be a good
description as the dropdown contains options to delete or download the
current chat.

* rm tooltip for 3 dots button

---------

Co-authored-by: Xuan Son Nguyen <redacted>
5 months agomodel: Add support for PhiMoE arch (#11003)
Pierrick Hymbert [Thu, 9 Jan 2025 10:21:41 +0000 (11:21 +0100)]
model: Add support for PhiMoE arch (#11003)

* model: support phimoe

* python linter

* doc: minor

Co-authored-by: ThiloteE <redacted>
* doc: minor

Co-authored-by: ThiloteE <redacted>
* doc: add phimoe as supported model

ggml-ci

---------

Co-authored-by: ThiloteE <redacted>
5 months agomedia : remove old img [no ci]
Georgi Gerganov [Thu, 9 Jan 2025 09:15:15 +0000 (11:15 +0200)]
media : remove old img [no ci]

5 months agollama-chat : add phi 4 template (#11148)
Xuan Son Nguyen [Thu, 9 Jan 2025 09:07:33 +0000 (10:07 +0100)]
llama-chat : add phi 4 template (#11148)

5 months agofix: add missing msg in static_assert (#11143)
hydai [Wed, 8 Jan 2025 20:03:28 +0000 (04:03 +0800)]
fix: add missing msg in static_assert (#11143)

Signed-off-by: hydai <redacted>
5 months agogguf-py : move scripts directory (#11116)
Vinesh Janarthanan [Wed, 8 Jan 2025 18:54:58 +0000 (12:54 -0600)]
gguf-py : move scripts directory (#11116)

* Moved scripts dir and fixed pyproject.toml

* updated readme

* fixed README urls

* bump pypi gguf to v0.14.0

* retrigger ci

* empty commit - trigger ci

5 months agoEnhance user input handling for llama-run (#11138)
Eric Curtin [Wed, 8 Jan 2025 18:47:05 +0000 (18:47 +0000)]
Enhance user input handling for llama-run (#11138)

The main motivation for this change is it was not handing
ctrl-c/ctrl-d correctly. Modify `read_user_input` to handle EOF,
"/bye" command, and empty input cases. Introduce `get_user_input`
function to manage user input loop and handle different return
cases.

Signed-off-by: Eric Curtin <redacted>
5 months agoci : use actions from ggml-org (#11140)
Xuan Son Nguyen [Wed, 8 Jan 2025 15:09:20 +0000 (16:09 +0100)]
ci : use actions from ggml-org (#11140)

5 months agolora : improve compat with `mergekit-extract-lora` (#11131)
Xuan Son Nguyen [Wed, 8 Jan 2025 14:59:53 +0000 (15:59 +0100)]
lora : improve compat with `mergekit-extract-lora` (#11131)

* (wip) support mergekit-extracted lora

* support mergekit-extract-lora

* use lora->get_scale

* correct comment

* correct norm name & condition

* add some hints

5 months agollama : avoid hardcoded QK_K (#11061)
Georgi Gerganov [Wed, 8 Jan 2025 14:19:36 +0000 (16:19 +0200)]
llama : avoid hardcoded QK_K (#11061)

ggml-ci

5 months agosync : ggml
Georgi Gerganov [Wed, 8 Jan 2025 11:40:30 +0000 (13:40 +0200)]
sync : ggml

5 months agoggml : allow loading backend with env variable (ggml/1059)
Radoslav Gerganov [Sun, 5 Jan 2025 07:50:37 +0000 (09:50 +0200)]
ggml : allow loading backend with env variable (ggml/1059)

ref: #1058

5 months agoci : pin dependency to specific version (#11137)
Xuan Son Nguyen [Wed, 8 Jan 2025 11:07:20 +0000 (12:07 +0100)]
ci : pin dependency to specific version (#11137)

* ci : pin dependency to specific version

* will this fix ec?

5 months agoarg : option to exclude arguments from specific examples (#11136)
Georgi Gerganov [Wed, 8 Jan 2025 10:55:36 +0000 (12:55 +0200)]
arg : option to exclude arguments from specific examples (#11136)

* arg : option to exclude arguments from specific examples

ggml-ci

* readme : remove old args [no ci]

5 months agollamafile : ppc64le MMA INT8 implementation (#10912)
amritahs-ibm [Wed, 8 Jan 2025 10:54:19 +0000 (16:24 +0530)]
llamafile : ppc64le MMA INT8 implementation (#10912)

This change upstreams llamafile's cpu matrix
multiplication kernels for ppc64le using MMA
builtins for quantised int8 datatype.

This change results in 10% - 70% improvement
in total speed(ie all tokens/total time), across
various batch sizes.

The patch is tested with Meta-Lllama-3-8B,
Mistral-7B, Llama-2-7B-chat-hf models on a
IBM POWER10 machine.

Signed-off-by: Amrita H S <redacted>
5 months agoci : fix cmake option (#11125)
Georgi Gerganov [Wed, 8 Jan 2025 09:29:34 +0000 (11:29 +0200)]
ci : fix cmake option (#11125)

5 months agoDisable GL_KHR_cooperative_matrix Vulkan extension if not available. (#11117)
Mathieu Baudier [Wed, 8 Jan 2025 08:18:13 +0000 (09:18 +0100)]
Disable GL_KHR_cooperative_matrix Vulkan extension if not available. (#11117)

* Disable GL_KHR_cooperative_matrix Vulkan extension if not available.

* Perform Vulkan extensions checks in a more sensible order

* Remove unnecessary #ifdef directive

5 months agofix: Vulkan shader gen binary path when Cross-compiling (#11096)
ag2s20150909 [Wed, 8 Jan 2025 08:17:29 +0000 (16:17 +0800)]
fix: Vulkan shader gen binary path when Cross-compiling (#11096)

* fix: Vulkan shader gen binary path when cross compiling

5 months agoGGUF: C++ refactor, backend support, misc fixes (#11030)
Johannes Gäßler [Tue, 7 Jan 2025 17:01:58 +0000 (18:01 +0100)]
GGUF: C++ refactor, backend support, misc fixes (#11030)

* GGUF: C++ refactor, backend support, misc fixes

remove ggml_tensor.backend

update CODEOWNERS [no ci]

remove gguf_get_data from API

revise GGUF API data types

5 months agoggml-backend : only offload from host buffers (fix) (#11124)
Diego Devesa [Tue, 7 Jan 2025 15:11:57 +0000 (16:11 +0100)]
ggml-backend : only offload from host buffers (fix) (#11124)

5 months agoggml-backend : only offload from host buffers (#11120)
Diego Devesa [Tue, 7 Jan 2025 11:38:05 +0000 (12:38 +0100)]
ggml-backend : only offload from host buffers (#11120)

5 months agorpc : code cleanup (#11107)
Radoslav Gerganov [Tue, 7 Jan 2025 06:37:02 +0000 (08:37 +0200)]
rpc : code cleanup (#11107)

Remove duplicated macros, use GGML_LOG_ERROR for errors

5 months agoSYCL: Use get_multi_ptr instead of deprecated get_pointer in wkv6 (#11087)
Akarshan Biswas [Tue, 7 Jan 2025 06:26:07 +0000 (11:56 +0530)]
SYCL: Use get_multi_ptr instead of deprecated get_pointer in wkv6 (#11087)

* SYCL: Use get_multi_ptr instead of deprecated get_pointer in wkv6

* Revert "SYCL: Use get_multi_ptr instead of deprecated get_pointer in wkv6"

This reverts commit f62dc45f318e48d375e7734b34cbddee81deed52.

* Reland: Use get_multi_ptr instead of deprecated get_pointer in wkv6

5 months agollama-run : fix context size (#11094)
Eric Curtin [Mon, 6 Jan 2025 22:45:28 +0000 (22:45 +0000)]
llama-run : fix context size (#11094)

Set `n_ctx` equal to `n_batch` in `Opt` class. Now context size is
a more reasonable 2048.

Signed-off-by: Eric Curtin <redacted>
5 months agollama : remove unused headers (#11109)
Georgi Gerganov [Mon, 6 Jan 2025 15:52:35 +0000 (17:52 +0200)]
llama : remove unused headers (#11109)

ggml-ci

5 months agogithub : add cmd line field to bug report (#11090)
Xuan Son Nguyen [Mon, 6 Jan 2025 15:34:49 +0000 (16:34 +0100)]
github : add cmd line field to bug report (#11090)

* github : cmd line to bug report

* codeowners : (@ngxson) only watch dockerfile

* Apply suggestions from code review [no ci]

Co-authored-by: Johannes Gäßler <redacted>
* rm cmd in log output [no ci]

* rm 2 [no ci]

* no need backticks [no ci]

---------

Co-authored-by: Johannes Gäßler <redacted>
5 months agoserver : fix extra BOS in infill endpoint (#11106)
Georgi Gerganov [Mon, 6 Jan 2025 13:36:08 +0000 (15:36 +0200)]
server : fix extra BOS in infill endpoint (#11106)

* server : fix extra BOS in infill endpoing

ggml-ci

* server : update infill tests

5 months agollama : remove check flash_attn with lora (#11104)
Xuan Son Nguyen [Mon, 6 Jan 2025 12:41:12 +0000 (13:41 +0100)]
llama : remove check flash_attn with lora (#11104)

5 months agollama : prevent system info string accumulation across calls (#11101)
Asghar Ghorbani [Mon, 6 Jan 2025 11:21:46 +0000 (12:21 +0100)]
llama : prevent system info string accumulation across calls (#11101)

5 months agollama : rename missed batch params/vars to ubatch (#10059)
Daniel Bevenius [Mon, 6 Jan 2025 09:28:17 +0000 (10:28 +0100)]
llama : rename missed batch params/vars to ubatch (#10059)

This commit renames the `batch` parameter to `ubatch` in the
`llama_kv_cache_find_slot`, `llm_build_inp_embd`, and
`llm_build_mamba` functions.

The motivation for this is that this should have been done as part of
Commit 19d900a7565b8f6b0a708836a57d26966cb9efe2 ("llama : rename batch
to ubatch (#9950)") but for some reason I missed these functions in
that commit and only noticed them now (sorry).

5 months agollama : update llama_model API names (#11063)
Georgi Gerganov [Mon, 6 Jan 2025 08:55:18 +0000 (10:55 +0200)]
llama : update llama_model API names (#11063)

* llama : deprecate llama_free_model, add llama_model_free

ggml-ci

* llama : change `llama_load_model_from_file` -> `llama_model_load_from_file`

ggml-ci

5 months agotokenize : escape the prompt (#11058)
Georgi Gerganov [Mon, 6 Jan 2025 08:54:25 +0000 (10:54 +0200)]
tokenize : escape the prompt (#11058)

* tokenize : escape the prompt

* tokenize : update help

5 months agommap : fix fileno macro clash (#11076)
Georgi Gerganov [Mon, 6 Jan 2025 08:52:38 +0000 (10:52 +0200)]
mmap : fix fileno macro clash (#11076)

* mmap : fix fileno macro clash

ggml-ci

* cont

ggml-ci

5 months agollama : use LLAMA_TOKEN_NULL (#11062)
Georgi Gerganov [Mon, 6 Jan 2025 08:52:15 +0000 (10:52 +0200)]
llama : use LLAMA_TOKEN_NULL (#11062)

ggml-ci

5 months agollama : use _impl suffix instead of _internal (#11060)
Georgi Gerganov [Mon, 6 Jan 2025 08:52:01 +0000 (10:52 +0200)]
llama : use _impl suffix instead of _internal (#11060)

ggml-ci

5 months agoCUDA: add BF16 support (#11093)
Johannes Gäßler [Mon, 6 Jan 2025 01:33:52 +0000 (02:33 +0100)]
CUDA: add BF16 support (#11093)

* CUDA: add BF16 support

5 months agoVulkan: Add device-specific blacklist for coopmat for the AMD proprietary driver...
0cc4m [Sat, 4 Jan 2025 20:09:59 +0000 (21:09 +0100)]
Vulkan: Add device-specific blacklist for coopmat for the AMD proprietary driver (#11074)

* Vulkan: Add device-specific blacklist for coopmat for the AMD proprietary driver

* Add (TM) to AMD name check

5 months agollama : Add support for DeepSeek V3 (#11049)
fairydreaming [Sat, 4 Jan 2025 20:06:11 +0000 (21:06 +0100)]
llama : Add support for DeepSeek V3 (#11049)

* convert : extend DEEPSEEK2 model architecture to support DeepseekV3ForCausalLM by adding EXPERT_WEIGHTS_NORM and EXPERT_GATING_FUNC model parameters and FFN_EXP_PROBS_B tensor type

* vocab : add DeepSeek V3 pre-tokenizer regexes

* unicode : handle ACCENT_MARK and SYMBOL categories in regex

* llama : add DeepSeek V3 chat template, handle new model parameters and tensor types

---------

Co-authored-by: Stanisław Szymczyk <redacted>
5 months ago[GGML][RPC] Support for models with non-512-aligned tensors over RPC. (#11047)
matt23654 [Sat, 4 Jan 2025 16:10:30 +0000 (16:10 +0000)]
[GGML][RPC] Support for models with non-512-aligned tensors over RPC. (#11047)

* Added init tensor calling code

* Added get_alloc_size forwarding

* Cleaned up and improved type/error handling.

* fix: remove trailing whitespaces.

* Cleanup and use GGML error logging functions.

* Handle potentially dangerous edge cases.

* Apply suggestions from code review

Co-authored-by: Diego Devesa <redacted>
---------

Co-authored-by: Diego Devesa <redacted>
5 months agollama : add support for the cohere2 model architecture (#10900)
DAN™ [Sat, 4 Jan 2025 14:33:31 +0000 (09:33 -0500)]
llama : add support for the cohere2 model architecture (#10900)

5 months agosync : ggml
Georgi Gerganov [Sat, 4 Jan 2025 08:54:01 +0000 (10:54 +0200)]
sync : ggml

5 months agoggml : do not install metal source when embed library (ggml/1054)
Georgi Gerganov [Sat, 4 Jan 2025 08:53:54 +0000 (10:53 +0200)]
ggml : do not install metal source when embed library (ggml/1054)

5 months agoggml : improve inputs log sched_print_assignments (ggml/1053)
Daniel Bevenius [Thu, 19 Dec 2024 02:50:12 +0000 (03:50 +0100)]
ggml : improve inputs log sched_print_assignments (ggml/1053)

This commit attempts to improve the log message for the inputs of the
splits in the sched_print_assignments function.

The motivation for this change is that currently even if there are no
inputs a colon is displayed at the end of the line, which can make it a
little confusing when reading the output as it could be interpreted as
the line below are inputs when they are in fact nodes. With this change
the colon will only be printed if there actually are inputs.

5 months agofix: Vulkan shader gen binary path (#11037)
Gilad S. [Sat, 4 Jan 2025 08:17:31 +0000 (10:17 +0200)]
fix: Vulkan shader gen binary path (#11037)