Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 0 additions & 4 deletions chart/azimuth-ui.schema.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,8 @@ controls:
type: NumberControl
/ui/appSettings/llm_frequency_penalty:
type: NumberControl
minimum: -2
maximum: 2
/ui/appSettings/llm_presence_penalty:
type: NumberControl
minimum: -2
maximum: 2
/ui/ingress/host:
type: TextControl
# Use mirror to mimic yaml anchor in base Helm chart
Expand Down
8 changes: 4 additions & 4 deletions chart/templates/NOTES.txt
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
The LLM chatbot app allows users to deploy machine learning models from [HuggingFace](https://huggingface.co/models) and interact with them through a simple web interface.
The LLM chatbot app allows users to deploy machine learning models from [HuggingFace](https://huggingface.co/models) and interact with them through a simple web interface.

Note: The target Kubernetes cluster must have a GPU worker node group configured, otherwise the app will remain in an 'Installing' state until a GPU node becomes available for scheduling.
The target Kubernetes cluster must have a GPU worker node group configured, otherwise the app will remain in an 'Installing' state until a GPU node becomes available for scheduling.

On deployment of a new model, the app must first download the model's weights from HuggingFace.
On deployment of a new model, the app must first download the model's weights from HuggingFace.
This can take a significant amount of time depending on model choice and network speeds.
Download progress can be monitored by inspecting the logs for the LLM API pod(s) via the Kubernetes Dashboard for the target cluster.

The app uses [vLLM](https://docs.vllm.ai/en/latest/) as a model serving backend and [Gradio](https://github.com/gradio-app/gradio) + [LangChain](https://python.langchain.com/docs/get_started/introduction) to provide the web interface.
The official list of HuggingFace models supported by vLLM can be found [here](https://docs.vllm.ai/en/latest/models/supported_models.html), though some of these may not be compatible with the LangChain prompt format.
The official list of HuggingFace models supported by vLLM can be found [here](https://docs.vllm.ai/en/latest/models/supported_models.html), though some of these may not be compatible with the LangChain prompt format.
See [this documentation](https://github.com/stackhpc/azimuth-llm/) for a non-exhaustive list of languange models against which the app has been tested.
31 changes: 20 additions & 11 deletions chart/values.schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -33,17 +33,17 @@
"hf_model_instruction": {
"type": "string",
"title": "Instruction",
"description": "The initial model prompt (i.e. the hidden instructions) to use when generating responses.",
"description": "The initial system prompt (i.e. the hidden instruction) to use when generating responses.",
"default": "You are a helpful AI assistant. Please respond appropriately."
},
"page_title": {
"type": "string",
"title": "Page Title",
"description": "The title to use for the chat interface.",
"description": "The title to display at the top of the chat interface.",
"default": "Large Language Model"
},
"llm_max_tokens": {
"type": "number",
"type": "integer",
"title": "Max Tokens",
"description": "The maximum number of new [tokens](https://platform.openai.com/docs/api-reference/chat/create#chat-create-max_tokens) to generate for each LLM responses.",
"default": 1000
Expand All @@ -52,31 +52,40 @@
"type": "number",
"title": "LLM Temperature",
"description": "The [temperature](https://platform.openai.com/docs/api-reference/chat/create#chat-create-temperature) value to use when generating LLM responses.",
"default": 1
"default": 1,
"minimum": 0,
"maximum": 2
},
"llm_top_p": {
"type": "number",
"title": "LLM Top P",
"description": "The [top p](https://platform.openai.com/docs/api-reference/chat/create#chat-create-top_p) value to use when generating LLM responses.",
"default": 1
"default": 1,
"exclusiveMinimum": 0,
"maximum": 1
},
"llm_top_k": {
"type": "number",
"type": "integer",
"title": "LLM Top K",
"description": "The [top k](https://docs.vllm.ai/en/latest/dev/sampling_params.html) value to use when generating LLM responses.",
"default": -1
"description": "The [top k](https://docs.vllm.ai/en/latest/dev/sampling_params.html) value to use when generating LLM responses (must be an integer).",
"default": -1,
"minimum": -1
},
"llm_presence_penalty": {
"type": "number",
"title": "LLM Presence Penalty",
"description": "The [presence penalty](https://platform.openai.com/docs/api-reference/chat/create#chat-create-presence_penalty) to use when generating LLM responses.",
"default": 0
"default": 0,
"minimum": -2,
"maximum": 2
},
"llm_frequency_penalty": {
"type": "number",
"title": "LLM Frequency Penalty",
"description": "The [frequency_penalty](https://platform.openai.com/docs/api-reference/chat/create#chat-create-frequency_penalty) to use when generating LLM responses.",
"default": 0
"default": 0,
"minimum": -2,
"maximum": 2
}

},
Expand All @@ -88,7 +97,7 @@
"host": {
"type": ["string", "null"],
"title": "Ingress Host",
"description": "An optional custom domain name to expose the UI on (requires an Ingress controller-equipped cluster)"
"description": "An optional custom domain name to expose the UI on (requires an [Ingress controller](https://github.com/kubernetes/ingress-nginx) on the target cluster)"
}
}
}
Expand Down