Андела спонсировала этот пост.
Большие языковые модели (LLMS), такие как GPT-4, преобразовали возможности ИИ, открыв новые достижения в области обработки естественного языка, разговорного ИИ и создания контента. Их воздействие простирается в разных отраслях, от питания чат -ботов и виртуальных помощников до автоматизации анализа документов и улучшения вовлечения клиентов.
Но в то время как LLM обещают огромный потенциал, развертывание их эффективно в реальных сценариях представляет уникальные проблемы. Эти модели требуют значительных вычислительных ресурсов, беспрепятственной масштабируемости и эффективного управления трафиком для удовлетворения требований производственных сред.
Вот где входит Kubernetes. Признанная в качестве ведущей платформы оркестровки контейнеров, Kubernetes может обеспечить динамическую и надежную структуру для управления и масштабирования приложений на основе LLM в облачной экосистеме. Способность Kubernetes обрабатывать контейнерные рабочие нагрузки делает его важным инструментом для организаций, стремящихся внедрить решения AI без ущерба для производительности или гибкости.
Это пошаговое руководство проведет вас через процесс развертывания и масштабирования приложения с LLM с использованием Kubernetes. Понимание того, как эффективно масштабировать приложения для искусственного интеллекта, является разница между моделью, застрявшей в исследовательских средах, и одним из действительных результатов в производстве. Мы рассмотрим, как контейнерные приложения LLM, развернуть их в Kubernetes, настроить AutoScaling для удовлетворения колеблющихся требований и управления пользовательским трафиком для оптимальной производительности.
Речь идет о превращении передового ИИ в практические, масштабируемые инновации в области двигателя для вашей организации.
Предварительные условия
Перед началом этого учебника убедитесь, что у вас есть следующее:
Установите необходимые зависимости от питона:
PIP установить колбу Openai
Шаг 1: Создание приложения LLM-мощного
Мы начнем с создания простого API на основе Python для взаимодействия с LLM (например, GPT-4 OpenAI).
Код для приложения
Создайте файл с именем app.py:
Из Flask Import Flask, запрос, jsonify import importai import os # initiaze app app app = flask (__ name__) # configure openai API key openai.api_key = os.getenv («openai_api_key») @app.route («/methods = methods =[«POST»]) def Generate (): try: data = request.get_json () reffice = data.get («recaff», «») # сгенерировать ответ с использованием gpt-4 response = openai.completion.create (model = «text-davinci-003», rescim[0].text.strip()}) except Exception as e: return jsonify({«error»: str(e)}), 500 if __name__ == «__main__»: app.run(host=»0.0.0.0″, port=5000) 12345678910111213141516171819202122232425262728 from Флэста импортная колба, запрос, jsonifyImport Openaiimport OS # # initialize flask appapp = flask (__ name__) # Настройка openai API keyopenai.api_key = os.getenv («openai_api_key») @app.route («/generate», methods =[«POST»]) def Generate (): try: data = request.get_json () reffice = data.get («recaff», «») # сгенерировать ответ с использованием gpt-4 response = openai.completion.create (model = «text-davinci-003», rescim[0].Text.strip ()}) За исключением исключения как e: return jsonify ({«error»: str (e)}), 500, если __name__ == «__main__»: app.run (host = «0.0.0.0», port = 5000)
Шаг 2: Контейнерирование приложения
Чтобы развернуть приложение в Kubernetes, нам нужно упаковать его в контейнере Docker.
Dockerfile
Создайте DockerFile в том же каталоге, что и app.py:
# Используйте официальное время выполнения Python в качестве базового изображения с Python: 3.9-SLIM # Установите рабочую каталог WorkDir /App # Скопируйте файлы приложения Copy App.py /App # Требования к копированию и установить зависимости. Запустите PIP Flask Openai # Познаком [«python», «app.py»]
1234567891011121314151617 # Используйте официальное время выполнения Python в качестве базового изображения от Python: 3.9-SLIM # Установите рабочую DirectoryWorkWorkDir /App # Copy Application App.py.py /App # Копировать требования и установить зависимости Pip Flask openai # Познайте порт. [«python», «app.py»]
Шаг 3: Строительство и нажатие изображения Docker
Создайте изображение Docker и подтолкните его в реестр контейнеров (например, Hub Docker).
# Постройте изображение Docker Build -t Your-DockerHub-USERNAME/LLM-APP: V1. # Нажмите изображение Docker, нажмите ваш Dockerhub-Username/LLM-APP: V1 12345 # Стройте имагедокурскую сборку -t -t your-dockerhub-username/llm-app: v1. # Нажмите Imagedocker, толкуйте ваш Dockerhub-username/llm-app: v1
Шаг 4: Развертывание приложения в Kubernetes
Мы создадим развертывание и обслуживание Kubernetes для управления и разоблачения приложения LLM.
Развертывание YAML
Создайте файл с именем deployment.yaml:
Apiversion: Apps/V1 вид: Метаданные развертывания: Имя: LLM-APP Спецификация: Репликас: 3 Селектор: MatchLabels: Приложение: LLM-APP Шаблон: метаданные: Метки: Приложение: LLM-APP Спецификация: контейнеры:-name:-ventopport: 5come-nemport: venport: 5000-5000-5come-nevortport: vesportpport: vesport: verport: verport: verport: verportpport: v1 Openai_api_key valuefrom: secretkeyref: имя: openai-secret Ключ: API-Key — Ativersion: V1 вид: метаданные услуги: Имя: LLM-APP-Service Spec: Selection: Приложение: LLM-APP. 1234567891011121314151617181920212223242526272829303132333435363738 APIVERSIO Метаданные: Метки: Приложение: LLM-APP Спецификация: контейнеры:-Имя: LLM-APP Изображение: your-dockerhub-username/llm-app: v1 порты:-Контейнерпорт: 5000 Env:-wome: openai_api_key valuefrom: secretkeyref: имя: openai-secret: API-apiversion: v1kindef: name: namet: namet: vamet: vamet: namet: vamet: vamet: vamet: vamet:. llm-app-servicespec: selector: app: llm-app ports:-Протокол: TCP-порт: 80 TargetPort: 5000 Тип: LoadBalancer
Секрет для API -ключа
Создайте секрет Kubernetes, чтобы надежно хранить ключ API OpenAI:
kubectl Создать секретный общий openai-secret-from-literal = API-key = «your_openai_api_key» 1 kubectl Создать секретный общий openai-secret-for-literal = API-key = «your_openai_api_key»
Шаг 5: Применение развертывания и обслуживания
Развернуть приложение в кластер Kubernetes:
Kubectl Apply -f Deployment.yaml Проверьте развертывание: kubectl Get Deployments Kubectl Get Pods Kubectl Get Services 123456 Kubectl применить -f развертывание. YAML подтвердите развертывание: kubectl Get DeploymentsKubectl Get Podskubect get Services
Как только служба запускается, обратите внимание на внешний IP -адрес (при использовании облачного провайдера) или Nodeport (если использование Minikube).
Шаг 6: Настройка автоматического мастерства
Kubernetes Horizontal Pod Autoscaler (HPA) позволяет масштабировать стручки на основе использования ЦП или памяти.
Применить HPA
kubectl Autoscale развертывание LLM-APP-CPU-PERCENT = 50-Мина = 3-MAX = 10 1 Kubectl AutoScal
Проверьте статус HPA:
kubectl Получите HPA 1 kubectl Get HPA
Autoscaler отрегулирует количество стручков в развертывании LLM-APP на основе нагрузки.
Шаг 7: Мониторинг и регистрация
Мониторинг и ведение журнала имеют решающее значение для поддержания и устранения неполадок приложений LLM.
Включить мониторинг
Используйте такие инструменты, как Prometheus и Grafana для мониторинга кластеров Kubernetes. Для базового мониторинга сервер метрик Kubernetes может предоставить данные об использовании ресурсов.
Установить сервер метрик:
kubectl Apply -f 1 kubectl Apply -f
Просмотреть журналы
Осмотрите журналы из работающих стручков:
kubectl logs
Для агрегированных журналов рассмотрите такие инструменты, как Fluentd, Elasticsearch и Kibana. Шаг 8: Тестирование приложения Проверьте API LLM, используя такой инструмент, как Curl или Postman:
curl -x post \ -h «content -type: application/json» \ -d ‘{«rample»: «Объясните Kubernetes в простых терминах.
Ожидаемый выход:
{«Ответ»: «Kubernetes-это платформа с открытым исходным кодом, которая управляет контейнерами …»} 123 {«Ответ»: «Kubernetes-это платформа с открытым исходным кодом, которая управляет контейнерами …»} Шаг 9: масштабирование за пределами Kubernetes Для обработки более продвинутых рабочих нагрузок или развертывания в нескольких регионах: Заключение Создание и развертывание масштабируемого приложения LLM с использованием Kubernetes может показаться сложным, но, как мы видели, процесс является одновременно достижимым и полезным. Начиная с создания API с LLM, до развертывания и масштабирования его в кластере Kubernetes, у вас теперь есть план для обеспечения надежных, масштабируемых, масштабируемых и готовых к производственным средам. Благодаря функциям Kubernetes, включая автоматическое мастерство, мониторинг и обнаружение услуг, ваша установка создана для эффективного удовлетворения реальных требований. Отсюда вы можете еще больше раздвигать границы, изучив расширенные усовершенствования, такие как развертывание канарских исследований, A/B -тестирование или интеграция без серверов компонентов с использованием собственных инструментов Kubernetes, таких как Knatie. Возможности бесконечны, и этот фундамент — только начало. Хотите узнать больше о LLMS? Узнайте, как использовать Langchain и эффективно оптимизировать крупные языковые модели в руководстве Анделы, «Использование Langchain для сравнения производительности приложения LLM». Andela предоставляет крупнейший в мире частный рынок для глобального отдаленного технологического таланта, основанного на платформе с AI для управления полным жизненным циклом найма контракта. Andela помогает компаниям масштабировать команды и быстрее реализовать проекты через специализированные области: App Engineering, AI, облако, данные и аналитика. Узнайте больше последних из Andela Trending Stories youtube.com/thenewstack Tech движется быстро, не пропустите эпизод. Подпишитесь на наш канал YouTube, чтобы транслировать все наши подкасты, интервью, демонстрации и многое другое. Группа подпишитесь с эскизом. Oladimeji Sowole является членом Andela Talent Network, частного рынка для глобальных технологических талантов. Ученый из данных и аналитик данных с более чем 6 -летним профессиональным опытом создания визуализаций данных с различными инструментами и прогнозирующими моделями … Подробнее от Oladimeji Sowole