Skip to content

Commit 6af258f

Browse files
committed
add: huggingface-llamacpp routing
Signed-off-by: DWarez <dario.salvati@huggingface.co>
1 parent 0494b46 commit 6af258f

4 files changed

Lines changed: 24 additions & 0 deletions

File tree

‎sagemaker-serve/src/sagemaker/serve/constants.py‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@
6868
ModelServer.VLLM,
6969
ModelServer.SGLANG,
7070
ModelServer.VLLM_OMNI,
71+
ModelServer.LLAMACPP,
7172
}
7273

7374
# HuggingFace pipeline tags that should route to the vLLM-omni (multimodal) server.

‎sagemaker-serve/src/sagemaker/serve/model_builder_servers.py‎

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,8 @@ def _build_for_model_server(self) -> Model:
122122
return self._build_for_sglang()
123123
elif self.model_server == ModelServer.VLLM_OMNI:
124124
return self._build_for_vllm_omni()
125+
elif self.model_server == ModelServer.LLAMACPP:
126+
return self._build_for_llamacpp()
125127
elif self.model_server == ModelServer.MMS:
126128
return self._build_for_transformers()
127129
elif self.model_server == ModelServer.SMD:
@@ -393,6 +395,14 @@ def _build_for_vllm_omni(self) -> Model:
393395
"""
394396
return self._build_for_hf_server(ModelServer.VLLM_OMNI)
395397

398+
def _build_for_llamacpp(self) -> Model:
399+
"""Build a HuggingFace model for the llama.cpp serving container.
400+
401+
Returns:
402+
Model: Configured model ready for llama.cpp deployment.
403+
"""
404+
return self._build_for_hf_server(ModelServer.LLAMACPP)
405+
396406
def _build_for_djl(self) -> Model:
397407
"""Build model for DJL Serving deployment.
398408

‎sagemaker-serve/src/sagemaker/serve/model_builder_utils.py‎

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -727,6 +727,18 @@ def _detect_huggingface_image(self) -> None:
727727
)
728728
self.framework = Framework.HUGGINGFACE
729729

730+
elif effective_model_server == ModelServer.LLAMACPP:
731+
# llama.cpp: Use image_uris.retrieve with "huggingface-llamacpp" framework.
732+
# This DLC ships both gpu and cpu variants, so instance_type is required to select the right processor.
733+
self.image_uri = image_uris.retrieve(
734+
"huggingface-llamacpp",
735+
region=self.region,
736+
version=None, # Use latest version
737+
image_scope="inference",
738+
instance_type=getattr(self, "instance_type", None),
739+
)
740+
self.framework = Framework.HUGGINGFACE
741+
730742
elif effective_model_server == ModelServer.TEI:
731743
# TEI: Use image_uris.retrieve with "huggingface-tei" framework
732744
self.image_uri = image_uris.retrieve(

‎sagemaker-serve/src/sagemaker/serve/utils/types.py‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ def __str__(self):
2323
VLLM = 9
2424
SGLANG = 10
2525
VLLM_OMNI = 11
26+
LLAMACPP = 12
2627

2728

2829
class HardwareType(Enum):

0 commit comments

Comments
 (0)