diff --git a/docs/docs/advanced/intrinsics.md b/docs/docs/advanced/intrinsics.md index b2079a0da..317295cb7 100644 --- a/docs/docs/advanced/intrinsics.md +++ b/docs/docs/advanced/intrinsics.md @@ -36,12 +36,12 @@ Or, with a Granite Switch model via the OpenAI backend: ```python from mellea.backends.openai import OpenAIBackend -from mellea.backends.model_ids import IBM_GRANITE_SWITCH_4_1_3B +from mellea.backends.model_ids import IBM_GRANITE_SWITCH_4_1_3B_PREVIEW from mellea.formatters import TemplateFormatter backend = OpenAIBackend( - model_id=IBM_GRANITE_SWITCH_4_1_3B.hf_model_name, - formatter=TemplateFormatter(model_id=IBM_GRANITE_SWITCH_4_1_3B.hf_model_name), + model_id=IBM_GRANITE_SWITCH_4_1_3B_PREVIEW.hf_model_name, + formatter=TemplateFormatter(model_id=IBM_GRANITE_SWITCH_4_1_3B_PREVIEW.hf_model_name), base_url="http://localhost:8000/v1", # vLLM server api_key="EMPTY", load_embedded_adapters=True, diff --git a/docs/docs/integrations/openai.md b/docs/docs/integrations/openai.md index e20c01840..a4db68065 100644 --- a/docs/docs/integrations/openai.md +++ b/docs/docs/integrations/openai.md @@ -278,12 +278,12 @@ Then create a backend with `load_embedded_adapters=True`: ```python from mellea.backends.openai import OpenAIBackend -from mellea.backends.model_ids import IBM_GRANITE_SWITCH_4_1_3B +from mellea.backends.model_ids import IBM_GRANITE_SWITCH_4_1_3B_PREVIEW from mellea.formatters import TemplateFormatter backend = OpenAIBackend( - model_id=IBM_GRANITE_SWITCH_4_1_3B.hf_model_name, - formatter=TemplateFormatter(model_id=IBM_GRANITE_SWITCH_4_1_3B.hf_model_name), + model_id=IBM_GRANITE_SWITCH_4_1_3B_PREVIEW.hf_model_name, + formatter=TemplateFormatter(model_id=IBM_GRANITE_SWITCH_4_1_3B_PREVIEW.hf_model_name), base_url="http://localhost:8000/v1", api_key="EMPTY", load_embedded_adapters=True, @@ -305,12 +305,12 @@ For more control, load adapters manually with `load_embedded_adapters=False`: ```python from mellea.backends.adapters.adapter import EmbeddedIntrinsicAdapter from mellea.backends.openai import OpenAIBackend -from mellea.backends.model_ids import IBM_GRANITE_SWITCH_4_1_3B +from mellea.backends.model_ids import IBM_GRANITE_SWITCH_4_1_3B_PREVIEW from mellea.formatters import TemplateFormatter backend = OpenAIBackend( - model_id=IBM_GRANITE_SWITCH_4_1_3B.hf_model_name, - formatter=TemplateFormatter(model_id=IBM_GRANITE_SWITCH_4_1_3B.hf_model_name), + model_id=IBM_GRANITE_SWITCH_4_1_3B_PREVIEW.hf_model_name, + formatter=TemplateFormatter(model_id=IBM_GRANITE_SWITCH_4_1_3B_PREVIEW.hf_model_name), base_url="http://localhost:8000/v1", api_key="EMPTY", load_embedded_adapters=False, @@ -318,7 +318,7 @@ backend = OpenAIBackend( # Load a single adapter from the model's HuggingFace repo adapters = EmbeddedIntrinsicAdapter.from_hub( - IBM_GRANITE_SWITCH_4_1_3B.hf_model_name, + IBM_GRANITE_SWITCH_4_1_3B_PREVIEW.hf_model_name, intrinsic_name="answerability", ) for adapter in adapters: @@ -347,4 +347,4 @@ local servers, list available models from the server's API or UI. **See also:** [Backends and Configuration](../how-to/backends-and-configuration) | [Enforce Structured Output](../how-to/enforce-structured-output) | -[Official Granite Switch Documentation](GRANITE_SWITCH_DOCS) +[Official Granite Switch Documentation](https://github.com/generative-computing/granite-switch) diff --git a/docs/docs/reference/glossary.md b/docs/docs/reference/glossary.md index aadeacc60..cea0d6582 100644 --- a/docs/docs/reference/glossary.md +++ b/docs/docs/reference/glossary.md @@ -295,7 +295,7 @@ See: [Making Agents Reliable](../tutorials/04-making-agents-reliable) A Granite model variant with LoRA and aLoRA adapters pre-baked into the model weights. When served via vLLM and accessed through `OpenAIBackend` with `load_embedded_adapters=True`, these embedded adapters enable [Intrinsics](../advanced/intrinsics) (RAG quality checks, requirement validation, safety evaluation) without runtime adapter loading. Only intrinsics embedded in the model are available — check the model's `adapter_index.json`. -See: [Official Granite Switch Documentation](GRANITE_SWITCH_DOCS) | +See: [Official Granite Switch Documentation](https://github.com/generative-computing/granite-switch) | [Intrinsics](../advanced/intrinsics) | [OpenAI and OpenAI-Compatible APIs](../integrations/openai) diff --git a/docs/examples/granite-switch/answerability_openai.py b/docs/examples/granite-switch/answerability_openai.py index ec89459a0..ca9686375 100644 --- a/docs/examples/granite-switch/answerability_openai.py +++ b/docs/examples/granite-switch/answerability_openai.py @@ -26,14 +26,14 @@ print(f"Skipped: vLLM server not reachable at {VLLM_BASE_URL}", file=sys.stderr) raise SystemExit(1) -from mellea.backends.model_ids import IBM_GRANITE_SWITCH_4_1_3B +from mellea.backends.model_ids import IBM_GRANITE_SWITCH_4_1_3B_PREVIEW from mellea.backends.openai import OpenAIBackend from mellea.formatters import TemplateFormatter from mellea.stdlib.components import Document, Message from mellea.stdlib.components.intrinsic import rag from mellea.stdlib.context import ChatContext -SWITCH_MODEL_ID = IBM_GRANITE_SWITCH_4_1_3B.hf_model_name +SWITCH_MODEL_ID = IBM_GRANITE_SWITCH_4_1_3B_PREVIEW.hf_model_name assert SWITCH_MODEL_ID is not None backend = OpenAIBackend( diff --git a/docs/examples/granite-switch/hallucination_detection_openai.py b/docs/examples/granite-switch/hallucination_detection_openai.py index 6e99c984a..faaf95421 100644 --- a/docs/examples/granite-switch/hallucination_detection_openai.py +++ b/docs/examples/granite-switch/hallucination_detection_openai.py @@ -26,14 +26,14 @@ print(f"Skipped: vLLM server not reachable at {VLLM_BASE_URL}", file=sys.stderr) raise SystemExit(1) -from mellea.backends.model_ids import IBM_GRANITE_SWITCH_4_1_3B +from mellea.backends.model_ids import IBM_GRANITE_SWITCH_4_1_3B_PREVIEW from mellea.backends.openai import OpenAIBackend from mellea.formatters import TemplateFormatter from mellea.stdlib.components import Document, Message from mellea.stdlib.components.intrinsic import rag from mellea.stdlib.context import ChatContext -SWITCH_MODEL_ID = IBM_GRANITE_SWITCH_4_1_3B.hf_model_name +SWITCH_MODEL_ID = IBM_GRANITE_SWITCH_4_1_3B_PREVIEW.hf_model_name assert SWITCH_MODEL_ID is not None backend = OpenAIBackend( diff --git a/docs/examples/granite-switch/manual_adapter_loading.py b/docs/examples/granite-switch/manual_adapter_loading.py index c6f77b210..75bdf8d4b 100644 --- a/docs/examples/granite-switch/manual_adapter_loading.py +++ b/docs/examples/granite-switch/manual_adapter_loading.py @@ -36,14 +36,14 @@ raise SystemExit(1) from mellea.backends.adapters.adapter import EmbeddedIntrinsicAdapter -from mellea.backends.model_ids import IBM_GRANITE_SWITCH_4_1_3B +from mellea.backends.model_ids import IBM_GRANITE_SWITCH_4_1_3B_PREVIEW from mellea.backends.openai import OpenAIBackend from mellea.formatters import TemplateFormatter from mellea.stdlib.components import Document, Message from mellea.stdlib.components.intrinsic import rag from mellea.stdlib.context import ChatContext -SWITCH_MODEL_ID = IBM_GRANITE_SWITCH_4_1_3B.hf_model_name +SWITCH_MODEL_ID = IBM_GRANITE_SWITCH_4_1_3B_PREVIEW.hf_model_name assert SWITCH_MODEL_ID is not None # Create the backend WITHOUT auto-loading adapters. diff --git a/docs/examples/intrinsics/README.md b/docs/examples/intrinsics/README.md index 392ea2a27..bf50c914b 100644 --- a/docs/examples/intrinsics/README.md +++ b/docs/examples/intrinsics/README.md @@ -85,7 +85,7 @@ out, new_ctx = mfuncs.act( OpenAIBackends also support a type of embedded adapter for Granite Switch models: ```python backend = OpenAIBackend( - model_id=IBM_GRANITE_SWITCH_4_1_3B.hf_model_name, + model_id=IBM_GRANITE_SWITCH_4_1_3B_PREVIEW.hf_model_name, load_embedded_adapters=True, # Auto-loads adapters from huggingface repo. ... ) diff --git a/docs/examples/intrinsics/intrinsics.py b/docs/examples/intrinsics/intrinsics.py index 65a07d8a2..07b95ef3f 100644 --- a/docs/examples/intrinsics/intrinsics.py +++ b/docs/examples/intrinsics/intrinsics.py @@ -14,12 +14,12 @@ # Requires the adapter for this intrinsic to be embedded in the Granite Switch # model. See docs/examples/granite-switch/ for a full runnable example. # from mellea.backends.openai import OpenAIBackend -# from mellea.backends.model_ids import IBM_GRANITE_SWITCH_4_1_3B +# from mellea.backends.model_ids import IBM_GRANITE_SWITCH_4_1_3B_PREVIEW # from mellea.formatters import TemplateFormatter # # backend = OpenAIBackend( -# model_id=IBM_GRANITE_SWITCH_4_1_3B.hf_model_name, -# formatter=TemplateFormatter(model_id=IBM_GRANITE_SWITCH_4_1_3B.hf_model_name), +# model_id=IBM_GRANITE_SWITCH_4_1_3B_PREVIEW.hf_model_name, +# formatter=TemplateFormatter(model_id=IBM_GRANITE_SWITCH_4_1_3B_PREVIEW.hf_model_name), # base_url="http://localhost:8000/v1", # vLLM server URL # api_key="EMPTY", # load_embedded_adapters=True, diff --git a/mellea/backends/model_ids.py b/mellea/backends/model_ids.py index 1c168831b..3bcf414d8 100644 --- a/mellea/backends/model_ids.py +++ b/mellea/backends/model_ids.py @@ -135,10 +135,20 @@ class ModelIdentifier: ) # Pre-Built Granite Switch Models -IBM_GRANITE_SWITCH_4_1_3B = ModelIdentifier( - hf_model_name="GrizleeBer/gs-test-1" # TODO: Placeholder. Change this value. +IBM_GRANITE_SWITCH_4_1_3B_PREVIEW = ModelIdentifier( + hf_model_name="ibm-granite/granite-switch-4.1-3b-preview" ) -"""Granite Switch.""" # Document what adapters are included by default here. +"""Granite Switch Preview Model. Adapters: `citations`, `query_rewrite`, `query_clarification`, `hallucination_detection`, `answerability`, `policy-guardrails`, `guardian-core`, `uncertainty`, `requirement-check`, `context-attribution`, `factuality-detection`, `factuality-correction`.""" # Document what adapters are included by default here. + +IBM_GRANITE_SWITCH_4_1_8B_PREVIEW = ModelIdentifier( + hf_model_name="ibm-granite/granite-switch-4.1-8b-preview" +) +"""Granite Switch Preview Model. Adapters: `citations`, `query_rewrite`, `query_clarification`, `hallucination_detection`, `answerability`, `policy-guardrails`, `guardian-core`, `uncertainty`, `requirement-check`, `context-attribution`, `factuality-detection`, `factuality-correction`.""" # Document what adapters are included by default here. + +IBM_GRANITE_SWITCH_4_1_30B_PREVIEW = ModelIdentifier( + hf_model_name="ibm-granite/granite-switch-4.1-30b-preview" +) +"""Granite Switch Preview Model. Adapters: `citations`, `query_rewrite`, `query_clarification`, `hallucination_detection`, `answerability`, `policy-guardrails`, `guardian-core`, `uncertainty`, `requirement-check`, `context-attribution`, `factuality-detection`, `factuality-correction`.""" # Document what adapters are included by default here. ##################### #### Meta models #### diff --git a/test/backends/test_openai_intrinsics.py b/test/backends/test_openai_intrinsics.py index 0e4575add..bc04536a3 100644 --- a/test/backends/test_openai_intrinsics.py +++ b/test/backends/test_openai_intrinsics.py @@ -37,7 +37,7 @@ # --------------------------------------------------------------------------- # Imports (after markers so collection-time skips fire first) # --------------------------------------------------------------------------- -from mellea.backends.model_ids import IBM_GRANITE_SWITCH_4_1_3B +from mellea.backends.model_ids import IBM_GRANITE_SWITCH_4_1_3B_PREVIEW from mellea.backends.openai import OpenAIBackend from mellea.formatters import TemplateFormatter from mellea.stdlib import functional as mfuncs @@ -54,7 +54,7 @@ # Configuration # --------------------------------------------------------------------------- SWITCH_MODEL_ID = os.environ.get( - "GRANITE_SWITCH_MODEL_ID", IBM_GRANITE_SWITCH_4_1_3B.hf_model_name + "GRANITE_SWITCH_MODEL_ID", IBM_GRANITE_SWITCH_4_1_3B_PREVIEW.hf_model_name )