Skip to content

Commit 14e74a9

Browse files
support llama3.1 llama3.2 & transformers 4.45.2 version & fix two devices bug (#120)
1 parent 92e7190 commit 14e74a9

File tree

6 files changed

+16
-11
lines changed

6 files changed

+16
-11
lines changed

llmc/models/falcon.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,16 @@ def find_blocks(self):
1313

1414
def find_embed_layers(self):
1515
self.word_embeddings = self.model.transformer.word_embeddings
16+
self.rotary_emb = self.model.model.rotary_emb
1617

1718
def find_block_name(self):
1819
self.block_name_prefix = 'model.transformer.h'
1920

2021
def get_embed_layers(self):
21-
return [self.word_embeddings]
22+
return [self.word_embeddings, self.rotary_emb]
2223

2324
def get_layers_except_blocks(self):
24-
return [self.word_embeddings, self.model.transformer.ln_f]
25+
return [self.word_embeddings, self.rotary_emb, self.model.transformer.ln_f]
2526

2627
def has_bias(self):
2728
return False

llmc/models/llama.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,14 @@ def find_blocks(self):
1313

1414
def find_embed_layers(self):
1515
self.embed_tokens = self.model.model.embed_tokens
16+
self.rotary_emb = self.model.model.rotary_emb
1617

1718
def find_block_name(self):
1819
self.block_name_prefix = 'model.layers'
1920
self.pairs = {'q_proj': 'qkv', 'o_proj': 'out', 'up_proj': 'fc1'}
2021

2122
def get_embed_layers(self):
22-
return [self.embed_tokens]
23+
return [self.embed_tokens, self.rotary_emb]
2324

2425
def get_head_layers(self):
2526
return [self.model.lm_head]
@@ -28,7 +29,7 @@ def get_pre_head_layernorm_layers(self):
2829
return [self.model.model.norm]
2930

3031
def get_layers_except_blocks(self):
31-
return [self.embed_tokens, self.model.model.norm, self.model.lm_head]
32+
return [self.embed_tokens, self.rotary_emb, self.model.model.norm, self.model.lm_head] # noqa
3233

3334
def skip_layer_name(self):
3435
return ['lm_head']

llmc/models/phi.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,14 @@ def find_blocks(self):
1313

1414
def find_embed_layers(self):
1515
self.embed_tokens = self.model.model.embed_tokens
16+
self.rotary_emb = self.model.model.rotary_emb
1617

1718
def find_block_name(self):
1819
self.block_name_prefix = 'model.layers'
1920
self.pairs = {'q_proj': 'qkv', 'o_proj': 'out', 'up_proj': 'fc1'}
2021

2122
def get_embed_layers(self):
22-
return [self.embed_tokens]
23+
return [self.embed_tokens, self.rotary_emb]
2324

2425
def get_head_layers(self):
2526
return [self.model.lm_head]
@@ -28,7 +29,7 @@ def get_pre_head_layernorm_layers(self):
2829
return [self.model.model.final_layernorm]
2930

3031
def get_layers_except_blocks(self):
31-
return [self.embed_tokens, self.model.model.final_layernorm, self.model.lm_head]
32+
return [self.embed_tokens, self.rotary_emb, self.model.model.final_layernorm, self.model.lm_head] # noqa
3233

3334
def skip_layer_name(self):
3435
return ['lm_head']

llmc/models/qwen2.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,14 @@ def find_blocks(self):
1313

1414
def find_embed_layers(self):
1515
self.embed_tokens = self.model.model.embed_tokens
16+
self.rotary_emb = self.model.model.rotary_emb
1617

1718
def find_block_name(self):
1819
self.block_name_prefix = 'model.layers'
1920
self.pairs = {'q_proj': 'qkv', 'o_proj': 'out', 'up_proj': 'fc1'}
2021

2122
def get_embed_layers(self):
22-
return [self.embed_tokens]
23+
return [self.embed_tokens, self.rotary_emb]
2324

2425
def get_head_layers(self):
2526
return [self.model.lm_head]
@@ -28,7 +29,7 @@ def get_pre_head_layernorm_layers(self):
2829
return [self.model.model.norm]
2930

3031
def get_layers_except_blocks(self):
31-
return [self.embed_tokens, self.model.model.norm, self.model.lm_head]
32+
return [self.embed_tokens, self.rotary_emb, self.model.model.norm, self.model.lm_head] # noqa
3233

3334
def skip_layer_name(self):
3435
return ['lm_head']

llmc/models/stablelm.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ def __init__(self, model_path, torch_dtype, device_map=None, use_cache=False):
1010

1111
def find_blocks(self):
1212
self.blocks = self.model.model.layers
13+
self.rotary_emb = self.model.model.rotary_emb
1314

1415
def find_embed_layers(self):
1516
self.embed_tokens = self.model.model.embed_tokens
@@ -19,7 +20,7 @@ def find_block_name(self):
1920
self.pairs = {'q_proj': 'qkv', 'o_proj': 'out', 'up_proj': 'fc1'}
2021

2122
def get_embed_layers(self):
22-
return [self.embed_tokens]
23+
return [self.embed_tokens, self.rotary_emb]
2324

2425
def get_head_layers(self):
2526
return [self.model.lm_head]
@@ -28,7 +29,7 @@ def get_pre_head_layernorm_layers(self):
2829
return [self.model.model.norm]
2930

3031
def get_layers_except_blocks(self):
31-
return [self.embed_tokens, self.model.model.norm, self.model.lm_head]
32+
return [self.embed_tokens, self.rotary_emb, self.model.model.norm, self.model.lm_head] # noqa
3233

3334
def skip_layer_name(self):
3435
return ['lm_head']

requirements/runtime.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
torch>=2.1.0
22
pillow
33
loguru
4-
transformers>=4.41.2
4+
transformers==4.45.2
55
huggingface-hub
66
sentencepiece
77
protobuf

0 commit comments

Comments
 (0)