CoolFace
Modelpublic

Felipe97/llama-cpp-compiled

sourceHugging Faceupdated 5d agoView on Hugging Face
0likes1.1kdownloads
llama-vocab.h207 linesDownload Raw Back to src
1#pragma once2 3#include "llama.h"4 5#include <string>6#include <vector>7#include <memory>8 9// pre-tokenization types10enum llama_vocab_pre_type {11    LLAMA_VOCAB_PRE_TYPE_DEFAULT           = 0,12    LLAMA_VOCAB_PRE_TYPE_LLAMA3            = 1,13    LLAMA_VOCAB_PRE_TYPE_DEEPSEEK_LLM      = 2,14    LLAMA_VOCAB_PRE_TYPE_DEEPSEEK_CODER    = 3,15    LLAMA_VOCAB_PRE_TYPE_FALCON            = 4,16    LLAMA_VOCAB_PRE_TYPE_MPT               = 5,17    LLAMA_VOCAB_PRE_TYPE_STARCODER         = 6,18    LLAMA_VOCAB_PRE_TYPE_GPT2              = 7,19    LLAMA_VOCAB_PRE_TYPE_REFACT            = 8,20    LLAMA_VOCAB_PRE_TYPE_COMMAND_R         = 9,21    LLAMA_VOCAB_PRE_TYPE_STABLELM2         = 10,22    LLAMA_VOCAB_PRE_TYPE_QWEN2             = 11,23    LLAMA_VOCAB_PRE_TYPE_OLMO              = 12,24    LLAMA_VOCAB_PRE_TYPE_DBRX              = 13,25    LLAMA_VOCAB_PRE_TYPE_SMAUG             = 14,26    LLAMA_VOCAB_PRE_TYPE_PORO              = 15,27    LLAMA_VOCAB_PRE_TYPE_CHATGLM3          = 16,28    LLAMA_VOCAB_PRE_TYPE_CHATGLM4          = 17,29    LLAMA_VOCAB_PRE_TYPE_VIKING            = 18,30    LLAMA_VOCAB_PRE_TYPE_JAIS              = 19,31    LLAMA_VOCAB_PRE_TYPE_TEKKEN            = 20,32    LLAMA_VOCAB_PRE_TYPE_SMOLLM            = 21,33    LLAMA_VOCAB_PRE_TYPE_CODESHELL         = 22,34    LLAMA_VOCAB_PRE_TYPE_BLOOM             = 23,35    LLAMA_VOCAB_PRE_TYPE_GPT3_FINNISH      = 24,36    LLAMA_VOCAB_PRE_TYPE_EXAONE            = 25,37    LLAMA_VOCAB_PRE_TYPE_CHAMELEON         = 26,38    LLAMA_VOCAB_PRE_TYPE_MINERVA           = 27,39    LLAMA_VOCAB_PRE_TYPE_DEEPSEEK3_LLM     = 28,40    LLAMA_VOCAB_PRE_TYPE_GPT4O             = 29,41    LLAMA_VOCAB_PRE_TYPE_SUPERBPE          = 30,42    LLAMA_VOCAB_PRE_TYPE_TRILLION          = 31,43    LLAMA_VOCAB_PRE_TYPE_BAILINGMOE        = 32,44    LLAMA_VOCAB_PRE_TYPE_LLAMA4            = 33,45    LLAMA_VOCAB_PRE_TYPE_PIXTRAL           = 34,46    LLAMA_VOCAB_PRE_TYPE_SEED_CODER        = 35,47    LLAMA_VOCAB_PRE_TYPE_HUNYUAN           = 36,48    LLAMA_VOCAB_PRE_TYPE_KIMI_K2           = 37,49    LLAMA_VOCAB_PRE_TYPE_HUNYUAN_DENSE     = 38,50    LLAMA_VOCAB_PRE_TYPE_GROK_2            = 39,51    LLAMA_VOCAB_PRE_TYPE_GRANITE_DOCLING   = 40,52    LLAMA_VOCAB_PRE_TYPE_MINIMAX_M2        = 41,53    LLAMA_VOCAB_PRE_TYPE_AFMOE             = 42,54    LLAMA_VOCAB_PRE_TYPE_SOLAR_OPEN        = 43,55    LLAMA_VOCAB_PRE_TYPE_YOUTU             = 44,56    LLAMA_VOCAB_PRE_TYPE_EXAONE_MOE        = 45,57    LLAMA_VOCAB_PRE_TYPE_QWEN35            = 46,58    LLAMA_VOCAB_PRE_TYPE_TINY_AYA          = 47,59    LLAMA_VOCAB_PRE_TYPE_JOYAI_LLM         = 48,60    LLAMA_VOCAB_PRE_TYPE_JAIS2             = 49,61    LLAMA_VOCAB_PRE_TYPE_GEMMA4            = 50,62    LLAMA_VOCAB_PRE_TYPE_SARVAM_MOE        = 51,63    LLAMA_VOCAB_PRE_TYPE_MINICPM5          = 52,64    LLAMA_VOCAB_PRE_TYPE_WHITESPACE        = 53,65    LLAMA_VOCAB_PRE_TYPE_GRANITE_EMB_MULTI = 54,66    LLAMA_VOCAB_PRE_TYPE_MELLUM2           = 55,67    LLAMA_VOCAB_PRE_TYPE_LAGUNA            = 56,68    LLAMA_VOCAB_PRE_TYPE_HY_V4             = 57,69    LLAMA_VOCAB_PRE_TYPE_SPARK2_5          = 58,70    LLAMA_VOCAB_PRE_TYPE_UFAKZEKA          = 59,71};72 73struct LLM_KV;74struct llama_model_loader;75 76struct llama_vocab {77    struct token_data {78        std::string      text;79        float            score;80        llama_token_attr attr;81    };82 83    struct normalizer_options {84        bool lowercase     = true;85        bool strip_accents = true;86        // TODO: clean_text, handle_chinese_chars87    };88 89    llama_vocab();90    ~llama_vocab();91 92    void load(llama_model_loader & ml, const LLM_KV & kv);93 94    std::string get_tokenizer_model() const;95    std::string get_tokenizer_pre() const;96 97    enum llama_vocab_type     get_type()     const;98    enum llama_vocab_pre_type get_pre_type() const;99 100    uint32_t n_tokens() const;101    uint32_t n_token_types() const;102 103    std::string type_name() const;104 105    bool is_normal      (llama_token id) const;106    bool is_unknown     (llama_token id) const;107    bool is_control     (llama_token id) const;108    bool is_byte        (llama_token id) const;109    bool is_user_defined(llama_token id) const;110    bool is_unused      (llama_token id) const;111    bool is_eog         (llama_token id) const;112 113    uint8_t     token_to_byte(llama_token id) const;114    llama_token byte_to_token(uint8_t ch)     const;115 116    llama_token text_to_token(const std::string & text) const;117 118    const token_data & get_token_data(llama_token id) const;119 120    const char *     token_get_text (llama_token id) const;121    float            token_get_score(llama_token id) const;122    llama_token_attr token_get_attr (llama_token id) const;123 124    llama_token token_bos() const;125    llama_token token_eos() const;126    llama_token token_eot() const;127    llama_token token_eom() const;128    llama_token token_unk() const;129    llama_token token_sep() const;130    llama_token token_nl () const;131    llama_token token_pad() const;132    llama_token token_mask() const;133 134    llama_token token_prefix() const;135    llama_token token_middle() const;136    llama_token token_suffix() const;137 138    llama_token token_fim_pre() const;139    llama_token token_fim_suf() const;140    llama_token token_fim_mid() const;141    llama_token token_fim_pad() const;142    llama_token token_fim_rep() const;143    llama_token token_fim_sep() const;144 145    bool get_add_space_prefix          () const;146    bool get_add_bos                   () const;147    bool get_add_eos                   () const;148    bool get_add_sep                   () const;149    bool get_ignore_merges             () const;150    bool get_clean_spaces              () const;151    bool get_remove_extra_whitespaces  () const;152    bool get_escape_whitespaces        () const;153    bool get_treat_whitespace_as_suffix() const;154    const normalizer_options & get_normalizer_opts() const;155 156    const std::vector<llama_token> & get_suppress_tokens() const;157 158    int max_token_len() const;159 160    int find_bpe_rank(const std::string & token_left, const std::string & token_right) const;161    std::vector<std::string> get_bpe_merges() const;162 163    std::vector<char> get_precompiled_charsmap() const;164 165    int32_t tokenize(166                   const char * text,167                      int32_t   text_len,168                  llama_token * tokens,169                      int32_t   n_tokens_max,170                         bool   add_special,171                         bool   parse_special) const;172 173    std::vector<llama_token> tokenize(174            const std::string & raw_text,175                         bool   add_special,176                         bool   parse_special = false) const;177 178    // does not write null-terminator to buf179    int32_t token_to_piece(180                  llama_token   token,181                         char * buf,182                      int32_t   length,183                      int32_t   lstrip,184                         bool   special) const;185 186    // use cached data187    const std::string & token_to_piece(llama_token token) const;188 189    int32_t detokenize(190            const llama_token * tokens,191                      int32_t   n_tokens,192                         char * text,193                      int32_t   text_len_max,194                         bool   remove_special,195                         bool   unparse_special) const;196 197    std::string detokenize(198            const std::vector<llama_token> & tokens,199                                      bool   special) const;200 201    void print_info() const;202 203private:204    struct impl;205    std::unique_ptr<impl> pimpl;206};207