Spaces:
Paused
Paused
| """ | |
| Launch an OpenAI API server with multiple model workers. | |
| """ | |
| import os | |
| import argparse | |
| def launch_process(cmd): | |
| os.popen(cmd) | |
| if __name__ == "__main__": | |
| parser = argparse.ArgumentParser() | |
| parser.add_argument("--multimodal", action="store_true", default=False) | |
| args = parser.parse_args() | |
| launch_process("python3 -m fastchat.serve.controller") | |
| launch_process("python3 -m fastchat.serve.openai_api_server") | |
| if args.multimodal: | |
| models = [ | |
| ("liuhaotian/llava-v1.5-7b", "sglang_worker"), | |
| ] | |
| else: | |
| models = [ | |
| ("lmsys/vicuna-7b-v1.5", "model_worker"), | |
| ("lmsys/fastchat-t5-3b-v1.0", "model_worker"), | |
| ("THUDM/chatglm-6b", "model_worker"), | |
| ("mosaicml/mpt-7b-chat", "model_worker"), | |
| ("meta-llama/Llama-2-7b-chat-hf", "vllm_worker"), | |
| ] | |
| for i, (model_path, worker_name) in enumerate(models): | |
| cmd = ( | |
| f"CUDA_VISIBLE_DEVICES={i} python3 -m fastchat.serve.{worker_name} " | |
| f"--model-path {model_path} --port {40000+i} " | |
| f"--worker-address http://localhost:{40000+i} " | |
| ) | |
| if "llava" in model_path.lower(): | |
| cmd += f"--tokenizer-path llava-hf/llava-1.5-7b-hf" | |
| if worker_name == "vllm_worker": | |
| cmd += "--tokenizer hf-internal-testing/llama-tokenizer" | |
| launch_process(cmd) | |
| while True: | |
| pass | |