File tree Expand file tree Collapse file tree 12 files changed +60
-7
lines changed Expand file tree Collapse file tree 12 files changed +60
-7
lines changed Original file line number Diff line number Diff line change @@ -68,9 +68,9 @@ def __post_init__(self):
68
68
if isinstance (self .target_modules , str ) and self .layers_to_transform is not None :
69
69
raise ValueError ("`layers_to_transform` cannot be used when `target_modules` is a str." )
70
70
71
- # if target_modules is a regex expression, then layers_pattern should be None
72
- if isinstance ( self .target_modules , str ) and self . layers_pattern is not None :
73
- raise ValueError ("`layers_pattern` cannot be used when `target_modules` is a str. " )
71
+ # check for layers_to_transform and layers_pattern
72
+ if self .layers_pattern and not self . layers_to_transform :
73
+ raise ValueError ("When `layers_pattern` is specified, `layers_to_transform` must also be specified. " )
74
74
75
75
# Check if 'r' has been set to a non-default value
76
76
if self .r != 8 : # 8 is the default value for 'r' in LoraConfig
Original file line number Diff line number Diff line change @@ -146,6 +146,9 @@ def __post_init__(self):
146
146
self .exclude_modules = (
147
147
set (self .exclude_modules ) if isinstance (self .exclude_modules , list ) else self .exclude_modules
148
148
)
149
+ # check for layers_to_transform and layers_pattern
150
+ if self .layers_pattern and not self .layers_to_transform :
151
+ raise ValueError ("When `layers_pattern` is specified, `layers_to_transform` must also be specified. " )
149
152
if self .boft_block_size == 0 and self .boft_block_num == 0 :
150
153
raise ValueError (
151
154
f"Either `boft_block_size` or `boft_block_num` must be non-zero. Currently, boft_block_size = { self .boft_block_size } and boft_block_num = { self .boft_block_num } ."
Original file line number Diff line number Diff line change @@ -199,3 +199,6 @@ def __post_init__(self):
199
199
# if target_modules is a regex expression, then layers_pattern should be None
200
200
if isinstance (self .target_modules , str ) and self .layers_pattern is not None :
201
201
raise ValueError ("`layers_pattern` cannot be used when `target_modules` is a str." )
202
+ # check for layers_to_transform and layers_pattern
203
+ if self .layers_pattern and not self .layers_to_transform :
204
+ raise ValueError ("When `layers_pattern` is specified, `layers_to_transform` must also be specified. " )
Original file line number Diff line number Diff line change @@ -129,3 +129,7 @@ def __post_init__(self):
129
129
# if target_modules is a regex expression, then layers_pattern should be None
130
130
if isinstance (self .target_modules , str ) and self .layers_pattern is not None :
131
131
raise ValueError ("`layers_pattern` cannot be used when `target_modules` is a str." )
132
+
133
+ # check for layers_to_transform and layers_pattern
134
+ if self .layers_pattern and not self .layers_to_transform :
135
+ raise ValueError ("When `layers_pattern` is specified, `layers_to_transform` must also be specified. " )
Original file line number Diff line number Diff line change @@ -133,3 +133,6 @@ def __post_init__(self):
133
133
self .exclude_modules = (
134
134
set (self .exclude_modules ) if isinstance (self .exclude_modules , list ) else self .exclude_modules
135
135
)
136
+ # check for layers_to_transform and layers_pattern
137
+ if self .layers_pattern and not self .layers_to_transform :
138
+ raise ValueError ("When `layers_pattern` is specified, `layers_to_transform` must also be specified. " )
Original file line number Diff line number Diff line change @@ -142,3 +142,6 @@ def __post_init__(self):
142
142
self .exclude_modules = (
143
143
set (self .exclude_modules ) if isinstance (self .exclude_modules , list ) else self .exclude_modules
144
144
)
145
+ # check for layers_to_transform and layers_pattern
146
+ if self .layers_pattern and not self .layers_to_transform :
147
+ raise ValueError ("When `layers_pattern` is specified, `layers_to_transform` must also be specified. " )
Original file line number Diff line number Diff line change @@ -340,6 +340,7 @@ def __post_init__(self):
340
340
self .exclude_modules = (
341
341
set (self .exclude_modules ) if isinstance (self .exclude_modules , list ) else self .exclude_modules
342
342
)
343
+
343
344
# if target_modules is a regex expression, then layers_to_transform should be None
344
345
if isinstance (self .target_modules , str ) and self .layers_to_transform is not None :
345
346
raise ValueError ("`layers_to_transform` cannot be used when `target_modules` is a str." )
@@ -348,6 +349,10 @@ def __post_init__(self):
348
349
if isinstance (self .target_modules , str ) and self .layers_pattern is not None :
349
350
raise ValueError ("`layers_pattern` cannot be used when `target_modules` is a str." )
350
351
352
+ # check for layers_to_transform and layers_pattern
353
+ if self .layers_pattern and not self .layers_to_transform :
354
+ raise ValueError ("When `layers_pattern` is specified, `layers_to_transform` must also be specified. " )
355
+
351
356
if self .use_dora and self .megatron_config :
352
357
raise ValueError ("DoRA does not support megatron_core, please set `use_dora=False`." )
353
358
Original file line number Diff line number Diff line change @@ -176,6 +176,9 @@ def __post_init__(self):
176
176
self .exclude_modules = (
177
177
set (self .exclude_modules ) if isinstance (self .exclude_modules , list ) else self .exclude_modules
178
178
)
179
+ # check for layers_to_transform and layers_pattern
180
+ if self .layers_pattern and not self .layers_to_transform :
181
+ raise ValueError ("When `layers_pattern` is specified, `layers_to_transform` must also be specified. " )
179
182
if self .r == 0 and self .oft_block_size == 0 :
180
183
raise ValueError (
181
184
f"Either `r` or `oft_block_size` must be non-zero. Currently, r = { self .r } and oft_block_size = { self .oft_block_size } ."
Original file line number Diff line number Diff line change @@ -190,3 +190,6 @@ def __post_init__(self):
190
190
self .exclude_modules = (
191
191
set (self .exclude_modules ) if isinstance (self .exclude_modules , list ) else self .exclude_modules
192
192
)
193
+ # check for layers_to_transform and layers_pattern
194
+ if self .layers_pattern and not self .layers_to_transform :
195
+ raise ValueError ("When `layers_pattern` is specified, `layers_to_transform` must also be specified. " )
Original file line number Diff line number Diff line change @@ -150,7 +150,9 @@ def __post_init__(self):
150
150
self .target_modules = (
151
151
set (self .target_modules ) if isinstance (self .target_modules , list ) else self .target_modules
152
152
)
153
-
153
+ # check for layers_to_transform and layers_pattern
154
+ if self .layers_pattern and not self .layers_to_transform :
155
+ raise ValueError ("When `layers_pattern` is specified, `layers_to_transform` must also be specified. " )
154
156
if not self .save_projection :
155
157
warnings .warn (
156
158
"Specified to not save vera_A and vera_B within the state dictionary, instead they will be restored "
You can’t perform that action at this time.
0 commit comments