Browse Source

Moved LoRA loading into `SafeLlamaModelHandle`

tags/v0.4.2-preview
Martin Evans 2 years ago
parent
commit
44b1e93609
3 changed files with 24 additions and 20 deletions
  1. +21
    -0
      LLama/Native/SafeLlamaModelHandle.cs
  2. +2
    -8
      LLama/OldVersion/Utils.cs
  3. +1
    -12
      LLama/Utils.cs

+ 21
- 0
LLama/Native/SafeLlamaModelHandle.cs View File

@@ -37,5 +37,26 @@ namespace LLama.Native

return new SafeLlamaModelHandle(model_ptr);
}

/// <summary>
/// Apply a LoRA adapter to a loaded model
/// </summary>
/// <param name="lora"></param>
/// <param name="modelBase">A path to a higher quality model to use as a base for the layers modified by the
/// adapter. Can be NULL to use the current loaded model.</param>
/// <param name="threads"></param>
/// <exception cref="RuntimeError"></exception>
public void ApplyLoraFromFile(string lora, string? modelBase = null, int threads = -1)
{
var err = NativeApi.llama_model_apply_lora_from_file(
this,
lora,
string.IsNullOrEmpty(modelBase) ? null : modelBase,
threads
);

if (err != 0)
throw new RuntimeError("Failed to apply lora adapter.");
}
}
}

+ 2
- 8
LLama/OldVersion/Utils.cs View File

@@ -35,14 +35,8 @@ namespace LLama.OldVersion
var ctx = SafeLLamaContextHandle.Create(model, lparams);

if (!string.IsNullOrEmpty(@params.lora_adapter))
{
int err = NativeApi.llama_model_apply_lora_from_file(model, @params.lora_adapter,
string.IsNullOrEmpty(@params.lora_base) ? null : @params.lora_base, @params.n_threads);
if (err != 0)
{
throw new RuntimeError("Failed to apply lora adapter.");
}
}
model.ApplyLoraFromFile(@params.lora_adapter, @params.lora_base, @params.n_threads);

return ctx;
}



+ 1
- 12
LLama/Utils.cs View File

@@ -48,19 +48,8 @@ namespace LLama
var ctx = SafeLLamaContextHandle.Create(model, lparams);

if (!string.IsNullOrEmpty(@params.LoraAdapter))
{
var err = NativeApi.llama_model_apply_lora_from_file(
model,
@params.LoraAdapter,
string.IsNullOrEmpty(@params.LoraBase) ? null : @params.LoraBase,
@params.Threads
);
model.ApplyLoraFromFile(@params.LoraAdapter, @params.LoraBase, @params.Threads);

if (err != 0)
{
throw new RuntimeError("Failed to apply lora adapter.");
}
}
return ctx;
}



Loading…
Cancel
Save