文心4.5开源模型部署实践

文心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
相关推荐
Mintopia3 小时前
OpenClaw 对软件行业产生的影响
人工智能
陈广亮4 小时前
构建具有长期记忆的 AI Agent:从设计模式到生产实践
人工智能
会写代码的柯基犬4 小时前
DeepSeek vs Kimi vs Qwen —— AI 生成俄罗斯方块代码效果横评
人工智能·llm
Mintopia4 小时前
OpenClaw 是什么?为什么节后热度如此之高?
人工智能
爱可生开源社区5 小时前
DBA 的未来?八位行业先锋的年度圆桌讨论
人工智能·dba
叁两7 小时前
用opencode打造全自动公众号写作流水线,AI 代笔太香了!
前端·人工智能·agent
前端付豪8 小时前
LangChain记忆:通过Memory记住上次的对话细节
人工智能·python·langchain
strayCat232558 小时前
Clawdbot 源码解读 7: 扩展机制
人工智能·开源
王鑫星8 小时前
SWE-bench 首次突破 80%:Claude Opus 4.5 发布,Anthropic 的野心不止于写代码
人工智能