Skip to content

Latest commit

 

History

History
113 lines (90 loc) · 5.85 KB

File metadata and controls

113 lines (90 loc) · 5.85 KB

Familia Phi în NVIDIA NIM

NVIDIA NIM este un set de microservicii ușor de utilizat, concepute pentru a accelera implementarea modelelor generative de AI în cloud, centre de date și stații de lucru. NIM-urile sunt organizate pe categorii de familii de modele și pe bază de model individual. De exemplu, NVIDIA NIM pentru modele mari de limbaj (LLMs) aduce puterea celor mai avansate modele LLM în aplicațiile enterprise, oferind capabilități de procesare și înțelegere a limbajului natural fără precedent.

NIM simplifică pentru echipele IT și DevOps găzduirea autonomă a modelelor mari de limbaj (LLMs) în propriile medii gestionate, oferind în același timp dezvoltatorilor API-uri standard în industrie, care le permit să creeze asistenți virtuali, chatbot-uri și asistenți AI puternici, capabili să transforme afacerile. Folosind accelerarea GPU de ultimă generație de la NVIDIA și implementarea scalabilă, NIM oferă cel mai rapid traseu spre inferență cu performanțe de neegalat.

Poți folosi NVIDIA NIM pentru a face inferență cu Modelele din Familia Phi.

nim

Exemple - Phi-3-Vision în NVIDIA NIM

Imaginează-ți că ai o imagine (demo.png) și vrei să generezi cod Python care procesează această imagine și salvează o versiune nouă a acesteia (phi-3-vision.jpg).

Codul de mai jos automatizează acest proces prin:

  1. Configurarea mediului și a setărilor necesare.
  2. Crearea unui prompt care instruiește modelul să genereze codul Python necesar.
  3. Trimiterea promptului către model și colectarea codului generat.
  4. Extracția și rularea codului generat.
  5. Afișarea imaginilor originale și procesate.

Această abordare valorifică puterea AI pentru a automatiza sarcinile de procesare a imaginilor, făcându-le mai ușor și mai rapid de realizat.

Cod Exemplu Soluție

Hai să descompunem ce face întregul cod pas cu pas:

  1. Instalează Pachetul Necesitar:

    !pip install langchain_nvidia_ai_endpoints -U

    Această comandă instalează pachetul langchain_nvidia_ai_endpoints, asigurându-se că este cea mai recentă versiune.

  2. Importă Modulele Necesare:

    from langchain_nvidia_ai_endpoints import ChatNVIDIA
    import getpass
    import os
    import base64

    Aceste importuri aduc modulele necesare pentru a interacționa cu endpoint-urile NVIDIA AI, pentru gestionarea securizată a parolelor, interacțiunea cu sistemul de operare și codificarea/decodificarea datelor în format base64.

  3. Configurează Cheia API:

    if not os.getenv("NVIDIA_API_KEY"):
        os.environ["NVIDIA_API_KEY"] = getpass.getpass("Enter your NVIDIA API key: ")

    Acest cod verifică dacă variabila de mediu NVIDIA_API_KEY este setată. Dacă nu, solicită utilizatorului să introducă cheia API în siguranță.

  4. Definește Modelul și Calea Imaginilor:

    model = 'microsoft/phi-3-vision-128k-instruct'
    chat = ChatNVIDIA(model=model)
    img_path = './imgs/demo.png'

    Se setează modelul care va fi utilizat, se creează o instanță ChatNVIDIA cu modelul specificat și se definește calea către fișierul imagine.

  5. Creează Prompt-ul Text:

    text = "Please create Python code for image, and use plt to save the new picture under imgs/ and name it phi-3-vision.jpg."

    Se definește un prompt text care instruiește modelul să genereze cod Python pentru procesarea unei imagini.

  6. Codifică Imaginea în 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}" />'

    Acest cod citește fișierul imagine, îl codifică în base64 și creează un tag HTML de imagine cu datele codificate.

  7. Combină Textul și Imaginea în Prompt:

    prompt = f"{text} {image}"

    Se combină promptul text și tag-ul HTML al imaginii într-un singur șir.

  8. Generează Cod folosind ChatNVIDIA:

    code = ""
    for chunk in chat.stream(prompt):
        print(chunk.content, end="")
        code += chunk.content

    Acest cod trimite promptul către ChatNVIDIA model and collects the generated code in chunks, printing and appending each chunk to the code string.

  9. Extrage Codul Python din Conținutul Generat:

    begin = code.index('```python') + 9
    code = code[begin:]
    end = code.index('```')
    code = code[:end]

    Se extrage codul Python efectiv din conținutul generat prin eliminarea formatării markdown.

  10. Rulează Codul Generat:

    import subprocess
    result = subprocess.run(["python", "-c", code], capture_output=True)

    Se rulează codul Python extras ca un subproces și se capturează ieșirea acestuia.

  11. Afișează Imaginile:

    from IPython.display import Image, display
    display(Image(filename='./imgs/phi-3-vision.jpg'))
    display(Image(filename='./imgs/demo.png'))

    Aceste linii afișează imaginile folosind modulul IPython.display.

Declinarea responsabilității:
Acest document a fost tradus folosind servicii de traducere automată bazate pe inteligență artificială. Deși ne străduim să asigurăm acuratețea, vă rugăm să rețineți că traducerile automate pot conține erori sau inexactități. Documentul original, în limba sa nativă, ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm răspunderea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.