]> git.djapps.eu Git - pkg/ggml/sources/llama.cpp/log
pkg/ggml/sources/llama.cpp
2 years agoFix color codes emitting mid-UTF8 code. (#312)
Matvey Soloviev [Tue, 21 Mar 2023 17:11:01 +0000 (18:11 +0100)]
Fix color codes emitting mid-UTF8 code. (#312)

2 years agoImporter for GPTQ quantized LLaMA models (#301)
comex [Tue, 21 Mar 2023 16:42:25 +0000 (09:42 -0700)]
Importer for GPTQ quantized LLaMA models (#301)

* [WIP, broken] Importer for GPTQ quantized LLaMA models

Based on: https://github.com/qwopqwop200/GPTQ-for-LLaMa

Current status: Something is busted.  The output starts out decent, but
quickly degrades into gibberish.  This doesn't happen with either the
original GPTQ-for-LLaMa using the same weights, or llama.cpp when using
weights quantized by its own quantizer.  Is there a bug in the
conversion script that somehow only comes into play with a large context
size?

I did notice one potential issue.  It's clearly not the main cause of
the gibberish, since it doesn't happen when using q4_1 weights quantized
by llama.cpp itself, but it seems concerning.  When doing a matrix
multiplication of f16 * f32 => f32 or q4_1 * f32 => f32, at least when
the multiplication is not done with BLAS, the intermediate results are
stored in the smaller format rather than f32.  This seems like an
unnecessary waste of precision, especially in the q4_1 case.

I was originally hoping to validate the results by matching the Python
implementation's output exactly, but precision and non-associativity
issues make this very difficult, including when performing matrix
multiplications and, especially, computing norms.

Anyway, design details:

The models being imported store per-layer weights in essentially q4_1
format, although the addend and scale are shared across an entire row
rather than every group of 32 weights.  This script duplicates the
addend and scale to match ggml's expectations, at the cost of wasting
some memory.

However, there are two differences which I accommodated changing the
output format (and adding corresponding support to main.cpp) rather than
having the script match the existing one:

- The tok_embeddings and output weights (i.e. the weights that aren't
  per-layer) are f16 instead of q4_1.  They could be converted to q4_1,
  and the impact of the loss of precision would probably be low, but
  this would rule out exactly matching the Python implementation's
  output for validation.

- There is no sharding, since the input doesn't have it, and for a
  CPU-only implementation it seems more useful to avoid having to deal
  with multiple files.

The new format is differentiated from existing q4_1 format by changing
the 'f16' header flag to a new value, 4.  That said, I think a cleaner
approach would be to change main.cpp to support loading each tensor with
an arbitrary sharding configuration and type rather than hardcoding
specific combinations of types.  So far I've wasted too much time
debugging to try implementing this...

* Add missing permutation.  Now it works.

---------

Co-authored-by: Georgi Gerganov <redacted>
2 years agoCompute perplexity over prompt (#270)
Gary Linscott [Tue, 21 Mar 2023 16:27:42 +0000 (09:27 -0700)]
Compute perplexity over prompt (#270)

* Compute perplexity over prompt

* More accurate perplexity calculation - over all logits in the context window (so 512x more tokens!)

* Output all perplexitiies

* Add timing/ETA

2 years agoAdd chatLLaMa script (#198)
Jean-Christophe Hoelt [Tue, 21 Mar 2023 16:23:15 +0000 (18:23 +0200)]
Add chatLLaMa script (#198)

* Add chatLLaMa script

* Fix shellcheck errors and do some cleanup

* Move chatLLaMa script to `examples` directory

* Reduce chatLLaMa context size to 2048

Ref d7def1a7524f712e5ebb7cd02bab0f13aa56a7f9

* Include n_predict to 2048 in examples/chatLLaMa

2 years agomakefile: Fix CPU feature detection on Haiku (#218)
Alex von Gluck IV [Tue, 21 Mar 2023 16:21:06 +0000 (11:21 -0500)]
makefile: Fix CPU feature detection on Haiku (#218)

2 years agoEnable ANSI colors on Windows 10+ (#311)
anzz1 [Tue, 21 Mar 2023 16:14:46 +0000 (18:14 +0200)]
Enable ANSI colors on Windows 10+ (#311)

* Enable ANSI colors on Windows 10+

On older versions function will silently fail without any ill effects

* Do not call SetConsoleMode if the mode is already set

* Update main.cpp

---------

Co-authored-by: Georgi Gerganov <redacted>
2 years agoMinor style changes
Georgi Gerganov [Tue, 21 Mar 2023 16:10:32 +0000 (18:10 +0200)]
Minor style changes

2 years agoAdd chat.sh script
Georgi Gerganov [Tue, 21 Mar 2023 16:09:37 +0000 (18:09 +0200)]
Add chat.sh script

2 years agoCheck for reverse prompt by characters instead of tokens (#292) (#330)
tjohnman [Tue, 21 Mar 2023 16:05:06 +0000 (17:05 +0100)]
Check for reverse prompt by characters instead of tokens (#292) (#330)

* Check for reverse prompt by characters instead of tokens (#292)

* Update main.cpp

Wording.

* Cleanup.

* Remove unnecessary use of std::stringstream.

---------

Co-authored-by: Johnman <redacted>
Co-authored-by: Georgi Gerganov <redacted>
2 years agoCheck for reverse prompt by characters instead of tokens (#292) (#330)
tjohnman [Tue, 21 Mar 2023 16:04:43 +0000 (17:04 +0100)]
Check for reverse prompt by characters instead of tokens (#292) (#330)

* Check for reverse prompt by characters instead of tokens (#292)

* Update main.cpp

Wording.

* Cleanup.

* Remove unnecessary use of std::stringstream.

---------

Co-authored-by: Johnman <redacted>
Co-authored-by: Georgi Gerganov <redacted>
2 years agoFix convert script, warnings alpaca instructions, default params
Georgi Gerganov [Tue, 21 Mar 2023 15:59:16 +0000 (17:59 +0200)]
Fix convert script, warnings alpaca instructions, default params

2 years agoAdd OpenBSD support (#314)
Kevin Lo [Tue, 21 Mar 2023 15:50:09 +0000 (09:50 -0600)]
Add OpenBSD support (#314)

2 years agofix typo in comment (#318)
Mack Straight [Tue, 21 Mar 2023 15:49:43 +0000 (08:49 -0700)]
fix typo in comment (#318)

2 years agoMakefile: slightly cleanup for Mac Intel; echo instead of run ./main -h (#335)
Qingyou Meng [Tue, 21 Mar 2023 15:44:11 +0000 (23:44 +0800)]
Makefile: slightly cleanup for Mac Intel; echo instead of run ./main -h (#335)

2 years agocmdline option for custom amount of model parts (--n_parts N) (#348)
anzz1 [Tue, 21 Mar 2023 15:42:43 +0000 (17:42 +0200)]
cmdline option for custom amount of model parts (--n_parts N) (#348)

* cmdline option for custom amount of model parts (--n_parts N)

* Update main.cpp

---------

Co-authored-by: Georgi Gerganov <redacted>
2 years agoUpdate IPFS links to quantized alpaca with new tokenizer format (#352)
Kevin Kwok [Tue, 21 Mar 2023 15:34:49 +0000 (08:34 -0700)]
Update IPFS links to quantized alpaca with new tokenizer format (#352)

2 years agoChange default repeat_penalty to 1.0
Georgi Gerganov [Tue, 21 Mar 2023 15:32:14 +0000 (17:32 +0200)]
Change default repeat_penalty to 1.0

I feel this penalty is not really helping.
Especially for the example from the README it makes results pretty bad

2 years agoAdd tokenizer test + revert to C++11 (#355)
Georgi Gerganov [Tue, 21 Mar 2023 15:29:41 +0000 (17:29 +0200)]
Add tokenizer test + revert to C++11 (#355)

* Add test-tokenizer-0 to do a few tokenizations - feel free to expand
* Added option to convert-pth-to-ggml.py script to dump just the vocabulary
* Added ./models/ggml-vocab.bin containing just LLaMA vocab data (used for tests)
* Added utility to load vocabulary file from previous point (temporary implementation)
* Avoid using std::string_view and drop back to C++11 (hope I didn't break something)
* Rename gpt_vocab -> llama_vocab
* All CMake binaries go into ./bin/ now

2 years agoAdd initial AVX512 support for dot product on Linux (#320)
Casey Primozic [Tue, 21 Mar 2023 14:35:42 +0000 (07:35 -0700)]
Add initial AVX512 support for dot product on Linux (#320)

 * Update Makefile to detect AVX512 support and add compiler flags if it's available
 * Based on existing AVX2 implementation, dot product on one 32-value block of 4-bit quantized ints at a time
 * Perform 8 bit -> 16 bit sign extension and multiply+add on 32 values at time instead of 16
 * Use built-in AVX512 horizontal reduce add to get sum at the end
 * Manual unrolling on inner dot product loop to reduce loop counter overhead

2 years agoAdding missing features of CMakeLists.txt & Refactoring (#131)
nusu-github [Tue, 21 Mar 2023 00:37:16 +0000 (09:37 +0900)]
Adding missing features of CMakeLists.txt & Refactoring (#131)

* Functionality addition CMakeLists.txt

Refactoring:
1. Simplify more options that are negation of negation.
LLAMA_NO_ACCELERATE -> LLAMA_ACCELERATE
2. Changed to an optional expression instead of forcing to enable AVX2 in MSVC.
3. Make CMAKE_CXX_STANDARD, which is different from Makefile, the same.
4. Use add_compile_options instead of adding options to CMAKE_C_FLAGS.
5. Make utils use target_link_libraries instead of directly referencing code.

Added features:
1. Added some options.
LLAMA_STATIC_LINK,LLAMA_NATIVE,LLAMA_LTO,LLAMA_GPROF,LLAMA_OPENBLAS

* Fix Accelerate link in CMake

* Windows build Fix

* C++11 to C++17

* Reflects C/C++ standard individually

* Change the version to 3.12

---------

Co-authored-by: Georgi Gerganov <redacted>
2 years agoNix flake: set meta.mainProgram to llama
Ben Siraphob [Mon, 20 Mar 2023 21:44:30 +0000 (16:44 -0500)]
Nix flake: set meta.mainProgram to llama

2 years agoFixed tokenizer.model not found error when model dir is symlink (#325)
Qingyou Meng [Mon, 20 Mar 2023 19:33:10 +0000 (03:33 +0800)]
Fixed tokenizer.model not found error when model dir is symlink (#325)

2 years agomove file magic/version to header, print expected version (#319)
Mack Straight [Mon, 20 Mar 2023 19:26:01 +0000 (12:26 -0700)]
move file magic/version to header, print expected version (#319)

2 years agoDocker - Fix publish docker image in GitHub Registry (#235)
Bernat Vadell [Mon, 20 Mar 2023 17:05:20 +0000 (18:05 +0100)]
Docker - Fix publish docker image in GitHub Registry (#235)

* fix publish permission

* try to fix docker pipeline using as password github_token & username repository_owner

2 years agosentencepiece bpe compatible tokenizer (#252)
Mack Straight [Mon, 20 Mar 2023 10:17:23 +0000 (03:17 -0700)]
sentencepiece bpe compatible tokenizer (#252)

* potential out of bounds read

* fix quantize

* style

* Update convert-pth-to-ggml.py

* mild cleanup

* don't need the space-prefixing here rn since main.cpp already does it

* new file magic + version header field

* readme notice

* missing newlines

Co-authored-by: slaren <redacted>
2 years agoAdd tqdm to Python requirements (#293)
Stephan Walter [Mon, 20 Mar 2023 08:24:11 +0000 (08:24 +0000)]
Add tqdm to Python requirements (#293)

* Add tqdm to Python requirements
* Remove torchvision torchaudio, add requests

2 years agobugfix: default should not be interactive (#304)
cocktailpeanut [Sun, 19 Mar 2023 21:44:20 +0000 (17:44 -0400)]
bugfix: default should not be interactive (#304)

2 years agoRename script
Georgi Gerganov [Sun, 19 Mar 2023 19:58:51 +0000 (21:58 +0200)]
Rename script

2 years agoAdd temporary helper script for Alpaca chat
Georgi Gerganov [Sun, 19 Mar 2023 19:57:28 +0000 (21:57 +0200)]
Add temporary helper script for Alpaca chat

2 years agofix coloring of last `n_batch` of prompt, and refactor line input (#221)
Rickey Bowers Jr [Sun, 19 Mar 2023 19:44:30 +0000 (13:44 -0600)]
fix coloring of last `n_batch` of prompt, and refactor line input (#221)

* fix coloring of last `n_batch` of prompt, and refactor line input
* forgot the newline that needs to be sent to the model
* (per #283) try to force flush of color reset in SIGINT handler

2 years agoSupport for multiple reverse prompts. (#299)
tjohnman [Sun, 19 Mar 2023 19:33:06 +0000 (20:33 +0100)]
Support for multiple reverse prompts. (#299)

Co-authored-by: Johnman <>
Co-authored-by: Johnman <redacted>
2 years agoImproved quantize script (#222)
Suaj Carrot [Sun, 19 Mar 2023 18:38:44 +0000 (12:38 -0600)]
Improved quantize script (#222)

* Improved quantize script

I improved the quantize script by adding error handling and allowing to select many models for quantization at once in the command line. I also converted it to Python for generalization as well as extensibility.

* Fixes and improvements based on Matt's observations

Fixed and improved many things in the script based on the reviews made by @mattsta. The parallelization suggestion is still to be revised, but code for it was still added (commented).

* Small fixes to the previous commit

* Corrected to use the original glob pattern

The original Bash script uses a glob pattern to match files that have endings such as ...bin.0, ...bin.1, etc. That has been translated correctly to Python now.

* Added support for Windows and updated README to use this script

New code to set the name of the quantize script binary depending on the platform has been added (quantize.exe if working on Windows) and the README.md file has been updated to use this script instead of the Bash one.

* Fixed a typo and removed shell=True in the subprocess.run call

Fixed a typo regarding the new filenames of the quantized models and removed the shell=True parameter in the subprocess.run call as it was conflicting with the list of parameters.

* Corrected previous commit

* Small tweak: changed the name of the program in argparse

This was making the automatic help message to be suggesting the program's usage as being literally "$ Quantization Script [arguments]". It should now be something like "$ python3 quantize.py [arguments]".

2 years agoMake prompt randomization optional. (#300)
tjohnman [Sun, 19 Mar 2023 18:36:19 +0000 (19:36 +0100)]
Make prompt randomization optional. (#300)

Co-authored-by: Johnman <>
2 years agoRespect the maximum number of tokens in interactive. (#298)
tjohnman [Sun, 19 Mar 2023 18:31:17 +0000 (19:31 +0100)]
Respect the maximum number of tokens in interactive. (#298)

Co-authored-by: Johnman <redacted>
Co-authored-by: Georgi Gerganov <redacted>
2 years agoAdd --ignore-eos parameter (#181)
slaren [Sun, 19 Mar 2023 18:22:48 +0000 (19:22 +0100)]
Add --ignore-eos parameter (#181)

Co-authored-by: Georgi Gerganov <redacted>
2 years agointeractive mode: print '\n' in sigint_handler, this flush stdout thus ensure color...
Qingyou Meng [Sun, 19 Mar 2023 18:10:00 +0000 (02:10 +0800)]
interactive mode: print '\n' in sigint_handler, this flush stdout thus ensure color reset. (#283)

2 years agoCommand line switch to use F16 for memory_k and memory_v (refactor of #154) (#294)
Erik Scholz [Sun, 19 Mar 2023 17:57:00 +0000 (18:57 +0100)]
Command line switch to use F16 for memory_k and memory_v (refactor of #154) (#294)

* Use F16 for memory_k and memory_v

* add command line switch to use f16 instead of f32 for memory k+v

---------

Co-authored-by: Ty Everett <redacted>
2 years agoUpdate hot topics to mention Alpaca support
Georgi Gerganov [Sun, 19 Mar 2023 17:51:55 +0000 (19:51 +0200)]
Update hot topics to mention Alpaca support

2 years agoFix off-by-one bug (#115)
Georgi Gerganov [Sun, 19 Mar 2023 17:46:32 +0000 (19:46 +0200)]
Fix off-by-one bug (#115)

2 years agoFix python stuff (#109)
Georgi Gerganov [Sun, 19 Mar 2023 17:33:18 +0000 (19:33 +0200)]
Fix python stuff (#109)

2 years agoRefactoring `convert-pth-to-ggml.py`: more concise and readable (#109)
qunash [Sun, 19 Mar 2023 17:17:39 +0000 (20:17 +0300)]
Refactoring `convert-pth-to-ggml.py`: more concise and readable (#109)

* Refactor get_n_parts function to simplify code and improve readability

* Use f-strings instead of concatenation

* Refactoring: more concise and readable

* modularize

---------

Co-authored-by: Georgi Gerganov <redacted>
2 years agoDrop trailing new line from file prompts (#80)
Georgi Gerganov [Sun, 19 Mar 2023 17:04:44 +0000 (19:04 +0200)]
Drop trailing new line from file prompts (#80)

2 years agoAdd instruction for using Alpaca (#240)
Georgi Gerganov [Sun, 19 Mar 2023 16:49:50 +0000 (18:49 +0200)]
Add instruction for using Alpaca (#240)

2 years agoAdd "--instruct" argument for usage with Alpaca (#240)
Georgi Gerganov [Sun, 19 Mar 2023 16:37:02 +0000 (18:37 +0200)]
Add "--instruct" argument for usage with Alpaca (#240)

Also start adding prompts in "./prompts"

2 years agoChange RMSNorm eps to 1e-6 (#173)
Georgi Gerganov [Sun, 19 Mar 2023 15:30:00 +0000 (17:30 +0200)]
Change RMSNorm eps to 1e-6 (#173)

I think this is what is used in the Python code

2 years agoWarn user if a context size greater than 2048 tokens is specified (#274)
Ronsor [Sun, 19 Mar 2023 00:10:47 +0000 (17:10 -0700)]
Warn user if a context size greater than 2048 tokens is specified (#274)

LLaMA doesn't support more than 2048 token context sizes, and going above that produces terrible results.

2 years agoFix typo in readme
Pavol Rusnak [Sat, 18 Mar 2023 21:39:46 +0000 (22:39 +0100)]
Fix typo in readme

2 years agoAdd note about Python 3.11 to readme
Pavol Rusnak [Sat, 18 Mar 2023 21:20:04 +0000 (22:20 +0100)]
Add note about Python 3.11 to readme

2 years agoAdd memory/disk requirements to readme
Pavol Rusnak [Sat, 18 Mar 2023 20:58:46 +0000 (21:58 +0100)]
Add memory/disk requirements to readme

2 years agoRemove unused code since n_vocab is model.hparams.n_vocab (#262)
Alex Nguyen [Sat, 18 Mar 2023 13:51:49 +0000 (20:51 +0700)]
Remove unused code since n_vocab is model.hparams.n_vocab (#262)

2 years agofixed warning with std::ignore about unused function result (#151)
Justin Suess [Sat, 18 Mar 2023 11:44:09 +0000 (07:44 -0400)]
fixed warning with std::ignore about unused function result (#151)

fixed warning with std::ignore about unused function result

2 years agoFix n^2 loop in tokenization (#254)
Gary Linscott [Sat, 18 Mar 2023 11:17:19 +0000 (04:17 -0700)]
Fix n^2 loop in tokenization (#254)

This causes long prompts to parse very slowly.

2 years agoCI Improvements (#230)
anzz1 [Sat, 18 Mar 2023 07:27:12 +0000 (09:27 +0200)]
CI Improvements (#230)

* CI Improvements

Manual build feature, autoreleases for Windows

* better CI naming convention

use branch name in releases and tags

2 years agoNix flake (#40)
Niklas Korz [Fri, 17 Mar 2023 22:03:48 +0000 (23:03 +0100)]
Nix flake (#40)

* Nix flake

* Nix: only add Accelerate framework on macOS

* Nix: development shel, direnv and compatibility

* Nix: use python packages supplied by withPackages

* Nix: remove channel compatibility

* Nix: fix ARM neon dotproduct on macOS

---------

Co-authored-by: Pavol Rusnak <redacted>
2 years agoImplement non-greedy tokenizer that tries to maximize token lengths (#242)
thement [Fri, 17 Mar 2023 20:05:58 +0000 (21:05 +0100)]
Implement non-greedy tokenizer that tries to maximize token lengths (#242)

* Implement non-greedy tokenizer that tries to maximize token lengths

* Insert single space in front of the prompt

- this is to match original llama tokenizer behavior

---------

Co-authored-by: Jakub Horak <redacted>
2 years agoDefault to 4 threads (#243)
Georgi Gerganov [Fri, 17 Mar 2023 19:46:46 +0000 (21:46 +0200)]
Default to 4 threads (#243)

2 years agoUpdate Contributing section
Georgi Gerganov [Fri, 17 Mar 2023 18:30:04 +0000 (20:30 +0200)]
Update Contributing section

2 years agoDon't tell users to use a bad number of threads (#243)
Stephan Walter [Fri, 17 Mar 2023 17:47:35 +0000 (17:47 +0000)]
Don't tell users to use a bad number of threads (#243)

The readme tells people to use the command line option "-t 8", causing 8
threads to be started. On systems with fewer than 8 cores, this causes a
significant slowdown. Remove the option from the example command lines
and use /proc/cpuinfo on Linux to determine a sensible default.

2 years agoadd ptread link to fix cmake build under linux (#114)
mmyjona [Fri, 17 Mar 2023 16:38:24 +0000 (00:38 +0800)]
add ptread link to fix cmake build under linux (#114)

* add ptread link to fix cmake build under linux

* add cmake to linux and macos platform

* separate make and cmake workflow

---------

Co-authored-by: SebastiƔn A <redacted>
2 years agošŸš€ Dockerize llamacpp (#132)
Bernat Vadell [Fri, 17 Mar 2023 09:47:06 +0000 (10:47 +0100)]
šŸš€ Dockerize llamacpp (#132)

* feat: dockerize llamacpp

* feat: split build & runtime stages

* split dockerfile into main & tools

* add quantize into tool docker image

* Update .devops/tools.sh

Co-authored-by: Georgi Gerganov <redacted>
* add docker action pipeline

* change CI to publish at github docker registry

* fix name runs-on macOS-latest is macos-latest (lowercase)

* include docker versioned images

* fix github action docker

* fix docker.yml

* feat: include all-in-one command tool & update readme.md

---------

Co-authored-by: Georgi Gerganov <redacted>
2 years agoQ4_1 quantization (#193)
Matvey Soloviev [Fri, 17 Mar 2023 04:48:39 +0000 (05:48 +0100)]
Q4_1 quantization (#193)

* Add AVX2 version of ggml_vec_dot_q4_1

* Small optimisations to q4_1 dot product (@Const-me)

* Rearrange Q4_1 quantization to work for multipart models. (Fix #152)

* Fix ggml_vec_mad_q4_1 too

* Fix non-vectorised q4_1 vec mul

2 years agoUpdate README.md
Georgi Gerganov [Thu, 16 Mar 2023 13:00:09 +0000 (15:00 +0200)]
Update README.md

2 years agoExpand "Contributing" section
Georgi Gerganov [Thu, 16 Mar 2023 06:55:13 +0000 (08:55 +0200)]
Expand "Contributing" section

2 years agoUpdate hot topics - RMSnorm
Georgi Gerganov [Thu, 16 Mar 2023 05:12:12 +0000 (07:12 +0200)]
Update hot topics - RMSnorm

2 years agoFix RMS norm in GGML (#191)
Nebula [Wed, 15 Mar 2023 23:29:25 +0000 (19:29 -0400)]
Fix RMS norm in GGML (#191)

2 years agoAdd RMS norm and use it (#187)
hoangmit [Wed, 15 Mar 2023 22:41:38 +0000 (18:41 -0400)]
Add RMS norm and use it (#187)

* add ggml_rms_norm

* update op num

2 years agofixed typo (#178)
moritzbrantner [Wed, 15 Mar 2023 20:35:25 +0000 (21:35 +0100)]
fixed typo (#178)

2 years agoadd SIGINT support for _WIN32 environments (#120)
Rickey Bowers Jr [Wed, 15 Mar 2023 19:56:24 +0000 (13:56 -0600)]
add SIGINT support for _WIN32 environments (#120)

* add SIGINT support for _WIN32 environments

* perhaps more consistent

2 years agoadded ctx_size parameter (#148)
Justin Suess [Wed, 15 Mar 2023 19:42:40 +0000 (15:42 -0400)]
added ctx_size parameter (#148)

* added ctx_size parameter

* added it in more places

* Apply suggestions from code review

---------

Co-authored-by: Georgi Gerganov <redacted>
2 years agofixed color reset on exit (#149)
Justin Suess [Wed, 15 Mar 2023 19:39:38 +0000 (15:39 -0400)]
fixed color reset on exit (#149)

* fixed color reset on exit

* added sigint handler for ansi_color_reset

* Update main.cpp

---------

Co-authored-by: Georgi Gerganov <redacted>
2 years agoFix potential licensing issue (#126)
Musab Gultekin [Wed, 15 Mar 2023 19:39:06 +0000 (22:39 +0300)]
Fix potential licensing issue (#126)

* Update README.md

* Update README.md

remove facebook

2 years agoUse `tokenizer.vocab_size()` instead of hardcoding 32000 in convert-pth-to-ggml.py...
Ronsor [Wed, 15 Mar 2023 19:37:50 +0000 (12:37 -0700)]
Use `tokenizer.vocab_size()` instead of hardcoding 32000 in convert-pth-to-ggml.py (#142)

There are ways that special tokens or other new tokens could be added to the tokenizer; therefore it's probably best not to assume the vocabulary is only 32000 tokens.

2 years agoinline -> static inline for "bytesFromNibbles" (#161)
hoangmit [Wed, 15 Mar 2023 19:05:14 +0000 (15:05 -0400)]
inline -> static inline for "bytesFromNibbles" (#161)

Without "static" prefix, it fails to compile in clang

2 years agoDon't use vdotq_s32 if it's not available (#139)
Ronsor [Tue, 14 Mar 2023 19:34:37 +0000 (12:34 -0700)]
Don't use vdotq_s32 if it's not available (#139)

* Don't use vdotq_s32 if it's not available

`dotprod` extensions aren't available on some ARM CPUs (e.g. Raspberry Pi 4), so check for them and only use them if they're available.

Reintroduces the code removed in 84d9015 if `__ARM_FEATURE_DOTPROD` isn't defined.

* Update ggml.c

---------

Co-authored-by: Georgi Gerganov <redacted>
2 years agoAdd section to README on how to run the project on Android (#130)
Radoslav Gerganov [Tue, 14 Mar 2023 13:30:08 +0000 (15:30 +0200)]
Add section to README on how to run the project on Android (#130)

2 years agoAdd Misc section + update hot topics + minor fixes
Georgi Gerganov [Tue, 14 Mar 2023 07:43:52 +0000 (09:43 +0200)]
Add Misc section + update hot topics + minor fixes

2 years agoAdd windows to the CI (#98)
SebastiƔn A [Mon, 13 Mar 2023 20:29:10 +0000 (17:29 -0300)]
Add windows to the CI (#98)

2 years agoCMake build in Release by default (#75)
Georgi Gerganov [Mon, 13 Mar 2023 19:22:15 +0000 (21:22 +0200)]
CMake build in Release by default (#75)

2 years agoUpdate contribution section, hot topics, limitations, etc.
Georgi Gerganov [Mon, 13 Mar 2023 17:21:51 +0000 (19:21 +0200)]
Update contribution section, hot topics, limitations, etc.

2 years agoPrint system information
Georgi Gerganov [Mon, 13 Mar 2023 17:15:08 +0000 (19:15 +0200)]
Print system information

2 years agoInitial support for CMake (#75)
SebastiƔn A [Mon, 13 Mar 2023 17:12:33 +0000 (14:12 -0300)]
Initial support for CMake (#75)

2 years agoAdd NetBSD support. (#90)
Thomas Klausner [Mon, 13 Mar 2023 16:40:54 +0000 (17:40 +0100)]
Add NetBSD support. (#90)

2 years agoUse fprintf for diagnostic output (#48)
Pavol Rusnak [Mon, 13 Mar 2023 16:39:56 +0000 (17:39 +0100)]
Use fprintf for diagnostic output (#48)

keep printf only for printing model output

one can now use ./main ... 2>dev/null to suppress any diagnostic output

2 years agoUse vdotq_s32 to improve performance (#67)
Georgi Gerganov [Mon, 13 Mar 2023 16:36:44 +0000 (18:36 +0200)]
Use vdotq_s32 to improve performance (#67)

* 10% performance boost on ARM

* Back to original change

2 years agoReduce model loading time (#43)
uint256_t [Mon, 13 Mar 2023 16:33:43 +0000 (01:33 +0900)]
Reduce model loading time (#43)

* Use buffering

* Use vector

* Minor

---------

Co-authored-by: Georgi Gerganov <redacted>
2 years agoFix UTF-8 handling (including colors) (#79)
Val Kharitonov [Mon, 13 Mar 2023 16:24:18 +0000 (12:24 -0400)]
Fix UTF-8 handling (including colors) (#79)

2 years agoAdd quantize script for batch quantization (#92)
Pavol Rusnak [Mon, 13 Mar 2023 16:15:20 +0000 (17:15 +0100)]
Add quantize script for batch quantization (#92)

* Add quantize script for batch quantization

* Indentation

* README for new quantize.sh

* Fix script name

* Fix file list on Mac OS

---------

Co-authored-by: Georgi Gerganov <redacted>
2 years agoAdd initial contribution guidelines
Georgi Gerganov [Mon, 13 Mar 2023 07:42:26 +0000 (09:42 +0200)]
Add initial contribution guidelines

2 years agoGate signal support on being on a unixoid system. (#74)
Matvey Soloviev [Mon, 13 Mar 2023 03:08:01 +0000 (04:08 +0100)]
Gate signal support on being on a unixoid system. (#74)

2 years agoFix token count accounting
Matvey Soloviev [Sun, 12 Mar 2023 23:35:51 +0000 (00:35 +0100)]
Fix token count accounting

2 years agoRevert "10% performance boost on ARM"
Georgi Gerganov [Sun, 12 Mar 2023 23:28:08 +0000 (01:28 +0200)]
Revert "10% performance boost on ARM"

This reverts commit 113a9e83ebc0f788f861394437087bf3ca0e019b.

There are some reports for illegal instruction.
Moved this stuff to vdotq_s32 branch until resolve

2 years agoCheck for vdotq_s32 availability
Georgi Gerganov [Sun, 12 Mar 2023 23:21:03 +0000 (01:21 +0200)]
Check for vdotq_s32 availability

2 years agoAmmend to previous commit - forgot to update non-QRDMX branch
Georgi Gerganov [Sun, 12 Mar 2023 23:05:24 +0000 (01:05 +0200)]
Ammend to previous commit - forgot to update non-QRDMX branch

2 years ago10% performance boost on ARM
Georgi Gerganov [Sun, 12 Mar 2023 22:56:10 +0000 (00:56 +0200)]
10% performance boost on ARM

2 years agoFix color getting reset before prompt output done (#65)
Matvey Soloviev [Sun, 12 Mar 2023 22:07:34 +0000 (23:07 +0100)]
Fix color getting reset before prompt output done (#65)

(cherry picked from commit 7eb2987619feee04c40eff69b604017d09919cb6)

2 years agoUpdate README.md
Georgi Gerganov [Sun, 12 Mar 2023 21:39:01 +0000 (23:39 +0200)]
Update README.md

2 years agoAdd interactive mode (#61)
Matvey Soloviev [Sun, 12 Mar 2023 21:13:28 +0000 (22:13 +0100)]
Add interactive mode (#61)

* Initial work on interactive mode.

* Improve interactive mode. Make rev. prompt optional.

* Update README to explain interactive mode.

* Fix OS X build

2 years agoFix typo in README (#45)
Marc Kƶhlbrugge [Sun, 12 Mar 2023 20:30:08 +0000 (03:30 +0700)]
Fix typo in README (#45)

2 years agoAllow using prompt files (#59)
Ben Garney [Sun, 12 Mar 2023 20:28:36 +0000 (13:28 -0700)]
Allow using prompt files (#59)

2 years agoAdd back top_k (#56)
beiller [Sun, 12 Mar 2023 20:23:15 +0000 (16:23 -0400)]
Add back top_k (#56)

* Add back top_k

* Update utils.cpp

* Update utils.h

---------

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