21#ifndef TINYLLM_CONFIG_DEFINED
22#define TINYLLM_CONFIG_DEFINED
52 virtual void Create()
override;
53 virtual void Destroy()
override;
68 float*
GetWq()
const {
return mWq; }
69 float*
GetWk()
const {
return mWk; }
70 float*
GetWv()
const {
return mWv; }
71 float*
GetWo()
const {
return mWo; }
73 float*
GetW1()
const {
return mW1; }
74 float*
GetW2()
const {
return mW2; }
75 float*
GetW3()
const {
return mW3; }
84 void Encode(
const char* text,
bool addBos,
bool addEos, std::vector<int32_t>& outTokens);
85 std::string Decode(
int prevToken,
int token);
88 size_t GetWeightMemorySize()
const;
89 size_t GetKVCacheMemorySize(int32_t maxSeqLen)
const;
93 static bool HandlePropChange(
Datum* datum, uint32_t index,
const void* newValue);
95 void SetupWeightPointers();
101 float* mTokenEmbedding =
nullptr;
102 float* mRmsAttWeight =
nullptr;
103 float* mWq =
nullptr;
104 float* mWk =
nullptr;
105 float* mWv =
nullptr;
106 float* mWo =
nullptr;
107 float* mRmsFfnWeight =
nullptr;
108 float* mW1 =
nullptr;
109 float* mW2 =
nullptr;
110 float* mW3 =
nullptr;
111 float* mRmsFinalWeight =
nullptr;
112 float* mWcls =
nullptr;
Platform
Definition EngineTypes.h:31
#define POLYPHASE_API
Definition PolyphaseAPI.h:31
virtual bool Import(const std::string &path, ImportOptions *options=nullptr)
Definition Asset.cpp:244
virtual void Create()
Definition Asset.cpp:77
virtual void SaveStream(Stream &stream, Platform platform)
Definition Asset.cpp:236
virtual glm::vec4 GetTypeColor()
Definition Asset.cpp:254
virtual const char * GetTypeImportExt()
Definition Asset.cpp:264
virtual const char * GetTypeName()
Definition Asset.cpp:259
virtual void GatherProperties(std::vector< Property > &outProps) override
Definition Asset.cpp:249
virtual void LoadStream(Stream &stream, Platform platform)
Definition Asset.cpp:222
virtual void Destroy()
Definition Asset.cpp:87
Asset containing a tiny LLM model and tokenizer.
Definition TinyLLMAsset.h:43
std::vector< float > mWeightData
Definition TinyLLMAsset.h:115
float * GetRmsAttWeight() const
Definition TinyLLMAsset.h:67
float * GetWk() const
Definition TinyLLMAsset.h:69
float * GetWv() const
Definition TinyLLMAsset.h:70
float * GetTokenEmbedding() const
Definition TinyLLMAsset.h:66
float * GetWo() const
Definition TinyLLMAsset.h:71
DECLARE_ASSET(TinyLLMAsset, Asset)
AssetRef mTokenizer
Definition TinyLLMAsset.h:118
float * GetRmsFinalWeight() const
Definition TinyLLMAsset.h:76
float * GetRmsFfnWeight() const
Definition TinyLLMAsset.h:72
TinyLLMConfig mConfig
Definition TinyLLMAsset.h:98
float * GetWcls() const
Definition TinyLLMAsset.h:77
float * GetWq() const
Definition TinyLLMAsset.h:68
float * GetW2() const
Definition TinyLLMAsset.h:74
const TinyLLMConfig & GetConfig() const
Definition TinyLLMAsset.h:63
float * GetW3() const
Definition TinyLLMAsset.h:75
float * GetW1() const
Definition TinyLLMAsset.h:73
Asset containing tokenizer vocabulary for TinyLLM models.
Definition TinyLLMTokenizerAsset.h:17
Configuration for the transformer model.
Definition TinyLLMAsset.h:27
int32_t n_heads
Definition TinyLLMAsset.h:31
int32_t n_layers
Definition TinyLLMAsset.h:30
int32_t hidden_dim
Definition TinyLLMAsset.h:29
int32_t seq_len
Definition TinyLLMAsset.h:34
int32_t dim
Definition TinyLLMAsset.h:28
int32_t vocab_size
Definition TinyLLMAsset.h:33
int32_t n_kv_heads
Definition TinyLLMAsset.h:32