如何用api调用llamafactory微调好的模型
时间: 2025-05-25 10:14:34 浏览: 21
### 如何通过 API 调用 LlamaFactory 平台上微调好的模型
在 LlamaFactory 中,可以通过其内置工具 `llamafactory-cli` 或者自定义脚本实现对已微调模型的加载和推理。以下是具体方法:
#### 使用 CLI 工具进行推理
LlamaFactory 提供了一个命令行接口 (CLI),可以用来启动 WebUI 或直接运行推理任务。如果希望使用 API 进行调用,则需要先确保服务已经正常启动。
启动服务的方式如下:
```bash
CUDA_VISIBLE_DEVICES=7 GRADIO_SHARE=1 GRADIO_SERVER_PORT=7878 llamafactory-cli webui
```
此命令会启动 Gradio 的 Web UI 接口,并监听指定端口(此处为 7878)。Gradio 支持 RESTful 和 WebSocket API,因此可以直接通过 HTTP 请求访问该服务[^2]。
假设服务器地址为 `http://localhost:7878`,则可以通过发送 POST 请求到 `/api/predict` 来获取预测结果。请求体通常是一个 JSON 对象,包含输入文本和其他参数。
以下是一个 Python 示例代码用于演示如何通过 API 发送请求并接收响应:
```python
import requests
url = "http://localhost:7878/api/predict"
data = {
"inputs": "你好,世界",
"parameters": {"max_new_tokens": 50, "temperature": 0.9}
}
response = requests.post(url, json=data)
if response.status_code == 200:
result = response.json()
print(result["generated_text"])
else:
print(f"Error: {response.status_code}")
```
#### 自定义 API 实现
除了依赖于 Gradio 的默认 API 外,还可以基于 PyTorch 或 Hugging Face Transformers 库构建自己的 API 服务。这需要编写一个 Flask 或 FastAPI 应用来托管模型实例,并提供对外暴露的服务端点。
下面展示的是一个简单的 FastAPI 配置例子:
```python
from fastapi import FastAPI
from transformers import AutoTokenizer, AutoModelForCausalLM
app = FastAPI()
tokenizer = AutoTokenizer.from_pretrained("path/to/fine-tuned-model")
model = AutoModelForCausalLM.from_pretrained("path/to/fine-tuned-model")
@app.post("/predict/")
async def predict(input_text: str):
inputs = tokenizer.encode(input_text, return_tensors="pt").to(model.device)
outputs = model.generate(inputs, max_length=100, temperature=0.9)
generated_text = tokenizer.decode(outputs[0], skip_special_tokens=True)
return {"generated_text": generated_text}
```
部署完成后,客户端可通过向 `/predict/` 端点提交 POST 请求来获得生成的结果。
---
#### 注意事项
- 如果计划大规模部署,请考虑优化 GPU 利用率以及内存管理策略。
- 模型路径应替换为实际存储位置,例如本地目录或远程仓库中的预训练权重文件夹[^1]。
---
阅读全文
相关推荐













