有许多AI工具和框架允许你自己部署API,以便在自己的服务器或云环境中运行AI模型。这些工具通常提供易于使用的接口和强大的功能,适合各种AI应用。以下是一些常见的可以自己部署API的AI工具和框架:
TensorFlow Serving 是一个灵活、高性能的开源平台,用于部署和提供TensorFlow模型。
特点:
部署:
# 安装 TensorFlow Serving
apt-get update && apt-get install -y tensorflow-model-server
# 启动服务
tensorflow_model_server --rest_api_port=8501 --model_name=my_model --model_base_path=/path/to/my_model
示例:
import requests
import json
url = 'http://localhost:8501/v1/models/my_model:predict'
data = json.dumps({"signature_name": "serving_default", "instances": [{"input": [1.0, 2.0, 5.0]}]})
headers = {"content-type": "application/json"}
response = requests.post(url, data=data, headers=headers)
print(response.json())
FastAPI 是一个现代、快速(高性能)的Web框架,用于构建API,特别适合部署机器学习模型。
特点:
安装:
pip install fastapi uvicorn
示例:
from fastapi import FastAPI
from pydantic import BaseModel
import joblib
# 加载预训练模型
model = joblib.load('model.joblib')
app = FastAPI()
class Item(BaseModel):
data: list
@app.post('/predict/')
async def predict(item: Item):
prediction = model.predict([item.data])
return {"prediction": prediction.tolist()}
if __name__ == '__main__':
import uvicorn
uvicorn.run(app, host='0.0.0.0', port=8000)
Flask 是一个轻量级的Web框架,非常适合快速部署机器学习模型。
特点:
安装:
pip install flask
示例:
from flask import Flask, request, jsonify
import joblib
# 加载预训练模型
model = joblib.load('model.joblib')
app = Flask(__name__)
@app.route('/predict', methods=['POST'])
def predict():
data = request.json['data']
prediction = model.predict([data])
return jsonify({'prediction': prediction.tolist()})
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000)
使用Docker可以将你的AI模型和API封装成一个独立的容器,便于部署和管理。
特点:
示例:
# Dockerfile 示例
FROM python:3.8-slim
COPY . /app
WORKDIR /app
RUN pip install -r requirements.txt
EXPOSE 5000
CMD ["python", "app.py"]
构建和运行:
docker build -t my_model_api .
docker run -p 5000:5000 my_model_api
TorchServe 是一个用于部署PyTorch模型的高性能模型服务器。
特点:
安装:
pip install torchserve torch-model-archiver
示例:
torch-model-archiver --model-name my_model --version 1.0 --serialized-file my_model.pt --handler my_handler.py
mkdir model_store
mv my_model.mar model_store/
torchserve --start --model-store model_store --models my_model=my_model.mar
请求示例:
import requests
url = 'http://localhost:8080/predictions/my_model'
data = {"data": [1.0, 2.0, 5.0]}
response = requests.post(url, json=data)
print(response.json())
选择合适的工具和框架取决于你的具体需求、模型类型以及开发环境。无论是TensorFlow Serving、FastAPI、Flask还是Docker,这些工具都能帮助你高效地部署和管理AI模型API。通过学习和实践,你可以逐步掌握这些工具,为你的AI应用提供强大的支持。
最后,视频描述了PALM API的会话式人工智能引擎,用户可以使用自然语言与应用进行交互。该API可以用来创建数字助手、自定义搜索引擎、知识库和培训应用。开发者可以将PALM API与Maker Suite集成,通过图形用户界面访问API。该套件包括模型训练、部署和监控的工具。参考资料:All Readings:Introduction to Generative AI(G-GENAI-I)Here are the assembled readings on generative AI:Ask a Techspert:What is generative AI?https://blog.google/inside-google/googlers/ask-a-techspert/what-is-generative-ai/Build new generative AI powered search & conversational experiences with Gen App Builder:https://cloud.google.com/blog/products/ai-machine-learning/create-generative-apps-in-minutes-with-gen-app-builderWhat is generative AI?https://www.mckinsey.com/featured-insights/mckinsey-explainers/what-is-generative-aiGoogle Research,2022 & beyond:Generative models:https://ai.googleblog.com/2023/01/google-research-2022-beyond-language.html#Gener ativeModelsBuilding the most open and innovative AI ecosystem:https://cloud.google.com/blog/products/ai-machine-learning/building-an-open-generativ e-ai-partner-ecosystemGenerative AI is here.Who Should Control It?https://www.nytimes.com/2022/10/21/podcasts/hard-fork-generative-artificial-intelligen ce.htmlStanford U & Google’s Generative Agents Produce Believable Proxies of Human Behaviors:https://syncedreview.com/2023/04/12/stanford-u-googles-generative-agents-produce-believable-proxies-of-human-behaviours/
那么,什么是AI API呢?AI API是一个接口,您只需与之交谈即可。因此,这是未来的一种软件,它具有一个非常简单的API,这个API被称为人类。这些软件包中的优秀软件将被优化和打包。我们会将其放在网站上供您下载,您可以随身携带,可以在任何云中运行它,也可以在自己的数据中心运行它。如果合适,您甚至可以在工作站中运行它。您只需访问AI.NVIDIA.com,我们称之为NVIDIA Inference Microservice,但在公司内部,我们都称之为NIM。
对于OpenAI,目前的目标很明确:就是all in AGI,一切研究围绕着探索通往AGI的路径。而商业模式上也很简单:SaaS,直接给API,接口设计内部自己决定,付多少钱用多少,不想用就不用,这样省去了很多产品设计,marketing,BD的时间,伺候甲方的时间(有比较可靠的消息称即使Microsoft的Copilot等产品也是直接用的API,没有花功夫做太多的定制),整个公司可以集中精力开发AGI。有人可能说:不是啊,OpenAI不是还有ChatGPT的用户界面,手机端语音聊天,以及GPTs吗?但是仔细想想,这几个部分OpenAI可以说是「非常不用心」了。比如ChatGPT Plus是怎么自动融合搜索,图片生成,代码调用等工具的?单独做了一套深度优化?不,答案是OpenAI给了一个巨大的prompt,让模型自己去选。OpenAI是怎么和各种第三方插件结合的,是单独做了匹配和接口?不,答案是直接让这些plugins描述自己是什么,然后模型自己调用,至于调用得对不对那就是另外一件事情了。这里最典的是最近OpenAI怎么实现「记忆」的,给大家看看OpenAI的完整prompt(李博杰提供的,每个人可以诱导ChatGPT说出这些,OpenAI也不在乎):