@@ -237,18 +237,24 @@ def create_model_builder(
237237 "OlmoForCausalLM" : builder .OLMoModel ,
238238 "PhiForCausalLM" : builder .PhiModel ,
239239 "Phi3ForCausalLM" : (
240- lambda config , * _ : (
241- builder .Phi3MiniModel
242- if config .max_position_embeddings == config .original_max_position_embeddings
243- else builder .Phi3MiniLongRoPEModel
240+ lambda config , * args : (
241+ (
242+ builder .Phi3MiniModel
243+ if config .max_position_embeddings
244+ == config .original_max_position_embeddings
245+ else builder .Phi3MiniLongRoPEModel
246+ )(config , * args )
244247 )
245248 ),
246249 "PhiMoEForCausalLM" : builder .Phi3MoELongRoPEModel ,
247250 "Phi3SmallForCausalLM" : (
248- lambda config , * _ : (
249- builder .Phi3SmallModel
250- if config .max_position_embeddings == config .original_max_position_embeddings
251- else builder .Phi3SmallLongRoPEModel
251+ lambda config , * args : (
252+ (
253+ builder .Phi3SmallModel
254+ if config .max_position_embeddings
255+ == config .original_max_position_embeddings
256+ else builder .Phi3SmallLongRoPEModel
257+ )(config , * args )
252258 )
253259 ),
254260 "Phi3VForCausalLM" : builder .Phi3VModel ,
@@ -317,7 +323,17 @@ def _post(onnx_model):
317323 )
318324
319325 cls = arch_map [config .architectures [0 ]]
326+
327+ # ModelBuilder does not like None values for some parameters.
328+ remove = set ()
329+ for c in ["head_dim" ]:
330+ if hasattr (config , c ) and getattr (config , c ) is None :
331+ remove .add (c )
332+ for c in remove :
333+ delattr (config , c )
334+
320335 onnx_model = cls (config , io_dtype , precision , execution_provider , cache_dir , extra_options )
336+
321337 if post :
322338 post (onnx_model )
323339 _make_model (onnx_model , model , verbose = verbose )
0 commit comments