add device parameter to TransformerModel
This commit is contained in:
		
							parent
							
								
									5991206ae5
								
							
						
					
					
						commit
						81388b14f7
					
				|  | @ -284,7 +284,7 @@ class HfApiModel(Model): | ||||||
| class TransformersModel(Model): | class TransformersModel(Model): | ||||||
|     """This engine initializes a model and tokenizer from the given `model_id`.""" |     """This engine initializes a model and tokenizer from the given `model_id`.""" | ||||||
| 
 | 
 | ||||||
|     def __init__(self, model_id: Optional[str] = None): |     def __init__(self, model_id: Optional[str] = None, device: Optional[str] = None): | ||||||
|         super().__init__() |         super().__init__() | ||||||
|         default_model_id = "HuggingFaceTB/SmolLM2-1.7B-Instruct" |         default_model_id = "HuggingFaceTB/SmolLM2-1.7B-Instruct" | ||||||
|         if model_id is None: |         if model_id is None: | ||||||
|  | @ -293,15 +293,18 @@ class TransformersModel(Model): | ||||||
|                 f"`model_id`not provided, using this default tokenizer for token counts: '{model_id}'" |                 f"`model_id`not provided, using this default tokenizer for token counts: '{model_id}'" | ||||||
|             ) |             ) | ||||||
|         self.model_id = model_id |         self.model_id = model_id | ||||||
|  |         if device is None: | ||||||
|  |             device = "cuda" if torch.cuda.is_available() else "cpu" | ||||||
|  |         self.device = device | ||||||
|         try: |         try: | ||||||
|             self.tokenizer = AutoTokenizer.from_pretrained(model_id) |             self.tokenizer = AutoTokenizer.from_pretrained(model_id) | ||||||
|             self.model = AutoModelForCausalLM.from_pretrained(model_id) |             self.model = AutoModelForCausalLM.from_pretrained(model_id).to(self.device) | ||||||
|         except Exception as e: |         except Exception as e: | ||||||
|             logger.warning( |             logger.warning( | ||||||
|                 f"Failed to load tokenizer and model for {model_id=}: {e}. Loading default tokenizer and model instead from {model_id=}." |                 f"Failed to load tokenizer and model for {model_id=}: {e}. Loading default tokenizer and model instead from {model_id=}." | ||||||
|             ) |             ) | ||||||
|             self.tokenizer = AutoTokenizer.from_pretrained(default_model_id) |             self.tokenizer = AutoTokenizer.from_pretrained(default_model_id) | ||||||
|             self.model = AutoModelForCausalLM.from_pretrained(default_model_id) |             self.model = AutoModelForCausalLM.from_pretrained(default_model_id).to(self.device) | ||||||
| 
 | 
 | ||||||
|     def make_stopping_criteria(self, stop_sequences: List[str]) -> StoppingCriteriaList: |     def make_stopping_criteria(self, stop_sequences: List[str]) -> StoppingCriteriaList: | ||||||
|         class StopOnStrings(StoppingCriteria): |         class StopOnStrings(StoppingCriteria): | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue