# arguments used for splitting a model across GPUs naively.
# arguments used for splitting a model across GPUs naively.
# only used if `parallelize=True`.
# only used if `parallelize=True`.
...
@@ -258,11 +258,14 @@ class HFLM(TemplateLM):
...
@@ -258,11 +258,14 @@ class HFLM(TemplateLM):
)
)
self.add_bos_token=add_bos_token
self.add_bos_token=add_bos_token
if"gemma"ingetattr(self.config,"model_type",""):
ifself.add_bos_tokenisNone:
self.add_bos_token=True
ifgetattr(self.tokenizer,"add_bos_token",False):
eval_logger.info(
self.add_bos_token=True
f"Model type is '{self.config.model_type}', part of the Gemma family--a BOS token will be used as Gemma underperforms without it."
eval_logger.info(
)
f"Tokenizer has 'add_bos_token' attribute set -- using BOS token based on tokenizer configuration for model type '{self.config.model_type}'. To control explicitly, set `add_bos_token=True|False`"
)
else:
self.add_bos_token=False
self._max_length=max_length
self._max_length=max_length
self.pretrained=pretrained
self.pretrained=pretrained
...
@@ -858,17 +861,23 @@ class HFLM(TemplateLM):
...
@@ -858,17 +861,23 @@ class HFLM(TemplateLM):
deftok_encode(
deftok_encode(
self,
self,
string:str,
string:str,
left_truncate_len:int|None=None,
add_special_tokens:bool|None=None,
add_special_tokens:bool|None=None,
left_truncate_len:int|None=None,
**kwargs,
)->list[int]:
)->list[int]:
""" """
# default for None - empty dict, use predefined tokenizer param
# default for None - empty dict, use predefined tokenizer param
# used for all models except for CausalLM or predefined value
# used for all models except for CausalLM or predefined value
special_tokens_kwargs=(
special_tokens_kwargs:dict=(
{"add_special_tokens":Falseorself.add_bos_token}
{
"add_special_tokens":self.add_bos_token
ifadd_special_tokensisNone
elseadd_special_tokens
}
ifself.backend=="causal"
ifself.backend=="causal"
# otherwise the method explicitly defines the value
# otherwise the method explicitly defines the value