- PVSM.RU - https://www.pvsm.ru -
Исходный код, разобранный в данной статье, опубликован в этом репозитории [1]
Длительный промежуток времени я искал модель, специально заточенную под вызов инструментов для внешних интегираций. Критерием поиска являлось минамальное колличество галлюцинаций при использовании железа с потребительского рынка
Если десятки миллиардов параметров языковой модели потребуют покупать специлизированную видеокарту стоимостью 5 тысяч долларов, которую ещё нужно привезти и вставить в подходящую системную плату, такой бизнес нельзя масштабировать
Была поставлена задача: максимально использовать существующее железо. Исторически сложилось так, что офис укомплектован системными блоками с 32ГБ оперативной памяти и видеокартами RTX 3060 с 12ГБ видеопамяти
В библиотеке моделей ollama была найдена модель command-r [3]. Изначально, инструменты в ней были сломаны [4], однако, так как в issues началась ругонь, была получена копипаста, чтобы их починить.
И модель запустилась, заняв 90% ресурсов описанного выше системного блока. Вызов инструментов заработал, без тормозов и галюнов, средствами видеокарты. Это самый лучший вариант, так как мы максимально используем наше минимальное железо
Протестировали вызов инструментов. Есть различия с OpenAI: так как модель изначально позицинирует себя как оптимизированная под вызов внешних API, любое действие пользователя приходится прописывать как отдельный инструмент. В этом есть плюсы: поведение чата предсказуемо, если модель пишет, что товар добавлен в корзину, значит вместо текста-заглушки именно был отправлен HTTP запрос на сервер.
У cohere
, производителя LLM, помимо облака, файлы модели в опенсорсе. Это тоже самое, что получить GGUF от GPT-4o и запустить локально. В итоге, получилось так, что на само облако мы не обратили внимание
У cohere
есть free tier на 20 запросов в минуту на api key. Ограничение на количество времени, сколько живет trial токен я не нашел
Цена радикально более демократичная, чем в OpenAi. Однако, это не то, про что я хотел написать статью: А что если сделать карусель триальных токенов?
Наш движок роя агентов, для подключения облачных LLM, использует адаптер: чтобы мы могли выскочить из Yandex Cloud или любого другого облака, если оно взвинтит цену подписки
import { Adapter, addCompletion, RoundRobin } from "agent-swarm-kit";
import { CompletionName } from "../enum/CompletionName";
import { CohereClientV2 } from "cohere-ai";
const getCohere = (token: string) =>
new CohereClientV2({
token,
});
const COHERE_TOKENS = [process.env.COHERE_API_KEY, /* Вы знаете, что делать :-) */];
addCompletion({
completionName: CompletionName.CohereCompletion,
getCompletion: RoundRobin.create(COHERE_TOKENS, (apiKey) =>
Adapter.fromCohereClientV2(getCohere(apiKey), "command-r-08-2024")
),
});
Соответственно, помимо запуска command-r в облаке, в академический проект был добавлен коннектор для Ollama
import { Adapter, addCompletion } from "agent-swarm-kit";
import { CompletionName } from "../enum/CompletionName";
import { singleshot } from "functools-kit";
import { Ollama } from "ollama";
const getOllama = singleshot(
() => new Ollama({ host: "http://127.0.0.1:11434" })
);
addCompletion({
completionName: CompletionName.OllamaCompletion,
getCompletion: Adapter.fromOllama(getOllama(), "oybekdevuz/command-r", ""),
});
И коннектор для LMStudio. Дополнительно, GGUF образ модели был выгружен в HuggingFace по этой ссылке [2], для удобства запуска тем, кто предпочитает запускать модели мышкой, а не из консоли
import { Adapter, addCompletion } from "agent-swarm-kit";
import { singleshot } from "functools-kit";
import OpenAI from "openai";
import { CompletionName } from "../enum/CompletionName";
const getOpenAI = singleshot(
() => new OpenAI({ baseURL: "http://127.0.0.1:1234/v1", apiKey: "noop" })
);
addCompletion({
completionName: CompletionName.LMStudioCompletion,
getCompletion: Adapter.fromLMStudio(getOpenAI(), "command_r_gguf"),
});
От себя добавлю, что локальная и облачная модели ведут себя абсолютно одинакого, что большой плюс, так как я не знаю, сколько ещё такая веселая карусель проработает...
Надеюсь, компании cohere
моя веселая карусель не будет сильно грустной и накладной по финансам(
Автор: tripolskypetr
Источник [8]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/javascript/414276
Ссылки в тексте:
[1] опубликован в этом репозитории: https://github.com/tripolskypetr/agent-swarm-kit/blob/master/demo/cohere-token-rotate/src/logic/completion/cohere.completion.ts
[2] https://huggingface.co/tripolskypetr/command_r_gguf: https://huggingface.co/tripolskypetr/command_r_gguf
[3] command-r: https://ollama.com/oybekdevuz/command-r
[4] инструменты в ней были сломаны: https://github.com/ollama/ollama/issues/9680#issuecomment-2742827704
[5] https://docs.cohere.com/docs/rate-limits: https://docs.cohere.com/docs/rate-limits
[6] https://dashboard.cohere.com/api-keys: https://dashboard.cohere.com/api-keys
[7] https://cohere.com/pricing: https://cohere.com/pricing
[8] Источник: https://habr.com/ru/articles/893232/?utm_campaign=893232&utm_source=habrahabr&utm_medium=rss
Нажмите здесь для печати.