Martin Evans
c9c8cd0d62
- Swapped embeddings generator to use `llama_decode`
- Modified `GetEmbeddings` method to be async
2 years ago
Martin Evans
22aba9a671
Merge pull request #473 from martindevans/base_handle_removed_constructor
Removed `SafeLLamaHandleBase` Constructor
2 years ago
Martin Evans
5da2a2f64b
- Removed one of the constructors of `SafeLLamaHandleBase`, which implicitly states that memory is owned. Better to be explicit about this kind of thing!
- Also fixed `ToString()` in `SafeLLamaHandleBase`
2 years ago
Martin Evans
9b995510d6
Removed all setters in `IModelParams` and `IContextParams`, allowing implementations to be immutable.
2 years ago
Jason Couture
ec59c5bf9e
Fix missing library name prefix for cuda
2 years ago
Jason Couture
443ce4fff4
While the dllimport changes work, manual path searching needed to be updated
2 years ago
Jason Couture
db7e1e88f8
Use llama instead of libllama in `[DllImport]`
This results in windows users not needing to rename the DLL. This allows native llama builds to be dropped in, even on windows.
I also took the time to update the documentation, removing references to renaming the files, since the names now match.
Fixes #463
2 years ago
dependabot[bot]
d8eb817bf5
build(deps): bump System.Text.Json from 8.0.0 to 8.0.1
Bumps [System.Text.Json](https://github.com/dotnet/runtime ) from 8.0.0 to 8.0.1.
- [Release notes](https://github.com/dotnet/runtime/releases )
- [Commits](https://github.com/dotnet/runtime/compare/v8.0.0...v8.0.1 )
---
updated-dependencies:
- dependency-name: System.Text.Json
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2 years ago
Martin Evans
92b9bbe779
Added methods to `SafeLLamaContextHandle` for KV cache manipulation
2 years ago
Martin Evans
a690db5d3e
Fixed build error caused by extra unnecessary parameter
2 years ago
Martin Evans
96c26c25f5
Merge pull request #445 from martindevans/stateless_executor_llama_decode
Swapped `StatelessExecutor` to use `llama_decode`!
2 years ago
Martin Evans
9fe878ae1f
- Fixed example
- Growing more than double, if necessary
2 years ago
Martin Evans
9ede1bedc2
Automatically growing batch n_seq_max when exceeded. This means no parameters need to be picked when the batch is created.
2 years ago
Martin Evans
a2e29d393c
Swapped `StatelessExecutor` to use `llama_decode`!
- Added `logits_i` argument to `Context.ApplyPenalty`
- Added a new exception type for `llama_decode` return code
2 years ago
Martin Evans
5b6e82a594
Improved the BatchedDecoding demo:
- using less `NativeHandle`
- Using `StreamingTokenDecoder` instead of obsolete detokenize method
2 years ago
Martin Evans
99969e538e
- Removed some unused `eval` methods.
- Added a `DecodeAsync` overload which runs the work in a task
- Replaced some `NativeHandle` usage in `BatchedDecoding` with higher level equivalents.
- Made the `LLamaBatch` grow when token capacity is exceeded, removing the need to manage token capacity externally.
2 years ago
Martin Evans
36a9335588
Removed `LLamaBatchSafeHandle` (using unmanaged memory, created by llama.cpp) and replaced it with a fully managed `LLamaBatch`. Modified the `BatchedDecoding` example to use new managed batch.
2 years ago
Martin Evans
1472704e12
Added a test with examples of troublesome strings from 0.9.1
2 years ago
Martin Evans
73172bbaba
Merge pull request #438 from martindevans/cleanup_model_unnecessary_unsafe
Model Metadata Loading Cleanup
2 years ago
Martin Evans
ce1d302e7e
Moved some native methods into `SafeLlamaModelHandle`, these methods are all wrapped in safer accessors with no extra costs so there is no need to expose them.
2 years ago
Martin Evans
1e86755071
- Removed unnecessary `unsafe` block in model metadata loading
- Clarified comments on native metadata loading methods
2 years ago
Martin Evans
de2b20aae5
- Added a specific exception for failing to load model weights.
- Checking if model is readable
2 years ago
Martin Evans
096e0e75f8
Check that the model file actually exists immediately before loading it. Improve #395
2 years ago
Martin Evans
3c6af909dd
Merge pull request #434 from martindevans/stateless_eos_check
Added a check for EOS token in LLamaStatelessExecutor
2 years ago
Martin Evans
f160fbd6d1
Added a check for EOS token in LLamaStatelessExecutor
2 years ago
Martin Evans
2ea2048b78
- Added a test for tokenizing just a new line (reproduce issue https://github.com/SciSharp/LLamaSharp/issues/430 )
- Properly displaying `LLamaToken`
- Removed all tokenisation code in `SafeLLamaContextHandle` - just pass it all through to the `SafeLlamaModelHandle`
- Improved `SafeLlamaModelHandle` tokenisation:
- Renting an array, for one less allocation
- Not using `&tokens[0]` to take a pointer to an array, this is redundant and doesn't work on empty arrays
2 years ago
Martin Evans
98635a0d5a
Fixed decoding of large tokens (over 16 bytes) in streaming text decoder
2 years ago
Martin Evans
402a110a3a
Merge pull request #404 from martindevans/switched_to_LLamaToken_struct
LLamaToken Struct
2 years ago
Steven Kennedy
988f2fa302
Reverted Net8.0
2 years ago
Steven Kennedy
cf2e9e35f8
Updating the GpuLayerCount to mirror the Python Port of Llama.cpp
2 years ago
Martin Evans
9573e2c9ba
Merge pull request #417 from martindevans/safe_handle_initialisation
Safer Handle Initialisation
2 years ago
Martin Evans
1e69e265b6
Moved some native methods to do with creating/destroying resources into their respective handles. There is **no** safe way to call most of these methods, everything must be done through through handles.
2 years ago
Martin Evans
8416cb866a
Improved exceptions in IModelParams for unknown KV override types.
2 years ago
Martin Evans
82727c4414
Removed collection expressions from test
2 years ago
Martin Evans
2eb52b1630
made casts to/from int explicit, fixed places affected
2 years ago
Martin Evans
42be9b136d
Switched form using raw integers, to a `LLamaToken` struct
2 years ago
Martin Evans
48ef3bb080
Added runtime checks that UseMemoryLock and UseMemorymap are actually supported.
2 years ago
Martin Evans
4e5e994dda
- directly returning a SafeLlamaModelHandle, instead of an IntPtr which is wrapped in a handle.
- made `llama_backend_init` private. This is automatically called, there is no way it can correctly be used externally.
- made `llama_token_to_piece` safe (Span instead of pointer)
2 years ago
Martin Evans
bac3e43498
Fixed handling of empty spans
2 years ago
Martin Evans
3925545147
Fixed LLamaExecutorBase.cs
2 years ago
Martin Evans
c002642268
- Removed some `unsafe` where it wasn't necessary
- Wrapped some native functions which take (pointer, length) in function which take a `span` instead.
2 years ago
Martin Evans
f860f88c36
Code cleanup driven by R# suggestions:
- Made `NativeApi` into a `static class` (it's not intended to be instantiated)
- Moved `LLamaTokenType` enum out into a separate file
- Made `LLamaSeqId` and `LLamaPos` into `record struct`, convenient to have equality etc
2 years ago
Martin Evans
2cded1b296
Fixed alignment of value fields in `LLamaModelMetadataOverride`
2 years ago
Martin Evans
3fc0f34cbe
Fixed some issues which were causing metadata overrides not to work (mostly importantly, converting the key was failing so all keys were null bytes and thus ignored).
2 years ago
Martin Evans
6be3f62321
Fixed loading of very large metadata values (over 1kb)
2 years ago
Martin Evans
f0d7468b22
Merge pull request #356 from xbotter/deps/sk-rc3
bump sk to 1.0.1 & km to 0.18
2 years ago
xbotter
211ce12bf5
LLamaEmbedder exposes the Context
2 years ago
Martin Evans
fb606c2488
Fixed incorrect values
2 years ago
Martin Evans
47e4fcef2a
Fixed GetString on netstandard2
2 years ago
Martin Evans
2a1e1b6183
Removed unused imports
2 years ago