GithubHelp home page GithubHelp logo

host-some-llms's Introduction

LLM Backend API

Репозиторий содержит код необходимый для развёртывания бэкенда сервиса заметок (само веб-приложение находится 👉 тут [WIP]), предоставляет доступ к функциональности связанной с нейронными сетями в форме REST API.

  • Python примеры запуска моделей в облаке, RAG построенный на streamlit в отдельной ветке
  • предоставляет возможность запустить LLM локально или же в облаке
  • реализация API (FastAPI) для некоторых моделей: Saiga-Mistral-7b, Kandinsky 2, mbart-ru-gazeta

Библиотеки необходимые для сборки основного проекта указаны в файле: api/requirements.txt

auto_gptq==0.5.1
autollm==0.0.22
chromadb==0.4.18
chromadb==0.4.17
ctransformers==0.2.27
diffusers==0.23.0
fastapi==0.109.0
gradio==4.14.0
huggingface_hub==0.19.4
langchain==0.1.1
loguru==0.7.2
modal==0.55.4091
peft==0.6.1
Pillow==10.2.0
rich==13.7.0
torch==2.1.0
transformers==4.35.2
llama-cpp-python==0.2.24

Локальная сборка проекта

Python версия (>=): 3.11

  • создание виртуального окружения:

    pyenv local 3.11.5
    python -m venv .venv
  • установка библиотек через pip:

    pip install -r api/requirements.txt
  • при локальном развёртывании, файл модели нейронной сети будет скачиваться с huggingface и может занимать значительный объём на диске (~2-10 GB)

  • запуск API Saiga Mistral 7b GGUF:

    python api/local_saiga_mistral_7b_gguf_fastapi.py

Удалённый запуск сервиса через облако Modal

Сервис Modal обеспечивает возможность развёртывания API вместе с фронтендом на их домене, используя облачные GPU.

Чтобы пользоваться функциями обл. провайдера modal нужно авторизоваться в аккаунте с помощью CLI, которое предварительно устанавливается:

pip install modal # установка и библиотеки и CLI
python3 -m modal setup # открывает браузер для входа в аккаунт, затем локально будет сохранён токен авторизации

Чтобы отправить какую-либо (в данном примере Kandinsky 2.2) нейросеть работать (как сервис и API) в modal-облако выполняем:

modal deploy api/modal_kandinsky_2_2.py 
  • Примечание, для работы некоторых сервисов может быть нужен файл (api/frontend/index.html) с простым html фронтендом, в том случае если сервис подразумевает UI.
  • Modal использует containerd для удалённой сборки окружения ➡️ не всегда всё собирается с первого раза, возможно нужно будет заменить версии библиотек путём изменения кода отв. за это

Пример работы сервиса в облаке

пример работы с modal

Пример работы с Saiga-Mistral локально

работа с mistral локально

host-some-llms's People

Contributors

imanchoys avatar m0rphed avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.