基于NVIDIA NIM平台—生成属于自己的DIY食谱

news/2024/10/25 15:05:37/

目录

一、介绍NVIDIA NIM平台

二、生成DIY食谱Demo

三、小结

一、介绍NVIDIA NIM平台

NVIDIA NIM(Nvidia Inference Microservices)平台是NVIDIA推出的一个微服务套件,旨在加速生成式AI模型在云端、数据中心和工作站上的部署和使用。以下是NIM平台的一些关键特点和功能:

  1. 多种部署方式

    • Nvidia NIM API:以API形式开放调用,提供安全、简便的途径,助力快速开发和迭代生成式AI解决方案。
    • Nvidia AI Enterprise组件:NIM是Nvidia AI Enterprise平台的重要组成部分,该平台基于VMware和Red Hat的基础软件构建。
    • Nvidia NIM自托管容器:可以在工作站和配备Nvidia GPU的机器上本地部署。
  2. 核心功能

    • 提供行业标准的API,帮助轻松部署AI模型。
    • 支持与OpenAI兼容,可以使用标准HTTP REST客户端或OpenAI客户端库进行调用。
    • 提供多个端点,方便与AI模型交互,包括文本完成、文本嵌入、检索、排序等。
    • 与LLM编排工具集成,如LangChain和LlamaIndex,支持构建聊天机器人、AI助手等高级应用。
  3. 技术基础

    • 基于强大的推理引擎,如Triton Inference Server、TensorRT、TensorRT-LLM和PyTorch。
    • 支持大规模AI推理,使用最先进的基础模型和微调模型,而无需操心基础设施问题。
  4. 应用领域

    • NIM正迅速成为开发者首选的生成式AI模型平台,例如Google在推出Gemma 2 2B时,就同时在NIM、Hugging Face和Kaggle上进行发布。
  5. Nvidia AI Enterprise中的应用

    • Nvidia AI Enterprise是一个全面的云原生软件平台,旨在加速数据科学流程,并简化生产级Copilots和其他生成式AI应用的开发与部署。
    • NIM在这个平台中提供了一套易用的推理微服务,方便开发者在任何云或数据中心安全地部署基础模型。
  6. 自托管容器

    • 对于无法使用Nvidia AI Enterprise的开发者,NIM还提供了自托管容器镜像,支持通过Docker或Kubernetes进行部署。
    • NIM抽象了模型推理的内部细节,确保高效运行。
  7. 优势

    • 提供强大的工具和灵活的部署选项,让生成式AI模型的开发和应用变得更加高效和便捷。
    • 支持企业级的安全性、支持和稳定性,并优化了模型性能。

NVIDIA NIM平台通过提供灵活的微服务套件、与Nvidia AI Enterprise的集成以及自托管容器镜像,为开发者提供了一个强大、可扩展且安全的AI推理平台。

本文我们利用NVIDIA NIM平台提供的大模型完成一个生成DIY食谱的demo供大家学习。

二、生成DIY食谱Demo

1)环境准备:首先,我们需要安装python环境(自行搜索python安装教程)
2)导入依赖:新建一个python项目,可以起名为“nim_test.py”,再右键打开终端导入以下依赖包,供我们后续使用

python">pip install langchain_nvidia_ai_endpoints langchain-community langchain-text-splitters faiss-cpu gradio==3.50.0 setuptools beautifulsoup4

3)获取NVIDIA API的Key
我们需要登录NVIDIA NIM的官方网站 Try NVIDIA NIM APIs,申请我们需要用到的API,获取对应的Key,加入到我们的代码里进行调用,本例获取API的网址为:
phi-3-mini-4k | NVIDIA NIM

3)编写demo测试

