llama.cpp/tests
Joe Eli McIlvain 66c2c93082
grammar : fix JSON Schema for string regex with top-level alt. (#9903)
Prior to this commit, using a JSON Schema containing a string
with `pattern` regular expression that uses top-level alternation
(e.g. `"pattern": "^A|B|C|D$"`) would result in invalid JSON
output from the constrained sampling grammar, because it
ended up creating a grammar rule like this for the string:

```
thing ::= "\"" "A" | "B" | "C" | "D" "\"" space
```

Note that this rule will only match a starting quote for the "A" case,
and will only match an ending quote for the "D" case,
so this rule will always produce invalid JSON when used for sampling
(that is, the JSON will always be lacking the starting quote,
the ending quote, or both).

This was fixed in a simple way by adding parentheses to the
generated rule (for all string pattern rules, to keep it simple),
such that the new generated rule looks like this (correct):

```
thing ::= "\"" ("A" | "B" | "C" | "D") "\"" space
```
2024-10-16 19:03:24 +03:00
..
.gitignore tests : gitignore ggml-common.h 2024-03-09 14:17:11 +02:00
CMakeLists.txt threadpool : skip polling for unused threads (#9461) 2024-09-17 11:19:46 +03:00
get-model.cpp ci : add model tests + script wrapper (#4586) 2024-01-26 14:18:00 +02:00
get-model.h ci : add model tests + script wrapper (#4586) 2024-01-26 14:18:00 +02:00
run-json-schema-to-grammar.mjs json-schema-to-grammar improvements (+ added to server) (#5978) 2024-03-21 11:50:43 +00:00
test-arg-parser.cpp common : use common_ prefix for common library functions (#9805) 2024-10-10 22:57:42 +02:00
test-autorelease.cpp ggml : add numa options (#5377) 2024-02-16 11:31:07 +02:00
test-backend-ops.cpp ggml : fix BLAS with unsupported types (#9775) 2024-10-08 14:21:43 +02:00
test-barrier.cpp threadpool : skip polling for unused threads (#9461) 2024-09-17 11:19:46 +03:00
test-c.c Nomic Vulkan backend (#4456) 2024-01-29 15:50:50 -05:00
test-chat-template.cpp common : use common_ prefix for common library functions (#9805) 2024-10-10 22:57:42 +02:00
test-double-float.cpp ggml : minor naming changes (#8433) 2024-07-12 10:46:02 +03:00
test-grad0.cpp ggml: fix gradient allocation logic (ggml/966) 2024-10-01 16:07:38 +03:00
test-grammar-integration.cpp llama : refactor sampling v2 (#9294) 2024-09-07 15:16:19 +03:00
test-grammar-parser.cpp llama : refactor sampling v2 (#9294) 2024-09-07 15:16:19 +03:00
test-json-schema-to-grammar.cpp grammar : fix JSON Schema for string regex with top-level alt. (#9903) 2024-10-16 19:03:24 +03:00
test-llama-grammar.cpp llama : refactor sampling v2 (#9294) 2024-09-07 15:16:19 +03:00
test-log.cpp common : use common_ prefix for common library functions (#9805) 2024-10-10 22:57:42 +02:00
test-lora-conversion-inference.sh lora : fix llama conversion script with ROPE_FREQS (#9117) 2024-08-23 12:58:53 +02:00
test-model-load-cancel.cpp ggml : add numa options (#5377) 2024-02-16 11:31:07 +02:00
test-opt.cpp code : normalize enum names (#5697) 2024-02-25 12:09:09 +02:00
test-quantize-fns.cpp ggml : fix BLAS with unsupported types (#9775) 2024-10-08 14:21:43 +02:00
test-quantize-perf.cpp ggml : fix BLAS with unsupported types (#9775) 2024-10-08 14:21:43 +02:00
test-rope.cpp Threadpool: take 2 (#8672) 2024-08-30 01:20:53 +02:00
test-sampling.cpp sampling : add XTC sampler (#9742) 2024-10-15 12:54:55 +02:00
test-tokenizer-0.cpp common : use common_ prefix for common library functions (#9805) 2024-10-10 22:57:42 +02:00
test-tokenizer-0.py py : logging and flake8 suppression refactoring (#7081) 2024-05-05 08:07:48 +03:00
test-tokenizer-0.sh tests : fix test-tokenizer-0.sh 2024-05-28 15:04:09 +03:00
test-tokenizer-1-bpe.cpp common : use common_ prefix for common library functions (#9805) 2024-10-10 22:57:42 +02:00
test-tokenizer-1-spm.cpp common : use common_ prefix for common library functions (#9805) 2024-10-10 22:57:42 +02:00
test-tokenizer-random.py llama : fix pre-tokenization of non-special added tokens (#8228) 2024-07-13 23:35:10 -04:00