Развертывание локального LLAMA-3 с NVIDIA NIM: всеобъемлющее руководство
Развертывание локального LLAMA-3 с помощью NVIDIA NIM: всеобъемлющее руководство - Узнайте, как развернуть модель LLAMA-3 с использованием NVIDIA NIM для эффективного вывода на вашем облачном или локальном компьютере. Охватывает настройку, тестирование производительности и интеграцию с API OpenAI.
20 февраля 2025 г.

Раскройте силу больших языковых моделей с нашим руководством по самостоятельному размещению и развертыванию модели LLAMA-3 с использованием NIM от NVIDIA. Узнайте, как использовать эту передовую технологию для ускорения ваших проектов в области искусственного интеллекта и достижения беспрецедентной производительности.
Как развернуть NVIDIA NIM для вывода больших языковых моделей
Доступ к панели мониторинга NVIDIA Launchpad и метрик GPU
Настройка контейнера Docker NVIDIA NIM
Взаимодействие с API NVIDIA NIM
Стресс-тестирование конечной точки API NVIDIA NIM
Использование NVIDIA NIM с клиентом API OpenAI
Заключение
Как развернуть NVIDIA NIM для вывода больших языковых моделей
Как развернуть NVIDIA NIM для вывода больших языковых моделей
Чтобы развернуть семейство моделей Lama с помощью NVIDIA NIM на вашем собственном облаке или локальной машине, выполните следующие шаги:
-
Настройка окружения: Если вы работаете на локальной машине, установите Docker Engine и инструментарий контейнеров NVIDIA. Ссылки на них предоставлены в описании видео.
-
Получение API-ключа: Зарегистрируйтесь в учетной записи NVIDIA, чтобы сгенерировать ваш API-ключ и личный ключ. Они потребуются для взаимодействия с удаленным сервером.
-
Запуск Docker-контейнера: Используйте предоставленную команду Docker для запуска контейнера, указав имя контейнера, использование GPU, API-ключ, расположение кэша модели и порт. Это загрузит и настроит модель Lama 3 8 миллиардов инструкций.
-
Взаимодействие с моделью: Используйте предоставленную команду cURL для взаимодействия с развернутой моделью. Эта команда следует стандарту OpenAI API, позволяя вам использовать клиент OpenAI для взаимодействия.
-
Стресс-тестирование API: Используйте скрипт Python с библиотекой
requests
для отправки нескольких параллельных запросов к конечной точке API и мониторинга использования GPU и пропускной способности. -
Использование клиента OpenAI API: Продемонстрируйте, как использовать клиент OpenAI API с NVIDIA NIM, обновив базовый URL-адрес и другие параметры, чтобы они соответствовали развернутой модели.
Доступ к панели мониторинга NVIDIA Launchpad и метрик GPU
Доступ к панели мониторинга NVIDIA Launchpad и метрик GPU
Чтобы получить доступ к NVIDIA Launchpad и панели мониторинга GPU, выполните следующие шаги:
-
В рамках NVIDIA Launchpad вы получаете доступ к IDE-коду, которым является Visual Studio Code. Вы можете использовать этот IDE для взаимодействия с экземпляром GPU и развертывания модели Llama 3 8 миллиардов инструкций.
-
Панель мониторинга GPU - это панель Grafana, которая предоставляет подробную информацию об использовании и производительности GPU. Вы можете получить доступ к этой панели для мониторинга использования GPU, версии CUDA, драйверов GPU и других соответствующих метрик.
-
Панель Grafana дает вам визуальное представление об использовании GPU во времени, позволяя отслеживать производительность и соответствующим образом оптимизировать развертывание.
-
Вы можете использовать команду
watch
в терминале для мониторинга использования GPU в режиме реального времени. Командаwatch -n 1 nvidia-smi
будет обновлять использование GPU каждую секунду, предоставляя вам живое представление об использовании GPU. -
Панель мониторинга GPU и инструменты мониторинга в режиме реального времени позволяют вам понять характеристики производительности развертывания модели Llama 3 8 миллиардов инструкций, помогая оптимизировать использование ресурсов и обеспечивать эффективный вывод.
Настройка контейнера Docker NVIDIA NIM
Настройка контейнера Docker NVIDIA NIM
Чтобы развернуть модель Llama 3 8 миллиардов инструкций с помощью NVIDIA NIM, выполните следующие шаги:
- Откройте предоставленный IDE и убедитесь, что у вас есть доступ к GPU H100.
- Настройте ваш API-ключ, зарегистрировавшись в учетной записи NVIDIA и сгенерировав необходимые ключи.
- Запустите следующую команду Docker, чтобы запустить контейнер NVIDIA NIM:
docker run -it --gpus all -e NVIDIA_API_KEY=$NVIDIA_API_KEY -p 8000:8000 --name llama-3-8b-instruct nvcr.io/nvidia/nim:latest --model-name llama-3-8b-instruct
Эта команда:
- Создаст Docker-контейнер с именем "llama-3-8b-instruct"
- Использует все доступные GPU в системе
- Установит переменную окружения NVIDIA_API_KEY
- Откроет порт 8000 для сервера NIM
- Использует модель "llama-3-8b-instruct" из каталога NVIDIA NIM
- После запуска контейнера вы можете использовать предоставленную команду cURL для взаимодействия с моделью:
curl -X POST -H "Content-Type: application/json" -d '{"model": "llama-3-8b-instruct", "prompt": "Tell me a joke.", "max_tokens": 1000, "temperature": 0.7, "top_p": 0.95, "stop": ["\n"]}' http://localhost:8000/v1/completions
Эта команда cURL отправляет запрос на сервер NIM, работающий на localhost:8000, для генерации ответа на запрос "Tell me a joke."
-
Чтобы провести стресс-тестирование конечной точки API, вы можете запустить предоставленный скрипт Python
test_server.py
. Этот скрипт будет отправлять несколько параллельных запросов на сервер NIM и отслеживать использование GPU. -
Наконец, вы также можете использовать клиент OpenAI API для взаимодействия с сервером NIM, обновив базовый URL-адрес, чтобы он указывал на адрес и порт сервера NIM.
Выполнив эти шаги, вы сможете успешно развернуть модель Llama 3 8 миллиардов инструкций с помощью Docker-контейнера NVIDIA NIM и протестировать ее производительность.
Взаимодействие с API NVIDIA NIM
Взаимодействие с API NVIDIA NIM
Чтобы взаимодействовать с API NVIDIA NIM, мы можем использовать простую команду cURL. Команда cURL предоставляет следующее:
- Делает POST-запрос на локальный хост на порту 8000, где работает сервер NVIDIA NIM.
- Использует совместимый с OpenAI API, поэтому мы можем использовать клиент OpenAI для взаимодействия с сервером NIM.
- Указывает модель Llama 3 8 миллиардов инструкций для использования.
- Устанавливает структуру сообщения, аналогичную ожидаемой OpenAI.
- Позволяет устанавливать дополнительные параметры, такие как
max_tokens
иtemperature
.
Вот команда cURL:
curl -X POST -H "Content-Type: application/json" -d '{"model": "nlp/lama-3-8b-instruct", "messages": [{"role": "user", "content": "Tell me a joke"}], "max_tokens": 1000, "temperature": 0.7}' http://localhost:8000/v1/chat/completions
Эта команда cURL отправит запрос на сервер NVIDIA NIM, который затем сгенерирует ответ из модели Llama 3 8 миллиардов инструкций. Ответ будет передаваться потоком, при этом каждый токен будет отображаться по мере его генерации.
Чтобы дополнительно провести стресс-тестирование конечной точки API, мы можем использовать скрипт Python, который использует библиотеку requests
для выполнения нескольких параллельных запросов. Этот скрипт отправит 50 запросов на генерацию шуток в параллельном режиме и будет отслеживать использование GPU и пропускную способность.
Стресс-тестирование конечной точки API NVIDIA NIM
Стресс-тестирование конечной точки API NVIDIA NIM
Чтобы провести стресс-тестирование конечной точки API NVIDIA NIM, мы будем использовать простой скрипт Python, который использует библиотеку requests
для выполнения нескольких параллельных запросов к API. Вот как это работает:
-
Мы определяем URL-адрес конечной точки API, который в данном случае является локальным хостом, так как мы запускаем сервер локально. Если вы будете развертывать это на удаленном сервере, вам потребуется использовать внешний IP-адрес и включить переадресацию портов.
-
Мы устанавливаем необходимые заголовки, включая заголовок
Content-Type
со значениемapplication/json
. -
Мы создаем полезную нагрузку, которая включает имя модели (
"model": "llama-3-8b-instruct"
), запрос ("prompt": "Tell me 50 jokes."
) и другие параметры, такие какmax_tokens
,temperature
иstop
. -
Мы определяем функцию
send_requests()
, которая отправляет запросы с помощью методаrequests.post()
и ранее определенных URL-адреса, заголовков и полезной нагрузки. -
Мы используем многопоточность, чтобы запустить несколько экземпляров функции
send_requests()
параллельно, имитируя высокий объем запросов к конечной точке API. -
Мы отслеживаем использование GPU в режиме реального времени с помощью команды
watch
и инструментаnvidia-smi
, который предоставляет информацию об использовании GPU.
Вывод показывает, что конечная точка API может обрабатывать значительное количество параллельных запросов, со средней пропускной способностью около 2500 токенов в секунду. Использование GPU также остается относительно высоким, что указывает на то, что NVIDIA NIM эффективно использует аппаратные ресурсы для обеспечения высокопроизводительного вывода.
Этот стресс-тест демонстрирует масштабируемость и производительность решения NVIDIA NIM, делая его привлекательным вариантом для развертывания больших языковых моделей в производственной среде.
Использование NVIDIA NIM с клиентом API OpenAI
Использование NVIDIA NIM с клиентом API OpenAI
Чтобы использовать клиент OpenAI API с NVIDIA NIM, выполните следующие шаги:
- Измените базовый URL-адрес на URL-адрес вашего экземпляра NVIDIA NIM. В этом примере мы запускаем его на
localhost:8000
:
openai.api_base = "http://localhost:8000"
-
Вам не нужно предоставлять API-ключ, так как NVIDIA NIM обрабатывает аутентификацию.
-
Установите модель на модель, размещенную на NVIDIA NIM, в данном случае
"meta-llama-38b-instruct"
:
model = "meta-llama-38b-instruct"
- Установите другие параметры, такие как максимальное количество генерируемых токенов, температура и следует ли передавать ответы потоком:
response = openai.ChatCompletion.create(
model=model,
messages=[{"role": "user", "content": "Tell me 50 different jokes"}],
max_tokens=1024,
temperature=0.7,
stream=True,
)
- Перебирайте потоковый ответ и выводите сгенерированный текст:
for chunk in response:
print(chunk.choices[0].text, end="")
Этот подход позволяет вам использовать производительность и простоту развертывания, предоставляемые NVIDIA NIM, одновременно используя знакомый клиент OpenAI API. Потоковый ответ обеспечивает получение сгенерированного текста в режиме реального времени, обеспечивая отзывчивый пользовательский опыт.
Часто задаваемые вопросы
Часто задаваемые вопросы

