Repository navigation
Fix potential licensing issue - #126
Conversation
remove facebook
|
This is a complete reimplementation of the GPL code. I don't think GPL applies in this case. |
|
https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
@sowa705 you sure? what does facebook use? or is this changed enough not to be considered a translation? |
|
There is no derivative work here. Its a completely different program that happens to implement the same algorithm (in a different way) |
|
@sowa705 Thats exactly what I wanted to clarify by this PR. I suggest changing the language that can imply this repo is a derivative work. |
| [](https://opensource.org/licenses/MIT) | ||
|
|
||
| Inference of [Facebook's LLaMA](https://github.com/facebookresearch/llama) model in pure C/C++ | ||
| Inference of [LLaMA](https://arxiv.org/abs/2302.13971) model in pure C/C++ |
There was a problem hiding this comment.
| Inference of [LLaMA](https://arxiv.org/abs/2302.13971) model in pure C/C++ | |
| Inference of [Facebook's LLaMA](https://arxiv.org/abs/2302.13971) model in pure C/C++ |
* Update README.md * Update README.md remove facebook
|
What about using the model? How can you be sure it's not against their terms? @musabgultekin @sowa705 |
|
I have no idea about that |
Center align cute llama image in README
Deprecate example server
#21944) * Thread safety per request only * Fix ROPE yarn case * Fix sticky stateful config * Use i4/i8 directly for symmetric quant * Use weightless caching * Add WeightlessCacheAttribute to reduce NPU memory usage * Gelu tanh support (#125) * Imrope support (#126) * fix(openvino): explicit ov::Tensor frees in ggml_backend_openvino_free * add GPU,NPU support in OV Dockerfile * add build-openvino.yml ci * Fix sticky stateful config * add concurrency to ov-gpu ci runs. Move OV CI to build-openvino.yml * fix thread-safety of shared runtime context * rope type abstraction for frontend translations * fix editorconfig --------- Co-authored-by: Mustafa Cavus <mustafa.cavus@intel.com> Co-authored-by: Dan Hoffman <dhoff749@gmail.com> Co-authored-by: Ravi Panchumarthy <ravi.panchumarthy@intel.com>
* Update README.md * Update README.md remove facebook
Co-authored-by: Iwan Kawrakow <iwan.kawrakow@gmail.com>
* Update README.md * Update README.md remove facebook
ggml-org#21944) * Thread safety per request only * Fix ROPE yarn case * Fix sticky stateful config * Use i4/i8 directly for symmetric quant * Use weightless caching * Add WeightlessCacheAttribute to reduce NPU memory usage * Gelu tanh support (ggml-org#125) * Imrope support (ggml-org#126) * fix(openvino): explicit ov::Tensor frees in ggml_backend_openvino_free * add GPU,NPU support in OV Dockerfile * add build-openvino.yml ci * Fix sticky stateful config * add concurrency to ov-gpu ci runs. Move OV CI to build-openvino.yml * fix thread-safety of shared runtime context * rope type abstraction for frontend translations * fix editorconfig --------- Co-authored-by: Mustafa Cavus <mustafa.cavus@intel.com> Co-authored-by: Dan Hoffman <dhoff749@gmail.com> Co-authored-by: Ravi Panchumarthy <ravi.panchumarthy@intel.com>
…s (#21944) * Thread safety per request only * Fix ROPE yarn case * Fix sticky stateful config * Use i4/i8 directly for symmetric quant * Use weightless caching * Add WeightlessCacheAttribute to reduce NPU memory usage * Gelu tanh support (#125) * Imrope support (#126) * fix(openvino): explicit ov::Tensor frees in ggml_backend_openvino_free * add GPU,NPU support in OV Dockerfile * add build-openvino.yml ci * Fix sticky stateful config * add concurrency to ov-gpu ci runs. Move OV CI to build-openvino.yml * fix thread-safety of shared runtime context * rope type abstraction for frontend translations * fix editorconfig --------- Co-authored-by: Mustafa Cavus <mustafa.cavus@intel.com> Co-authored-by: Dan Hoffman <dhoff749@gmail.com> Co-authored-by: Ravi Panchumarthy <ravi.panchumarthy@intel.com>
ggml-org#21944) * Thread safety per request only * Fix ROPE yarn case * Fix sticky stateful config * Use i4/i8 directly for symmetric quant * Use weightless caching * Add WeightlessCacheAttribute to reduce NPU memory usage * Gelu tanh support (ggml-org#125) * Imrope support (ggml-org#126) * fix(openvino): explicit ov::Tensor frees in ggml_backend_openvino_free * add GPU,NPU support in OV Dockerfile * add build-openvino.yml ci * Fix sticky stateful config * add concurrency to ov-gpu ci runs. Move OV CI to build-openvino.yml * fix thread-safety of shared runtime context * rope type abstraction for frontend translations * fix editorconfig --------- Co-authored-by: Mustafa Cavus <mustafa.cavus@intel.com> Co-authored-by: Dan Hoffman <dhoff749@gmail.com> Co-authored-by: Ravi Panchumarthy <ravi.panchumarthy@intel.com>
…e (llama.cpp-9trn) test-mem-handle-wrong-device reported PASS while skipping cases, on this host, today: main() always fell through to the unconditional `fprintf(...ALL TESTS PASSED); return 0;` tail regardless of how many of its six TEST_SKIP() sites fired, and its ctest registration carried no SKIP_RETURN_CODE, so a skipped run rendered as ctest "Passed". Two of the six skip sites require a second GPU device while the registration pinned ONEAPI_DEVICE_SELECTOR=level_zero:1 (one device), so those two cases have skipped on every run on this host since the test was written. - Include tests/test-skip.h (LLAMA_TEST_EXIT_SKIP=77), matching the sibling test-mem-ops.cpp pattern. - Route the two skip paths that were never counted (the sycl::exception catch and the no-GPU else branch around the arena/retention tests) through g_tests_skipped++, so the skip count is accurate regardless of which path is taken. - main()'s trailing block now checks g_tests_skipped: any failure still returns 1; any skip with no failure returns LLAMA_TEST_EXIT_SKIP (77); only a run where everything actually ran and passed returns 0 and prints "ALL TESTS PASSED". - CMakeLists.txt: add SKIP_RETURN_CODE 77 to the mem-handle-wrong-device registration (matching ~45 other targets in this file), so ctest reports the skip as "Skipped" instead of "Passed". Widening the registration's selector to level_zero:0,1 (this host has two discrete cards, B70=0/B50=1; the iGPU must never be admitted) was tried, since that would let the two 2-GPU-only cases run for real instead of skipping. Verified empirically: with two real devices visible, test 5's CHUNK_LEASE wrong-device assertion fails -- not a production bug, but a pre-existing test defect (that assertion targets a HOST-PINNED CHUNK_LEASE handle, and mem_handle::resolve(int) deliberately treats host-pinned/host-mmap pointers as device-agnostic, skipping the wrong-device check for them by design -- see the comment above mem-handle.cpp:935). It was never caught because it only executes when n_gpu_devices >= 2, which this registration never provided before. Filed as llama.cpp-os9t for whoever fixes the assertion; per Ruling 2 this change does not touch mem_handle::resolve()'s check. Kept the registration at level_zero:1 and documented the finding in both files so a future widening attempt does not repeat the investigation; the two 2-GPU-only cases now honestly exit-77-skip instead of silently passing. Evidence (ONEAPI_DEVICE_SELECTOR pinned every run; GPU log clean; Shmem/ MemAvailable sampled before/after each, no growth): - RED (pre-fix, level_zero:1): "Tests: 9 run, 9 passed, 2 skipped" then "ALL TESTS PASSED", rc=0. - GREEN (post-fix, level_zero:0,1, widening probe): "Tests: 11 run, 10 passed, 0 skipped" then "SOME TESTS FAILED", rc=1 -- the CHUNK_LEASE test-defect above, which is why the registration was kept at level_zero:1. - GREEN (post-fix, level_zero:1): "Tests: 9 run, 9 passed, 2 skipped" then "SKIP: 2 case(s) did not run -- NOT verified.", rc=77. - ctest --test-dir build -R '^mem-handle-wrong-device$' --output-on-failure: "1/1 Test ggml-org#126: mem-handle-wrong-device ..........***Skipped", rc=0. - ctest --test-dir build -N | grep mem-handle-wrong-device confirms the registered name is 'mem-handle-wrong-device'. Related: llama.cpp-fxrg, llama.cpp-enxh, llama.cpp-os9t. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WFRnuREKjYg95sZ53h2ztF
ggml-org#126) * dflash: read the confidence-head metadata key instead of only guessing Cleanup, no behaviour change for any valid checkpoint. These files already write dflash.confidence_head, and nothing read it. The runtime inferred the same fact from whether markov_w1.weight was present. That works for a complete export, but the two can disagree, and when they do the model loads as plain DFlash and reads drafts one row late. Acceptance drops hard and nothing says why. This declares the key and cross-checks it against the tensors: if the metadata claims a confidence head and markov_w1.weight is absent, the load fails with a message that names the cause. The tensor remains the fallback when the key is absent, so older exports load exactly as before. Verified: - the real drafter is unchanged, 65.891% acceptance and mean length 3.58, the same as on the current prism-v7 tip - a synthetic GGUF that sets dflash.confidence_head with no markov_w1.weight now fails on load with the new message, instead of loading and drafting badly Not in this change: dflash.sample_from_anchor is still only honoured on the DSpark path, so the row offset and the confidence head are still coupled through one flag. Decoupling them needs the converter to write sample_from_anchor explicitly for both lineages, because its default of true is DSpark-shaped and applying it uniformly today would change DFlash behaviour. * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Pasha Khosravi <khosravipasha@users.noreply.github.com> Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
vulkan : top-k n-ary search never selected +inf
Enforce minimum hrx commit when building with `HRX_SOURCE_DIR`
ggml-org#126) * dflash: read the confidence-head metadata key instead of only guessing Cleanup, no behaviour change for any valid checkpoint. These files already write dflash.confidence_head, and nothing read it. The runtime inferred the same fact from whether markov_w1.weight was present. That works for a complete export, but the two can disagree, and when they do the model loads as plain DFlash and reads drafts one row late. Acceptance drops hard and nothing says why. This declares the key and cross-checks it against the tensors: if the metadata claims a confidence head and markov_w1.weight is absent, the load fails with a message that names the cause. The tensor remains the fallback when the key is absent, so older exports load exactly as before. Verified: - the real drafter is unchanged, 65.891% acceptance and mean length 3.58, the same as on the current prism-v7 tip - a synthetic GGUF that sets dflash.confidence_head with no markov_w1.weight now fails on load with the new message, instead of loading and drafting badly Not in this change: dflash.sample_from_anchor is still only honoured on the DSpark path, so the row offset and the confidence head are still coupled through one flag. Decoupling them needs the converter to write sample_from_anchor explicitly for both lineages, because its default of true is DSpark-shaped and applying it uniformly today would change DFlash behaviour. * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Pasha Khosravi <khosravipasha@users.noreply.github.com> Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> (cherry picked from commit 0c44899) Assisted-by: GitHub Copilot
Resolve the draft block layout from the model, validate confidence-head metadata, and reject missing draft mask tokens. Add the legacy DSpark-to-DFlash GGUF converter and its command entry point. Based on bri-prism and Pasha Khosravi's Prism ggml-org#122, ggml-org#126, ggml-org#127 and ggml-org#129 changes. Include the acceptance-floor regression test. Source: PrismML-Eng@adc79e8 Source: PrismML-Eng@18d5846 Source: PrismML-Eng@0c44899 Co-authored-by: Pasha Khosravi <khosravipasha@users.noreply.github.com> Co-authored-by: Pasha Khosravi <khosravipasha@gmail.com> Assisted-by: GitHub Copilot Assisted-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Assisted-by: OpenAI Codex Ported and rebased by Codex.
Resolve the draft block layout from the model, validate confidence-head metadata, and reject missing draft mask tokens. Add the legacy DSpark-to-DFlash GGUF converter and its command entry point. Based on bri-prism and Pasha Khosravi's Prism ggml-org#122, ggml-org#126, ggml-org#127 and ggml-org#129 changes. Include the acceptance-floor regression test. Source: PrismML-Eng@adc79e8 Source: PrismML-Eng@18d5846 Source: PrismML-Eng@0c44899 Co-authored-by: Pasha Khosravi <khosravipasha@users.noreply.github.com> Co-authored-by: Pasha Khosravi <khosravipasha@gmail.com> Assisted-by: GitHub Copilot Assisted-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Assisted-by: OpenAI Codex Ported and rebased by Codex.
I'm not an expert on Licenses BUT,
If you attribute Facebook in the README and description, you essentially admit/imply that this repo is a modification of their repo. Facebook's repo has "GPL-3.0 license". Which means this repo should also be like that in that case, which is something that we dont want.
This PR fixing that potential language issue.
Also recommend changing the description too. Such as
"Port of LLaMA model in C/C++"