fin.read((char *) &hparams.n_head, sizeof(hparams.n_head));
fin.read((char *) &hparams.n_layer, sizeof(hparams.n_layer));
fin.read((char *) &hparams.n_rot, sizeof(hparams.n_rot));
- fin.read((char *) &hparams.par_res, sizeof(hparams.par_res));
+ fin.read((char *) &hparams.par_res, sizeof(hparams.par_res));
fin.read((char *) &hparams.ftype, sizeof(hparams.ftype));
const int32_t qntvr = hparams.ftype / GGML_QNT_VERSION_FACTOR;
const int32_t n_vocab = model.hparams.n_vocab;
std::string word;
+ std::vector<char> buf(128);
+
for (int i = 0; i < n_vocab; i++) {
uint32_t len;
fin.read((char *) &len, sizeof(len));
- word.resize(len);
- fin.read((char *) word.data(), len);
+ buf.resize(len);
+ fin.read((char *) buf.data(), len);
+ word.assign(buf.data(), len);
vocab.token_to_id[word] = i;
vocab.id_to_token[i] = word;
// input for next layer
inpL = ggml_add(ctx0, cur, inpL);
}
-
+
}
// norm
}
std::string word;
+ std::vector<char> buf(128);
+
for (int i = 0; i < n_vocab; i++) {
uint32_t len;
fin.read((char *) &len, sizeof(len));
- word.resize(len);
- fin.read((char *) word.data(), len);
+ buf.resize(len);
+ fin.read((char *) buf.data(), len);
+ word.assign(buf.data(), len);
vocab.token_to_id[word] = i;
vocab.id_to_token[i] = word;
}
std::string word;
+ std::vector<char> buf(128);
+
for (int i = 0; i < n_vocab; i++) {
uint32_t len;
fin.read((char *) &len, sizeof(len));
- word.resize(len);
- fin.read((char *) word.data(), len);
+ buf.resize(len);
+ fin.read((char *) buf.data(), len);
+ word.assign(buf.data(), len);
vocab.token_to_id[word] = i;
vocab.id_to_token[i] = word;
const int32_t n_vocab = model.hparams.n_vocab;
std::string word;
+ std::vector<char> buf(128);
+
for (int i = 0; i < n_vocab; i++) {
uint32_t len;
fin.read((char *) &len, sizeof(len));
- word.resize(len);
- fin.read((char *) word.data(), len);
+ buf.resize(len);
+ fin.read((char *) buf.data(), len);
+ word.assign(buf.data(), len);
vocab.token_to_id[word] = i;
vocab.id_to_token[i] = word;
// load vocab
{
- int32_t n_vocab = model.hparams.n_vocab;
+ const int32_t n_vocab = model.hparams.n_vocab;
std::string word;
+ std::vector<char> buf(128);
+
for (int i = 0; i < n_vocab; i++) {
uint32_t len;
- fin.read((char *)&len, sizeof(len));
+ fin.read((char *) &len, sizeof(len));
- word.resize(len);
- fin.read((char *)word.data(), len);
+ buf.resize(len);
+ fin.read((char *) buf.data(), len);
+ word.assign(buf.data(), len);
vocab.token_to_id[word] = i;
vocab.id_to_token[i] = word;
}
bool replit_tokenizer_load(replit_tokenizer & tokenizer, std::istream & fin, int max_vocab_size) {
+ std::string word;
+ std::vector<char> buf(128);
for (std::size_t i = 0; i < max_vocab_size; i++) {
-
uint32_t len;
fin.read((char *)&len, sizeof(len));
- std::string word;
- word.resize(len);
- fin.read((char *)word.data(), len);
+ buf.resize(len);
+ fin.read((char *) buf.data(), len);
+ word.assign(buf.data(), len);
float score;
fin.read((char *)&score, sizeof(score));
}
std::string word;
+ std::vector<char> buf(128);
+
for (int i = 0; i < n_vocab; i++) {
uint32_t len;
fin.read((char *) &len, sizeof(len));
- word.resize(len);
- fin.read((char *) word.data(), len);
+ buf.resize(len);
+ fin.read((char *) buf.data(), len);
+ word.assign(buf.data(), len);
vocab.token_to_id[word] = i;
vocab.id_to_token[i] = word;