Ship Assistent 0.13.0: real QLoRA pipeline and GGUF Ollama register.
Replace fake train loop with TRL SFTTrainer, HF column mapping with fiction preset, safetensors to GGUF conversion, and ollama create using ollama_base plus ADAPTER. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
+10
-1
@@ -296,6 +296,7 @@ public partial class SwarmAssistentExtension
|
||||
{
|
||||
List<JObject> samples = Memory.ListTrainSamples(status, null, null, 5000);
|
||||
StringBuilder sb = new();
|
||||
int exported = 0;
|
||||
foreach (JObject s in samples)
|
||||
{
|
||||
JArray messages = s["messages"] as JArray ?? [];
|
||||
@@ -303,6 +304,7 @@ public partial class SwarmAssistentExtension
|
||||
{
|
||||
continue;
|
||||
}
|
||||
exported++;
|
||||
if (string.Equals(format, "sharegpt", StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
JArray conv = [];
|
||||
@@ -328,7 +330,7 @@ public partial class SwarmAssistentExtension
|
||||
}
|
||||
string path = Path.Combine(TrainingRoot(), "datasets", $"export_{DateTimeOffset.UtcNow.ToUnixTimeMilliseconds()}.jsonl");
|
||||
await File.WriteAllTextAsync(path, sb.ToString(), Encoding.UTF8);
|
||||
return new JObject { ["success"] = true, ["path"] = path, ["count"] = samples.Count, ["content"] = sb.ToString() };
|
||||
return new JObject { ["success"] = true, ["path"] = path, ["count"] = exported, ["content"] = sb.ToString() };
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
@@ -416,11 +418,18 @@ public partial class SwarmAssistentExtension
|
||||
{
|
||||
await Task.CompletedTask;
|
||||
JObject job = string.IsNullOrWhiteSpace(id) ? Memory.GetActiveTrainJob() : Memory.GetTrainJob(id);
|
||||
if (job is not null && TrainingJobManager.IsRunning && string.Equals(job["id"]?.ToString(), TrainingJobManager.CurrentJobId, StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
JObject live = TrainingJobManager.GetProgress();
|
||||
job["progress_json"] = live.ToString(Newtonsoft.Json.Formatting.None);
|
||||
job["status"] = live["status"]?.ToString() ?? job["status"];
|
||||
}
|
||||
return new JObject
|
||||
{
|
||||
["success"] = true,
|
||||
["job"] = job,
|
||||
["training_active"] = TrainingJobManager.IsRunning,
|
||||
["progress"] = TrainingJobManager.IsRunning ? TrainingJobManager.GetProgress() : null,
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user