NGUYEN, Xuan Phi
update
47aa5f3
import os
# ! UI Markdown information
MODEL_TITLE = """
<img src="file/seammm_2.png" style="
max-width: 10em;
max-height: 5%;
height: 3em;
width: 3em;
">
<div class="text" style="
loat: left;
padding-bottom: 2%;
">
SeaLMMM - Large Multilingual Multimodal Models for Southeast Asia
</div>
"""
# <a href='https://huggingface.co/spaces/SeaLLMs/SeaLMMM-7b'><img src='https://img.shields.io/badge/%F0%9F%A4%97%20Hugging%20Face-Spaces-blue'></a>
# <a href='https://huggingface.co/SeaLLMs/SeaLLM-7B-v2'><img src='https://img.shields.io/badge/%F0%9F%A4%97%20Hugging%20Face-Model-blue'></a>
#
MODEL_DESC = f"""
<div style='display:flex; gap: 0.25rem; '>
<a href='https://github.com/damo-nlp-sg/seallms'><img src='https://img.shields.io/badge/Github-Code-success'></a>
<a href='https://huggingface.co/spaces/SeaLLMs/SeaLLM-7B'><img src='https://img.shields.io/badge/%F0%9F%A4%97%20Hugging%20Face-Spaces-blue'></a>
<a href='https://huggingface.co/SeaLLMs/SeaLMMM-7B-early'><img src='https://img.shields.io/badge/%F0%9F%A4%97%20Hugging%20Face-Model-blue'></a>
</div>
<span style="font-size: larger">
<a href="https://huggingface.co/SeaLLMs/SeaLMMM-7B-early" target="_blank">SeaLMMM-7B-early</a> - multilingual multimodal assistant for Southeast Asia. It handles <b>both</b> text-only (<a href="https://huggingface.co/SeaLLMs/SeaLLM-7B-v2" target="_blank">LLMs</a> and vision instructions (LVMs). <span style="color: red">SeaLMMM-7B has not finished training.</span>
</span>
<br>
<span>
<span style="color: red">The chatbot may produce false and harmful content!</span>
By using our service, you are required to agree to our <a href="https://huggingface.co/SeaLLMs/SeaLLM-Chat-13b/blob/main/LICENSE" target="_blank" style="color: red">Terms Of Use</a>
</span>
""".strip()
"""
By using our service, you are required to agree to our <a href="https://huggingface.co/SeaLLMs/SeaLLM-Chat-13b/blob/main/LICENSE" target="_blank" style="color: red">Terms Of Use</a>, which includes
not to use our service to generate any harmful, inappropriate or illegal content.
The service collects user dialogue data for testing and improvement under
<a href="https://creativecommons.org/licenses/by/4.0/">(CC-BY)</a> or similar license. So do not enter any personal information!
"""
MODEL_TITLE = """
<img src="file/seammm_2.png" style="
max-width: 10em;
max-height: 5%;
height: 3em;
width: 3em;
">
<div class="text" style="
float: left;
padding-left: 2%;
font-size: larger;
margin-bottom: -1em;
margin-top: -1em;
">
SeaLMMM - Large Multilingual Multimodal Models for Southeast Asia
<div style='display:flex; gap: 0.25rem; '>
<a href='https://damo-nlp-sg.github.io/SeaLLMs/'><img class="tag" src='https://img.shields.io/badge/Blog-red'></a>
<a href='https://github.com/damo-nlp-sg/seallms'><img class="tag" src='https://img.shields.io/badge/Code-success'></a>
<a href='https://huggingface.co/spaces/SeaLLMs/SeaLLM-7B'><img class="tag" src='https://img.shields.io/badge/%F0%9F%A4%97-Spaces-blue'></a>
<a href='https://huggingface.co/SeaLLMs/SeaLMMM-7B-v0.1'><img class="tag" src='https://img.shields.io/badge/%F0%9F%A4%97-Model-blue'></a>
<a href='https://arxiv.org/pdf/2312.00738.pdf'><img class="tag" src='https://img.shields.io/badge/Paper-red'></a>
</div>
</div>
"""
MODEL_DESC = f"""
<span style="font-size: large">
<a href="https://huggingface.co/SeaLLMs/SeaLMMM-7B-v0.1" target="_blank">SeaLMMM-7B</a> - multilingual multimodal assistant for Southeast Asia. It handles text-only (<a href="https://huggingface.co/SeaLLMs/SeaLLM-7B-v2.5" target="_blank">LLMs</a> and vision instructions (LVMs).
</span>
<br>
<span style="font-size: small">
This UI is powered by <a href="https://github.com/DAMO-NLP-SG/Multipurpose-Chatbot" target="_blank">Multipurpose-Chatbot</a> project.
<span style="color: red">The chatbot may produce false and harmful content!
By using our service, you agree to our <a href="https://huggingface.co/SeaLLMs/SeaLLM-Chat-13b/blob/main/LICENSE" target="_blank">Terms Of Use</a>
</span>
</span>
""".strip()
# MODEL_INFO = """
# <h4 style="display: hidden;">Model Name: {model_path}</h4>
# """
MODEL_INFO = ""
CITE_MARKDOWN = """
## Citation
If you find our project useful, hope you can star our repo and cite our paper as follows:
```
@article{damonlpsg2023seallm,
author = {Xuan-Phi Nguyen*, Wenxuan Zhang*, Xin Li*, Mahani Aljunied*, Zhiqiang Hu, Chenhui Shen^, Yew Ken Chia^, Xingxuan Li, Jianyu Wang, Qingyu Tan, Liying Cheng, Guanzheng Chen, Yue Deng, Sen Yang, Chaoqun Liu, Hang Zhang, Lidong Bing},
title = {SeaLLMs - Large Language Models for Southeast Asia},
year = 2023,
}
```
"""
CSS = """
.message-wrap.svelte-1lcyrx4>div.svelte-1lcyrx4 img {
min-width: 200px;
min-height: 150px;
max-height: 600px;
max-width; 90%;
width: auto;
object-fit: contain;
}
.panel-full-width.svelte-1lcyrx4.svelte-1lcyrx4.svelte-1lcyrx4 {
padding: calc(var(--spacing-xxl) * 1);
width: 100%
}
.panel-full-width {
padding: calc(var(--spacing-xxl) * 1);
width: 100%
}
img.tag {
max-height: 1.5em;
width: auto;
}
span.prose {
font-size: var(--text-lg);
}
"""
# .message-wrap.svelte-1lcyrx4>div.svelte-1lcyrx4 img {
# min-width: 200px;
# }
# .panel-full-width.svelte-1lcyrx4.svelte-1lcyrx4.svelte-1lcyrx4 {
# padding: calc(var(--spacing-xxl) * 1);
# width: 100%
# }
USE_PANEL = bool(int(os.environ.get("USE_PANEL", "1")))
CHATBOT_HEIGHT = int(os.environ.get("CHATBOT_HEIGHT", "500"))
ALLOWED_PATHS = ["seammm_2.png"]
DEMOS = os.environ.get("DEMOS", "")
DEMOS = DEMOS.split(",") if DEMOS.strip() != "" else [
"DocChatInterfaceDemo",
"ChatInterfaceDemo",
"TextCompletionDemo",
# "RagChatInterfaceDemo",
# "VisionChatInterfaceDemo",
# "VisionDocChatInterfaceDemo",
]
# DEMOS=DocChatInterfaceDemo,ChatInterfaceDemo,RagChatInterfaceDemo,TextCompletionDemo
# ! server info
DELETE_FOLDER = os.environ.get("DELETE_FOLDER", "")
PORT = int(os.environ.get("PORT", "7860"))
PROXY = os.environ.get("PROXY", "").strip()
# ! backend info
BACKEND = os.environ.get("BACKEND", "debug")
# ! model information
# for RAG
RAG_EMBED_MODEL_NAME = os.environ.get("RAG_EMBED_MODEL_NAME", "sentence-transformers/all-MiniLM-L6-v2")
CHUNK_SIZE = int(os.environ.get("CHUNK_SIZE", "1024"))
CHUNK_OVERLAP = int(os.environ.get("CHUNK_SIZE", "50"))
SYSTEM_PROMPT = os.environ.get("SYSTEM_PROMPT", """You are a helpful, respectful, honest and safe AI assistant.""")
MAX_TOKENS = int(os.environ.get("MAX_TOKENS", "2048"))
TEMPERATURE = float(os.environ.get("TEMPERATURE", "0.1"))
# ! these values currently not used
FREQUENCE_PENALTY = float(os.environ.get("FREQUENCE_PENALTY", "0.0"))
PRESENCE_PENALTY = float(os.environ.get("PRESENCE_PENALTY", "0.0"))
# Transformers or vllm
MODEL_PATH = os.environ.get("MODEL_PATH", "mistralai/Mistral-7B-Instruct-v0.2")
MODEL_NAME = os.environ.get("MODEL_NAME", "Cool-Chatbot")
DTYPE = os.environ.get("DTYPE", "bfloat16")
DEVICE = os.environ.get("DEVICE", "cuda")
# VLLM
GPU_MEMORY_UTILIZATION = float(os.environ.get("GPU_MEMORY_UTILIZATION", "0.9"))
TENSOR_PARALLEL = int(os.environ.get("TENSOR_PARALLEL", "1"))
QUANTIZATION = str(os.environ.get("QUANTIZATION", ""))
STREAM_YIELD_MULTIPLE = int(os.environ.get("STREAM_YIELD_MULTIPLE", "1"))
# how many iterations to perform safety check on response
STREAM_CHECK_MULTIPLE = int(os.environ.get("STREAM_CHECK_MULTIPLE", "0"))
# llama.cpp
DEFAULT_CHAT_TEMPLATE = os.environ.get("DEFAULT_CHAT_TEMPLATE", "chatml")
N_CTX = int(os.environ.get("N_CTX", "4096"))
N_GPU_LAYERS = int(os.environ.get("N_GPU_LAYERS", "-1"))
# llava.llama.cpp
# Multimodal
# IMAGE_TOKEN = os.environ.get("IMAGE_TOKEN", "[IMAGE]<|image|>[/IMAGE]")
IMAGE_TOKEN = os.environ.get("IMAGE_TOKEN", "<|image|>")
IMAGE_TOKEN_INTERACTIVE = bool(int(os.environ.get("IMAGE_TOKEN_INTERACTIVE", "0")))
IMAGE_TOKEN_LENGTH = int(os.environ.get("IMAGE_TOKEN_LENGTH", "576"))
MAX_PACHES = int(os.environ.get("MAX_PACHES", "1"))