安装命令行工具

以下所有操作都是通过dbgpt命令来完成。 要使用dbgpt命令,首先需要安装DB-GPT项目, 可以通过如下命令安装

  1. $ pip install -e ".[default]"

同时也可以通过脚本模式来使用

  1. $ python dbgpt/cli/cli_scripts.py

启动Model Controller

  1. $ dbgpt start controller

默认情况下,Model Server会启动在8000端口

启动Model Worker

:::color2 启动chatglm2-6b模型Worker

:::

  1. dbgpt start worker --model_name chatglm2-6b \
  2. --model_path /app/models/chatglm2-6b \
  3. --port 8001 \
  4. --controller_addr http://127.0.0.1:8000

:::color2 启动vicuna-13b-v1.5模型Worker

:::

  1. dbgpt start worker --model_name vicuna-13b-v1.5 \
  2. --model_path /app/models/vicuna-13b-v1.5 \
  3. --port 8002 \
  4. --controller_addr http://127.0.0.1:8000

:::danger ⚠️ 注意:确保使用您自己的模型名称和模型路径。

:::

启动Embedding模型服务

  1. dbgpt start worker --model_name text2vec \
  2. --model_path /app/models/text2vec-large-chinese \
  3. --worker_type text2vec \
  4. --port 8003 \
  5. --controller_addr http://127.0.0.1:8000

:::danger

⚠️ 注意:确保使用您自己的模型名称和模型路径。

:::

:::success 查看并检查已部署模型

:::

  1. $ dbgpt model list
  2. +-----------------+------------+------------+------+---------+---------+-----------------+----------------------------+
  3. | Model Name | Model Type | Host | Port | Healthy | Enabled | Prompt Template | Last Heartbeat |
  4. +-----------------+------------+------------+------+---------+---------+-----------------+----------------------------+
  5. | chatglm2-6b | llm | 172.17.0.2 | 8001 | True | True | | 2023-09-12T23:04:31.287654 |
  6. | WorkerManager | service | 172.17.0.2 | 8001 | True | True | | 2023-09-12T23:04:31.286668 |
  7. | WorkerManager | service | 172.17.0.2 | 8003 | True | True | | 2023-09-12T23:04:29.845617 |
  8. | WorkerManager | service | 172.17.0.2 | 8002 | True | True | | 2023-09-12T23:04:24.598439 |
  9. | text2vec | text2vec | 172.17.0.2 | 8003 | True | True | | 2023-09-12T23:04:29.844796 |
  10. | vicuna-13b-v1.5 | llm | 172.17.0.2 | 8002 | True | True | | 2023-09-12T23:04:24.597775 |
  11. +-----------------+------------+------------+------+---------+---------+-----------------+----------------------------+

使用模型服务

如上部署好的模型服务,可以通过dbgpt_server来使用。首先修改.env配置文件来更改连接模型地址。

  1. LLM_MODEL=vicuna-13b-v1.5
  2. # The current default MODEL_SERVER address is the address of the Model Controller
  3. MODEL_SERVER=http://127.0.0.1:8000

启动Webserver

  1. dbgpt start webserver --light

—light 表示不启动嵌入式模型服务。

或者直接可以通过命令制定模型的方式启动。
  1. LLM_MODEL=chatglm2-6b dbgpt start webserver --light

使用示例

这是一个通过集群方式部署Embedding模型并使用的完整命令行样例程序。

  1. 第一步: 启动Controller Server
  1. dbgpt start controller
  1. 第二步: 启动向量模型Worker
  1. # 2. second start embedding model worker
  2. dbgpt start worker --model_name text2vec \
  3. --model_path /app/models/text2vec-large-chinese \
  4. --worker_type text2vec \
  5. --port 8003 \
  6. --controller_addr http://127.0.0.1:8000
  1. 第三步:启动apiserver
  1. dbgpt start apiserver --controller_addr http://127.0.0.1:8000 --api_keys EMPTY
  1. 第四步: 测试使用
  1. curl http://127.0.0.1:8100/api/v1/embeddings \
  2. -H "Authorization: Bearer EMPTY" \
  3. -H "Content-Type: application/json" \
  4. -d '{
  5. "model": "text2vec",
  6. "input": "Hello world!"
  7. }'
  1. 通过包的方式代码引入使用
  1. from dbgpt.rag.embedding import OpenAPIEmbeddings
  2. openai_embeddings = OpenAPIEmbeddings(
  3. api_url="http://localhost:8100/api/v1/embeddings",
  4. api_key="EMPTY",
  5. model_name="text2vec",
  6. )
  7. texts = ["Hello, world!", "How are you?"]
  8. openai_embeddings.embed_documents(texts)

命令行用法

更多关于命令行的使用,可以通过查看命令行帮助进行使用, 如下是一个参考样例

:::color1 查看dbgpt帮助 dbgpt —help

