Browse Source

readme

master
parent
commit
a783a0dee4
  1. 132
      readme.md

132
readme.md

@ -22,5 +22,133 @@
- PyTorch (с поддержкой CUDA при наличии GPU)
- Библиотеки: `chromadb`, `llama-cpp-python`, `sentence-transformers`, `tiktoken`
### Модель
[YandexGPT-5-Lite-8B-instruct-Q4_K_M](https://huggingface.co/yandex/YandexGPT-5-Lite-8B-instruct-GGUF/resolve/main/YandexGPT-5-Lite-8B-instruct-Q4_K_M.gguf?download=true)
## ⚙ Установка
1. **Клонируйте репозиторий**:
```bash
git clone <repository-url>
cd medical-rag
```
2. **Установите зависимости**:
```bash
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
pip install chromadb llama-cpp-python sentence-transformers tiktoken
```
3. **Скачайте модель YandexGPT**:
Загрузите модель по ссыке:
[**YandexGPT-5-Lite-8B-instruct-Q4_K_M.gguf**](https://huggingface.co/yandex/YandexGPT-5-Lite-8B-instruct-GGUF/resolve/main/YandexGPT-5-Lite-8B-instruct-Q4_K_M.gguf?download=true)
Создайте папку и поместите туда модель:
```bash
mkdir models
# Поместите скачанную модель в папку models/
```
4. **Подготовьте корпус данных**:
Создайте файл `rag_corpus.json` с медицинскими примерами в формате:
```json
[
{
"short": "краткое описание",
"full": "развернутое описание жалоб"
}
]
```
## 🎯 Использование
### Базовый запуск
```python
from yandex_gpu import MedicalRAG
# Инициализация системы
rag = MedicalRAG(
model_path="./models/YandexGPT-5-Lite-8B-instruct-Q4_K_M.gguf",
n_ctx=8192,
n_gpu_layers=35,
use_gpu_for_embeddings=True
)
# Преобразование краткой записи
result = rag("Кашель сухой, температура 38")
print(result)
```
### Параметры инициализации
| Параметр | Тип | По умолчанию | Описание |
|----------|-----|--------------|----------|
| `model_path` | str | - | Путь к файлу модели GGUF |
| `corpus_path` | str | "rag_corpus.json" | Путь к JSON-файлу с корпусом |
| `db_path` | str | "./chroma_db" | Путь к базе данных ChromaDB |
| `embedding_model_name` | str | "cointegrated/rubert-tiny2" | Модель для эмбеддингов |
| `top_k` | int | 3 | Количество извлекаемых примеров |
| `n_ctx` | int | 4096 | Размер контекста |
| `n_gpu_layers` | int | -1 | Количество слоев на GPU (-1 = все) |
| `use_gpu_for_embeddings` | bool | True | Использовать GPU для эмбеддингов |
## 📊 Примеры работы
| Вход | Выход |
|------|-------|
| `"Кашель сухой, температура 38"` | `"Пациент предъявляет жалобы на сухой кашель, повышение температуры тела до 38 градусов."` |
| `"А.д. 140, заложенность ушей"` | `"Пациент жалуется на повышение артериального давления до 140 мм рт.ст., заложенность ушей и частичное снижение слуха."` |
| `"ушные палочки 5 лет, снижение слуха 2 года"` | `"Пациент отмечает использование ушных палочек в течение 5 лет и постепенное снижение слуха на протяжении последних 2 лет."` |
## 🛠 Технические детали
### Архитектура системы
1. **Векторный поиск**: ChromaDB с русскоязычными эмбеддингами
2. **Языковая модель**: YandexGPT-5-Lite-8B с оптимизацией для GPU
3. **Управление контекстом**: Автоматическое ограничение токенов
4. **Шаблон промптов**: Структурированные промпты для согласованных ответов
### Производительность
- **На CPU**: ~10-30 секунд на запрос
- **На GPU**: ~2-8 секунд на запрос
- **Память**: ~6-8 GB для модели + ~1-2 GB для эмбеддингов
## 🔧 Настройка GPU
```python
rag = MedicalRAG(
model_path="./models/YandexGPT-5-Lite-8B-instruct-Q4_K_M.gguf",
n_gpu_layers=35, # Количество слоев на GPU
main_gpu=0, # Основной GPU
tensor_split=None, # Разделение между несколькими GPU
use_gpu_for_embeddings=True # Ускорение эмбеддингов на GPU
)
```
## 📁 Структура проекта
```
medical-rag/
├── yandex_gpu.py # Основной класс MedicalRAG
├── rag_corpus.json # Медицинский корпус
├── chroma_db/ # Векторная база данных
├── models/
│ └── YandexGPT-5-Lite-8B-instruct-Q4_K_M.gguf
└── requirements.txt
```
## 🚀 Быстрый старт
```bash
# Запуск тестового примера
python yandex_gpu.py
```
## ⚠ Примечания
- Модель автоматически загружается при первом запуске
- Векторная база сохраняется между запусками
- Для лучшей производительности рекомендуется использовать GPU
- Система оптимизирована для русскоязычных медицинских текстов

Loading…
Cancel
Save