llama : optimize vocabulary loading (#30679)
* llama : optimize vocabulary loading * Update src/unicode.h Co-authored-by: Georgi Gerganov <ggerganov@gmail.com> * CR : added reserve in gguf_kv_to_str * CR : trailing space fix --------- Co-authored-by: Georgi Gerganov <ggerganov@gmail.com>
This commit is contained in:
1 parent
eb182d85c0
commit
824eaecf48
7 files changed
+75
-39
No files matched your search
@@ -202,6 +202,19 @@ static std::unordered_map<std::string, uint8_t> unicode_utf8_to_byte_map() {
|
||||
return map;
|
||||
}
|
||||
|
||||
static std::vector<int> unicode_cpt_to_byte_map() {
|
||||
std::vector<int> map;
|
||||
for (int ch = 0; ch < 256; ++ch) {
|
||||
size_t offset = 0;
|
||||
const uint32_t cpt = unicode_cpt_from_utf8(unicode_byte_to_utf8(ch), offset);
|
||||
if (cpt >= map.size()) {
|
||||
map.resize(cpt + 1, -1);
|
||||
}
|
||||
map[cpt] = ch;
|
||||
}
|
||||
return map;
|
||||
}
|
||||
|
||||
static std::vector<std::string> unicode_byte_encoding_process(const std::vector<std::string> & bpe_words) {
|
||||
std::vector<std::string> bpe_encoded_words;
|
||||
for (const auto & word : bpe_words) {
|
||||
@@ -1416,6 +1429,14 @@ uint8_t unicode_utf8_to_byte(const std::string & utf8) {
|
||||
return map.at(utf8);
|
||||
}
|
||||
|
||||
uint8_t unicode_cpt_to_byte(uint32_t cpt) {
|
||||
static const std::vector<int> map = unicode_cpt_to_byte_map();
|
||||
if (cpt >= map.size() || map[cpt] < 0) {
|
||||
throw std::out_of_range("unicode_cpt_to_byte: not a byte token code point");
|
||||
}
|
||||
return map[cpt];
|
||||
}
|
||||
|
||||
uint32_t unicode_tolower(uint32_t cpt) {
|
||||
// binary search
|
||||
auto it = std::lower_bound(unicode_map_lowercase.begin(), unicode_map_lowercase.end(), cpt,
|
||||
|
||||
Reference in new issue
Block a user