:::

  1. dbgpt --help
  2. Already connect 'dbgpt'
  3. Usage: dbgpt [OPTIONS] COMMAND [ARGS]...
  4. Options:
  5. --log-level TEXT Log level
  6. --version Show the version and exit.
  7. --help Show this message and exit.
  8. Commands:
  9. install Install dependencies, plugins, etc.
  10. knowledge Knowledge command line tool
  11. model Clients that manage model serving
  12. start Start specific server.
  13. stop Start specific server.
  14. trace Analyze and visualize trace spans.

:::color1 查看dbgpt 启动命令 dbgpt start —help

:::

  1. dbgpt start --help
  2. Already connect 'dbgpt'
  3. Usage: dbgpt start [OPTIONS] COMMAND [ARGS]...
  4. Start specific server.
  5. Options:
  6. --help Show this message and exit.
  7. Commands:
  8. apiserver Start apiserver
  9. controller Start model controller
  10. webserver Start webserver(dbgpt_server.py)
  11. worker Start model worker
  12. (dbgpt_env) magic@B-4TMH9N3X-2120 ~ %

:::color1 查看dbgpt 启动模型服务帮助命令 dbgpt start worker —help

:::

  1. dbgpt start worker --help
  2. Already connect 'dbgpt'
  3. Usage: dbgpt start worker [OPTIONS]
  4. Start model worker
  5. Options:
  6. --model_name TEXT Model name [required]
  7. --model_path TEXT Model path [required]
  8. --worker_type TEXT Worker type
  9. --worker_class TEXT Model worker class,
  10. pilot.model.cluster.DefaultModelWorker
  11. --model_type TEXT Model type: huggingface, llama.cpp, proxy
  12. and vllm [default: huggingface]
  13. --host TEXT Model worker deploy host [default: 0.0.0.0]
  14. --port INTEGER Model worker deploy port [default: 8001]
  15. --daemon Run Model Worker in background
  16. --limit_model_concurrency INTEGER
  17. Model concurrency limit [default: 5]
  18. --standalone Standalone mode. If True, embedded Run
  19. ModelController
  20. --register Register current worker to model controller
  21. [default: True]
  22. --worker_register_host TEXT The ip address of current worker to register
  23. to ModelController. If None, the address is
  24. automatically determined
  25. --controller_addr TEXT The Model controller address to register
  26. --send_heartbeat Send heartbeat to model controller
  27. [default: True]
  28. --heartbeat_interval INTEGER The interval for sending heartbeats
  29. (seconds) [default: 20]
  30. --log_level TEXT Logging level
  31. --log_file TEXT The filename to store log [default:
  32. dbgpt_model_worker_manager.log]
  33. --tracer_file TEXT The filename to store tracer span records
  34. [default:
  35. dbgpt_model_worker_manager_tracer.jsonl]
  36. --tracer_storage_cls TEXT The storage class to storage tracer span
  37. records
  38. --device TEXT Device to run model. If None, the device is
  39. automatically determined
  40. --prompt_template TEXT Prompt template. If None, the prompt
  41. template is automatically determined from
  42. model path, supported template: zero_shot,vi
  43. cuna_v1.1,llama-2,codellama,alpaca,baichuan-
  44. chat,internlm-chat
  45. --max_context_size INTEGER Maximum context size [default: 4096]
  46. --num_gpus INTEGER The number of gpus you expect to use, if it
  47. is empty, use all of them as much as
  48. possible
  49. --max_gpu_memory TEXT The maximum memory limit of each GPU, only
  50. valid in multi-GPU configuration
  51. --cpu_offloading CPU offloading
  52. --load_8bit 8-bit quantization
  53. --load_4bit 4-bit quantization
  54. --quant_type TEXT Quantization datatypes, `fp4` (four bit
  55. float) and `nf4` (normal four bit float),
  56. only valid when load_4bit=True [default:
  57. nf4]
  58. --use_double_quant Nested quantization, only valid when
  59. load_4bit=True [default: True]
  60. --compute_dtype TEXT Model compute type
  61. --trust_remote_code Trust remote code [default: True]
  62. --verbose Show verbose output.
  63. --help Show this message and exit.

:::color1 查看dbgpt模型服务相关命令 dbgpt model —help

:::

  1. dbgpt model --help
  2. Already connect 'dbgpt'
  3. Usage: dbgpt model [OPTIONS] COMMAND [ARGS]...
  4. Clients that manage model serving
  5. Options:
  6. --address TEXT Address of the Model Controller to connect to. Just support
  7. light deploy model, If the environment variable
  8. CONTROLLER_ADDRESS is configured, read from the environment
  9. variable
  10. --help Show this message and exit.
  11. Commands:
  12. chat Interact with your bot from the command line
  13. list List model instances
  14. restart Restart model instances
  15. start Start model instances
  16. stop Stop model instances