文心4.5开源模型部署实践

发布于:2025-07-03 ⋅ 阅读:(28) ⋅ 点赞:(0)

文心4.5开源模型部署实践

使用fastdeploy本地部署

执行命令:

python -m fastdeploy.entrypoints.openai.api_server \
 --model baidu/ERNIE-4.5-21B-A3B-Paddle \
 --port 8180 \
 --metrics-port 8181 \
 --engine-worker-queue-port 8182 \
 --max-model-len 32768 \
 --max-num-seqs 32

解释一下部署命令

该命令用于通过 FastDeploy 框架部署百度 ERNIE-4.5 大模型服务,并兼容 OpenAI API 协议。以下是参数详解:

1. ‌核心模块与模型

  • fastdeploy.entrypoints.openai.api_server:FastDeploy 提供的服务入口模块,用于启动兼容 OpenAI API 的 HTTP 服务‌12。
  • --model baidu/ERNIE-4.5-21B-A3B-Paddle:指定模型路径,此处为百度 ERNIE-4.5-21B 的 PaddlePaddle 格式模型,支持 210 亿参数规模‌23。

2. ‌端口配置

  • --port 8180:主服务监听端口,用于处理 API 请求(如文本生成、对话等)‌14。
  • --metrics-port 8181:监控指标端口,提供 Prometheus 格式的模型性能数据(如吞吐量、延迟)‌15。
  • --engine-worker-queue-port 8182:工作队列通信端口,协调多个推理引擎实例的任务分配‌15。

3. ‌性能与资源控制

  • --max-model-len 32768:限制模型单次处理的上下文最大长度(32K tokens),避免内存溢出‌14。
  • --max-num-seqs 32:设置批量处理的最大序列数,平衡并发性能与显存占用‌15。

4. ‌技术背景

  • FastDeploy‌:百度推出的高效推理框架,支持多硬件后端(如 GPU、NPU),优化了 PaddlePaddle 模型的部署效率‌23。
  • ERNIE-4.5‌:百度最新大语言模型,在代码生成、逻辑推理等任务上表现优异,需通过此类服务化部署提供 API 调用能力‌23。

5. ‌典型应用场景

  • 企业级 AI 中台:通过标准化 OpenAI API 协议集成到现有系统‌16。
  • 高并发推理:利用多端口设计实现负载均衡与监控‌15。
  • 长文本处理:32K 上下文窗口适合文档摘要、代码分析等任务‌34。

最近在实际工程中,发现32K上下文窗口实在太小了。怎么也要64K才好工作。

使用fastdeploy在星河社区部署

进入部署页面:飞桨AI Studio星河社区-人工智能学习与实训社区

点击:新建部署

部署内部模型

在热门模型库里,选FastDeploy推理框架,然后选文心4.5模型即可。

比如这里选了21B模型。

部署完毕,点“详情”,会提供api调用的测试代码,直接在python里调用即可。

这个模型来自:ERNIE-4.5-21B-A3B-Paddle_文心大模型_大语言模型_文本生成-飞桨AI Studio星河社区

我在部署了21B模型后,使用Auto-Coder工具构建一个项目进行了测试,这个21B模型还是挺厉害的,正好处于几乎符合Auto-Coder工具要求的那一档,也就是略低于DeepSeek-v3模型,但是勉强能用。

但是由于只能提供32k的上下文,这个限制较大,导致无法在Auto-Coder中真实的使用。

部署外部模型(其实是用ollam部署)

选择:外部部署,把部署链接cp过去

先尝试了部署最大的模型:baidu/ERNIE-4.5-300B-A47B-PT · HF Mirror

部署失败

再尝试部署这个:

https://huggingface.cn/baidu/ERNIE-4.5-300B-A47B-W4A8C8-TP4-Paddle

还是失败。证明300B的模型在星河是无法部署成功的。

也就是只有21B和28B等较小的模型才能部署成功。

星河官方已经设好了21B模型的部署,直接点一下就可以了。这里我们再从外部huggingface引入部署实践一下: 

使用这个模型

https://huggingface.co/baidu/ERNIE-4.5-21B-A3B-Base-Paddle

失败,再用这个试试

https://huggingface.co/baidu/ERNIE-4.5-21B-A3B-Base-PT

还是失败 

测试了半天,才发现这行小字:

说明:平台暂仅支持GGUF格式且不大于70B的公开模型部署,请遵守平台规范(禁止涉黄、暴力等违规信息)

所以只要大约70B,且不是GGUF格式的,都不能部署。新发布的文心模型,还都没有GGUF格式,所以都还不行。

