From b8e230e33a8f8f528a016ea50237aa6228b25249 Mon Sep 17 00:00:00 2001 From: Xie Weikai <1263212259@qq.com> Date: Sun, 27 Oct 2024 13:00:14 +0800 Subject: [PATCH 1/9] feat: add simple WordPiece tokenizer. add modeling_bert(unfinished) --- examples/CMakeLists.txt | 2 + examples/demo_bert.cpp | 23 ++++ examples/demo_qwen.cpp | 1 + src/models/bert/README.md | 1 + src/models/bert/configuration_bert.hpp | 94 +++++++++++++ src/models/bert/modeling_bert.hpp | 126 +++++++++++++++++ src/models/bert/tokenization_bert.hpp | 39 ++++++ src/tokenizers/WordPiece/WordPiece.cpp | 179 +++++++++++++++++++++++++ src/tokenizers/WordPiece/WordPiece.hpp | 62 +++++++++ 9 files changed, 527 insertions(+) create mode 100644 examples/demo_bert.cpp create mode 100644 src/models/bert/README.md create mode 100644 src/models/bert/configuration_bert.hpp create mode 100644 src/models/bert/modeling_bert.hpp create mode 100644 src/models/bert/tokenization_bert.hpp create mode 100644 src/tokenizers/WordPiece/WordPiece.cpp create mode 100644 src/tokenizers/WordPiece/WordPiece.hpp diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index f7fc5033..45082c2d 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -24,6 +24,7 @@ macro(func_llm_add_executable target) ${DIR_SRC} ${PROJECT_SOURCE_DIR}/src/tokenizers/Tokenizer.cpp ${PROJECT_SOURCE_DIR}/src/tokenizers/BPE/Bpe.cpp + ${PROJECT_SOURCE_DIR}/src/tokenizers/WordPiece/WordPiece.cpp ${PROJECT_SOURCE_DIR}/src/tokenizers/Unicode.cpp ${PROJECT_SOURCE_DIR}/src/tokenizers/UnicodeData.cpp ${PROJECT_SOURCE_DIR}/src/processor/PreProcess.cpp @@ -70,6 +71,7 @@ func_llm_add_executable(demo_minicpm) func_llm_add_executable(demo_smollm) func_llm_add_executable(demo_openelm) func_llm_add_executable(demo_dclm) +func_llm_add_executable(demo_bert) # func_llm_add_executable(demo_phonellm) func_vlm_add_executable(demo_llava) diff --git a/examples/demo_bert.cpp b/examples/demo_bert.cpp new file mode 100644 index 00000000..95d12510 --- /dev/null +++ b/examples/demo_bert.cpp @@ -0,0 +1,23 @@ +// +// Created by xwk on 24-10-23. +// +#include "models/bert/configuration_bert.hpp" +#include "models/bert/modeling_bert.hpp" +#include "models/bert/tokenization_bert.hpp" + +string vocab_file = "vocab/all-MiniLM-L6-v2.mllm"; +string model_file = "models/gte.mllm"; + +int main(int argc, char *argv[]){ + BertTokenizer tokenizer(vocab_file, false); + string text = "Hello, my dog is cute."; + auto [token_ids, type_ids, position_ids] = tokenizer.process(text); + token_ids.printData(); + + auto config = BertConfig(); + auto model = BertModel(config); + model.load(model_file); + + auto res = model({token_ids, type_ids, position_ids}); + res[0].printData(); +} diff --git a/examples/demo_qwen.cpp b/examples/demo_qwen.cpp index 49acdcf0..9d1d92d3 100644 --- a/examples/demo_qwen.cpp +++ b/examples/demo_qwen.cpp @@ -46,6 +46,7 @@ int main(int argc, char **argv) { for (int i = 0; i < in_strs.size(); ++i) { auto input_str = tokenizer.apply_chat_template(in_strs[i]); auto input_tensor = tokenizer.tokenize(input_str); + input_tensor.printData(); std::cout << "[Q] " << in_strs[i] << std::endl; std::cout << "[A] " << std::flush; diff --git a/src/models/bert/README.md b/src/models/bert/README.md new file mode 100644 index 00000000..36567ba1 --- /dev/null +++ b/src/models/bert/README.md @@ -0,0 +1 @@ +# 千问通义 \ No newline at end of file diff --git a/src/models/bert/configuration_bert.hpp b/src/models/bert/configuration_bert.hpp new file mode 100644 index 00000000..a70cc617 --- /dev/null +++ b/src/models/bert/configuration_bert.hpp @@ -0,0 +1,94 @@ +#ifndef CONFIG_BERT_HPP +#define CONFIG_BERT_HPP +#include "Types.hpp" +#include "models/transformer/configuration_transformer.hpp" +#include +#include + +using namespace mllm; + +class BertNameConfig : public TransformerNameConfig { +public: + /** + * @brief QWen2 following the hugging face naming method + * + * @param type RoPEType + */ + void init() { + embedding_base_name = "embeddings."; + + blk_name = "model.layers."; + _attn_base_name = "self."; + _ffn_base_name = "mlp."; + _q_proj_name = "query"; + _k_proj_name = "key"; + _v_proj_name = "value"; + _o_proj_name = "o_proj"; + _gate_proj_name = "gate_proj"; + _up_proj_name = "up_proj"; + _down_proj_name = "down_proj"; + _attn_norm_name = "input_layernorm"; + _ffn_norm_name = "post_attention_layernorm"; + token_embd_name = "model.embed_tokens"; + post_norm_name = "model.norm"; + lm_head_name = "lm_head"; + } + std::string embedding_base_name; + + std::string blk_name; + std::string token_embd_name; + std::string post_norm_name; + std::string lm_head_name; + std::string _gate_proj_name; +}; + +struct BertConfig : public TransformerConfig { + explicit BertConfig(){ + attention_dropout = 0.0; + bos_token_id = 151643; + eos_token_id = 151645; + std::string hidden_act = "gelu"; + hidden_size = 384; + initializer_range = 0.02; + intermediate_size = 1536; + max_position_embeddings = 512; + max_window_layers = 21; + model_type = "bert"; + num_attention_heads = 12; + num_hidden_layers = 12; + num_key_value_heads = 16; + rms_norm_eps = 1e-6; + rope_theta = 1000000.0; + sliding_window = 32768; + vocab_size = 30522; + tie_embedding_words = true; + + names_config.init(); + }; + + int type_vocab_size = 2; + float layer_norm_eps = 1e-12; + + float attention_dropout = 0.0; + int bos_token_id = 151643; + int eos_token_id = 151643; + std::string hidden_act = "silu"; + int hidden_size = 1024; + float initializer_range = 0.02; + int intermediate_size = 2816; + int max_position_embeddings = 32768; + int max_window_layers = 21; + std::string model_type = "bert"; + int num_attention_heads = 12; + int num_hidden_layers = 12; + int num_key_value_heads = 12; + double rms_norm_eps = 1e-6; + float rope_theta = 1000000.0; + int sliding_window = 32768; + int vocab_size = 151936; + bool tie_embedding_words = false; + + BertNameConfig names_config; +}; + +#endif //! CONFIG_BERT_HPP diff --git a/src/models/bert/modeling_bert.hpp b/src/models/bert/modeling_bert.hpp new file mode 100644 index 00000000..c67a09f0 --- /dev/null +++ b/src/models/bert/modeling_bert.hpp @@ -0,0 +1,126 @@ +#ifndef MODELING_BERT_HPP +#define MODELING_BERT_HPP + +#include "Backend.hpp" +#include "Layer.hpp" +#include "Module.hpp" +#include "Tensor.hpp" +#include "configuration_bert.hpp" +#include +using namespace mllm; + +class BertEmbeddings : public Module { +public: + BertEmbeddings() = default; + BertEmbeddings(int vocal_size, int hidden_size, int type_size, int max_position_embeddings, float eps, BertNameConfig &config) { + word_embeddings = Embedding(vocal_size, hidden_size, config.embedding_base_name+"word_embeddings"); + token_type_embeddings = Embedding(type_size, hidden_size, config.embedding_base_name+"token_type_embeddings"); + position_embeddings = Embedding(max_position_embeddings, hidden_size, config.embedding_base_name+"position_embeddings"); + layer_norm = LayerNorm(hidden_size, true, eps, config.embedding_base_name+"LayerNorm"); + } + + std::vector Forward(std::vector inputs, std::vector args) override { + auto inputs_embeds = word_embeddings(inputs[0]); +// if (Tensor::tensor_status == TENSOR_STATIC_READY) +// inputs_embeds.printData(); + auto type_embeds = token_type_embeddings(inputs[1]); + auto position_embeds = position_embeddings(inputs[2]); + auto embeddings = inputs_embeds + type_embeds + position_embeds; + return {layer_norm(embeddings)}; + } + +private: + Layer word_embeddings; + Layer token_type_embeddings; + Layer position_embeddings; + Layer layer_norm; +}; + +class BertSelfAttention : public Module { +public: + BertSelfAttention() = default; + BertSelfAttention(BertConfig &config, const string &base_name) { + num_attention_heads = config.num_attention_heads; + attention_head_size = config.hidden_size / num_attention_heads; + all_head_size = num_attention_heads * attention_head_size; + + query = Linear(config.hidden_size, all_head_size, true, base_name + config.names_config._q_proj_name); + key = Linear(config.hidden_size, all_head_size, true, base_name + config.names_config._k_proj_name); + value = Linear(config.hidden_size, all_head_size, true, base_name + config.names_config._v_proj_name); + + softmax = Softmax(DIMENSION, base_name + "softmax"); + } + + std::vector Forward(std::vector inputs, std::vector args) override { + if (Tensor::tensor_status == TENSOR_STATIC_READY) { + std::cout << "emb type: " << inputs[0].ctype() << std::endl; + inputs[0].printData(); + } + + auto key_states = key(inputs[0]); + auto query_states = query(inputs[1]); + auto value_states = value(inputs[2]); + +// auto key_len = key_states.sequence(); + + query_states = query_states.view(-1, num_attention_heads, -1, attention_head_size); + key_states = key_states.view(-1, num_attention_heads, -1, attention_head_size); + value_states = value_states.view(-1, num_attention_heads, -1, attention_head_size); + + auto attn_weight = + Tensor::mm(query_states, key_states.transpose(Chl::SEQUENCE, Chl::DIMENSION)) / std::sqrt(attention_head_size); + auto attn_score = softmax(attn_weight); + auto attn_output = Tensor::mm(attn_score, value_states); + attn_output = attn_output.view(-1,1, -1, num_attention_heads * attention_head_size); + return {attn_output}; + } + +private: + int num_attention_heads; + int attention_head_size; + int all_head_size; + + Layer query; + Layer key; + Layer value; + + Layer softmax; +}; + +class BertAttention : public Module { +public: + + + std::vector Forward(std::vector inputs, std::vector args) override { + return {}; + } + +private: + +}; + +class BertModel : public Module { +public: + BertModel(BertConfig &config){ + embeddings = BertEmbeddings(config.vocab_size, config.hidden_size, config.type_vocab_size, config.max_position_embeddings, + config.layer_norm_eps, config.names_config); + self_attention = BertSelfAttention(config, "encoder.layer.0.attention.self."); + } + + + std::vector Forward(std::vector inputs, std::vector args) override { + auto emb = embeddings(inputs, args)[0]; +// if (Tensor::tensor_status == TENSOR_STATIC_READY) { +// std::cout << "emb type: " << emb.ctype() << std::endl; +// emb.printData(); +// } + auto attn = self_attention({emb, emb, emb}); + return {attn[0]}; + } + +private: + BertEmbeddings embeddings; + BertSelfAttention self_attention; +}; + +#endif //! MODELING_BERT_HPP \ No newline at end of file diff --git a/src/models/bert/tokenization_bert.hpp b/src/models/bert/tokenization_bert.hpp new file mode 100644 index 00000000..c0433a89 --- /dev/null +++ b/src/models/bert/tokenization_bert.hpp @@ -0,0 +1,39 @@ +#ifndef TOKENIZATION_BERT_HPP +#define TOKENIZATION_BERT_HPP + +#include "tokenizers/BPE/Bpe.hpp" +#include "tokenizers/Tokenizer.hpp" +#include "tokenizers/Unicode.hpp" +#include "tokenizers/WordPiece/WordPiece.hpp" +#include +#include + +// unicode +#include + +using namespace mllm; + + +class BertTokenizer final : public WordPieceTokenizer { +public: + explicit BertTokenizer(const std::string &vocab_file, bool bos = true) : + WordPieceTokenizer(vocab_file) { + Module::initBackend(MLLM_CPU); + } + std::tuple process(std::string &text){ + auto tokens_id = vector(); + WordPieceTokenizer::tokenize(text, tokens_id, false); + auto tokens_type = vector(tokens_id.size(), 0); + auto position_ids = vector(tokens_id.size()); + for (size_t i = 0; i < tokens_id.size(); i++) { + position_ids[i] = i; + } + return { + tokens2Input(tokens_id, "input_tokens"), + tokens2Input(tokens_type, "input_tokens_type"), + tokens2Input(position_ids, "input_position_ids") + }; + } +}; + +#endif //! TOKENIZATION_BERT_HPP \ No newline at end of file diff --git a/src/tokenizers/WordPiece/WordPiece.cpp b/src/tokenizers/WordPiece/WordPiece.cpp new file mode 100644 index 00000000..3117d307 --- /dev/null +++ b/src/tokenizers/WordPiece/WordPiece.cpp @@ -0,0 +1,179 @@ +// +// Created by xwk on 24-10-26. +// + +#include "WordPiece.hpp" + +std::wstring utf8_to_wstring(const std::string& utf8str) { + std::wstring_convert> converter; + return converter.from_bytes(utf8str); +} + +std::string wstring_to_utf8(const std::wstring& wstr) { + std::wstring_convert> converter; + return converter.to_bytes(wstr); +} + +std::wstring trim(const std::wstring &s) { + auto wsfront = std::find_if_not(s.begin(), s.end(), [](int c) { return std::isspace(c); }); + auto wsback = std::find_if_not(s.rbegin(), s.rend(), [](int c) { return std::isspace(c); }).base(); + return (wsback <= wsfront ? std::wstring() : std::wstring(wsfront, wsback)); +} + +std::vector split(const std::wstring &s) { + std::wistringstream iss(s); + std::vector tokens; + std::wstring token; + while (iss >> token) { + tokens.push_back(token); + } + return tokens; +} + +std::vector whitespace_tokenize(const std::wstring &text) { + std::wstring trimmed_text = trim(text); + if (trimmed_text.empty()) { + return {}; + } + return split(trimmed_text); +} + +mllm::WordPieceTokenizer::WordPieceTokenizer(const string &vocab_file) : + Tokenizer(vocab_file), basic_tokenizer(true) { +} + +bool mllm::BasicTokenizer::is_punctuation(wchar_t ch) { + // Simplified check assuming punctuation falls within these ranges + return std::ispunct(ch) != 0; +} + +std::wstring mllm::BasicTokenizer::clean_text(const std::wstring& text) { + std::wstring output; + for (wchar_t c : text) { + if (c == 0 || c == 0xFFFD || std::iscntrl(c)) continue; + if (std::iswspace(c)) + output += L' '; + else + output += c; + } + return output; +} + +std::wstring mllm::BasicTokenizer::strip_accents_from_text(const std::wstring& input) { + // This function needs proper implementation depending on the locale + return input; // Simplified as placeholder +} + +std::vector mllm::BasicTokenizer::split_on_punctuation(const std::wstring& text) { + std::vector result; + std::wstring token; + for (wchar_t ch : text) { + if (is_punctuation(ch)) { + if (!token.empty()) { + result.push_back(token); + token.clear(); + } + result.push_back(std::wstring(1, ch)); + } else { + token += ch; + } + } + if (!token.empty()) + result.push_back(token); + return result; +} + +std::wstring mllm::BasicTokenizer::tokenize_chinese_chars(const std::wstring& text) { + std::wstring output; + for (wchar_t ch : text) { + if (is_chinese_char(ch)) { + output += L' '; + output += ch; + output += L' '; + } else { + output += ch; + } + } + return output; +} + +bool mllm::BasicTokenizer::is_chinese_char(wchar_t cp) { + // Simplified check for Chinese characters range + return (cp >= 0x4E00 && cp <= 0x9FFF) || + (cp >= 0x3400 && cp <= 0x4DBF) || + (cp >= 0x20000 && cp <= 0x2A6DF); +} + +std::vector mllm::BasicTokenizer::tokenize(const std::wstring& text) { + std::wstring cleaned = clean_text(text); + if (_tokenize_chinese_chars) + cleaned = tokenize_chinese_chars(cleaned); + std::vector split_tokens = whitespace_tokenize(cleaned); + std::vector output_tokens; + + for (auto& token : split_tokens) { +// std::cout << "token: " << wstring_to_utf8(token) << std::endl; + if (never_split.count(token)) { + output_tokens.push_back(token); + }else{ + if (do_lower_case) { + std::transform(token.begin(), token.end(), token.begin(), + [](wchar_t c){ return std::towlower(c); }); + } + + if (strip_accents) + token = strip_accents_from_text(token); + + // split on punctuation and add to output + auto sub_tokens = split_on_punctuation(token); +// std::cout << "token: " << wstring_to_utf8(token) << std::endl; + for (auto& sub_token : sub_tokens) { + if (!sub_token.empty()) { +// std::cout << "sub_token: " << wstring_to_utf8(sub_token) << std::endl; + output_tokens.push_back(sub_token); + } + } + } + } + + return output_tokens; +} + +void mllm::WordPieceTokenizer::tokenize(const string &text, vector &tokens, bool bos) { + auto wstr = utf8_to_wstring(text); + auto basic_tokens = basic_tokenizer.tokenize(wstr); + auto token_strs = vector (); + auto token_ids = vector(); + for (const auto& token : basic_tokens) { + int start = 0; + while(start < token.size()) { + auto end = token.size(); + string str; + while(start < end){ + auto sub_str = token.substr(start, end - start); + if (start > 0) + sub_str = L"##" + sub_str; + auto utf8_str = wstring_to_utf8(sub_str); +// std::cout << "utf8_str: " << utf8_str << std::endl; + if (vocab_map_.count(utf8_str)){ + str = utf8_str; + break; + }else{ + end--; + } + } + if (str.empty()){ + token_strs.push_back("[UNK]"); + break; + } else{ + token_strs.push_back(str); + } + start = end; + } + } + + for (const auto& token_str : token_strs) { +// std::cout << "token: " << token_str << std::endl; + tokens.push_back(vocab_map_[token_str]); + } +} diff --git a/src/tokenizers/WordPiece/WordPiece.hpp b/src/tokenizers/WordPiece/WordPiece.hpp new file mode 100644 index 00000000..1031d5a2 --- /dev/null +++ b/src/tokenizers/WordPiece/WordPiece.hpp @@ -0,0 +1,62 @@ +// +// Created by xwk on 24-10-26. +// + +#ifndef MLLM_WORDPIECE_HPP +#define MLLM_WORDPIECE_HPP + +#include "tokenizers/Tokenizer.hpp" +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace mllm{ + +class BasicTokenizer { +public: + BasicTokenizer(bool do_lower_case = true, + std::vector const& never_split = {}, + bool tokenize_chinese_chars = true, + bool strip_accents = true, + bool do_split_on_punc = true) + : do_lower_case(do_lower_case), + _tokenize_chinese_chars(tokenize_chinese_chars), + strip_accents(strip_accents), + do_split_on_punc(do_split_on_punc), + never_split(never_split.begin(), never_split.end()) {} + + std::vector tokenize(const std::wstring& text); + +private: + bool do_lower_case; + bool _tokenize_chinese_chars; + bool strip_accents; + bool do_split_on_punc; + std::unordered_set never_split; + + std::wstring clean_text(const std::wstring& text); + std::wstring strip_accents_from_text(const std::wstring& input); + std::vector split_on_punctuation(const std::wstring& text); + std::wstring tokenize_chinese_chars(const std::wstring& text); + bool is_chinese_char(wchar_t cp); + static bool is_punctuation(wchar_t ch); +}; + + +class WordPieceTokenizer: public Tokenizer { +public: + BasicTokenizer basic_tokenizer; + + WordPieceTokenizer(const std::string &vocab_file); + void tokenize(const std::string &text, std::vector &tokens, bool bos) override; +}; + +} + +#endif // MLLM_WORDPIECE_HPP From adf988b3794630e29440e6d8b70847183dfdcfa4 Mon Sep 17 00:00:00 2001 From: Rongjie Yi <41737961+yirongjie@users.noreply.github.com> Date: Sun, 27 Oct 2024 17:30:07 +0800 Subject: [PATCH 2/9] fix: Update demo_qwen.cpp --- examples/demo_qwen.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/examples/demo_qwen.cpp b/examples/demo_qwen.cpp index 9d1d92d3..7e14e410 100644 --- a/examples/demo_qwen.cpp +++ b/examples/demo_qwen.cpp @@ -46,7 +46,6 @@ int main(int argc, char **argv) { for (int i = 0; i < in_strs.size(); ++i) { auto input_str = tokenizer.apply_chat_template(in_strs[i]); auto input_tensor = tokenizer.tokenize(input_str); - input_tensor.printData(); std::cout << "[Q] " << in_strs[i] << std::endl; std::cout << "[A] " << std::flush; @@ -66,4 +65,4 @@ int main(int argc, char **argv) { }); std::cout << "\n"; } -} \ No newline at end of file +} From 3a3d0f9a4ef1e08c50ea2c2b3c744080bbeed4c3 Mon Sep 17 00:00:00 2001 From: Rongjie Yi <41737961+yirongjie@users.noreply.github.com> Date: Sun, 27 Oct 2024 17:31:23 +0800 Subject: [PATCH 3/9] fix: Update demo_qwen.cpp From 11fc12c1cf8f0a0e2edd54a098018573945d4d4a Mon Sep 17 00:00:00 2001 From: Rongjie Yi <41737961+yirongjie@users.noreply.github.com> Date: Sun, 27 Oct 2024 17:32:44 +0800 Subject: [PATCH 4/9] Delete src/models/bert/README.md --- src/models/bert/README.md | 1 - 1 file changed, 1 deletion(-) delete mode 100644 src/models/bert/README.md diff --git a/src/models/bert/README.md b/src/models/bert/README.md deleted file mode 100644 index 36567ba1..00000000 --- a/src/models/bert/README.md +++ /dev/null @@ -1 +0,0 @@ -# 千问通义 \ No newline at end of file From 183c5dbf55d88f53e2608cb38028a1cdecb27aaf Mon Sep 17 00:00:00 2001 From: yirongjie Date: Mon, 28 Oct 2024 04:01:51 +0000 Subject: [PATCH 5/9] fix: matmul bug when weight is fp32 --- examples/demo_bert.cpp | 8 +- src/Tensor.hpp | 4 + src/backends/cpu/compute/Matmul.cpp | 311 ++----------------------- src/backends/cpu/compute/SGEMM.cpp | 9 +- src/backends/cpu/compute/SGEMM.hpp | 3 +- src/models/bert/configuration_bert.hpp | 10 +- src/models/bert/modeling_bert.hpp | 92 +------- vocab/gte_vocab.mllm | Bin 0 -> 567344 bytes 8 files changed, 52 insertions(+), 385 deletions(-) create mode 100644 vocab/gte_vocab.mllm diff --git a/examples/demo_bert.cpp b/examples/demo_bert.cpp index 95d12510..82451b11 100644 --- a/examples/demo_bert.cpp +++ b/examples/demo_bert.cpp @@ -5,14 +5,14 @@ #include "models/bert/modeling_bert.hpp" #include "models/bert/tokenization_bert.hpp" -string vocab_file = "vocab/all-MiniLM-L6-v2.mllm"; -string model_file = "models/gte.mllm"; +string vocab_file = "../vocab/gte_vocab.mllm"; +string model_file = "../models/gte-small-fp32.mllm"; -int main(int argc, char *argv[]){ +int main(int argc, char *argv[]) { BertTokenizer tokenizer(vocab_file, false); string text = "Hello, my dog is cute."; auto [token_ids, type_ids, position_ids] = tokenizer.process(text); - token_ids.printData(); + // token_ids.printData(); auto config = BertConfig(); auto model = BertModel(config); diff --git a/src/Tensor.hpp b/src/Tensor.hpp index 9edef3c5..2baf72f5 100644 --- a/src/Tensor.hpp +++ b/src/Tensor.hpp @@ -371,6 +371,8 @@ class Tensor { return shape[3] * shape[2]; } else if (master_tensor_->master_tensor_->ctype_ == BHDS) { return shape[3]; + } else if (master_tensor_->master_tensor_->ctype_ == BDHS) { + return shape[3] * shape_[2]; } else { std::cout << "sequenceSkipDim() only support for BSHD and BHDS" << std::endl; return -1; @@ -381,6 +383,8 @@ class Tensor { return shape[3] * shape[2]; } else if (master_tensor_->ctype_ == BHDS) { return shape[3]; + } else if (master_tensor_->ctype_ == BDHS) { + return shape[3] * shape_[2]; } else { std::cout << "sequenceSkipDim() only support for BSHD and BHDS" << std::endl; return -1; diff --git a/src/backends/cpu/compute/Matmul.cpp b/src/backends/cpu/compute/Matmul.cpp index 773d1ea2..b434d043 100644 --- a/src/backends/cpu/compute/Matmul.cpp +++ b/src/backends/cpu/compute/Matmul.cpp @@ -198,12 +198,11 @@ ErrorCode mat_mul(Tensor *src0, Tensor *src1, Tensor *dst, bool support_bias, Te auto src0_blck_size = blck_size(src0->dtype()); #ifdef LLAMAFILE_SGEMM - if (check_llamafile_sgemm(N, M, K / blck_size(src0->dtype()), src1->dtype(), src0->dtype(), - dst->dtype()) + int ld_src1 = src1->sequenceSkipDim(); + int ld_src0 = src0->sequenceSkipDim(); + int ld_dst = dst->sequenceSkipDim(); + if (check_llamafile_sgemm(N, M, K / blck_size(src0->dtype()), src1->dtype(), src0->dtype(), dst->dtype(), ld_src1 / src1_blck_size, ld_src0 / src0_blck_size, ld_dst / blck_size(dst->dtype())) && dst->aggregatedTensors().empty()) { - const int ld_src1 = src1->sequenceSkipDim(); - const int ld_src0 = src0->sequenceSkipDim(); - const int ld_dst = dst->sequenceSkipDim(); int is_0 = (src1->batch() == 1 && src1->head() == 1 && src1->batch() != src0->batch()) ? 0 : 1; #pragma omp parallel for collapse(3) num_threads(thread_count) @@ -277,13 +276,13 @@ ErrorCode mat_mul(Tensor *src0, Tensor *src1, Tensor *dst, bool support_bias, Te } #ifdef LLAMAFILE_SGEMM + ld_src1 = src1->sequenceSkipDim(); + ld_src0 = src0->sequenceSkipDim(); + ld_dst = dst->sequenceSkipDim(); if (check_llamafile_sgemm(N, M, K / blck_size(src1->dtype()), src1->dtype(), src0->dtype(), - dst->dtype()) + dst->dtype(), ld_src1 / src1_blck_size, ld_src0 / src0_blck_size, ld_dst / blck_size(dst->dtype())) && dst->dtypeAt(0, 0, 0, 0) == MLLM_TYPE_F32 && dst->ctype() == BSHD && dst->aggregatedTensors().empty()) { - const int ld_src1 = src1->sequenceSkipDim(); - const int ld_src0 = src0->sequenceSkipDim(); - const int ld_dst = dst->sequenceSkipDim(); #pragma omp parallel for collapse(3) num_threads(thread_count) for (int64_t b = 0; b < dst->batch(); b++) { for (int64_t h = 0; h < dst->head(); h++) { @@ -425,278 +424,6 @@ ErrorCode mat_mul(Tensor *src0, Tensor *src1, Tensor *dst, bool support_bias, Te } return MLLM_NO_ERROR; } -/* -ErrorCode mat_mul_fp32(Tensor *src0, Tensor *src1, Tensor *dst, bool support_bias, Tensor *bias, -bool transpose0, bool transpose1, int thread_count) { const int M = transpose0 ? src0->dimension() : -src0->sequence(); const int K = transpose0 ? src0->sequence() : src0->dimension(); const int N = -transpose1 ? src1->sequence() : src1->dimension(); Tensor *src0_cal = src0; Tensor *src1_cal = src1; - const int64_t blck_0 = 16; - int is_0 = (src1->batch() == 1 && src1->head() == 1) ? 0 : 1; -#pragma omp parallel for collapse(4) num_threads(thread_count) - for (int b = 0; b < src0->batch(); b++) { - for (int h = 0; h < src0->head(); h++) { - for (int m = 0; m < M; m++) { - for (int block = 0; block < N / blck_0 + 1; block++) { - for (int n = block * blck_0; n < (block + 1) * blck_0 & n < N; n++) { - int s_1, d_1; - int s_0, d_0; - if (!transpose0 && transpose1) { - s_1 = n; d_1 = 0; s_0 = m; d_0 = 0; - } else if (!transpose0 && !transpose1) { - s_1 = 0; d_1 = n; s_0 = m; d_0 = 0; - } else { - s_1 = 0; d_1 = n; s_0 = 0; d_0 = m; - } - if(dst->dtypeAt(b,h,m,n) == MLLM_TYPE_F32) { - vec_dot_fp32(K, dst->ptrAt(b, h, m, n), - src1_cal->hostPtr() + src1_cal->offset(b*is_0, -h*is_0, s_1, d_1), src0_cal->hostPtr() + src0_cal->offset(b, h, s_0, d_0)); if (support_bias) -{ *dst->ptrAt(b, h, m, n) += bias->dataAt(0, 0, 0, n); - } - }else if (dst->dtypeAt(b,h,m,n) == MLLM_TYPE_F16) { - float tmp = 0; - vec_dot_fp32(K, &tmp, - src1_cal->hostPtr() + src1_cal->offset(b*is_0, -h*is_0, s_1, d_1), src0_cal->hostPtr() + src0_cal->offset(b, h, s_0, d_0)); if (support_bias) -{ *dst->ptrAt(b, h, m, n) = MLLM_FP32_TO_FP16(tmp + bias->dataAt(0, 0, 0, n)); - } else { - *dst->ptrAt(b, h, m, n) = MLLM_FP32_TO_FP16(tmp); - } - }else{std::cout<<"Not support type [Matmul]"<dtype() == MLLM_TYPE_F16); - assert(src0_->dtype() == MLLM_TYPE_F32); - Tensor src0_qf16(src0_->shape()); - src0_qf16.setBackend(src0_->backend()); - src0_qf16.setDtype(MLLM_TYPE_F16); - src0_qf16.alloc(); -#pragma omp parallel for collapse(3) num_threads(thread_count) - for (int b = 0; b < src0_->batch(); b++) { - for (int h = 0; h < src0_->head(); h++) { - for (int s = 0; s < src0_->sequence(); s++) { - mllm_fp32_to_fp16_row(src0_->hostPtr() + src0_->offset(b, h, s, 0), - src0_qf16.hostPtr() + src0_qf16.offset(b, h, s, -0), src0_->dimension()); - } - } - } - auto *src0 = &src0_qf16; - const int M = transpose0 ? src0->dimension() : src0->sequence(); - const int K = transpose0 ? src0->sequence() : src0->dimension(); - const int N = transpose1 ? src1->sequence() : src1->dimension(); - Tensor *src0_cal = src0; - Tensor *src1_cal = src1; - const int64_t blck_0 = 16; - int is_0 = (src1->batch() == 1 && src1->head() == 1) ? 0 : 1; -#pragma omp parallel for collapse(4) num_threads(thread_count) - for (int b = 0; b < src0->batch(); b++) { - for (int h = 0; h < src0->head(); h++) { - for (int m = 0; m < M; m++) { - for (int block = 0; block < N / blck_0 + 1; block++) { - for (int n = block * blck_0; n < (block + 1) * blck_0 & n < N; n++) { - int s_1, d_1; - int s_0, d_0; - if (!transpose0 && transpose1) { - s_1 = n; d_1 = 0; s_0 = m; d_0 = 0; - } else if (!transpose0 && !transpose1) { - s_1 = 0; d_1 = n; s_0 = m; d_0 = 0; - } else { - s_1 = 0; d_1 = n; s_0 = 0; d_0 = m; - } - vec_dot_fp16(K, dst->ptrAt(b, h, m, n), - src1_cal->hostPtr() + src1_cal->offset(b*is_0, -h*is_0, s_1, d_1), src0_cal->hostPtr() + src0_cal->offset(b, h, s_0, d_0)); if -(support_bias) { *dst->ptrAt(b, h, m, n) += bias->dataAt(0, 0, 0, n); - } - } - } - } - } - } - return MLLM_NO_ERROR; -} - -ErrorCode mat_mul_fp32_q4_0(Tensor *src0_, Tensor *src1, Tensor *dst, bool support_bias, Tensor -*bias, int thread_count) { assert(src1->dtype() == MLLM_TYPE_Q4_0); assert(src0_->dtype() == -MLLM_TYPE_F32); Tensor src0_q8(src0_->shape()); src0_q8.setBackend(src0_->backend()); - src0_q8.setDtype(MLLM_TYPE_Q8_0); - src0_q8.alloc(); - if (src0_->dimension() % QK8_0 == 0) { -#pragma omp parallel for collapse(3) num_threads(thread_count) - for (int b = 0; b < src0_->batch(); b++) { - for (int h = 0; h < src0_->head(); h++) { - for (int s = 0; s < src0_->sequence(); s++) { - quantize_row_q8_0(src0_->hostPtr() + src0_->offset(b, h, s, 0), - src0_q8.hostPtr() + src0_q8.offset(b, h, s, 0) / -QK8_0, src0_->dimension()); - } - } - } - } else { - std::cout << "[ERROR]: " << src0_->dimension() << "%" << QK8_0 << "!=0" << std::endl; - assert(src0_->dimension() % QK8_0 == 0); - } - auto *src0 = &src0_q8; - assert(src0->dtype() == MLLM_TYPE_Q8_0); - int M = src0->sequence(); - int K = src0->dimension(); - int N = src1->sequence(); - Tensor *src0_cal = src0; - Tensor *src1_cal = src1; - const int64_t blck_0 = 16; - int is_0 = (src1->batch() == 1 && src1->head() == 1) ? 0 : 1; -#pragma omp parallel for collapse(4) num_threads(thread_count) - for (int b = 0; b < src0->batch(); b++) { - for (int h = 0; h < src0->head(); h++) { - for (int m = 0; m < M; m++) { - for (int block = 0; block < N / blck_0 + 1; block++) { - for (int n = block * blck_0; n < (block + 1) * blck_0 & n < N; n++) { - vec_dot_q4_0_q8_0(K, dst->ptrAt(b, h, m, n), - src1_cal->hostPtr() + src1_cal->offset(b*is_0, -h*is_0, n, 0) / QK4_0, src0_cal->hostPtr() + src0_cal->offset(b, h, m, 0) / QK8_0); if -(support_bias) { *dst->ptrAt(b, h, m, n) += bias->dataAt(0, 0, 0, n); - } - } - } - } - } - } - return MLLM_NO_ERROR; -} - -ErrorCode mat_mul_fp32_q4_K(Tensor *src0_, Tensor *src1, Tensor *dst, bool support_bias, Tensor -*bias, int thread_count) { assert(src1->dtype() == MLLM_TYPE_Q4_K); assert(src0_->dtype() == -MLLM_TYPE_F32); Tensor src0_q8(src0_->shape()); src0_q8.setBackend(src0_->backend()); - src0_q8.setDtype(MLLM_TYPE_Q8_K); - src0_q8.alloc(); - if (src0_->dimension() % QK_K == 0) { -#pragma omp parallel for collapse(3) num_threads(thread_count) - for (int b = 0; b < src0_->batch(); b++) { - for (int h = 0; h < src0_->head(); h++) { - for (int s = 0; s < src0_->sequence(); s++) { - quantize_row_q8_K(src0_->hostPtr() + src0_->offset(b, h, s, 0), - src0_q8.hostPtr() + src0_q8.offset(b, h, s, 0) / -QK_K, src0_->dimension()); - } - } - } - } else { - std::cout << "[ERROR]: " << src0_->dimension() << "%" << QK_K << "!=0" << std::endl; - assert(src0_->dimension() % QK_K == 0); - } - auto *src0 = &src0_q8; - assert(src0->dtype() == MLLM_TYPE_Q8_K); - int M = src0->sequence(); - int K = src0->dimension(); - int N = src1->sequence(); - Tensor *src0_cal = src0; - Tensor *src1_cal = src1; - const int64_t blck_0 = 16; - int is_0 = (src1->batch() == 1 && src1->head() == 1) ? 0 : 1; -#pragma omp parallel for collapse(4) num_threads(thread_count) - for (int b = 0; b < src0->batch(); b++) { - for (int h = 0; h < src0->head(); h++) { - for (int m = 0; m < M; m++) { - for (int block = 0; block < N / blck_0 + 1; block++) { - for (int n = block * blck_0; n < (block + 1) * blck_0 & n < N; n++) { - if(dst->dtypeAt(b,h,m,n) == MLLM_TYPE_F32) { - vec_dot_q4_K_q8_K(K, dst->ptrAt(b, h, m, n), - src1_cal->hostPtr() + -src1_cal->offset(b*is_0, h*is_0, n, 0) / QK_K, src0_cal->hostPtr() + src0_cal->offset(b, -h, m, 0) / QK_K); if (support_bias) { *dst->ptrAt(b, h, m, n) += bias->dataAt(0, 0, 0, -n); - } - } else if (dst->dtypeAt(b,h,m,n) == MLLM_TYPE_F16) { - float tmp = 0; - vec_dot_q4_K_q8_K(K, &tmp, - src1_cal->hostPtr() + -src1_cal->offset(b*is_0, h*is_0, n, 0) / QK_K, src0_cal->hostPtr() + src0_cal->offset(b, -h, m, 0) / QK_K); if (support_bias) { *dst->ptrAt(b, h, m, n) = MLLM_FP32_TO_FP16(tmp + -bias->dataAt(0, 0, 0, n)); } else { *dst->ptrAt(b, h, m, n) = -MLLM_FP32_TO_FP16(tmp); - } - }else{std::cout<<"Not support type [Matmul]"<dtype() == MLLM_TYPE_Q6_K); assert(src0_->dtype() == -MLLM_TYPE_F32); Tensor src0_q8(src0_->shape()); src0_q8.setBackend(src0_->backend()); - src0_q8.setDtype(MLLM_TYPE_Q8_K); - src0_q8.alloc(); - if (src0_->dimension() % QK_K == 0) { -#pragma omp parallel for collapse(3) num_threads(thread_count) - for (int b = 0; b < src0_->batch(); b++) { - for (int h = 0; h < src0_->head(); h++) { - for (int s = 0; s < src0_->sequence(); s++) { - quantize_row_q8_K(src0_->hostPtr() + src0_->offset(b, h, s, 0), - src0_q8.hostPtr() + src0_q8.offset(b, h, s, 0) / -QK_K, src0_->dimension()); - } - } - } - } else { - std::cout << "[ERROR]: " << src0_->dimension() << "%" << QK_K << "!=0" << std::endl; - assert(src0_->dimension() % QK_K == 0); - } - auto *src0 = &src0_q8; - assert(src0->dtype() == MLLM_TYPE_Q8_K); - int M = src0->sequence(); - int K = src0->dimension(); - int N = src1->sequence(); - Tensor *src0_cal = src0; - Tensor *src1_cal = src1; - const int64_t blck_0 = 16; - int is_0 = (src1->batch() == 1 && src1->head() == 1) ? 0 : 1; -#pragma omp parallel for collapse(4) num_threads(thread_count) - for (int b = 0; b < src0->batch(); b++) { - for (int h = 0; h < src0->head(); h++) { - for (int m = 0; m < M; m++) { - for (int block = 0; block < N / blck_0 + 1; block++) { - for (int n = block * blck_0; n < (block + 1) * blck_0 & n < N; n++) { - if (dst->dtypeAt(n, h, m, n) == MLLM_TYPE_F32) { - vec_dot_q6_K_q8_K(K, dst->ptrAt(b, h, m, n), - src1_cal->hostPtr() + -src1_cal->offset(b*is_0, h*is_0, n, 0) / QK_K, src0_cal->hostPtr() + src0_cal->offset(b, -h, m, 0) / QK_K); if (support_bias) { *dst->ptrAt(b, h, m, n) += bias->dataAt(0, 0, 0, -n); - } - } else if (dst->dtypeAt(n, h, m, n) == MLLM_TYPE_F16) { - float tmp = 0; - vec_dot_q6_K_q8_K(K, &tmp, - src1_cal->hostPtr() + -src1_cal->offset(b*is_0, h*is_0, n, 0) / QK_K, src0_cal->hostPtr() + src0_cal->offset(b, -h, m, 0) / QK_K); - - if (support_bias) { - *dst->ptrAt(b, h, m, n) = MLLM_FP32_TO_FP16(tmp + -bias->dataAt(0, 0, 0, n)); } else { *dst->ptrAt(b, h, m, n) = -MLLM_FP32_TO_FP16(tmp); - } - } else { - std::cout << "Not support tupe [Matmul]" << std::endl; - } - } - } - } - } - } - return MLLM_NO_ERROR; -} -*/ ErrorCode mat_mul_elastic(Tensor *src0, Tensor *src1, Tensor *dst, bool support_bias, Tensor *bias, int activate_input_dim, int activate_output_dim, bool transpose0, @@ -725,12 +452,12 @@ ErrorCode mat_mul_elastic(Tensor *src0, Tensor *src1, Tensor *dst, bool support_ int use_N = (activate_output_dim == -1) ? N : activate_output_dim; int use_K = (activate_input_dim == -1) ? K : activate_input_dim; - if (check_llamafile_sgemm(use_N, M, use_K / blck_size(src0->dtype()), src1->dtype(), - src0->dtype(), dst->dtype()) +#ifdef LLAMAFILE_SGEMM + int ld_src1 = src1->sequenceSkipDim(); + int ld_src0 = src0->sequenceSkipDim(); + int ld_dst = dst->sequenceSkipDim(); + if (check_llamafile_sgemm(N, M, K / blck_size(src0->dtype()), src1->dtype(), src0->dtype(), dst->dtype(), ld_src1 / src1_blck_size, ld_src0 / src0_blck_size, ld_dst / blck_size(dst->dtype())) && dst->aggregatedTensors().empty()) { - const int ld_src1 = src1->sequenceSkipDim(); - const int ld_src0 = src0->sequenceSkipDim(); - const int ld_dst = dst->sequenceSkipDim(); int is_0 = (src1->batch() == 1 && src1->head() == 1) ? 0 : 1; #pragma omp parallel for collapse(3) num_threads(thread_count) for (int64_t b = 0; b < dst->batch(); b++) { @@ -754,7 +481,7 @@ ErrorCode mat_mul_elastic(Tensor *src0, Tensor *src1, Tensor *dst, bool support_ } return MLLM_NO_ERROR; } - +#endif auto not_vec_dot_type = src0_dtype != vec_dot_type; std::unique_ptr to; // later this tensor will be freed by ~Tensor if (not_vec_dot_type) { @@ -800,12 +527,12 @@ ErrorCode mat_mul_elastic(Tensor *src0, Tensor *src1, Tensor *dst, bool support_ } #ifdef LLAMAFILE_SGEMM - if (check_llamafile_sgemm(use_N, M, use_K / blck_size(src1->dtype()), src1->dtype(), - src0->dtype(), dst->dtype()) + ld_src1 = src1->sequenceSkipDim(); + ld_src0 = src0->sequenceSkipDim(); + ld_dst = dst->sequenceSkipDim(); + if (check_llamafile_sgemm(N, M, K / blck_size(src1->dtype()), src1->dtype(), src0->dtype(), + dst->dtype(), ld_src1 / src1_blck_size, ld_src0 / src0_blck_size, ld_dst / blck_size(dst->dtype())) && !support_bias && dst->ctype() == BSHD && dst->aggregatedTensors().empty()) { - const int ld_src1 = src1->sequenceSkipDim(); - const int ld_src0 = src0->sequenceSkipDim(); - const int ld_dst = dst->sequenceSkipDim(); #pragma omp parallel for collapse(3) num_threads(thread_count) for (int64_t b = 0; b < dst->batch(); b++) { for (int64_t h = 0; h < dst->head(); h++) { diff --git a/src/backends/cpu/compute/SGEMM.cpp b/src/backends/cpu/compute/SGEMM.cpp index 54c80c26..0cbcb438 100644 --- a/src/backends/cpu/compute/SGEMM.cpp +++ b/src/backends/cpu/compute/SGEMM.cpp @@ -1092,7 +1092,7 @@ bool llamafile_sgemm(int64_t m, int64_t n, int64_t k, const void *A, int64_t lda (void)Ctype; } -bool check_llamafile_sgemm(int64_t m, int64_t n, int64_t k, DataType Atype, DataType Btype, DataType Ctype) { +bool check_llamafile_sgemm(int64_t m, int64_t n, int64_t k, DataType Atype, DataType Btype, DataType Ctype, int64_t lda, int64_t ldb, int64_t ldc) { int ith = 0; int nth = 1; assert(m >= 0); @@ -1101,6 +1101,13 @@ bool check_llamafile_sgemm(int64_t m, int64_t n, int64_t k, DataType Atype, Data assert(nth > 0); assert(ith < nth); + if (lda < k) + return false; + if (ldb < k) + return false; + if (ldc < m) + return false; + if (Ctype != MLLM_TYPE_F32) return false; diff --git a/src/backends/cpu/compute/SGEMM.hpp b/src/backends/cpu/compute/SGEMM.hpp index 9588a8ea..710199b1 100644 --- a/src/backends/cpu/compute/SGEMM.hpp +++ b/src/backends/cpu/compute/SGEMM.hpp @@ -12,7 +12,6 @@ bool llamafile_sgemm(int64_t m, int64_t n, int64_t k, const void *A, int64_t lda int ith, int nth, DataType Atype, DataType Btype, DataType Ctype, void *bias = nullptr, DataType BiasType = DataType::MLLM_TYPE_F32); -bool check_llamafile_sgemm(int64_t, int64_t, int64_t, - DataType, DataType, DataType); +bool check_llamafile_sgemm(int64_t m, int64_t n, int64_t k, DataType Atype, DataType Btype, DataType Ctype, int64_t lda, int64_t ldb, int64_t ldc); #endif // MLLM_GEMM_HPP diff --git a/src/models/bert/configuration_bert.hpp b/src/models/bert/configuration_bert.hpp index a70cc617..c156a78b 100644 --- a/src/models/bert/configuration_bert.hpp +++ b/src/models/bert/configuration_bert.hpp @@ -20,10 +20,10 @@ class BertNameConfig : public TransformerNameConfig { blk_name = "model.layers."; _attn_base_name = "self."; _ffn_base_name = "mlp."; - _q_proj_name = "query"; - _k_proj_name = "key"; - _v_proj_name = "value"; - _o_proj_name = "o_proj"; + _q_proj_name = "self.query"; + _k_proj_name = "self.key"; + _v_proj_name = "self.value"; + _o_proj_name = "output.dense"; _gate_proj_name = "gate_proj"; _up_proj_name = "up_proj"; _down_proj_name = "down_proj"; @@ -43,7 +43,7 @@ class BertNameConfig : public TransformerNameConfig { }; struct BertConfig : public TransformerConfig { - explicit BertConfig(){ + explicit BertConfig() { attention_dropout = 0.0; bos_token_id = 151643; eos_token_id = 151645; diff --git a/src/models/bert/modeling_bert.hpp b/src/models/bert/modeling_bert.hpp index c67a09f0..a7064a43 100644 --- a/src/models/bert/modeling_bert.hpp +++ b/src/models/bert/modeling_bert.hpp @@ -6,23 +6,21 @@ #include "Module.hpp" #include "Tensor.hpp" #include "configuration_bert.hpp" -#include +#include "models/transformer/modeling_transformer.hpp" using namespace mllm; class BertEmbeddings : public Module { public: BertEmbeddings() = default; BertEmbeddings(int vocal_size, int hidden_size, int type_size, int max_position_embeddings, float eps, BertNameConfig &config) { - word_embeddings = Embedding(vocal_size, hidden_size, config.embedding_base_name+"word_embeddings"); - token_type_embeddings = Embedding(type_size, hidden_size, config.embedding_base_name+"token_type_embeddings"); - position_embeddings = Embedding(max_position_embeddings, hidden_size, config.embedding_base_name+"position_embeddings"); - layer_norm = LayerNorm(hidden_size, true, eps, config.embedding_base_name+"LayerNorm"); + word_embeddings = Embedding(vocal_size, hidden_size, config.embedding_base_name + "word_embeddings"); + token_type_embeddings = Embedding(type_size, hidden_size, config.embedding_base_name + "token_type_embeddings"); + position_embeddings = Embedding(max_position_embeddings, hidden_size, config.embedding_base_name + "position_embeddings"); + layer_norm = LayerNorm(hidden_size, true, eps, config.embedding_base_name + "LayerNorm"); } std::vector Forward(std::vector inputs, std::vector args) override { auto inputs_embeds = word_embeddings(inputs[0]); -// if (Tensor::tensor_status == TENSOR_STATIC_READY) -// inputs_embeds.printData(); auto type_embeds = token_type_embeddings(inputs[1]); auto position_embeds = position_embeddings(inputs[2]); auto embeddings = inputs_embeds + type_embeds + position_embeds; @@ -36,91 +34,23 @@ class BertEmbeddings : public Module { Layer layer_norm; }; -class BertSelfAttention : public Module { -public: - BertSelfAttention() = default; - BertSelfAttention(BertConfig &config, const string &base_name) { - num_attention_heads = config.num_attention_heads; - attention_head_size = config.hidden_size / num_attention_heads; - all_head_size = num_attention_heads * attention_head_size; - - query = Linear(config.hidden_size, all_head_size, true, base_name + config.names_config._q_proj_name); - key = Linear(config.hidden_size, all_head_size, true, base_name + config.names_config._k_proj_name); - value = Linear(config.hidden_size, all_head_size, true, base_name + config.names_config._v_proj_name); - - softmax = Softmax(DIMENSION, base_name + "softmax"); - } - - std::vector Forward(std::vector inputs, std::vector args) override { - if (Tensor::tensor_status == TENSOR_STATIC_READY) { - std::cout << "emb type: " << inputs[0].ctype() << std::endl; - inputs[0].printData(); - } - - auto key_states = key(inputs[0]); - auto query_states = query(inputs[1]); - auto value_states = value(inputs[2]); - -// auto key_len = key_states.sequence(); - - query_states = query_states.view(-1, num_attention_heads, -1, attention_head_size); - key_states = key_states.view(-1, num_attention_heads, -1, attention_head_size); - value_states = value_states.view(-1, num_attention_heads, -1, attention_head_size); - - auto attn_weight = - Tensor::mm(query_states, key_states.transpose(Chl::SEQUENCE, Chl::DIMENSION)) / std::sqrt(attention_head_size); - auto attn_score = softmax(attn_weight); - auto attn_output = Tensor::mm(attn_score, value_states); - attn_output = attn_output.view(-1,1, -1, num_attention_heads * attention_head_size); - return {attn_output}; - } - -private: - int num_attention_heads; - int attention_head_size; - int all_head_size; - - Layer query; - Layer key; - Layer value; - - Layer softmax; -}; - -class BertAttention : public Module { -public: - - - std::vector Forward(std::vector inputs, std::vector args) override { - return {}; - } - -private: - -}; - class BertModel : public Module { public: - BertModel(BertConfig &config){ - embeddings = BertEmbeddings(config.vocab_size, config.hidden_size, config.type_vocab_size, config.max_position_embeddings, - config.layer_norm_eps, config.names_config); - self_attention = BertSelfAttention(config, "encoder.layer.0.attention.self."); - } + BertModel(BertConfig &config) { + embeddings = BertEmbeddings(config.vocab_size, config.hidden_size, config.type_vocab_size, config.max_position_embeddings, config.layer_norm_eps, config.names_config); + attention = MultiHeadAttention(config.hidden_size, config.num_attention_heads, config.num_attention_heads, config.hidden_size / config.num_attention_heads, SPLIT_NONE, false, false, RoPEType::NONE, -1, -1, 0, false, true, config.names_config, "encoder.layer.0.attention."); + } std::vector Forward(std::vector inputs, std::vector args) override { auto emb = embeddings(inputs, args)[0]; -// if (Tensor::tensor_status == TENSOR_STATIC_READY) { -// std::cout << "emb type: " << emb.ctype() << std::endl; -// emb.printData(); -// } - auto attn = self_attention({emb, emb, emb}); + auto attn = attention({emb, emb, emb}); return {attn[0]}; } private: BertEmbeddings embeddings; - BertSelfAttention self_attention; + MultiHeadAttention attention; }; #endif //! MODELING_BERT_HPP \ No newline at end of file diff --git a/vocab/gte_vocab.mllm b/vocab/gte_vocab.mllm new file mode 100644 index 0000000000000000000000000000000000000000..bc4dbc6463cd0c9992f0392dd0162f1a0e6be418 GIT binary patch literal 567344 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 z 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 pP&*nW^Y&6xLD(^pBFdsg9yPyMfr^> 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

