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
类。它产生了对“您的一切理论是什么理论”的回应。使用模型的默认行为,因为没有提供指南功能。