什么是NVIDIA NIM
NVIDIA NIM™ 是 NVIDIA AI Enterprise 的一部分,为跨云、数据中心和工作站的自托管 GPU 加速推理微服务提供容器,用于预训练和自定义 AI 模型。使用单个命令部署后,NIM 微服务会公开行业标准 API,以便轻松集成到 AI 应用程序、开发框架和工作流程中。NIM 微服务基于 NVIDIA 和社区的预优化推理引擎 (包括 NVIDIA® TensorRT™ 和 TensorRT-LLM) 构建,可自动优化运行时检测到的基础模型和 GPU 系统的每个组合的响应延迟和吞吐量。NIM 容器还提供标准的可观察性数据源,并内置支持在 GPU 上的 Kubernetes 上自动扩展。
写个程序测试一下
记得自己注册账号,并到以下链接申请key
https://build.nvidia.com/meta/llama-3.2-90b-vision-instruct
import requests, base64
import gradio as gr
stream = False
def Get_Img_Info(filepath):
invoke_url = "https://ai.api.nvidia.com/v1/gr/meta/llama-3.2-90b-vision-instruct/chat/completions"
# with open("D:\\ai_sd_data\\01.jpeg", "rb") as f:
with open(filepath, "rb") as f:
image_b64 = base64.b64encode(f.read()).decode()
assert len(image_b64) < 180_000000, \
"To upload larger images, use the assets API (see docs)"
headers = {
"Authorization": "Bearer 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",
"Accept": "text/event-stream" if stream else "application/json"
}
payload = {
"model": 'meta/llama-3.2-90b-vision-instruct',
"messages": [
{
"role": "user",
"content": f'这个图像里有什么? <img src="data:image/png;base64,{image_b64}" />'
}
],
"max_tokens": 1024,
"temperature": 1.00,
"top_p": 1.00,
"stream": stream
}
response = requests.post(invoke_url, headers=headers, json=payload)
print(response.json())
res = response.json()["choices"][0]["message"]["content"]
return res
def process_png(path):
return Get_Img_Info(path)
def main(port=None):
# demo = gr.Interface(
# process_png,
# inputs=gr.Image(type="filepath"),
# outputs="text",
# title="NIM llama-3.2-90b-vision-instruct 测试",
# live=True,
# )
title = "# **NIM llama-3.2-90b-vision-instruct 测试**"
with gr.Blocks() as demo:
gr.Markdown(title)
with gr.Row():
with gr.Column():
input=gr.Image(type="filepath")
run_btn = gr.Button("run")
with gr.Column():
output = gr.Textbox(label="Output Box",lines = 10)
run_btn.click(fn=process_png, inputs=input, outputs=output, api_name="greet")
if port is not None:
demo.queue().launch(share=False, server_name="0.0.0.0", server_port=port)
else:
demo.queue().launch()
if __name__ == "__main__":
main()
界面展示

上传图片点击,run按钮,就可以获得结果了;
总结
NIM网站上可以找到很多不方便本地部署的大模型,使用起来很方便,可以抢先体验以下;
924

被折叠的 条评论
为什么被折叠?



