Skip to content

Latest commit

 

History

History
113 lines (90 loc) · 6.54 KB

File metadata and controls

113 lines (90 loc) · 6.54 KB

Gia đình Phi trong NVIDIA NIM

NVIDIA NIM là một tập hợp các microservices dễ sử dụng, được thiết kế để tăng tốc triển khai các mô hình AI sinh tạo trên đám mây, trung tâm dữ liệu và các máy trạm. NIM được phân loại theo từng dòng mô hình và từng mô hình cụ thể. Ví dụ, NVIDIA NIM dành cho các mô hình ngôn ngữ lớn (LLMs) mang sức mạnh của các LLM tiên tiến nhất đến các ứng dụng doanh nghiệp, cung cấp khả năng xử lý và hiểu ngôn ngữ tự nhiên vượt trội.

NIM giúp các nhóm IT và DevOps dễ dàng tự lưu trữ các mô hình ngôn ngữ lớn (LLMs) trong môi trường quản lý riêng của họ, đồng thời cung cấp cho các nhà phát triển các API tiêu chuẩn công nghiệp để xây dựng các trợ lý đồng hành, chatbot và trợ lý AI mạnh mẽ có thể thay đổi doanh nghiệp của họ. Tận dụng khả năng tăng tốc GPU tiên tiến của NVIDIA và khả năng triển khai mở rộng, NIM cung cấp con đường nhanh nhất đến suy luận với hiệu suất vượt trội.

Bạn có thể sử dụng NVIDIA NIM để suy luận các mô hình trong Gia đình Phi

nim

Ví dụ - Phi-3-Vision trong NVIDIA NIM

Hãy tưởng tượng bạn có một hình ảnh (demo.png) và bạn muốn tạo mã Python để xử lý hình ảnh này và lưu một phiên bản mới của nó (phi-3-vision.jpg).

Đoạn mã trên tự động hóa quy trình này bằng cách:

  1. Thiết lập môi trường và các cấu hình cần thiết.
  2. Tạo một prompt hướng dẫn mô hình tạo mã Python cần thiết.
  3. Gửi prompt đến mô hình và thu thập mã được tạo ra.
  4. Trích xuất và chạy mã được tạo.
  5. Hiển thị hình ảnh gốc và hình ảnh đã xử lý.

Cách tiếp cận này tận dụng sức mạnh của AI để tự động hóa các tác vụ xử lý hình ảnh, giúp bạn đạt được mục tiêu nhanh hơn và dễ dàng hơn.

Giải pháp mã mẫu

Hãy cùng phân tích từng bước của toàn bộ đoạn mã:

  1. Cài đặt gói cần thiết:

    !pip install langchain_nvidia_ai_endpoints -U

    Lệnh này cài đặt gói langchain_nvidia_ai_endpoints, đảm bảo là phiên bản mới nhất.

  2. Nhập các module cần thiết:

    from langchain_nvidia_ai_endpoints import ChatNVIDIA
    import getpass
    import os
    import base64

    Các import này đưa vào các module cần thiết để tương tác với các endpoint AI của NVIDIA, xử lý mật khẩu an toàn, tương tác với hệ điều hành và mã hóa/giải mã dữ liệu theo định dạng base64.

  3. Thiết lập API Key:

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

    Đoạn mã này kiểm tra biến môi trường NVIDIA_API_KEY đã được thiết lập chưa. Nếu chưa, nó sẽ yêu cầu người dùng nhập khóa API một cách an toàn.

  4. Định nghĩa mô hình và đường dẫn hình ảnh:

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

    Đoạn này thiết lập mô hình sẽ sử dụng, tạo một thể hiện của ChatNVIDIA với mô hình đã chỉ định, và định nghĩa đường dẫn đến file hình ảnh.

  5. Tạo prompt văn bản:

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

    Đoạn này định nghĩa một prompt văn bản hướng dẫn mô hình tạo mã Python để xử lý hình ảnh.

  6. Mã hóa hình ảnh dưới dạng 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}" />'

    Đoạn mã này đọc file hình ảnh, mã hóa nó dưới dạng base64, và tạo một thẻ hình ảnh HTML với dữ liệu đã mã hóa.

  7. Kết hợp văn bản và hình ảnh thành prompt:

    prompt = f"{text} {image}"

    Đoạn này kết hợp prompt văn bản và thẻ hình ảnh HTML thành một chuỗi duy nhất.

  8. Tạo mã bằng ChatNVIDIA:

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

    Đoạn mã này gửi prompt đến mô hình ChatNVIDIA và thu thập mã được tạo ra theo từng phần, in ra và nối từng phần vào biến code.

  9. Trích xuất mã Python từ nội dung được tạo:

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

    Đoạn này trích xuất mã Python thực tế từ nội dung được tạo bằng cách loại bỏ định dạng markdown.

  10. Chạy mã được tạo:

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

    Đoạn này chạy mã Python đã trích xuất dưới dạng một subprocess và thu thập kết quả đầu ra.

  11. Hiển thị hình ảnh:

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

    Các dòng này hiển thị hình ảnh bằng module IPython.display.

Tuyên bố từ chối trách nhiệm:
Tài liệu này đã được dịch bằng dịch vụ dịch thuật AI Co-op Translator. Mặc dù chúng tôi cố gắng đảm bảo độ chính xác, xin lưu ý rằng bản dịch tự động có thể chứa lỗi hoặc không chính xác. Tài liệu gốc bằng ngôn ngữ gốc của nó nên được coi là nguồn chính xác và đáng tin cậy. Đối với các thông tin quan trọng, nên sử dụng dịch vụ dịch thuật chuyên nghiệp do con người thực hiện. Chúng tôi không chịu trách nhiệm về bất kỳ sự hiểu lầm hoặc giải thích sai nào phát sinh từ việc sử dụng bản dịch này.