- 05 Nov, 2024 3 commits
-
-
Daniel Hiltgen authored
One potential failure mode is an empty file which bubbles up as an EOF error, leading to all pulls and listing operations failing. Instead, continue and warn about the corrupt manifest. This also allows re-pulling the corrupt manifest to repair the system.
-
Jesse Gross authored
Currently we assume that images take 768 tokens of context size for the purposes of clipping old messages that exceed the context window. However, our mllama implementation stores the full image embedding in a single token. As a result, there is significant waste of context space. Ideally, we would handle this more generically and have the implementation report the number of tokens. However, at the moment this would just result in a similar set of 'if' conditions in the runner plus APIs to report it back. So for now, we just keep this simple.
-
Med Marrouchi authored
-
- 04 Nov, 2024 6 commits
-
-
Daniel Hiltgen authored
Avoid excessive log spew and make consistent with chat logging
-
Daniel Hiltgen authored
-
Daniel Hiltgen authored
Github actions matrix strategy can't access env settings
-
Michael Yang authored
update llama3.2 vision memory estimation
-
Daniel Hiltgen authored
-
suncloudsmoon authored
-
- 02 Nov, 2024 4 commits
-
-
Daniel Hiltgen authored
The runtime and management libraries may not always have identical ordering, so use the device UUID to correlate instead of ID.
-
Daniel Hiltgen authored
This leverages caching, and some reduced installer scope to try to speed up builds. It also tidies up some windows build logic that was only relevant for the older generate/cmake builds.
-
Jesse Gross authored
Check for NULL return values from llama.cpp in more places and convert them into Go errors, which should make debugging easier in the future rather than having hidden surprises in our data structures.
-
Jesse Gross authored
Mllama has large embeddings (100 MB per image) and each embedding is represented as 1 token when passed to llama.cpp. Batches are pre- allocated for the size of the tokens times the batch size, so this results in allocations of over 50 GB at the default batch size. On some systems, these mallocs will fail. Since an image is represented as a single token and mllama doesn't support more than 1 image per request, we only need to allocate a batch size of 1, which is much more reasonable. In addition, for non-multimodal models, we don't need to allocate the embedding batches at all. Fixes #7464
-
- 01 Nov, 2024 3 commits
-
-
Michael Yang authored
-
Michael Yang authored
-
Daniel Hiltgen authored
-
- 31 Oct, 2024 2 commits
-
-
Jesse Gross authored
Currently if an input has embeddings at any point then we will set cross attention to true from the beginning. This means that any tokens before the embeddings are sent will incorrectly have cross attention layers applied. This only sets cross attention when we have an embedding, either previously in this sequence or in the cache. It also makes cross attention capable of supporting parallelism at the runner level, though the mllama implementation doesn't support that yet.
-
Daniel Hiltgen authored
* Give unicode test more time to run Some slower GPUs (or partial CPU/GPU loads) can take more than the default 30s to complete this test * Give more time for concurrency test CPU inference can be very slow under stress
-
- 30 Oct, 2024 6 commits
-
-
Daniel Hiltgen authored
Until we have full NUMA support, this adjusts the default thread selection algorithm to count up the number of performance cores across all sockets.
-
Jesse Gross authored
-Update mllama to take the cross attention state as embeddings in a batch, more similar to how Llava handles it. This improves integration with the input cache. -Pass locations in a prompt for embeddings using tags similar to Llava. -Abstract interface to vision models so the main runner accesses Clip and Mllama similarly Co-authored-by:Michael Yang <mxyng@pm.me>
-
Daniel Hiltgen authored
This will no longer error if built with regular gcc on windows. To help triage issues that may come in related to different compilers, the runner now reports the compier used by cgo.
-
Daniel Hiltgen authored
* Remove llama.cpp submodule and shift new build to top * CI: install msys and clang gcc on win Needed for deepseek to work properly on windows
-
Daniel Hiltgen authored
-
Daniel Hiltgen authored
* windows: Support alt install paths Advanced users are leveraging innosetup's /DIR switch to target an alternate location, but we get confused by things not existing in the LocalAppData dir. This also hardens the server path lookup code for a future attempt to unify with a ./bin prefix * Fit and finish improvements for windows app Document alternate install location instructions for binaries and model. Pop up progress UI for upgrades (automatic, with cancel button). Expose non-default port in menu to disambiguate mutiple instances. Set minimum Windows version to 10 22H2
-
- 29 Oct, 2024 4 commits
-
-
Patrick Devine authored
-
Daniel Hiltgen authored
* Switch over to clang for deepseek on windows The patch for deepseek requires clang on windows. gcc on windows has a buggy c++ library and can't handle the unicode characters * Fail fast with wrong compiler on windows Avoid users mistakenly building with GCC when we need clang
-
Jesse Gross authored
-
Jesse Gross authored
Llama.cpp sometimes returns NULL as a return value to report an error. We should explicitly check for this and convert it to a Go error rather than putting NULL in our data structures and waiting for it to blow up later.
-
- 28 Oct, 2024 1 commit
-
-
Patrick Devine authored
-
- 27 Oct, 2024 1 commit
-
-
Daniel Hiltgen authored
-
- 26 Oct, 2024 2 commits
-
-
Daniel Hiltgen authored
On windows compiled with gcc the c++ regex library failed to handle the characters
-
Daniel Hiltgen authored
* Better support for AMD multi-GPU This resolves a number of problems related to AMD multi-GPU setups on linux. The numeric IDs used by rocm are not the same as the numeric IDs exposed in sysfs although the ordering is consistent. We have to count up from the first valid gfx (major/minor/patch with non-zero values) we find starting at zero. There are 3 different env vars for selecting GPUs, and only ROCR_VISIBLE_DEVICES supports UUID based identification, so we should favor that one, and try to use UUIDs if detected to avoid potential ordering bugs with numeric IDs * ROCR_VISIBLE_DEVICES only works on linux Use the numeric ID only HIP_VISIBLE_DEVICES on windows
-
- 25 Oct, 2024 2 commits
-
-
Daniel Hiltgen authored
If we're not writing out to a terminal, avoid setting the console mode on windows, which corrupts the output file.
-
Daniel Hiltgen authored
The common src/hdr defs should be in the common definitions, not gpu specific.
-
- 24 Oct, 2024 1 commit
-
-
Daniel Hiltgen authored
This unfies the rocm/cuda dependency logic into the makefile and fixes a missing define which broke windows rocm
-
- 23 Oct, 2024 1 commit
-
-
Bill Wang authored
--------- Co-authored-by:Bill Wang <bill.wang@bill.wang>
-
- 22 Oct, 2024 4 commits
-
-
Daniel Hiltgen authored
Use cosine similarity to make the embeddings tests more robust
-
Patrick Devine authored
-
Daniel Hiltgen authored
On windows ensure windows version define is properly set for rocm. Remove duplicate rocm arch flags. Resolve wildcards in the targets so parallel builds don't race. Use readlink to resolve rocm dependencies since wildcards omit libelf Keep windows rocm deps aligned with unified packaging model
-
Jesse Gross authored
We check for partial unicode characters and accumulate them before sending. However, when we did send, we still sent each individual piece separately, leading to broken output. This combines everything into a single group, which is also more efficient. This also switches to the built-in check for valid unicode characters, which is stricter. After this, we should never send back an invalid sequence. Fixes #7290
-