NVIDIA NIM je niz enostavnih mikroservisov, zasnovanih za pospešitev uvajanja generativnih AI modelov v oblaku, podatkovnih centrih in delovnih postajah. NIM-je razvrščamo po družinah modelov in posameznih modelih. Na primer, NVIDIA NIM za velike jezikovne modele (LLM) prinaša moč najsodobnejših LLM-jev v poslovne aplikacije, kar omogoča vrhunsko obdelavo in razumevanje naravnega jezika.
NIM IT in DevOps ekipam omogoča enostavno samostojno gostovanje velikih jezikovnih modelov (LLM) v lastnih upravljanih okoljih, hkrati pa razvijalcem nudi industrijske standardne API-je, s katerimi lahko ustvarijo zmogljive kopilote, klepetalne bote in AI asistente, ki lahko preoblikujejo njihovo poslovanje. Z uporabo vrhunske NVIDIA-jeve GPU pospešitve in skalabilnega uvajanja NIM ponuja najhitrejšo pot do inferenc z neprekosljivo zmogljivostjo.
NVIDIA NIM lahko uporabite za inferenco modelov družine Phi
Predstavljajte si, da imate sliko (demo.png) in želite ustvariti Python kodo, ki to sliko obdela in shrani novo različico (phi-3-vision.jpg).
Zgornja koda avtomatizira ta postopek tako, da:
- Nastavi okolje in potrebne konfiguracije.
- Ustvari poziv, ki modelu naroči, naj generira zahtevano Python kodo.
- Pošlje poziv modelu in zbere ustvarjeno kodo.
- Izvleče in zažene ustvarjeno kodo.
- Prikaže izvirno in obdelano sliko.
Ta pristop izkorišča moč AI za avtomatizacijo nalog obdelave slik, kar omogoča lažje in hitrejše doseganje ciljev.
Poglejmo si, kaj celotna koda počne korak za korakom:
-
Namestitev potrebnega paketa:
!pip install langchain_nvidia_ai_endpoints -U
Ta ukaz namesti paket
langchain_nvidia_ai_endpointsin zagotovi, da je nameščena najnovejša različica. -
Uvoz potrebnih modulov:
from langchain_nvidia_ai_endpoints import ChatNVIDIA import getpass import os import base64
Ti uvozi vključujejo potrebne module za delo z NVIDIA AI končnimi točkami, varno upravljanje gesel, interakcijo z operacijskim sistemom ter kodiranje/dekodiranje podatkov v base64 formatu.
-
Nastavitev API ključa:
if not os.getenv("NVIDIA_API_KEY"): os.environ["NVIDIA_API_KEY"] = getpass.getpass("Enter your NVIDIA API key: ")
Ta koda preveri, ali je okoljska spremenljivka
NVIDIA_API_KEYnastavljena. Če ni, uporabnika varno pozove, da vnese svoj API ključ. -
Določitev modela in poti do slike:
model = 'microsoft/phi-3-vision-128k-instruct' chat = ChatNVIDIA(model=model) img_path = './imgs/demo.png'
Tukaj se določi model, ustvari instanca
ChatNVIDIAz izbranim modelom in definira pot do slikovne datoteke. -
Ustvarjanje besedilnega poziva:
text = "Please create Python code for image, and use plt to save the new picture under imgs/ and name it phi-3-vision.jpg."
Definira se besedilni poziv, ki modelu naroči, naj generira Python kodo za obdelavo slike.
-
Kodiranje slike v base64:
with open(img_path, "rb") as f: image_b64 = base64.b64encode(f.read()).decode() image = f'<img src="data:image/png;base64,{image_b64}" />'
Ta koda prebere slikovno datoteko, jo kodira v base64 in ustvari HTML oznako za sliko z vključenimi podatki.
-
Združevanje besedila in slike v poziv:
prompt = f"{text} {image}"
Besedilni poziv in HTML oznaka slike se združita v en sam niz.
-
Generiranje kode z uporabo ChatNVIDIA:
code = "" for chunk in chat.stream(prompt): print(chunk.content, end="") code += chunk.content
Ta koda pošlje poziv modelu
ChatNVIDIAin zbira generirano kodo v delih, pri čemer vsak del izpiše in doda v spremenljivkocode. -
Izvleček Python kode iz generirane vsebine:
begin = code.index('```python') + 9 code = code[begin:] end = code.index('```') code = code[:end]
Iz generirane vsebine se odstrani markdown oblika in izvleče dejanska Python koda.
-
Zagon generirane kode:
import subprocess result = subprocess.run(["python", "-c", code], capture_output=True)
Izvlečena Python koda se zažene kot podproces in zajame njen izhod.
-
Prikaz slik:
from IPython.display import Image, display display(Image(filename='./imgs/phi-3-vision.jpg')) display(Image(filename='./imgs/demo.png'))
Te vrstice prikažejo slike z uporabo modula
IPython.display.
Omejitev odgovornosti:
Ta dokument je bil preveden z uporabo AI prevajalske storitve Co-op Translator. Čeprav si prizadevamo za natančnost, vas opozarjamo, da avtomatizirani prevodi lahko vsebujejo napake ali netočnosti. Izvirni dokument v njegovem izvirnem jeziku velja za avtoritativni vir. Za ključne informacije priporočamo strokovni človeški prevod. Za morebitna nesporazume ali napačne interpretacije, ki izhajajo iz uporabe tega prevoda, ne odgovarjamo.
