-
Notifications
You must be signed in to change notification settings - Fork 2
KNNWithGenerative.py
Файл KNNWithGenerative.py содержит определения классов FredStruct и PromptBot, которые используются для генерации ответов на вопросы с помощью комбинации метода k-ближайших соседей (KNN) и генеративных моделей на основе трансформеров.
Описание: Класс для инициализации и управления моделью FRED, основанной на T5.
Атрибуты:
-
tokenizer: Токенизатор модели FRED. -
fred_model: Модель FRED.
Методы:
-
__init__(path: str, device: str): Инициализирует модель и токенизатор FRED. -
get_model(): Возвращает модель FRED. -
get_tokenizer(): Возвращает токенизатор модели FRED.
Описание: Класс для генерации ответов на вопросы, используя метод KNN и генеративные модели.
Атрибуты:
-
max_words: Максимальное количество слов в ответе. -
knn: Экземпляр KNN. -
texts: Список текстов для ответов. -
sbert: Модель векторизации (Sentence-BERT). -
mean,std: Статистические параметры для нормализации векторов. -
vect_transformer: Функция для преобразования векторов. -
fred: ЭкземплярFredStruct. -
device: Устройство для вычислений ('cpu' или 'cuda').
Методы:
-
__init__(...): Инициализирует все необходимые параметры и модели. -
__clean_string(text: str): Очищает и нормализует текстовую строку. -
__qa__(doc: str, q: str): Готовит запрос для модели FRED. -
__generate__(doc: str, q: str): Генерирует ответ на вопрос. -
get_vect(q: str): Получает векторное представление для вопроса. -
cut(text: str, max_len: int): Обрезает текст до указанной длины. -
get_answers(q: str, top_k: int): Генерирует ответы на вопросы, используя KNN и модель FRED.
PromptBot предназначен для автоматической генерации ответов на заданные вопросы. Он использует метод KNN для поиска ближайших текстовых сегментов к векторному представлению вопроса, а затем применяет модель FRED для генерации ответа, учитывая найденные сегменты. Этот подход позволяет генерировать контекстно-релевантные и информативные ответы на основе большого объема текстовых данных.
ExplainitAll — это библиотека для интерпретируемого ИИ, предназначенная для интерпретации генеративных моделей (GPT-like), и векторизаторов, например, Sbert. Библиотека предоставляет пользователям инструменты для анализа и понимания работы этих сложных моделей. Кроме того, содержит модули RAG QA, fast_tuning и пользовательский интерфейс.
- Лицензия Apache-2.0 license