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
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:
- Thiết lập môi trường và các cấu hình cần thiết.
- Tạo một prompt hướng dẫn mô hình tạo mã Python cần thiết.
- Gửi prompt đến mô hình và thu thập mã được tạo ra.
- Trích xuất và chạy mã được tạo.
- 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.
Hãy cùng phân tích từng bước của toàn bộ đoạn mã:
-
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. -
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.
-
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. -
Đị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
ChatNVIDIAvới mô hình đã chỉ định, và định nghĩa đường dẫn đến file hình ảnh. -
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.
-
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.
-
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.
-
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
ChatNVIDIAvà 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ếncode. -
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.
-
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.
-
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.
