Browse Source

Change List types in executor state to arrays to enforce copy on get/set operations

tags/0.11.0
eublefar 1 year ago
parent
commit
af796fc3e9
3 changed files with 15 additions and 15 deletions
  1. +3
    -3
      LLama/LLamaExecutorBase.cs
  2. +6
    -6
      LLama/LLamaInstructExecutor.cs
  3. +6
    -6
      LLama/LLamaInteractExecutor.cs

+ 3
- 3
LLama/LLamaExecutorBase.cs View File

@@ -388,13 +388,13 @@ namespace LLama
public string? SessionFilePath { get; set; }

[JsonPropertyName("embd")]
public List<LLamaToken> Embeds { get; set; }
public LLamaToken[] Embeds { get; set; }

[JsonPropertyName("embd_inps")]
public List<LLamaToken> EmbedInps { get; set; }
public LLamaToken[] EmbedInps { get; set; }

[JsonPropertyName("session_tokens")]
public List<LLamaToken> SessionTokens { get; set; }
public LLamaToken[] SessionTokens { get; set; }

[JsonPropertyName("last_n_tokens")]
public LLamaToken[] LastTokens { get; set; }


+ 6
- 6
LLama/LLamaInstructExecutor.cs View File

@@ -49,17 +49,17 @@ namespace LLama
InstructExecutorState state = new()
{
ConsumedSessionCount = _n_session_consumed,
EmbedInps = _embed_inps,
EmbedInps = _embed_inps.ToArray(),
IsPromptRun = _is_prompt_run,
ConsumedTokensCount = _consumedTokensCount,
Embeds = _embeds,
Embeds = _embeds.ToArray(),
LastTokens = _last_n_tokens.ToArray(),
InputPrefixTokens = _inp_pfx,
InputSuffixTokens = _inp_sfx,
MatchingSessionTokensCount = _n_matching_session_tokens,
PastTokensCount = _pastTokensCount,
SessionFilePath = _pathSession,
SessionTokens = _session_tokens,
SessionTokens = _session_tokens.ToArray(),
LastTokensCapacity = _last_n_tokens.Capacity,
MirostatMu = MirostatMu
};
@@ -71,17 +71,17 @@ namespace LLama
if(data is InstructExecutorState state)
{
_n_session_consumed = state.ConsumedSessionCount;
_embed_inps = state.EmbedInps;
_embed_inps = state.EmbedInps.ToList();
_is_prompt_run = state.IsPromptRun;
_consumedTokensCount = state.ConsumedTokensCount;
_embeds = state.Embeds;
_embeds = state.Embeds.ToList();
_last_n_tokens = new FixedSizeQueue<LLamaToken>(state.LastTokensCapacity, state.LastTokens);
_inp_pfx = state.InputPrefixTokens;
_inp_sfx = state.InputSuffixTokens;
_n_matching_session_tokens = state.MatchingSessionTokensCount;
_pastTokensCount = state.PastTokensCount;
_pathSession = state.SessionFilePath;
_session_tokens = state.SessionTokens;
_session_tokens = state.SessionTokens.ToList();
}
else
{


+ 6
- 6
LLama/LLamaInteractExecutor.cs View File

@@ -39,15 +39,15 @@ namespace LLama
InteractiveExecutorState state = new()
{
ConsumedSessionCount = _n_session_consumed,
EmbedInps = _embed_inps,
EmbedInps = _embed_inps.ToArray(),
IsPromptRun = _is_prompt_run,
ConsumedTokensCount = _consumedTokensCount,
Embeds = _embeds,
Embeds = _embeds.ToArray(),
LastTokens = _last_n_tokens.ToArray(),
MatchingSessionTokensCount = _n_matching_session_tokens,
PastTokensCount = _pastTokensCount,
SessionFilePath = _pathSession,
SessionTokens = _session_tokens,
SessionTokens = _session_tokens.ToArray(),
LastTokensCapacity = _last_n_tokens.Capacity,
MirostatMu = MirostatMu
};
@@ -59,15 +59,15 @@ namespace LLama
if (data is InteractiveExecutorState state)
{
_n_session_consumed = state.ConsumedSessionCount;
_embed_inps = state.EmbedInps;
_embed_inps = state.EmbedInps.ToList();
_is_prompt_run = state.IsPromptRun;
_consumedTokensCount = state.ConsumedTokensCount;
_embeds = state.Embeds;
_embeds = state.Embeds.ToList();
_last_n_tokens = new FixedSizeQueue<LLamaToken>(state.LastTokensCapacity, state.LastTokens);
_n_matching_session_tokens = state.MatchingSessionTokensCount;
_pastTokensCount = state.PastTokensCount;
_pathSession = state.SessionFilePath;
_session_tokens = state.SessionTokens;
_session_tokens = state.SessionTokens.ToList();
}
else
throw new ArgumentException("Invalid state data type.");


Loading…
Cancel
Save