LOGICGUIDE
0.0.02
邏輯指導的實施是由Agora帶給您的,我們致力於通過有意義的開源AI研究來推進人類
加入我們的不和諧,幫助為該項目或其他40個項目做出貢獻
紙鏈接在這裡
LogicGuide是一種創新的附加組件,可以插入任何模型,以將其邏輯推理功能提高40%。邏輯指導旨在允許您的模型利用高級邏輯推理算法和功能的力量,從而使其能夠生成更準確,明智和有意義的響應。就像插頭一樣簡單!
首先,克隆這個存儲庫:
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響應
從論文中建立基準測試套件
建立更多指南功能
邏輯指導是根據MIT許可發布的。有關更多詳細信息,請參見許可證文件。
注意:創建了邏輯指導,並由凱·戈麥斯(Kye Gomez)維護。
這是一個不會改變輸入的基本指南類。
方法
__call__(self, history)
:當類似於函數的類實例時,它只會返回輸入字符串history
不變。 該指南類旨在與輸入字符串中與數字相關的操作進行交互。
方法
__init__(self)
:在初始化方法中,創建一個與一個或多個數字匹配的正則表達式對象。__call__(self, history)
:如果輸入字符串history
匹配正則表達式(即,這是數字序列),則該方法返回正則表達式對象。否則,它不會返回。 這是一個基於提供的工具創建指南功能的類。
方法
__init__(self, tool)
:初始化方法接受一個供以後使用的tool
對象。__call__(self, model_output)
:當實例稱為model_output
作為參數的函數時,它將tool
對象的tool_check
方法應用於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
的初始化方法設置了變形金剛的模型和dokenizer,並將指南函數設置為guide_function
或a默認功能如果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
類。它產生了對“您的一切理論是什麼理論”的回應。使用模型的默認行為,因為沒有提供指南功能。