赞
踩
Byzer-LLM 可以让用户用一套接口就可以部署和使用市面上主流的开源和SaaS版本大模型, 之前以Qwen 写过一篇,可以看这里:Byzer-LLM 支持同时开源和SaaS版通义千问
今天我们升级了一个 0.1.37 版本,这个版本是专门针对 GLM-4 而发布的。今天我们来看看如何快速体验下 GLM-4。
首先,你去官网注册一个账号,然后申请一个 API Key。这个类似于 OpenAPI 的Key。
现在,可以开始我们的使用旅程了。
部署使用
先做个部署:
- import ray
-
-
- from byzerllm.utils.client import ByzerLLM
-
-
- ray.init(address="auto",namespace="default",ignore_reinit_error=True)
-
-
- llm = ByzerLLM(verbose=True)
-
-
- llm.setup_num_workers(1).setup_gpus_per_worker(0)
-
-
- chat_name = "zhipu_chat"
- llm.deploy(model_path="",
- pretrained_model_type="saas/zhipu",
- udf_name=chat_name,
- infer_params={
- "saas.api_key":"xxxxx",
- "saas.model":"glm-4"
- })
部署的时候实际上就两个参数,第一个是 api_key, 第二个是选择模型。
现在我们可以使用了:
- v = llm.chat_oai(model=chat_name,conversations=[{
- "role":"user",
- "content":"你好,你是谁",
- }])
-
-
- print(v[0].output)
- # 你好,我是一个人工智能助手,很高兴为您提供帮助。请问有什么问题我可以解答或者协助您解决吗?
也可以用流式接口:
- v = llm.stream_chat_oai(model=chat_name,conversations=[{
- "role":"user",
- "content":"你好,你是谁",
- }])
-
-
- for t in v:
- print(t[0],flush=True)
- print(t[1].generated_tokens_count,flush=True)
你也可以选择使用 Zhipu的 embedding 模型:
- import ray
- from byzerllm.utils.client import ByzerLLM
- ray.init(address="auto",namespace="default",ignore_reinit_error=True)
-
-
- llm = ByzerLLM(verbose=True)
-
-
- llm.setup_num_workers(1).setup_gpus_per_worker(0)
-
-
- chat_name = "zhipu_emb"
-
-
- llm.deploy(model_path="",
- pretrained_model_type="saas/zhipu",
- udf_name=chat_name,
- infer_params={
- "saas.api_key":"xxxxx",
- "saas.model":"embedding-2"
- })
然后可以这样得到向量:
- llm.emb(model="zhipu_emb",request=LLMRequest(instruction="你好"))
- # [LLMResponse(output=[-0.02675454691052437, 0.019060475751757622, 0.006672845687717199, -0.023301372304558754, 0.0015068714274093509
能力到底怎么样
Byzer-LLM 其实有一套实现功能,不依赖于底层大模型原生的实现。这套功能分别是:
Function Calling
Respond With Class
Funciton Impl
第一个大家比较熟悉,2,3 可能会略微生疏些,可以参考两:
给开源大模型带来Function Calling、 Respond With Class
函数实现越通用越好?来看看 Byzer-LLM 的 Function Implementation 带来的编程思想大变化
这几个能力,其实很吃大模型的基础能力,一般开源模型都过不了,目前我的实现只有Qwen 72B以及 DeepSeek 67B 全过了。
好了,大概有概念之后,我们看看 GLM-4 的的测试结果。
Byzer-LLM 为了实现上面的能力,其实有两套实现:
基于Prompt 改写
基于 System Message + Prompt 改写
基于 Prompt 改写的,我测试了 Qwen, Baichuan, GLM-4, 他们都过了。Qwen我做了特殊优化,所以算是有点小作弊。
而第二个难度其实会高很多,QWen 我用了 max 版本过了,但是运行速度较慢, Baichuan 只有 Function Calling 过了, GLM-4 则一把全过,速度还很快。
所以给我的感觉还是非常惊艳的。期待大家更多更深入的评测。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。