Transcript
00:00:00Локальная настройка моделей работает отлично, пока нам не понадобится другая модель.
00:00:04Теперь мы убиваем сервер llama, меняем порты, обновляем базовый URL OpenAI, ждем
00:00:10перезагрузки и просто надеемся, что ничего не сломается.
00:00:13Все потому, что наша модель для кода слишком велика для чата, а маленькая модель слишком глупа
00:00:18для реального программирования.
00:00:19LlamaSwap решает эту проблему.
00:00:21Одна точка доступа, несколько моделей, автоматическое переключение, а ваши инструменты даже не заметят изменений.
00:00:26Я покажу вам, как все это настроить, в ближайшие пару минут.
00:00:34Большинство разработчиков локальных LLM рано или поздно упираются в эту стену.
00:00:37Сначала вы используете что-то удобное: llama, lmstudio — то, что просто работает.
00:00:44И оно действительно работает.
00:00:45И, честно говоря, это здорово, потому что они стали намного лучше.
00:00:48Но затем нам начинает хотеться большего контроля.
00:00:51Вам нужны точные флаги llama.cpp, распределение слоев по GPU, размер контекста, кастомные бэкенды или
00:00:59даже экспериментальные модели.
00:01:01Вы переходите на «чистый» сервер llama, и это кажется крутым.
00:01:06Пока вы не понимаете, что просто обменяли одну проблему на другую.
00:01:09Теперь вы делаете вот что.
00:01:11Вы убиваете сервер llama, запускаете QuinCoder, а через пять минут — что
00:01:16вы делаете?
00:01:17Вы снова убиваете сервер llama.
00:01:18Вы мечетесь между этими моделями.
00:01:20И каждый раз что-то ждет, переподключается, выдает ошибку или втихую использует не ту
00:01:26модель.
00:01:27На самом деле вам нужно оставить одну точку доступа спереди и менять любые модели
00:01:31позади нее.
00:01:33Именно этот пробел восполняет LlamaSwap.
00:01:36Если вам нравятся инструменты, ускоряющие разработку, обязательно подпишитесь.
00:01:39У нас постоянно выходят новые видео.
00:01:41Теперь позвольте мне показать, как все это работает, прежде чем мы это обсудим.
00:01:44Сейчас LlamaSwap запущен локально на одном порту.
00:01:48Мой клиент знает только этот базовый URL — не отдельный для Qwen, не другой для Small LM или
00:01:55эмбеддингов, а всего одну «входную дверь».
00:01:58Вот небольшой конфиг с двумя моделями.
00:02:02Одна из них — QwenCoder, а вторая — SmolLM2.
00:02:06И у каждой есть своя собственная команда.
00:02:09Для каждой прописан свой файл модели.
00:02:11И для каждой задан свой размер контекста.
00:02:14Разница между ними в том, что у каждой также есть свой параметр TTL.
00:02:19Теперь я сделаю запрос к модели для написания кода.
00:02:22Я отправляю обычный чат-запрос в стиле OpenAI.
00:02:25В поле модели указано «QwenCoder», отлично.
00:02:30Давайте посмотрим на логи.
00:02:32Оно ждет, пока бэкенд будет готов, и затем пробрасывает запрос.
00:02:36А теперь обратите внимание на то, чего я НЕ делаю.
00:02:39Я не меняю URL-адрес.
00:02:41Я не перезапускаю Open WebUI.
00:02:43Я не редактирую ничего в Cursor.
00:02:46Я меняю всего одно поле.
00:02:48Модель меняется с QwenCoder на SmolLM2: тот же эндпоинт, тот же клиент, другая модель.
00:02:55Когда модель бездействует дольше TTL, LlamaSwap может выгрузить ее, чтобы вернуть VRAM.
00:02:59Вот и весь фокус.
00:03:00Ваши инструменты думают, что общаются с одним API.
00:03:02А LlamaSwap берет на себя всю грязную работу за кулисами.
00:03:04Чтобы вы действительно могли контролировать процесс.
00:03:09Ничего лишнего.
00:03:10Окей, супер.
00:03:11Так что же такое LlamaSwap?
00:03:12Я вроде как уже показал, верно?
00:03:13Думайте об этом как о хабе для ваших локальных моделей.
00:03:16Ваши приложения не общаются напрямую с каждым сервером.
00:03:19Они обращаются к LlamaSwap.
00:03:21Затем LlamaSwap смотрит на поле модели и решает, что делать дальше.
00:03:25Если модель уже запущена, он просто перенаправит запрос.
00:03:28Если модель не запущена, что ж, он ее запустит.
00:03:31Если другую модель нужно убрать, чтобы освободить место, он ее остановит.
00:03:35Затем ваш клиент получает обычный ответ.
00:03:38Так что не нужно менять базовые URL каждые 10 минут.
00:03:41Один бинарник, один файл конфигурации, одна стабильная точка доступа API.
00:03:45Он написан на Go и использует конфиг YAML.
00:03:48Он работает как прокси для OpenAI- и Anthropic-совместимых API и может стоять
00:03:53перед такими бэкендами, как llama.cpp, vLLM, Tabby API и другими.
00:03:59Если вам повезет, у вас может быть 10 или 20 моделей на диске, но VRAM хватит только на
00:04:05одну или две.
00:04:06TTL помогает с этим.
00:04:08Если модель простаивает достаточно долго, LlamaSwap может ее выгрузить.
00:04:11Вместо того чтобы GPU удерживал модель, которую мы сейчас не используем, он может
00:04:17освободить память для следующего запроса.
00:04:20Раньше вам приходилось помнить, что именно сейчас запущено.
00:04:23Теперь конфиг помнит это за вас.
00:04:25Тут возникает очевидный вопрос: почему бы просто не использовать Ollama, LM Studio или обычный
00:04:31сервер llama?
00:04:32И ответ таков: что ж, возможно, так и стоит сделать.
00:04:35LlamaSwap не заменяет их во всех случаях.
00:04:37Он решает очень конкретную задачу.
00:04:40В отличие от Ollama, LlamaSwap — это не магазин моделей, не загрузчик и не дружелюбный CLI.
00:04:47Цель здесь не в этом.
00:04:49Цель — контроль.
00:04:50Вы сами выбираете сборки llama.cpp, свои флаги и решаете,
00:04:55как именно запускается каждая модель.
00:04:57По сравнению с LM Studio, LlamaSwap больше ориентирован на сервер, ему не нужен GUI.
00:05:02Он лучше вписывается в среду разработки, домашний сервер, Docker или общую машину, где
00:05:07инструментам просто нужен стабильный API.
00:05:09Это не так просто, как «ollama run llama3».
00:05:13Вам нужны файлы моделей.
00:05:15Вам нужно понимать, как работает ваш бэкенд.
00:05:17Вам нужно писать YAML.
00:05:19Вам нужно знать, какие флаги подходят вашему GPU.
00:05:22Здесь нет встроенной галереи, которая все скачает и настроит за вас.
00:05:26Так что, честно говоря, настройка — та еще головная боль.
00:05:29Но для некоторых разработчиков это решает очень специфическую проблему.
00:05:32Проблему, когда вы точно знаете, какая модель вам нужна, но тратите время на бесконечную
00:05:38перенастройку всего вокруг.
00:05:39Его стоит попробовать, если вы используете Cursor, Continue, кастомных агентов или локальные скрипты.
00:05:44Это будет полезно, но настройка потребует усилий.
00:05:47Итак, это был LlamaSwap.
00:05:49Одна стабильная точка доступа API, куча локальных моделей, автопереключение, выгрузка при простое,
00:05:54полный контроль бэкенда.
00:05:56Основная идея проста.
00:05:58Вашим клиентам больше не важно, какой сервер моделей запущен в данный момент.
00:06:02LlamaSwap берет всё это на себя.
00:06:04Если вам нравятся подобные инструменты, подписывайтесь.
00:06:06Увидимся в следующем видео.