이 LogicGuide의 구현은 Agora에 의해 당신에게 가져오고, 우리는 의미있는 오픈 소스 AI Research를 통해 인류를 발전시키는 데 전념하고 있습니다.
이 프로젝트 또는 40 개 이상의 기타 프로젝트에 기여하는 데 도움이되는 불화에 가입
종이 링크가 여기에 있습니다
LogicGuide는 논리적 추론 기능을 40%향상시키기 위해 모든 모델에 연결될 수있는 혁신적인 애드온입니다. LogicGuide는 모델이 고급 논리적 추론 알고리즘 및 기능의 힘을 활용하여보다 정확하고 합리적이며 의미있는 응답을 생성 할 수 있도록 설계되었습니다. 플러그 앤 플레이만큼 간단합니다!
먼저이 저장소를 복제하십시오.
git clone https://github.com/kyegomez/LOGICGUIDE.git
cd LOGICGUIDE
그런 다음 필요한 종속성을 설치하십시오.
pip install -r requirements.txt
아래는 LogicGuide의 사용 안내서입니다.
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)
우리는 당신의 의견을 사랑합니다! 우리는 LogicGuide에 최대한 쉽고 투명하게 기여하고 싶습니다. 자세한 내용은 기고 가이드를 확인하십시오.
기본 LLM 응답을 강화하는 공식화 된 컨텍스트 메타 기능 설정
논문에서 벤치 마크 테스트 스위트를 설정하십시오
더 많은 가이드 기능을 설정하십시오
LogicGuide는 MIT 라이센스에 따라 릴리스됩니다. 자세한 내용은 라이센스 파일을 참조하십시오.
참고 : LogicGuide는 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)
:이 메소드는 메모리 세트/get 트리거를 기반으로 입력 문자열 history
수정합니다. 이 클래스는 소스 URL에서 따옴표를 가져오고 입력 텍스트에서 인용 트리거를 소스의 인용문으로 대체 할 수 있습니다.
행동 양식
__init__(self, source)
: 초기화 메소드는 소스 URL을 받아들이고 소스에서 가져온 따옴표 목록을 저장합니다.get_quotes_from_source(self)
:이 메소드는 소스 웹 페이지에서 모든 단락을 가져와 목록으로 반환합니다.__call__(self, history)
:이 메소드는 입력 문자열 history
의 인용 트리거를 소스의 견적으로 대체합니다. 이 클래스는 입력 문자열의 대수 방정식과 상호 작용합니다.
행동 양식
__init__(self)
: 초기화 메소드는 가변 symbol 쌍을 저장하기위한 빈 사전을 만듭니다.__call__(self, history)
:이 방법은 방정식을 기반으로 입력 문자열 history
과 상호 작용하고 트리거를 해결합니다. 이 클래스는 Hugging Face Transformers 라이브러리를 사용하여 안내 기능을 기반으로 응답을 생성하는 주요 논리 가이드 역할을합니다.
행동 양식
__init__(self, model_id, guide_function=None, device="cuda:0")
: 초기화 메소드는 model_id
기반으로 변압기 모델과 토큰 화기를 설정하고 가이드 함수를 guide_function
또는 A로 설정합니다. guide_function
이 없으면 기본 기능.
default_guide_function(self, S)
S
이 메소드는 입력 문자열을 변경하지 않습니다.get_bnb_config(self)
:이 메소드는 모델 Quantization을 위해 BitsAndBytesConfig
객체를 반환합니다.guide(self, S)
:이 메소드는 입력 문자열 S
에 안내서 함수를 적용합니다.get_blocks(self, s)
:이 메소드는 입력 문자열 s
에서 모든 가이드 블록의 목록을 반환합니다.generate(self, text, max_new_tokens=20)
:이 메소드는 변압기 모델을 사용하여 입력 문자열 text
기반으로 응답을 생성하고 필요한 경우 가이드 기능을 적용합니다. 예제 사용은 특정 변압기 모델로 LogicGuide
클래스를 사용하는 방법을 보여줍니다. 그것은 "모든 것에 대한 당신의 이론은 무엇입니까?"입력에 대한 응답을 생성합니다. 가이드 기능이 제공되지 않으므로 모델의 기본 동작을 사용합니다.