sNZ^ONf8Ul$sD-&^FqlQVk zg-B%H(#wJU z6(XLZQ*Y8<((b*zqL6}fO?m}L9EDL1!6DzIR|2?8lboQ&SrUaNy(;AyoLz zfcuCueD>;Bdy`%bmQ~F`d?1vX^qPdgR?KO7oAlaL5o#~QvE@zL58#in_BUBcw4zC` z1M+aNw)}1$1YFsq*QbK`Td~8eYSJ43+%Z%nQ(<+J4v_ZTvUlQ|CcTkloQ|WLeJ~tq z(wh>(oOPWeO?q>xg5z<07;Dl&(jMW>0~lZ1VSOS@Ht8*(kztJt!_}vn^wyLO6ML>* z}%4yK-_;$eMC@b(z{cdvp6Q|O?po%!QSW1;9!%EfOzH* zbZDI|++#e1Lrr=wxIf0T3uy8VH|c!65PYOb?+5hWD(lIc1jDso0R^e2WKAb9ovkMKoQ0zGZH+zL*dWg&Zftyk?ySai@vQFdgPM>r15FI{Vf{ z*>^#+z6=((VcXvz<5L>3?oAu3W&k+!m5^Hv(AB-ItV~$JEuZ>v%Upn5<3`PsafA98LP)|CR362HtRcpajfwF z+vuHVd9%)^s!%o(ev3zIn)O|vI8�>|o1V*{tt@xQ|@AFi%!B>-zwahCGsyg$r8U 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 fNvDYDK1NE17o=>YWLxqQ-&t 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�>n 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 OFMa!~FRFKL_WFOvrxaoU literal 0 HcmV?d00001 From b79a06a10ff2dbf495a228f352c6f74f5aad010a Mon Sep 17 00:00:00 2001 From: Xie Weikai <1263212259@qq.com> Date: Mon, 28 Oct 2024 23:48:48 +0800 Subject: [PATCH 6/9] feat: basically finish bert --- examples/demo_bert.cpp | 4 +- src/models/bert/configuration_bert.hpp | 14 +++---- src/models/bert/modeling_bert.hpp | 55 +++++++++++++++++++++++--- 3 files changed, 58 insertions(+), 15 deletions(-) diff --git a/examples/demo_bert.cpp b/examples/demo_bert.cpp index 82451b11..f6ea6b82 100644 --- a/examples/demo_bert.cpp +++ b/examples/demo_bert.cpp @@ -5,8 +5,8 @@ #include "models/bert/modeling_bert.hpp" #include "models/bert/tokenization_bert.hpp" -string vocab_file = "../vocab/gte_vocab.mllm"; -string model_file = "../models/gte-small-fp32.mllm"; +string vocab_file = "./vocab/gte_vocab.mllm"; +string model_file = "./models/gte-small-fp32.mllm"; int main(int argc, char *argv[]) { BertTokenizer tokenizer(vocab_file, false); diff --git a/src/models/bert/configuration_bert.hpp b/src/models/bert/configuration_bert.hpp index c156a78b..2a1a3d05 100644 --- a/src/models/bert/configuration_bert.hpp +++ b/src/models/bert/configuration_bert.hpp @@ -18,17 +18,17 @@ class BertNameConfig : public TransformerNameConfig { embedding_base_name = "embeddings."; blk_name = "model.layers."; - _attn_base_name = "self."; + _attn_base_name = "attention."; _ffn_base_name = "mlp."; _q_proj_name = "self.query"; _k_proj_name = "self.key"; _v_proj_name = "self.value"; _o_proj_name = "output.dense"; _gate_proj_name = "gate_proj"; - _up_proj_name = "up_proj"; - _down_proj_name = "down_proj"; - _attn_norm_name = "input_layernorm"; - _ffn_norm_name = "post_attention_layernorm"; + _up_proj_name = "intermediate.dense"; + _down_proj_name = "output.dense"; + _attn_norm_name = "output.LayerNorm"; + _ffn_norm_name = "output.LayerNorm"; token_embd_name = "model.embed_tokens"; post_norm_name = "model.norm"; lm_head_name = "lm_head"; @@ -47,7 +47,7 @@ struct BertConfig : public TransformerConfig { attention_dropout = 0.0; bos_token_id = 151643; eos_token_id = 151645; - std::string hidden_act = "gelu"; + hidden_act = "GELU"; hidden_size = 384; initializer_range = 0.02; intermediate_size = 1536; @@ -72,7 +72,7 @@ struct BertConfig : public TransformerConfig { float attention_dropout = 0.0; int bos_token_id = 151643; int eos_token_id = 151643; - std::string hidden_act = "silu"; + std::string hidden_act = "GELU"; int hidden_size = 1024; float initializer_range = 0.02; int intermediate_size = 2816; diff --git a/src/models/bert/modeling_bert.hpp b/src/models/bert/modeling_bert.hpp index a7064a43..92d3a71a 100644 --- a/src/models/bert/modeling_bert.hpp +++ b/src/models/bert/modeling_bert.hpp @@ -34,23 +34,66 @@ class BertEmbeddings : public Module { Layer layer_norm; }; +class BertLayer : public Module { +public: + BertLayer() = default; + BertLayer(const BertConfig &config, const string &base_name) { + // base_name: encoder.layer.n. + attention = MultiHeadAttention(config.hidden_size, config.num_attention_heads, config.num_attention_heads, + config.hidden_size / config.num_attention_heads, SPLIT_NONE, false, false, RoPEType::NONE, -1, -1, 0, false, true, config.names_config, + base_name + config.names_config._attn_base_name); + + feed_forward = FeedForward(config.hidden_size, config.intermediate_size, + config.hidden_act, true, config.names_config, base_name); + + attn_norm = LayerNorm(config.hidden_size, true, config.layer_norm_eps, + base_name + config.names_config._attn_base_name + config.names_config._attn_norm_name); + + ff_norm = LayerNorm(config.hidden_size, true, config.layer_norm_eps, + base_name + config.names_config._ffn_norm_name); + } + + std::vector Forward(std::vector inputs, std::vector args) override { + auto hidden_states = inputs[0]; + + auto attn_out = attention({hidden_states, hidden_states, hidden_states})[0]; + + hidden_states = attn_norm({hidden_states + attn_out}); + + auto ff_out = feed_forward({hidden_states})[0]; + + hidden_states = ff_norm({hidden_states + ff_out}); + + return {hidden_states}; + } + +private: + MultiHeadAttention attention; + FeedForward feed_forward; + + Layer attn_norm, ff_norm; +}; + class BertModel : public Module { public: BertModel(BertConfig &config) { embeddings = BertEmbeddings(config.vocab_size, config.hidden_size, config.type_vocab_size, config.max_position_embeddings, config.layer_norm_eps, config.names_config); - - attention = MultiHeadAttention(config.hidden_size, config.num_attention_heads, config.num_attention_heads, config.hidden_size / config.num_attention_heads, SPLIT_NONE, false, false, RoPEType::NONE, -1, -1, 0, false, true, config.names_config, "encoder.layer.0.attention."); + layers = List(config.num_hidden_layers, config, "encoder.layer."); } std::vector Forward(std::vector inputs, std::vector args) override { - auto emb = embeddings(inputs, args)[0]; - auto attn = attention({emb, emb, emb}); - return {attn[0]}; + auto x = embeddings(inputs, args)[0]; + + for (auto &layer : layers) { + x = layer({x})[0]; + } + + return {x}; } private: BertEmbeddings embeddings; - MultiHeadAttention attention; + std::vector layers; }; #endif //! MODELING_BERT_HPP \ No newline at end of file From 77fc3b9187c92e9f2b51bc8d97f36ada8cfaa6cd Mon Sep 17 00:00:00 2001 From: Xie Weikai <1263212259@qq.com> Date: Tue, 29 Oct 2024 19:52:51 +0800 Subject: [PATCH 7/9] feat: fix tokenizer, add average pooling to bert --- examples/demo_bert.cpp | 17 +++++++-- src/models/bert/configuration_bert.hpp | 2 + src/models/bert/modeling_bert.hpp | 23 +++++++++++ src/models/bert/tokenization_bert.hpp | 17 ++++++++- src/tokenizers/WordPiece/WordPiece.cpp | 53 +++++++++++++++++++++++++- src/tokenizers/WordPiece/WordPiece.hpp | 4 ++ 6 files changed, 109 insertions(+), 7 deletions(-) diff --git a/examples/demo_bert.cpp b/examples/demo_bert.cpp index f6ea6b82..4337b91d 100644 --- a/examples/demo_bert.cpp +++ b/examples/demo_bert.cpp @@ -8,9 +8,15 @@ string vocab_file = "./vocab/gte_vocab.mllm"; string model_file = "./models/gte-small-fp32.mllm"; +/* + * an intent to support gte-small BertModel to do text embedding + * current implementation is just a very basic example with a simple WordPiece tokenizer and a simple BertModel + * not support batch embedding + * */ + int main(int argc, char *argv[]) { - BertTokenizer tokenizer(vocab_file, false); - string text = "Hello, my dog is cute."; + BertTokenizer tokenizer(vocab_file, true); + string text = "Help me set an alarm at 21:30"; auto [token_ids, type_ids, position_ids] = tokenizer.process(text); // token_ids.printData(); @@ -18,6 +24,9 @@ int main(int argc, char *argv[]) { auto model = BertModel(config); model.load(model_file); - auto res = model({token_ids, type_ids, position_ids}); - res[0].printData(); + auto res = model({token_ids, type_ids, position_ids})[0]; + + res.printData(); + + return 0; } diff --git a/src/models/bert/configuration_bert.hpp b/src/models/bert/configuration_bert.hpp index 2a1a3d05..9be33c0c 100644 --- a/src/models/bert/configuration_bert.hpp +++ b/src/models/bert/configuration_bert.hpp @@ -48,6 +48,7 @@ struct BertConfig : public TransformerConfig { bos_token_id = 151643; eos_token_id = 151645; hidden_act = "GELU"; + pooling_type = "mean"; hidden_size = 384; initializer_range = 0.02; intermediate_size = 1536; @@ -73,6 +74,7 @@ struct BertConfig : public TransformerConfig { int bos_token_id = 151643; int eos_token_id = 151643; std::string hidden_act = "GELU"; + std::string pooling_type = "mean"; int hidden_size = 1024; float initializer_range = 0.02; int intermediate_size = 2816; diff --git a/src/models/bert/modeling_bert.hpp b/src/models/bert/modeling_bert.hpp index 92d3a71a..23bc6a2f 100644 --- a/src/models/bert/modeling_bert.hpp +++ b/src/models/bert/modeling_bert.hpp @@ -74,11 +74,30 @@ class BertLayer : public Module { Layer attn_norm, ff_norm; }; + +class AvgPooler : public Module{ +public: + AvgPooler() = default; + std::vector Forward(std::vector inputs, std::vector args) override { + auto x = inputs[0]; + x = x.mean(SEQUENCE); + return {x}; + } +}; + class BertModel : public Module { public: BertModel(BertConfig &config) { embeddings = BertEmbeddings(config.vocab_size, config.hidden_size, config.type_vocab_size, config.max_position_embeddings, config.layer_norm_eps, config.names_config); layers = List(config.num_hidden_layers, config, "encoder.layer."); + + if(config.pooling_type == "mean") { + pooler = make_unique(); + }else { + // print not support pooling type and exit + std::cout << "Not support pooling type: " << config.pooling_type << std::endl; + exit(0); + } } std::vector Forward(std::vector inputs, std::vector args) override { @@ -88,12 +107,16 @@ class BertModel : public Module { x = layer({x})[0]; } + x = (*pooler)({x})[0]; + return {x}; } private: BertEmbeddings embeddings; std::vector layers; + + unique_ptr pooler; }; #endif //! MODELING_BERT_HPP \ No newline at end of file diff --git a/src/models/bert/tokenization_bert.hpp b/src/models/bert/tokenization_bert.hpp index c0433a89..d4d03809 100644 --- a/src/models/bert/tokenization_bert.hpp +++ b/src/models/bert/tokenization_bert.hpp @@ -16,13 +16,23 @@ using namespace mllm; class BertTokenizer final : public WordPieceTokenizer { public: - explicit BertTokenizer(const std::string &vocab_file, bool bos = true) : + explicit BertTokenizer(const std::string &vocab_file, bool add_special_tokens = true) : WordPieceTokenizer(vocab_file) { Module::initBackend(MLLM_CPU); + _add_special_tokens = add_special_tokens; + this->add_special_tokens({"[PAD]", "[CLS]", "[SEP]", "[MASK]"}); } - std::tuple process(std::string &text){ + std::tuple process(std::string text){ + if (_add_special_tokens) { + text = "[CLS] " + text + " [SEP]"; + } auto tokens_id = vector(); WordPieceTokenizer::tokenize(text, tokens_id, false); +// printf("token: "); +// for (auto &token_id : tokens_id) { +// printf("%d ", token_id); +// } + printf("\n"); auto tokens_type = vector(tokens_id.size(), 0); auto position_ids = vector(tokens_id.size()); for (size_t i = 0; i < tokens_id.size(); i++) { @@ -34,6 +44,9 @@ class BertTokenizer final : public WordPieceTokenizer { tokens2Input(position_ids, "input_position_ids") }; } + +private: + bool _add_special_tokens; }; #endif //! TOKENIZATION_BERT_HPP \ No newline at end of file diff --git a/src/tokenizers/WordPiece/WordPiece.cpp b/src/tokenizers/WordPiece/WordPiece.cpp index 3117d307..844a0c5a 100644 --- a/src/tokenizers/WordPiece/WordPiece.cpp +++ b/src/tokenizers/WordPiece/WordPiece.cpp @@ -104,11 +104,52 @@ bool mllm::BasicTokenizer::is_chinese_char(wchar_t cp) { (cp >= 0x20000 && cp <= 0x2A6DF); } +std::vector splitBySet(const std::wstring& text, const std::unordered_set& words) { + std::vector result; + size_t pos = 0; + + while (pos < text.length()) { + size_t minPos = std::wstring::npos; + std::wstring foundWord; + + // 查找最近的匹配项 + for (const auto& word : words) { + size_t found = text.find(word, pos); + if (found != std::wstring::npos && (found < minPos)) { + minPos = found; + foundWord = word; + } + } + + // 如果找到匹配项,处理之前的文本和匹配项 + if (minPos != std::wstring::npos) { + if (minPos > pos) { + // 添加匹配项前的文本 + result.push_back(text.substr(pos, minPos - pos)); + } + // 添加匹配项 + result.push_back(foundWord); + pos = minPos + foundWord.size(); + } else { + // 没有更多匹配项,添加剩余所有文本 + result.push_back(text.substr(pos)); + break; + } + } + + return result; +} + std::vector mllm::BasicTokenizer::tokenize(const std::wstring& text) { std::wstring cleaned = clean_text(text); if (_tokenize_chinese_chars) cleaned = tokenize_chinese_chars(cleaned); - std::vector split_tokens = whitespace_tokenize(cleaned); + std::vector white_space_splited_tokens = whitespace_tokenize(cleaned); + std::vector split_tokens; + for (const auto& token : white_space_splited_tokens) { + auto sub_tokens = splitBySet(token, never_split); + split_tokens.insert(split_tokens.end(), sub_tokens.begin(), sub_tokens.end()); + } std::vector output_tokens; for (auto& token : split_tokens) { @@ -138,6 +179,9 @@ std::vector mllm::BasicTokenizer::tokenize(const std::wstring& tex return output_tokens; } +void mllm::BasicTokenizer::add_never_split(const std::wstring &token) { + never_split.insert(token); +} void mllm::WordPieceTokenizer::tokenize(const string &text, vector &tokens, bool bos) { auto wstr = utf8_to_wstring(text); @@ -167,6 +211,7 @@ void mllm::WordPieceTokenizer::tokenize(const string &text, vector & break; } else{ token_strs.push_back(str); +// printf("word: %s\n", str.c_str()); } start = end; } @@ -177,3 +222,9 @@ void mllm::WordPieceTokenizer::tokenize(const string &text, vector & tokens.push_back(vocab_map_[token_str]); } } +void mllm::WordPieceTokenizer::add_special_tokens(const vector &special_tokens) { + // add never split tokens to basic tokenizer + for (const auto& token : special_tokens) { + basic_tokenizer.add_never_split(utf8_to_wstring(token)); + } +} diff --git a/src/tokenizers/WordPiece/WordPiece.hpp b/src/tokenizers/WordPiece/WordPiece.hpp index 1031d5a2..4bbee119 100644 --- a/src/tokenizers/WordPiece/WordPiece.hpp +++ b/src/tokenizers/WordPiece/WordPiece.hpp @@ -33,6 +33,8 @@ class BasicTokenizer { std::vector tokenize(const std::wstring& text); + void add_never_split(const std::wstring& token); + private: bool do_lower_case; bool _tokenize_chinese_chars; @@ -55,6 +57,8 @@ class WordPieceTokenizer: public Tokenizer { WordPieceTokenizer(const std::string &vocab_file); void tokenize(const std::string &text, std::vector &tokens, bool bos) override; + + void add_special_tokens(const std::vector &special_tokens); }; } From 71f9b67b9cc6f3e54091b3cb6c151a83dae7fc81 Mon Sep 17 00:00:00 2001 From: Xie Weikai <1263212259@qq.com> Date: Tue, 29 Oct 2024 20:14:52 +0800 Subject: [PATCH 8/9] clean configuration_bert.hpp --- src/models/bert/configuration_bert.hpp | 39 ++------------------------ src/models/bert/modeling_bert.hpp | 2 +- 2 files changed, 4 insertions(+), 37 deletions(-) diff --git a/src/models/bert/configuration_bert.hpp b/src/models/bert/configuration_bert.hpp index 9be33c0c..74e4164d 100644 --- a/src/models/bert/configuration_bert.hpp +++ b/src/models/bert/configuration_bert.hpp @@ -9,86 +9,53 @@ using namespace mllm; class BertNameConfig : public TransformerNameConfig { public: - /** - * @brief QWen2 following the hugging face naming method - * - * @param type RoPEType - */ void init() { embedding_base_name = "embeddings."; - blk_name = "model.layers."; + blk_name = "encoder.layer."; _attn_base_name = "attention."; - _ffn_base_name = "mlp."; _q_proj_name = "self.query"; _k_proj_name = "self.key"; _v_proj_name = "self.value"; _o_proj_name = "output.dense"; - _gate_proj_name = "gate_proj"; _up_proj_name = "intermediate.dense"; _down_proj_name = "output.dense"; _attn_norm_name = "output.LayerNorm"; _ffn_norm_name = "output.LayerNorm"; - token_embd_name = "model.embed_tokens"; - post_norm_name = "model.norm"; - lm_head_name = "lm_head"; } std::string embedding_base_name; std::string blk_name; - std::string token_embd_name; - std::string post_norm_name; - std::string lm_head_name; - std::string _gate_proj_name; }; struct BertConfig : public TransformerConfig { explicit BertConfig() { - attention_dropout = 0.0; - bos_token_id = 151643; - eos_token_id = 151645; hidden_act = "GELU"; pooling_type = "mean"; hidden_size = 384; - initializer_range = 0.02; intermediate_size = 1536; max_position_embeddings = 512; - max_window_layers = 21; model_type = "bert"; num_attention_heads = 12; num_hidden_layers = 12; - num_key_value_heads = 16; - rms_norm_eps = 1e-6; - rope_theta = 1000000.0; - sliding_window = 32768; vocab_size = 30522; - tie_embedding_words = true; - names_config.init(); }; int type_vocab_size = 2; float layer_norm_eps = 1e-12; - float attention_dropout = 0.0; - int bos_token_id = 151643; - int eos_token_id = 151643; std::string hidden_act = "GELU"; std::string pooling_type = "mean"; int hidden_size = 1024; - float initializer_range = 0.02; int intermediate_size = 2816; int max_position_embeddings = 32768; - int max_window_layers = 21; std::string model_type = "bert"; int num_attention_heads = 12; int num_hidden_layers = 12; - int num_key_value_heads = 12; - double rms_norm_eps = 1e-6; - float rope_theta = 1000000.0; - int sliding_window = 32768; + + int vocab_size = 151936; - bool tie_embedding_words = false; BertNameConfig names_config; }; diff --git a/src/models/bert/modeling_bert.hpp b/src/models/bert/modeling_bert.hpp index 23bc6a2f..1384946a 100644 --- a/src/models/bert/modeling_bert.hpp +++ b/src/models/bert/modeling_bert.hpp @@ -89,7 +89,7 @@ class BertModel : public Module { public: BertModel(BertConfig &config) { embeddings = BertEmbeddings(config.vocab_size, config.hidden_size, config.type_vocab_size, config.max_position_embeddings, config.layer_norm_eps, config.names_config); - layers = List(config.num_hidden_layers, config, "encoder.layer."); + layers = List(config.num_hidden_layers, config, config.names_config.blk_name); if(config.pooling_type == "mean") { pooler = make_unique(); From e591bed466e0988f6b9a48030dd5e4026b686001 Mon Sep 17 00:00:00 2001 From: yirongjie Date: Tue, 29 Oct 2024 15:56:05 +0000 Subject: [PATCH 9/9] fix: bert --- examples/demo_bert.cpp | 18 +++++++++++++----- src/models/bert/modeling_bert.hpp | 21 ++++++++------------- 2 files changed, 21 insertions(+), 18 deletions(-) diff --git a/examples/demo_bert.cpp b/examples/demo_bert.cpp index 4337b91d..dd4397bd 100644 --- a/examples/demo_bert.cpp +++ b/examples/demo_bert.cpp @@ -4,9 +4,7 @@ #include "models/bert/configuration_bert.hpp" #include "models/bert/modeling_bert.hpp" #include "models/bert/tokenization_bert.hpp" - -string vocab_file = "./vocab/gte_vocab.mllm"; -string model_file = "./models/gte-small-fp32.mllm"; +#include "cmdline.h" /* * an intent to support gte-small BertModel to do text embedding @@ -15,14 +13,24 @@ string model_file = "./models/gte-small-fp32.mllm"; * */ int main(int argc, char *argv[]) { - BertTokenizer tokenizer(vocab_file, true); + cmdline::parser cmdParser; + cmdParser.add("model", 'm', "specify mllm model path", false, "../models/gte-small-fp32.mllm"); + cmdParser.add("vocab", 'v', "specify mllm tokenizer model path", false, "../vocab/gte_vocab.mllm"); + cmdParser.add("thread", 't', "num of threads", false, 4); + cmdParser.parse_check(argc, argv); + + string model_path = cmdParser.get("model"); + string vocab_path = cmdParser.get("vocab"); + CPUBackend::cpu_threads = cmdParser.get("thread"); + + BertTokenizer tokenizer(vocab_path, true); string text = "Help me set an alarm at 21:30"; auto [token_ids, type_ids, position_ids] = tokenizer.process(text); // token_ids.printData(); auto config = BertConfig(); auto model = BertModel(config); - model.load(model_file); + model.load(model_path); auto res = model({token_ids, type_ids, position_ids})[0]; diff --git a/src/models/bert/modeling_bert.hpp b/src/models/bert/modeling_bert.hpp index 1384946a..e7d6730f 100644 --- a/src/models/bert/modeling_bert.hpp +++ b/src/models/bert/modeling_bert.hpp @@ -40,7 +40,7 @@ class BertLayer : public Module { BertLayer(const BertConfig &config, const string &base_name) { // base_name: encoder.layer.n. attention = MultiHeadAttention(config.hidden_size, config.num_attention_heads, config.num_attention_heads, - config.hidden_size / config.num_attention_heads, SPLIT_NONE, false, false, RoPEType::NONE, -1, -1, 0, false, true, config.names_config, + config.hidden_size / config.num_attention_heads, SPLIT_NONE, false, false, RoPEType::NONE, -1, -1, 0, false, true, config.names_config, base_name + config.names_config._attn_base_name); feed_forward = FeedForward(config.hidden_size, config.intermediate_size, @@ -74,10 +74,9 @@ class BertLayer : public Module { Layer attn_norm, ff_norm; }; - -class AvgPooler : public Module{ +class BertAvgPooler : public Module { public: - AvgPooler() = default; + BertAvgPooler() = default; std::vector Forward(std::vector inputs, std::vector args) override { auto x = inputs[0]; x = x.mean(SEQUENCE); @@ -91,9 +90,9 @@ class BertModel : public Module { embeddings = BertEmbeddings(config.vocab_size, config.hidden_size, config.type_vocab_size, config.max_position_embeddings, config.layer_norm_eps, config.names_config); layers = List(config.num_hidden_layers, config, config.names_config.blk_name); - if(config.pooling_type == "mean") { - pooler = make_unique(); - }else { + if (config.pooling_type == "mean") { + pooler = BertAvgPooler(); + } else { // print not support pooling type and exit std::cout << "Not support pooling type: " << config.pooling_type << std::endl; exit(0); @@ -102,21 +101,17 @@ class BertModel : public Module { std::vector Forward(std::vector inputs, std::vector args) override { auto x = embeddings(inputs, args)[0]; - for (auto &layer : layers) { x = layer({x})[0]; } - - x = (*pooler)({x})[0]; - + x = pooler({x})[0]; return {x}; } private: BertEmbeddings embeddings; std::vector layers; - - unique_ptr pooler; + BertAvgPooler pooler; }; #endif //! MODELING_BERT_HPP \ No newline at end of file