有空再使用GGUF格式模型试试

在星河社区,看模型配置

{
  "architectures": [
    "Ernie4_5_MoeForCausalLM"
  ],
  "bos_token_id": 1,
  "eos_token_id": 2,
  "hidden_act": "silu",
  "hidden_size": 2560,
  "intermediate_size": 12288,
  "max_position_embeddings": 131072,
  "model_type": "ernie4_5_moe",
  "num_attention_heads": 20,
  "num_key_value_heads": 4,
  "num_hidden_layers": 28,
  "pad_token_id": 0,
  "rms_norm_eps": 1e-05,
  "use_cache": false,
  "vocab_size": 103424,
  "rope_theta": 500000,
  "use_rmsnorm": true,
  "tie_word_embeddings": true,
  "use_bias": false,
  "moe_num_experts": 64,
  "moe_num_shared_experts": 2,
  "moe_layer_start_index": 1,
  "moe_intermediate_size": 1536,
  "moe_capacity": [64,64,64],
  "moe_gate": "topk",
  "moe_k": 6,
  "moe_layer_interval": 1,
  "moe_use_aux_free": true,
  "dtype": "bfloat16",
  "num_nextn_predict_layers": 1,
  "multi_token_pred_lambda": 0.3
}

这证明它是支持128K长文本的,那为什么使用中最大是32K呢?出现了这个报错:

  File "/home/skywalk/minipy312/lib/python3.12/site-packages/openai/_base_client.py", line 1037, in request
    raise self._make_status_error_from_response(err.response) from None
openai.BadRequestError: Error code: 400 - {'object': 'error', 'message': 'Input text is too long, input_ids_len (32767) + min_tokens(1) >= max_model_len(32768)', 'code': 400}
╭────────────────────────────────────────────────── 🔥 System Error ───────────────────────────────────────────────────╮
│ FATAL ERROR:                                                                                                         │
│ Error code: 400 - {'object': 'error', 'message': 'Input text is too long, input_ids_len (32767) + min_tokens(1) >=   │
│ max_model_len(32768)', 'code': 400}                                                                                  │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
──────────────────────────────────────────────── Agentic Edit Finished ─────────────────────────────────────────────────
An error occurred: BadRequestError - Error code: 400 - {'object': 'error', 'message': 'Input text is too long, input_ids_len (32767) + min_tokens(1) >= max_model_len(32768)', 'code': 400}

不知道是模型设置了32K的上下文限制,还是Auto-Coder的拆分出了问题。

找到了,默认设置是51200

/conf conversation_prune_safe_zone_tokens:51200

把它设置为

/conf conversation_prune_safe_zone_tokens:32767试试

测试glm4试试

https://hf-mirror.com/unsloth/GLM-4-32B-0414-GGUF
https://huggingface.co/unsloth/GLM-4-32B-0414-GGUF

部署成功! 

不过在Auto-Coder里面一直刷,有些问题

coding@auto-coder.chat:~$ 继续
Successfully set configuration: event_file =
/home/skywalk/work/autocoder/.auto-coder/events/05ee5870-bcca-4f8f-b6a2-a10adb1fca8f_20250702-114604.jsonl
─────────────────────────────────────────── Starting Agentic Edit: autocoder ───────────────────────────────────────────
╭───────────────────────────────────────────────────── Objective ──────────────────────────────────────────────────────╮
│ User Query:                                                                                                          │
│ 继续                                                                                                                 │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
Conversation ID: 8c63e814-a349-414c-92e6-7be661ed09d3
当前会话总 tokens: 34624
GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG当前会话总 tokens: 34652
当前会话总 tokens: 34720
GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG当前会话总 tokens: 34749
当前会话总 tokens: 34817
GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG当前会话总 tokens: 34846
当前会话总 tokens: 34914
GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG当前会话总 tokens: 34943
当前会话总 tokens: 35011
GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG当前会话总 tokens: 35040
当前会话总 tokens: 35108
GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG当前会话总 tokens: 35137
当前会话总 tokens: 35205
GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG当前会话总 tokens: 35234
当前会话总 tokens: 35302
GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG当前会话总 tokens: 35331
当前会话总 tokens: 35399
GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG当前会话总 tokens: 35428
当前会话总 tokens: 35496
GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG当前会话总 tokens: 35525
当前会话总 tokens: 35593
GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG当前会话总 tokens: 35622
当前会话总 tokens: 35690


网站公告

今日签到

点亮在社区的每一天
去签到