2023-08-23 06:20:13 +08:00
|
|
|
|
using LLama.Common;
|
2023-08-09 08:07:42 +08:00
|
|
|
|
|
|
|
|
|
namespace LLama.Unittest
|
|
|
|
|
{
|
|
|
|
|
public class LLamaContextTests
|
|
|
|
|
: IDisposable
|
|
|
|
|
{
|
|
|
|
|
private readonly LLamaWeights _weights;
|
|
|
|
|
private readonly LLamaContext _context;
|
|
|
|
|
|
|
|
|
|
public LLamaContextTests()
|
|
|
|
|
{
|
2023-08-25 23:37:44 +08:00
|
|
|
|
var @params = new ModelParams(Constants.ModelPath)
|
2023-08-09 08:07:42 +08:00
|
|
|
|
{
|
|
|
|
|
ContextSize = 768,
|
|
|
|
|
};
|
|
|
|
|
_weights = LLamaWeights.LoadFromFile(@params);
|
2023-08-22 08:25:45 +08:00
|
|
|
|
_context = _weights.CreateContext(@params);
|
2023-08-09 08:07:42 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void Dispose()
|
|
|
|
|
{
|
|
|
|
|
_weights.Dispose();
|
|
|
|
|
_context.Dispose();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void CheckProperties()
|
|
|
|
|
{
|
|
|
|
|
Assert.Equal(768, _context.ContextSize);
|
|
|
|
|
Assert.Equal(4096, _context.EmbeddingSize);
|
2023-08-31 04:08:29 +08:00
|
|
|
|
Assert.Equal(32000, _context.VocabCount);
|
2023-09-11 07:10:08 +08:00
|
|
|
|
Assert.Equal(0, _context.KVCacheTokenCount);
|
2023-08-09 08:07:42 +08:00
|
|
|
|
}
|
2023-09-12 08:03:27 +08:00
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void Tokenize()
|
|
|
|
|
{
|
|
|
|
|
var tokens = _context.Tokenize("The quick brown fox", true);
|
|
|
|
|
|
|
|
|
|
Assert.Equal(new[] { 1, 450, 4996, 17354, 1701, 29916 }, tokens);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void TokenizeWithoutBOS()
|
|
|
|
|
{
|
|
|
|
|
var tokens = _context.Tokenize("The quick brown fox", false);
|
|
|
|
|
|
|
|
|
|
Assert.Equal(new[] { 450, 4996, 17354, 1701, 29916 }, tokens);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void TokenizeEmpty()
|
|
|
|
|
{
|
|
|
|
|
var tokens = _context.Tokenize("", false);
|
|
|
|
|
|
|
|
|
|
Assert.Equal(Array.Empty<int>(), tokens);
|
|
|
|
|
}
|
2023-08-09 08:07:42 +08:00
|
|
|
|
}
|
|
|
|
|
}
|