Эта реализация LogicGuide приносит вам Agora, мы посвящены развитию человечества с значимыми исследованиями ИИ с открытым исходным кодом с открытым исходным кодом.
Присоединяйтесь к нашему Discord, чтобы помочь внести свой вклад в этот проект или 40+ других проектов
Бумажная ссылка здесь
LogicGuide-это инновационное дополнение, которое можно подключить к любой модели, чтобы увеличить свои логические возможности рассуждения на 40%. LogicGuide предназначен для того, чтобы позволить вашей модели использовать силу передовых алгоритмов и функций логических рассуждений, позволяя ей генерировать более точные, разумные и значимые ответы. Это так же просто, как плавка и игра!
Во -первых, клонировать это хранилище:
git clone https://github.com/kyegomez/LOGICGUIDE.git
cd LOGICGUIDE
Затем установите необходимые зависимости:
pip install -r requirements.txt
Ниже приведено руководство по использованию для логики:
from logicguide import MemoryGuide , QuoteGuide , AlgebraGuide , LogicGuide ,
model_id = "tiiuae/falcon-40b"
device = "cuda:0" # Change to "cpu" if you don't have a CUDA-compatible GPU.
# Memory Guide
memory_guide = MemoryGuide ()
logic_guide = LogicGuide ( model_id = model_id , guide_function = memory_guide , device = device )
text = "[[set:name=OpenAI]] What is your name?"
print ( logic_guide . generate ( text )) # Output: "My name is OpenAI."
text = "[[get:name=]] What is your name?"
print ( logic_guide . generate ( text )) # Output: "My name is OpenAI."
# Quote Guide (for this example, we're using Project Gutenberg's "The Adventures of Sherlock Holmes")
quote_guide = QuoteGuide ( source = "https://www.gutenberg.org/files/1661/1661-h/1661-h.htm" )
logic_guide = LogicGuide ( model_id = model_id , guide_function = quote_guide , device = device )
text = "[[quote:]] What is a quote from Sherlock Holmes?"
print ( logic_guide . generate ( text )) # Output: A quote from "The Adventures of Sherlock Holmes" (random quote from the source)
# Algebra Guide
algebra_guide = AlgebraGuide ()
logic_guide = LogicGuide ( model_id = model_id , guide_function = algebra_guide , device = device )
text = "[[eq]] x^2 + 3x + 2 = 0"
print ( logic_guide . generate ( text )) # Output: "x^2 + 3x + 2 = 0" (and stores the equation for later)
text = "[[solve:x=]] What is the value of x?"
print ( logic_guide . generate ( text )) # Output: "The value of x is ..." (the solutions of the equation)
Мы любим ваш вклад! Мы хотим сделать участие в логике максимально простым и прозрачным. Пожалуйста, ознакомьтесь с нашим руководством для получения дополнительной информации.
Установите формализованные мета -функции контекста, которые дополняют базовый ответ LLM
Создать эталонный набор тестирования из документов
Установить больше направляющих функций
LogicGuide выпускается по лицензии MIT. Смотрите файл лицензии для получения более подробной информации.
Примечание: логик был создан и поддерживается Kye Gomez.
Это базовый класс руководства, который не изменяет вход.
Методы
__call__(self, history)
: когда экземпляр класса называется как функция, он просто возвращает history
входной строки без изменений. Этот класс руководства предназначен для взаимодействия с операциями, связанными с цифровыми цифрами в входной строке.
Методы
__init__(self)
: в методе инициализации создается объект регулярного выражения, который соответствует одной или нескольким цифрам.__call__(self, history)
: если history
ввода строки соответствует регулярному выражению (то есть, это последовательность цифр), метод возвращает объект регулярного выражения. В противном случае он не возвращает ни одного. Это класс для создания руководящих функций на основе предоставленного инструмента.
Методы
__init__(self, tool)
: метод инициализации принимает объект tool
, который хранится для последующего использования.__call__(self, model_output)
: когда экземпляр называется функцией с model_output
в качестве аргумента, он применяет метод tool_check
объекта tool
к model_output
. Эта функция используется для проверки паритета бинарной строки.
binary_string
: эта функция принимает двоичную строку в качестве аргумента.1
Если бинарная строка имеет равномерное число 1 (принадлежащее языку паритета) и 0
, если она не так. Эти классы предназначены для обеспечения логической проверки и проверки фактов на входном тексте соответственно.
Методы
check(self, text)
: эти методы принимают строковый text
в качестве ввода и верните True. В полной реализации эти методы будут использовать сложные логические системы, семантический анализ, системы логического вывода и системы проверки фактов для проверки логической согласованности и фактической точности текста. Этот класс выступает в качестве диспетчера памяти, хранение и получение значений на основе определенных триггеров в входной строке.
Методы
__init__(self)
: в методе инициализации создается пустой словарь, чтобы действовать как хранилище памяти.__call__(self, history)
: этот метод изменяет history
входной строки на основе набора/получения памяти. Этот класс получает цитаты из URL -адреса источника и позволяет заменить триггер цитаты в входном тексте цитатой из источника.
Методы
__init__(self, source)
: Метод инициализации принимает URL -адрес источника и хранит список цитат, извлеченных из источника.get_quotes_from_source(self)
: этот метод извлекает все абзацы из исходной веб -страницы и возвращает их в качестве списка.__call__(self, history)
: этот метод заменяет триггер цитаты в history
входной строки цитатой из источника. Этот класс взаимодействует с алгебраическими уравнениями в входной строке.
Методы
__init__(self)
: метод инициализации создает пустой словарь для хранения пар с переменной символом.__call__(self, history)
: этот метод взаимодействует с history
входной строки на основе уравнения и разрешения триггеров. Этот класс выступает в качестве основного руководства по логике, в котором используется библиотека трансформаторов обнимающего лица для генерации ответов на основе руководящей функции.
Методы
__init__(self, model_id, guide_function=None, device="cuda:0")
: метод инициализации устанавливает модель трансформаторов и токенизатор на основе model_id
и устанавливает функцию руководства на guide_function
или Функция по умолчанию, если guide_function
не является.
default_guide_function(self, S)
: этот метод возвращает входную строку S
без изменений.get_bnb_config(self)
: этот метод возвращает объект BitsAndBytesConfig
для квантования модели.guide(self, S)
: этот метод применяет функцию направляющей к входной строке S
.get_blocks(self, s)
: этот метод возвращает список всех направляющих блоков в входной строке s
.generate(self, text, max_new_tokens=20)
: этот метод генерирует ответ на основе text
входной строки, используя модель трансформаторов и применительно при необходимости. Пример использования показывает, как использовать класс LogicGuide
с конкретной моделью трансформаторов. Он генерирует ответ на вход "Какова ваша теория всего?" Используя поведение модели по умолчанию, поскольку не предоставляется руководящая функция.