python"># 食谱生成
from openai import OpenAI# 创建 OpenAI 客户端
client = OpenAI(base_url="https://integrate.api.nvidia.com/v1",api_key="换成自己的API KEY"
)# 获取用户输入
character_name = input("请输入食材:")# 创建聊天请求1
completion = client.chat.completions.create(model="microsoft/phi-3-mini-4k-instruct",messages=[{"role":"user","content": f"请根据这些{character_name}生成食谱,至少3道菜,包含具体做法,300字以内"}],temperature=0.2,top_p=0.7,max_tokens=1024,stream=True
)for chunk in completion:if chunk.choices[0].delta.content is not None:print(chunk.choices[0].delta.content, end="")

4)运行效果:

三、小结

此实例为简单的NVIDIA NIM平台的API的调用,大家也可以根据自己的需求在NVIDIA NIM平台上查找自己所需的API大模型,根据上述方法进行调用即可。


http://www.ppmy.cn/news/1541852.html

相关文章

证明在由特定矩阵生成的幺半子群中,存在收敛序列的子序列,其元素也能分别构成收敛序列

设 H H H是 G L 4 ( R ) GL_4(\mathbb{R}) GL4​(R)的由矩阵 ( 1 a 0 0 0 1 0 0 0 0 1 0 0 0 0 1 ) , ( 1 0 0 0 0 1 b 0 0 0 1 0 0 0 0 1 ) , ( 1 0 0 0 0 1 0 0 0 0 1 c 0 0 0 1 ) \begin{pmatrix}1&a&0&0\\ 0&1&0&0\\ 0&0&1&0\\ 0&…

【纯血鸿蒙】安装hdc工具

这里我先写Mac版的,Windows的在下面 首先要知道你的SDK安装在哪里了,不知道的话,可以打开DevEco Studio,打开设置页面里的HarmonyOS SDK,这个我们之前配置环境变量的时候用过。 其实主要是用到这里toolchains下的hdc命令。 所以我们需要配置环境变量。 1、打开Mac下的…

ElasticSearch全文检索和倒排索引

本文内容参考了田雪松老师编著的《Elastic Stack应用宝典》 全文检索 先来解释一下什么叫全文检索。数据检索的目的是从一系列数据中,根据某一或某些数据特征将特定的数据找出来。从数据检索的角度来看,数据大体上可以分为两种类型:一种是结…

Java基础第一天(实训学习整理资料(一))

目录 一、Typora--markdown编辑器 二、dos常用指令 操作系统 相关的dos指令 三、Java语言简介 发展历史 版本变迁 3、java的技术结构 4、java的跨平台特性 四、Java的下载和安装 1、下载地址 2、文件说明 3、安装 五、第一个Java程序HelloWorld 六、Java保留字&a…

命名空间std, using namespace std

命名空间std&#xff0c;using namespace std 在标准C以前&#xff0c;都是用#include<iostream.h>这样的写法的&#xff0c;因为要包含进来的头文件名就是iostream.h。标准C引入了名字空间的概念&#xff0c;并把iostream等标准库中的东东封装到了std名字空间中&#x…

【前端】JQ读取本地txt文本内容,并显示到页面上

目录 需求&#xff1a; 效果图 示例代码 需求&#xff1a; 有一个本地txt文件&#xff0c;把txt文件的内容按照原格式显示到页面上。 有两种解决方案&#xff0c;但是只支持UTF8编码的txt文件&#xff0c;如果是其他编码请转换成UTF8&#xff0c;这里有一个批量转换工具可以…

基于HEVC视频流选择加密的安全性研究

随着视频应用需求的持续增长&#xff0c;确保其安全性显得尤为重要。选择加密&#xff08;SE&#xff09;因其与视频编码器的良好兼容性、出色的视觉失真效果和低时间复杂度而在视频内容保护领域备受关注。然而&#xff0c;针对HEVC视频流选择加密的安全性研究尚处于起步阶段。…

A Graph-Transformer for Whole SlideImage Classification文献笔记

基本信息 原文链接&#xff1a;[2205.09671] A graph-transformer for whole slide image classification (arxiv.org) 源码&#xff1a;https://github.com/vkola-lab/tmi2022 提出了一种融合了基于图的WSI表示和用于处理病理图像的视觉转换器&#xff0c;称为GTP&#xff…