]> git.djapps.eu Git - pkg/ggml/sources/llama.cpp/log
pkg/ggml/sources/llama.cpp
2 years agollama : restore intended k-quants mixes for MoE models (#4872)
Kawrakow [Thu, 11 Jan 2024 19:43:15 +0000 (20:43 +0100)]
llama : restore intended k-quants mixes for MoE models (#4872)

* Restore intended k-quants quantization mixes for MoE models

* Update Q2_K_S values in the quantize tool

Still using LLaMA-v1 PPL values in the quant description
today does not make much sense. But let's leave this update
for another PR.

---------

Co-authored-by: Iwan Kawrakow <redacted>
Co-authored-by: Georgi Gerganov <redacted>
2 years agoggml : SOTA 2-bit quants (add IQ2_XS) (#4856)
Kawrakow [Thu, 11 Jan 2024 19:39:39 +0000 (20:39 +0100)]
ggml : SOTA 2-bit quants (add IQ2_XS) (#4856)

* iq2_xs: basics

* iq2_xs: this should have been in the basics

* iq2_xs: CUDA and scalar CPU works

* iq2_xs: WIP Metal

* iq2_xs: Metal now works

* iq2_xs: working, but dog slow, ARM_NEON dot product

* iq2_xs: better ARM_NEON dot product

We are now at 19.5 t/s for TG-128 and 61 t/s for PP-512 when
running on the CPU.

* iq2_xs: AVX2 dot product - 19.5 t/s

* iq2_xs: faster AVX2 dit product

21.4 t/s for TG-128, 59.2 t/s for PP-512.
The latter is 2x compared to the previous version.

* iq2_xs: had forgotten to delete iq2-data.h

* Add llama enum for IQ2_XS

---------

Co-authored-by: Iwan Kawrakow <redacted>
2 years agoswift : pin ggml commit + remove ggml.h from spm-headers (#4878)
Georgi Gerganov [Thu, 11 Jan 2024 19:31:31 +0000 (21:31 +0200)]
swift : pin ggml commit + remove ggml.h from spm-headers (#4878)

ggml-ci

2 years agoserver : implement credentialed CORS (#4514)
Laura [Thu, 11 Jan 2024 18:02:48 +0000 (19:02 +0100)]
server : implement credentialed CORS (#4514)

* Implement credentialed CORS according to MDN

* Fix syntax error

* Move validate_api_key up so it is defined before its first usage

2 years agoserver : support for multiple api keys (#4864)
Michael Coppola [Thu, 11 Jan 2024 17:51:17 +0000 (12:51 -0500)]
server : support for multiple api keys (#4864)

* server: added support for multiple api keys, added loading api keys from file

* minor: fix whitespace

* added file error handling to --api-key-file, changed code to better
reflect current style

* server: update README.md for --api-key-file

---------

Co-authored-by: Michael Coppola <redacted>
2 years agoserver : add `LOG_INFO` when model is successfully loaded (#4881)
Behnam M [Thu, 11 Jan 2024 17:41:39 +0000 (12:41 -0500)]
server : add `LOG_INFO` when model is successfully loaded (#4881)

* added /health endpoint to the server

* added comments on the additional /health endpoint

* Better handling of server state

When the model is being loaded, the server state is `LOADING_MODEL`. If model-loading fails, the server state becomes `ERROR`, otherwise it becomes `READY`. The `/health` endpoint provides more granular messages now according to the server_state value.

* initialized server_state

* fixed a typo

* starting http server before initializing the model

* Update server.cpp

* Update server.cpp

* fixes

* fixes

* fixes

* made ServerState atomic and turned two-line spaces into one-line

* updated `server` readme to document the `/health` endpoint too

* used LOG_INFO after successful model loading

2 years agoci: nix-flake-update: new token with pr permissions (#4879)
Someone [Thu, 11 Jan 2024 17:22:34 +0000 (17:22 +0000)]
ci: nix-flake-update: new token with pr permissions (#4879)

* ci: nix-flake-update: new token with pr permissions

---------

Co-authored-by: Georgi Gerganov <redacted>
2 years agomain : print total token count and tokens consumed so far (#4874)
pudepiedj [Thu, 11 Jan 2024 16:14:52 +0000 (16:14 +0000)]
main : print total token count and tokens consumed so far (#4874)

* Token count changes

* Add show token count

* Updating before PR

* Two requested changes

* Move param def posn

2 years agoserver : fix typo in model name (#4876)
Isaac McFadyen [Thu, 11 Jan 2024 14:33:26 +0000 (09:33 -0500)]
server : fix typo in model name (#4876)

2 years agometal : put encoder debug group behind a define (#4873)
Paul Tsochantaris [Thu, 11 Jan 2024 14:31:52 +0000 (14:31 +0000)]
metal : put encoder debug group behind a define (#4873)

2 years agosync : ggml
Georgi Gerganov [Thu, 11 Jan 2024 07:39:08 +0000 (09:39 +0200)]
sync : ggml

2 years agometal : fix deprecation warning (ggml/690)
Georgi Gerganov [Thu, 11 Jan 2024 07:34:59 +0000 (09:34 +0200)]
metal : fix deprecation warning (ggml/690)

2 years agoggml : remove ggml_cpy_inplace and ggml_cont_inplace (ggml/693)
Timothy Cronin [Thu, 11 Jan 2024 07:27:48 +0000 (02:27 -0500)]
ggml : remove ggml_cpy_inplace and ggml_cont_inplace (ggml/693)

2 years agometal : wrap each operation in debug group (ggml/690)
Jack Mousseau [Wed, 10 Jan 2024 14:19:19 +0000 (06:19 -0800)]
metal : wrap each operation in debug group (ggml/690)

2 years agoggml : change GGML_MAX_NAME at compile time (ggml/682)
leejet [Wed, 10 Jan 2024 13:13:42 +0000 (21:13 +0800)]
ggml : change GGML_MAX_NAME at compile time (ggml/682)

* change GGML_MAX_NAME to 128

* allow controlling the value of GGML_MAX_NAME through external macro definitions

2 years agoFix execlp call (ggml/689)
Halalaluyafail3 [Tue, 9 Jan 2024 16:16:37 +0000 (11:16 -0500)]
Fix execlp call (ggml/689)

NULL can be an integer constant expression with the value zero, in this case the behavior would be undefined because of an incorrect type being passed to the variable arguments.

2 years agofix : cuda order of synchronization when setting a buffer (ggml/679)
Erik Scholz [Fri, 5 Jan 2024 15:00:00 +0000 (16:00 +0100)]
fix : cuda order of synchronization when setting a buffer (ggml/679)

* fix : cuda order of synchronization when setting a buffer

* also sync before memcpy

---------

Co-authored-by: slaren <redacted>
2 years agoserver : update readme to document the new `/health` endpoint (#4866)
Behnam M [Thu, 11 Jan 2024 07:12:05 +0000 (02:12 -0500)]
server : update readme to document the new `/health` endpoint (#4866)

* added /health endpoint to the server

* added comments on the additional /health endpoint

* Better handling of server state

When the model is being loaded, the server state is `LOADING_MODEL`. If model-loading fails, the server state becomes `ERROR`, otherwise it becomes `READY`. The `/health` endpoint provides more granular messages now according to the server_state value.

* initialized server_state

* fixed a typo

* starting http server before initializing the model

* Update server.cpp

* Update server.cpp

* fixes

* fixes

* fixes

* made ServerState atomic and turned two-line spaces into one-line

* updated `server` readme to document the `/health` endpoint too

2 years agoserver : fix build + rename enums (#4870)
Georgi Gerganov [Thu, 11 Jan 2024 07:10:34 +0000 (09:10 +0200)]
server : fix build + rename enums (#4870)

2 years agoserver : add a `/health` endpoint (#4860)
Behnam M [Wed, 10 Jan 2024 19:56:05 +0000 (14:56 -0500)]
server : add a `/health` endpoint (#4860)

* added /health endpoint to the server

* added comments on the additional /health endpoint

* Better handling of server state

When the model is being loaded, the server state is `LOADING_MODEL`. If model-loading fails, the server state becomes `ERROR`, otherwise it becomes `READY`. The `/health` endpoint provides more granular messages now according to the server_state value.

* initialized server_state

* fixed a typo

* starting http server before initializing the model

* Update server.cpp

* Update server.cpp

* fixes

* fixes

* fixes

* made ServerState atomic and turned two-line spaces into one-line

2 years agollama : add additional suffixes for model params (#4834)
Brian [Wed, 10 Jan 2024 14:09:53 +0000 (01:09 +1100)]
llama : add additional suffixes for model params (#4834)

* llm_load_print_meta: Add additional suffixs for model params

* Update llama.cpp model param log

remove unneeded comments and convert from > to >=

2 years agollama : recognize 1B phi models (#4847)
Austin [Wed, 10 Jan 2024 13:39:09 +0000 (08:39 -0500)]
llama : recognize 1B phi models (#4847)

This update categorizes models with 24 layers as MODEL_1B, ensuring compatibility with different Phi model variants without impacting existing Phi-2 model functionality.

2 years agoclip : support more quantization types (#4846)
John [Wed, 10 Jan 2024 13:37:09 +0000 (14:37 +0100)]
clip : support more quantization types (#4846)

Uses ggml functions instead of hardcoded names and adds support to quantize into the modern Q-K variants.
This is just the bare minimum to get k-types working - a more refined choice of types would be needed to get best quality on low quantizations.

I ran a few tests, it doesn't break anything I could notice and a Q6_K ViT works almost as well as Q8_0 but 3 times the inference speed.

2 years agoPython script to compare commits with llama-bench (#4844)
Johannes Gäßler [Wed, 10 Jan 2024 00:04:33 +0000 (01:04 +0100)]
Python script to compare commits with llama-bench (#4844)

2 years agoconvert.py : fix vanilla LLaMA model conversion (#4818)
Austin [Tue, 9 Jan 2024 18:46:46 +0000 (13:46 -0500)]
convert.py : fix vanilla LLaMA model conversion (#4818)

* Update Imports and Add Notes for Future Reference

- Updated import statements in `convert.py`.
- Added import for `AutoTokenizer` from `transformers` module.
- Added conditional import for `gguf` from the local directory.
- Added comments and notes for future reference.

Additional Notes:

- Noted removal of a redundant `TypeAlias` import.
- Noted the removal of a `gguf` debug statement.
- Commented on the presence of `ARCH` and `NDArray` definitions.
- Commented on cleaning up and refactoring data type definitions.

* Refine Model Hyperparameters and Params Class

- Updated type annotations to use `Optional` for clarity.
- Improved method names and attribute consistency.
- Removed unnecessary variables for better code readability.

Additional Notes:

- Highlighted the use of `Optional` for clearer intent.
- Ensured backward and forward compatibility.

* Restore BpeVocab and SentencePieceVocab classes

- Restored the BpeVocab class for handling BPE tokenization.
- Restored the SentencePieceVocab class for SentencePiece tokenization.

These classes are essential for maintaining the original behavior of the codebase.

* refactor: Standardize vocabulary handling with HfVocab

- Replaced VocabLoader with HfVocab, aligning vocabulary handling across classes.
- Updated initialization of HfVocab with local_files_only=True for AutoTokenizer.
- Introduced optional parameter fname_added_tokens for flexible added token management.
- Streamlined added token handling for clarity and conciseness.
- Maintained special tokens and IDs, enhancing token management.
- Simplified token processing methods for improved readability.
- Added a placeholder for score computation with a default value of -1000.0.
- Optimized newline token check for efficiency.
- Updated __repr__ function for clarity in representation.
- Adjusted type alias Vocab to include BpeVocab, SentencePieceVocab, and HfVocab.
- Removed redundant code related to special token handling, reverse vocabulary mapping, and vocabulary file detection.

This refactoring promotes a standardized and modular approach to vocabulary management, facilitating future integration with a VocabFactory and improving code maintainability and scalability.

* refactor: Enhance readability, functionality, and code quality

- Improved code formatting and readability for better maintainability.
- Refactored LazyUnpickler's CLASSES dictionary for clarity.
- Added print statements and warnings in check_vocab_size for user feedback.
- Removed find_vocab_file_path, as it's superseded by VocabFactory.
- Preparatory changes for upcoming classes: OutputFile and VocabFactory.
- Overall focus on code quality, error handling, and consistency.

These changes reflect a continuous effort to refine the codebase, ensuring it meets best practices and prepares for future enhancements, such as the VocabFactory.

* refactor: Update OutputFile class for enhanced model vocabulary management

- Restructured the constructor for improved readability.
- Updated `add_meta_arch` method for flexible model name determination.
- Introduced `handle_tokenizer_model` for mapping vocab types to supported tokenizer models.
- Streamlined vocabulary extraction with `extract_vocabulary_from_model`.
- Simplified vocabulary metadata addition using `add_meta_vocab`.
- Refactored `add_tensor_info` for clarity and consistency.
- Improved error handling for better user feedback.

These changes signify the development of a versatile and comprehensive `OutputFile` class, enabling efficient management of model conversion output, metadata, vocabulary, and tensor information.

* feat: Introduce VocabFactory for flexible vocabulary management in model conversion

- The VocabFactory class is added to facilitate modular vocabulary handling.
- The constructor initializes a directory path and detects vocabulary-related files.
- The _select_file method provides file paths based on vocabulary type (e.g., BPE, SentencePiece).
- _create_special_vocab generates special vocabularies, accommodating different types.
- The load_vocab method loads vocabularies, handling BPE, SentencePiece, and Hugging Face Fast Tokenizer.
- Error handling and logging enhance debugging and user feedback.
- The modular and flexible design simplifies vocabulary management and supports future extensions.

The VocabFactory class enhances code modularity and maintainability, allowing versatile vocabulary handling in the model conversion process.

* refactor: Improve code organization, argument parsing, and user interface

- Renamed 'default_outfile' to 'default_output_file' for clarity.
- Refactored argument parser setup into 'get_argument_parser' function.
- Introduced descriptive comments for each argument in the parser.
- Added '--vocab-type' argument with choices ["spm", "bpe", "hfft"] for vocabulary processing.
- Improved flag naming consistency: '--outfile' to '--out-file' and '--bigendian' to '--big-endian'.
- Enhanced error handling to prevent overwriting input data in 'default_output_file'.
- Made 'argv' in 'main' an optional parameter for flexibility.
- Introduced dynamic import for 'awq.apply_awq' based on 'args.awq_path' for conditional dependency.

These changes enhance code clarity, organization, and the user interface of the script, aligning it with Python best practices and improving maintainability.

* refactor: Further refine functionality, improve user interaction, and streamline vocabulary handling

- Renamed command-line arguments for clarity and consistency.
- Improved path resolution and import adjustments for robustness.
- Thoughtfully handled 'awq-path' and conditional logic for the weighted model.
- Enhanced model and vocabulary loading with the 'VocabFactory' class for structured and adaptable loading.
- Strengthened error handling and user feedback for a more user-friendly experience.
- Structured output file handling with clear conditions and defaults.
- Streamlined and organized the 'main' function for better logic flow.
- Passed 'sys.argv[1:]' to 'main' for adaptability and testability.

These changes solidify the script's functionality, making it more robust, user-friendly, and adaptable. The use of the 'VocabFactory' class is a notable enhancement in efficient vocabulary handling, reflecting a thoughtful and iterative approach to script development.

* chore: Apply ruff formatting to convert.py

Signed-off-by: teleprint-me <redacted>
* Revert to commit 0614c33

* chore: Apply flake8 formatting rules

Signed-off-by: teleprint-me <redacted>
* refactor: Revise `check_vocab_size` for Enhanced Clarity and Correctness

- Resolved an unreachable branch issue by reorganizing the conditional structure.
- Moved the special case check for `params.n_vocab == -1` to the top for immediate assertion.
- Flattened the conditional logic for improved clarity and predictability of the function's behavior.

These changes enhance the readability and functional correctness of the `check_vocab_size` function without altering its intended functionality.

* py : fix outfile and outtype

* py : suggest hint for missing vocab size

---------

Signed-off-by: teleprint-me <redacted>
Co-authored-by: Georgi Gerganov <redacted>
2 years agollava-cli : don't crash if --image flag is invalid (#4835)
Justine Tunney [Tue, 9 Jan 2024 17:59:14 +0000 (09:59 -0800)]
llava-cli : don't crash if --image flag is invalid (#4835)

This change fixes an issue where supplying `--image missing-file` would
result in a segfault due to a null pointer being dereferenced. This can
result in distracting info being printed if robust crash analysis tools
are being used.

2 years agometal : improve dequantize precision to match CPU (#4836)
Georgi Gerganov [Tue, 9 Jan 2024 17:37:08 +0000 (19:37 +0200)]
metal : improve dequantize precision to match CPU (#4836)

ggml-ci

2 years agoscripts : improve get-pg.sh (#4838)
Georgi Gerganov [Tue, 9 Jan 2024 17:20:45 +0000 (19:20 +0200)]
scripts : improve get-pg.sh (#4838)

2 years agoreadme : add 3rd party collama reference to UI list (#4840)
iohub [Tue, 9 Jan 2024 16:45:54 +0000 (00:45 +0800)]
readme : add 3rd party collama reference to UI list (#4840)

Add a VSCode extension for llama.cpp reference to UI list

2 years agoscripts : script to get Paul Graham essays in txt format (#4838)
Georgi Gerganov [Tue, 9 Jan 2024 14:23:05 +0000 (16:23 +0200)]
scripts : script to get Paul Graham essays in txt format (#4838)

2 years agoserver : update readme about token probs (#4777)
Behnam M [Tue, 9 Jan 2024 10:02:05 +0000 (05:02 -0500)]
server : update readme about token probs (#4777)

* updated server readme to reflect the gg/server-token-probs-4088 commit

added explanation for the API's completion result which now includes `completion_probabilities`. Also added a JSON schema that shows the type/structure of `completion_probabilities`.

* simplified the `completion_probabilities` JSON schema

It's now easier to understand what the structure of `completion_probabilities` looks like.

* minor : fix trailing whitespace

---------

Co-authored-by: Georgi Gerganov <redacted>
2 years agoserver : add api-key flag to documentation (#4832)
Zsapi [Tue, 9 Jan 2024 09:12:43 +0000 (10:12 +0100)]
server : add api-key flag to documentation (#4832)

Document the api-key flag added to server in https://github.com/ggerganov/llama.cpp/pull/4441

2 years agoggml : fix vld1q_s8_x4 32-bit compat (#4828)
Georgi Gerganov [Tue, 9 Jan 2024 08:42:06 +0000 (10:42 +0200)]
ggml : fix vld1q_s8_x4 32-bit compat (#4828)

* ggml : fix vld1q_s8_x4 32-bit compat

ggml-ci

* ggml : fix 32-bit ARM compat (cont)

ggml-ci

2 years agoCUDA: faster softmax via shared memory + fp16 math (#4742)
Johannes Gäßler [Tue, 9 Jan 2024 07:58:55 +0000 (08:58 +0100)]
CUDA: faster softmax via shared memory + fp16 math (#4742)

2 years agocommon : fix the short form of `--grp-attn-w`, not `-gat` (#4825)
howlger [Mon, 8 Jan 2024 19:05:53 +0000 (20:05 +0100)]
common : fix the short form of `--grp-attn-w`, not `-gat` (#4825)

See https://github.com/ggerganov/llama.cpp/blob/master/common/common.cpp#L230C53-L230C57

2 years agoreadme : add link to SOTA models
Georgi Gerganov [Mon, 8 Jan 2024 18:25:17 +0000 (20:25 +0200)]
readme : add link to SOTA models

2 years agoSOTA 2-bit quants (#4773)
Kawrakow [Mon, 8 Jan 2024 15:02:32 +0000 (16:02 +0100)]
SOTA 2-bit quants (#4773)

* iq2_xxs: basics

* iq2_xxs: scalar and AVX2 dot products

Needed to change Q8_K to have quants in the -127...127 range,
else the IQ2_XXS AVX implementation becomes very awkward.
The alternative would have been to use Q8_0 instead. Perhaps
I'll change later, for now this is what we have.

* iq2_xxs: ARM_NEON dot product

Somehow strangely slow (112 ms/token).

* iq2_xxs: WIP Metal

Dequantize works, something is still wrong with the
dot product.

* iq2_xxs: Metal dot product now works

We have
PP-512 = 475 t/s
TG-128 = 47.3 t/s

Not the greatest performance, but not complete garbage either.

* iq2_xxs: slighty faster dot product

TG-128 is now 48.4 t/s

* iq2_xxs: slighty faster dot product

TG-128 is now 50.9 t/s

* iq2_xxs: even faster Metal dot product

TG-128 is now 54.1 t/s.

Strangely enough, putting the signs lookup table
into shared memory has a bigger impact than the
grid values being in shared memory.

* iq2_xxs: dequantize CUDA kernel - fix conflict with master

* iq2_xxs: quantized CUDA dot product (MMVQ)

We get TG-128 = 153.1 t/s

* iq2_xxs: slightly faster CUDA dot product

TG-128 is now at 155.1 t/s.

* iq2_xxs: add to llama ftype enum

* iq2_xxs: fix MoE on Metal

* Fix missing MMQ ops when on hipBLAS

I had put the ggml_supports_mmq call at the wrong place.

* Fix bug in qequantize_row_iq2_xxs

The 0.25f factor was missing.
Great detective work by @ggerganov!

* Fixing tests

* PR suggestion

---------

Co-authored-by: Iwan Kawrakow <redacted>
2 years agoswift : exclude ggml-metal.metal from the package (#4822)
Georgi Gerganov [Mon, 8 Jan 2024 14:40:51 +0000 (16:40 +0200)]
swift : exclude ggml-metal.metal from the package (#4822)

2 years agollama.swiftui : update readme
Georgi Gerganov [Mon, 8 Jan 2024 13:57:36 +0000 (15:57 +0200)]
llama.swiftui : update readme

2 years agomain : add self-extend support (#4815)
Georgi Gerganov [Mon, 8 Jan 2024 09:18:32 +0000 (11:18 +0200)]
main : add self-extend support (#4815)

* examples : add passkey test

* passkey : better prints

* passkey : select pass key pos from CLI

* passkey : simplify n_past logic

* llama : "self-extend"-like context extension

* passkey : add comment

* main : add Self-Extend support

* llama : add comment about llama_kv_cache_seq_div

2 years agoexamples : add passkey test (#3856)
Georgi Gerganov [Mon, 8 Jan 2024 09:14:04 +0000 (11:14 +0200)]
examples : add passkey test (#3856)

* examples : add passkey test

* passkey : better prints

* passkey : select pass key pos from CLI

* passkey : simplify n_past logic

* make : add passkey target

* passkey : add "self-extend"-like context extension (#4810)

* llama : "self-extend"-like context extension

* passkey : add comment

* passkey : add readme

2 years agoreadme : add lgrammel/modelfusion JS/TS client for llama.cpp (#4814)
Lars Grammel [Sun, 7 Jan 2024 20:24:11 +0000 (21:24 +0100)]
readme : add lgrammel/modelfusion JS/TS client for llama.cpp (#4814)

2 years agollama-bench : add no-kv-offload parameter (#4812)
slaren [Sun, 7 Jan 2024 16:59:01 +0000 (17:59 +0100)]
llama-bench : add no-kv-offload parameter (#4812)

2 years agoCUDA: fixed redundant value dequantization (#4809)
Johannes Gäßler [Sun, 7 Jan 2024 16:24:08 +0000 (17:24 +0100)]
CUDA: fixed redundant value dequantization (#4809)

2 years agollama : remove unused vars (#4796)
Georgi Gerganov [Sun, 7 Jan 2024 12:29:36 +0000 (14:29 +0200)]
llama : remove unused vars (#4796)

2 years agollama : remove redundant GQA check (#4796)
Georgi Gerganov [Sun, 7 Jan 2024 09:21:53 +0000 (11:21 +0200)]
llama : remove redundant GQA check (#4796)

2 years agollama.swiftui : use llama.cpp as SPM package (#4804)
Alex Azarov [Sun, 7 Jan 2024 08:20:50 +0000 (09:20 +0100)]
llama.swiftui : use llama.cpp as SPM package (#4804)

2 years agollama : print tensor meta for debugging
Georgi Gerganov [Sun, 7 Jan 2024 07:50:31 +0000 (09:50 +0200)]
llama : print tensor meta for debugging

2 years agollama.swiftui : add visionOS target (#4805)
Alex Azarov [Sun, 7 Jan 2024 07:46:55 +0000 (08:46 +0100)]
llama.swiftui : add visionOS target (#4805)

2 years agoggml : use __builtin_amdgcn_sudot4 in __dp4a for gfx11 (#4787)
Konstantin Zhuravlyov [Sun, 7 Jan 2024 06:52:42 +0000 (01:52 -0500)]
ggml : use __builtin_amdgcn_sudot4 in __dp4a for gfx11 (#4787)

2 years agoserver : fix n_predict check (#4798)
Georgi Gerganov [Sun, 7 Jan 2024 06:45:26 +0000 (08:45 +0200)]
server : fix n_predict check (#4798)

2 years agollama.swiftui : use correct pointer for llama_token_eos (#4797)
Daniel Illescas Romero [Sat, 6 Jan 2024 15:12:59 +0000 (16:12 +0100)]
llama.swiftui : use correct pointer for llama_token_eos (#4797)

2 years agoexamples : improve base-translate.sh script (#4783)
Georgi Gerganov [Sat, 6 Jan 2024 09:40:24 +0000 (11:40 +0200)]
examples : improve base-translate.sh script (#4783)

2 years agocmake : check for openblas64 (#4134)
a-n-n-a-l-e-e [Fri, 5 Jan 2024 16:04:40 +0000 (08:04 -0800)]
cmake : check for openblas64 (#4134)

openblas v0.3.22 64-bit pkg-config file is named openblas64.pc
https://github.com/OpenMathLib/OpenBLAS/issues/3790

2 years agoflake.nix : fix typo (#4700)
Ikko Eltociear Ashimine [Fri, 5 Jan 2024 16:02:44 +0000 (01:02 +0900)]
flake.nix : fix typo (#4700)

betwen -> between

2 years agometal : switch back to default.metallib (ggml/681)
Georgi Gerganov [Fri, 5 Jan 2024 14:30:52 +0000 (16:30 +0200)]
metal : switch back to default.metallib (ggml/681)

ggml-ci

2 years agoggml : fix q2_k bpw in comments (ggml/680)
Georgi Gerganov [Fri, 5 Jan 2024 13:36:04 +0000 (15:36 +0200)]
ggml : fix q2_k bpw in comments (ggml/680)

2 years agoggml : add error handling to graph_compute (whisper/1714)
Finn Voorhees [Wed, 3 Jan 2024 13:39:43 +0000 (08:39 -0500)]
ggml : add error handling to graph_compute (whisper/1714)

2 years agoggml : do not sched_yield when calling BLAS (#4761)
Georgi Gerganov [Fri, 5 Jan 2024 13:18:21 +0000 (15:18 +0200)]
ggml : do not sched_yield when calling BLAS (#4761)

* ggml : do not sched_yield when calling BLAS

ggml-ci

* ggml : fix do_yield logic

ggml-ci

* ggml : simplify do_yield logic

ggml-ci

2 years agoexamples : add few-shot translation example (#4783)
Georgi Gerganov [Fri, 5 Jan 2024 13:11:10 +0000 (15:11 +0200)]
examples : add few-shot translation example (#4783)

2 years agofinetune : remove unused includes (#4756)
Daniel Bevenius [Thu, 4 Jan 2024 19:45:37 +0000 (20:45 +0100)]
finetune : remove unused includes (#4756)

This commit removes unused includes from finetune.cpp.

Signed-off-by: Daniel Bevenius <redacted>
2 years agoserver : send token probs for "stream == false" (#4714)
Georgi Gerganov [Thu, 4 Jan 2024 17:56:33 +0000 (19:56 +0200)]
server : send token probs for "stream == false" (#4714)

2 years agoPrint backend name on test-backend-ops failure (#4751)
Johannes Gäßler [Thu, 4 Jan 2024 08:43:23 +0000 (09:43 +0100)]
Print backend name on test-backend-ops failure (#4751)

2 years agollama.swiftui : support loading custom model from file picker (#4767)
singularity [Thu, 4 Jan 2024 08:22:38 +0000 (16:22 +0800)]
llama.swiftui : support loading custom model from file picker (#4767)

* swiftui: support load model from file picker

* swiftui: remove trailing whitespace

2 years agoserver : fix options in README.md (#4765)
Michael Coppola [Thu, 4 Jan 2024 08:17:09 +0000 (03:17 -0500)]
server : fix options in README.md (#4765)

* fix examples/server/README.md

* minor : fix whitespace

---------

Co-authored-by: Georgi Gerganov <redacted>
2 years agoggml : include stdlib.h before intrin.h (#4736)
Georgi Gerganov [Thu, 4 Jan 2024 08:12:26 +0000 (10:12 +0200)]
ggml : include stdlib.h before intrin.h (#4736)

2 years agollama.swiftui : fix build of ggml.metallib (#4754)
singularity [Thu, 4 Jan 2024 07:58:16 +0000 (15:58 +0800)]
llama.swiftui : fix build of ggml.metallib (#4754)

* metal: fix metal backend init failure in swiftui

* metal: build ggml.metallib instead of copy src

* llama.swift : remove debug flags from metallib build

---------

Co-authored-by: Georgi Gerganov <redacted>
2 years agotrain : fix typo in overlapping-samples help msg (#4758)
Daniel Bevenius [Wed, 3 Jan 2024 17:53:40 +0000 (18:53 +0100)]
train : fix typo in overlapping-samples help msg (#4758)

This commit fixes a typo in the help message for the
--overlapping-samples option.

Signed-off-by: Daniel Bevenius <redacted>
2 years agoswift : update Package.swift to use ggml as dependency (#4691)
Ashraful Islam [Wed, 3 Jan 2024 17:30:02 +0000 (11:30 -0600)]
swift : update Package.swift to use ggml as dependency (#4691)

* updates the package.swift to use ggml as dependency

* changes the ggml package url src to ggerganov

2 years agocuda : simplify expression
Georgi Gerganov [Wed, 3 Jan 2024 12:18:46 +0000 (14:18 +0200)]
cuda : simplify expression

Co-authored-by: slaren <redacted>
2 years agocuda : mark I16 and I32 ops as unsupported
Georgi Gerganov [Wed, 3 Jan 2024 11:01:44 +0000 (13:01 +0200)]
cuda : mark I16 and I32 ops as unsupported

ggml-ci

2 years agosync : ggml
Georgi Gerganov [Wed, 3 Jan 2024 09:37:44 +0000 (11:37 +0200)]
sync : ggml

ggml-ci

2 years agometal : add kernel_get_rows_i32
Georgi Gerganov [Wed, 3 Jan 2024 09:35:46 +0000 (11:35 +0200)]
metal : add kernel_get_rows_i32

ggml-ci

2 years agoscripts : fix sync order + metal sed
Georgi Gerganov [Wed, 3 Jan 2024 09:25:54 +0000 (11:25 +0200)]
scripts : fix sync order + metal sed

2 years agoggml : extend ggml_get_rows, ggml_repeat, ggml_concat (ggml/639)
Guillaume Wenzek [Fri, 29 Dec 2023 17:07:03 +0000 (18:07 +0100)]
ggml : extend ggml_get_rows, ggml_repeat, ggml_concat (ggml/639)

* add more int ops

* ggml_compute_forward_dup_bytes

* add tests

* PR comments

* tests : minor indentations

---------

Co-authored-by: Georgi Gerganov <redacted>
2 years agoserver : throw an error when `slot unavailable` (#4741)
Justin Parker [Wed, 3 Jan 2024 08:43:19 +0000 (03:43 -0500)]
server : throw an error when `slot unavailable` (#4741)

2 years agometal : optimize ggml_mul_mat_id (faster Mixtral PP) (#4725)
Georgi Gerganov [Tue, 2 Jan 2024 19:07:47 +0000 (21:07 +0200)]
metal : optimize ggml_mul_mat_id (faster Mixtral PP) (#4725)

* ggml : disable fast-math for Metal (cmake build only)

ggml-ci

* metal : fix Metal API debug warnings

* cmake : add -fno-inline for Metal build (#4545)

* metal : fix API debug warnings

* metal : fix compile warnings

* metal : use uint64_t for strides

* cmake : rename option to LLAMA_METAL_SHADER_DEBUG

* metal : fix mat-vec Q8_0 kernel for BS > 1

* metal : normalize mat-vec kernel signatures

* cmake : respect LLAMA_QKK_64 option

* metal : fix mat-vec Q4_K kernel for QK_K == 64

* metal : optimizing ggml_mul_mat_id (wip)

* metal : minor fix

* metal : opt mul_mm_id

2 years agoserver : add token counts to html footer (#4738)
Phil H [Tue, 2 Jan 2024 15:48:49 +0000 (15:48 +0000)]
server : add token counts to html footer (#4738)

* server: add token counts to stats

* server: generate hpp

---------

Co-authored-by: phiharri <redacted>
2 years agollama : llama_model_desc print number of experts
Georgi Gerganov [Tue, 2 Jan 2024 14:26:45 +0000 (16:26 +0200)]
llama : llama_model_desc print number of experts

2 years agollama : replace all API facing `int`'s with `int32_t` (#4577)
Marcus Dunn [Tue, 2 Jan 2024 14:15:16 +0000 (06:15 -0800)]
llama : replace all API facing `int`'s with `int32_t` (#4577)

* replaced all API facing `int`'s with `int32_t`

* formatting and missed `int` in `llama_token_to_piece`

2 years agollama : differentiate the KV dims in the attention (#4657)
postmasters [Tue, 2 Jan 2024 11:51:28 +0000 (03:51 -0800)]
llama : differentiate the KV dims in the attention (#4657)

* Add n_key_dim and n_value_dim

Some models use values that are not derived from `n_embd`.
Also remove `n_embd_head` and `n_embd_gqa` because it is not clear
which "head" is referred to (key or value).

Fix issue #4648.

* Fix `llm_build_kqv` to use `n_value_gqa`

* Rebase

* Rename variables

* Fix llm_build_kqv to be more generic wrt n_embd_head_k

* Update default values for n_embd_head_k and n_embd_head_v

Co-authored-by: Georgi Gerganov <redacted>
* Fix llm_load_tensors: the asserts were not backcompat

---------

Co-authored-by: Georgi Gerganov <redacted>
2 years agoeditorconfig : fix whitespace and indentation #4710
Georgi Gerganov [Tue, 2 Jan 2024 11:28:15 +0000 (13:28 +0200)]
editorconfig : fix whitespace and indentation #4710

2 years agoserver : add --override-kv parameter (#4710)
minarchist [Tue, 2 Jan 2024 10:38:15 +0000 (04:38 -0600)]
server : add --override-kv parameter (#4710)

* Changes to server to allow metadata override

* documentation

* flake.nix: expose full scope in legacyPackages

* flake.nix: rocm not yet supported on aarch64, so hide the output

* flake.nix: expose checks

* workflows: nix-ci: init; build flake outputs

* workflows: nix-ci: add a job for eval

* workflows: weekly `nix flake update`

* workflows: nix-flakestry: drop tag filters

...and add a job for flakehub.com

* workflows: nix-ci: add a qemu job for jetsons

* flake.nix: suggest the binary caches

* flake.lock: update

to a commit recently cached by nixpkgs-cuda-ci

---------

Co-authored-by: John <redacted>
Co-authored-by: Someone Serge <redacted>
2 years agopy : re-enable mmap in convert hf (#4732)
Nam D. Tran [Tue, 2 Jan 2024 09:23:38 +0000 (16:23 +0700)]
py : re-enable mmap in convert hf (#4732)

* update: awq support llama-7b model

* update: change order

* update: benchmark results for llama2-7b

* update: mistral 7b v1 benchmark

* update: support 4 models

* fix: Readme

* update: ready for PR

* update: readme

* fix: readme

* update: change order import

* black

* format code

* update: work for bot mpt and awqmpt

* update: readme

* Rename to llm_build_ffn_mpt_awq

* Formatted other files

* Fixed params count

* fix: remove code

* update: more detail for mpt

* fix: readme

* fix: readme

* update: change folder architecture

* fix: common.cpp

* fix: readme

* fix: remove ggml_repeat

* update: cicd

* update: cicd

* uppdate: remove use_awq arg

* update: readme

* llama : adapt plamo to new ffn

ggml-ci

* fix: update torch version

---------

Co-authored-by: Trần Đức Nam <redacted>
Co-authored-by: Le Hoang Anh <redacted>
Co-authored-by: Georgi Gerganov <redacted>
2 years agofinetune: fix typo in README.md (#4733)
Daniel Bevenius [Tue, 2 Jan 2024 09:16:55 +0000 (10:16 +0100)]
finetune: fix typo in README.md (#4733)

Signed-off-by: Daniel Bevenius <redacted>
2 years agometal : enable shader debugging (cmake option) (#4705)
Georgi Gerganov [Tue, 2 Jan 2024 08:57:44 +0000 (10:57 +0200)]
metal : enable shader debugging (cmake option) (#4705)

* ggml : disable fast-math for Metal (cmake build only)

ggml-ci

* metal : fix Metal API debug warnings

* cmake : add -fno-inline for Metal build (#4545)

* metal : fix API debug warnings

* metal : fix compile warnings

* metal : use uint64_t for strides

* cmake : rename option to LLAMA_METAL_SHADER_DEBUG

* metal : fix mat-vec Q8_0 kernel for BS > 1

* metal : normalize mat-vec kernel signatures

* cmake : respect LLAMA_QKK_64 option

* metal : fix mat-vec Q4_K kernel for QK_K == 64

ggml-ci

2 years agoflake.lock: update
Someone Serge [Sun, 31 Dec 2023 17:42:22 +0000 (17:42 +0000)]
flake.lock: update

to a commit recently cached by nixpkgs-cuda-ci

2 years agoflake.nix: suggest the binary caches
Someone Serge [Sat, 30 Dec 2023 18:25:25 +0000 (18:25 +0000)]
flake.nix: suggest the binary caches

2 years agoworkflows: nix-ci: add a qemu job for jetsons
Someone Serge [Sat, 30 Dec 2023 18:01:07 +0000 (18:01 +0000)]
workflows: nix-ci: add a qemu job for jetsons

2 years agoworkflows: nix-flakestry: drop tag filters
Someone Serge [Sat, 30 Dec 2023 17:36:08 +0000 (17:36 +0000)]
workflows: nix-flakestry: drop tag filters

...and add a job for flakehub.com

2 years agoworkflows: weekly `nix flake update`
Someone Serge [Sat, 30 Dec 2023 16:38:36 +0000 (16:38 +0000)]
workflows: weekly `nix flake update`

2 years agoworkflows: nix-ci: add a job for eval
Someone Serge [Sat, 30 Dec 2023 17:19:11 +0000 (17:19 +0000)]
workflows: nix-ci: add a job for eval

2 years agoworkflows: nix-ci: init; build flake outputs
Someone Serge [Tue, 26 Dec 2023 19:17:26 +0000 (19:17 +0000)]
workflows: nix-ci: init; build flake outputs

2 years agoflake.nix: expose checks
Someone Serge [Fri, 29 Dec 2023 16:21:50 +0000 (16:21 +0000)]
flake.nix: expose checks

2 years agoflake.nix: rocm not yet supported on aarch64, so hide the output
Someone Serge [Tue, 26 Dec 2023 23:34:40 +0000 (23:34 +0000)]
flake.nix: rocm not yet supported on aarch64, so hide the output

2 years agoflake.nix: expose full scope in legacyPackages
Someone Serge [Fri, 29 Dec 2023 16:15:37 +0000 (16:15 +0000)]
flake.nix: expose full scope in legacyPackages

2 years agoggml : add ggml_vdotq_s32 alias (#4715)
Georgi Gerganov [Sun, 31 Dec 2023 09:43:31 +0000 (11:43 +0200)]
ggml : add ggml_vdotq_s32 alias (#4715)

ggml-ci

2 years agoclip : refactor + bug fixes (#4696)
Georgi Gerganov [Sat, 30 Dec 2023 21:24:42 +0000 (23:24 +0200)]
clip : refactor + bug fixes (#4696)

* clip : refactor + bug fixes

ggml-ci

* server : add log message

2 years agoCUDA: fixed tensor cores not being used on RDNA3 (#4697)
Johannes Gäßler [Sat, 30 Dec 2023 12:52:01 +0000 (13:52 +0100)]
CUDA: fixed tensor cores not being used on RDNA3 (#4697)

2 years agoggml : add ggml_cpu_has_avx_vnni() (#4589)
automaticcat [Sat, 30 Dec 2023 08:07:48 +0000 (15:07 +0700)]
ggml : add ggml_cpu_has_avx_vnni() (#4589)

* feat: add avx_vnni based on intel documents

* ggml: add avx vnni based on intel document

* llama: add avx vnni information display

* docs: add more details about using oneMKL and oneAPI for intel processors

* docs: add more details about using oneMKL and oneAPI for intel processors

* docs: add more details about using oneMKL and oneAPI for intel processors

* docs: add more details about using oneMKL and oneAPI for intel processors

* docs: add more details about using oneMKL and oneAPI for intel processors

* Update ggml.c

Fix indentation upgate

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

Co-authored-by: Georgi Gerganov <redacted>