Implementasi Logicguide ini dibawa kepada Anda oleh Agora, kami mengabdikan untuk memajukan umat manusia dengan penelitian AI open source yang bermakna
Bergabunglah dengan perselisihan kami untuk membantu berkontribusi pada proyek ini atau 40+ proyek lainnya
Tautan kertas ada di sini
Logicguide adalah add-on inovatif yang dapat dicolokkan ke model apa pun untuk meningkatkan kemampuan penalaran logisnya sebesar 40%. Logicguide dirancang untuk memungkinkan model Anda memanfaatkan kekuatan algoritma dan fungsi penalaran logis canggih, memungkinkannya untuk menghasilkan respons yang lebih akurat, masuk akal, dan bermakna. Sederhana seperti plug and play!
Pertama, klon repositori ini:
git clone https://github.com/kyegomez/LOGICGUIDE.git
cd LOGICGUIDE
Kemudian, pasang dependensi yang diperlukan:
pip install -r requirements.txt
Di bawah ini adalah Panduan Penggunaan untuk 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)
Kami menyukai masukan Anda! Kami ingin berkontribusi pada Logicguide semudah dan transparan mungkin. Silakan periksa panduan berkontribusi kami untuk informasi lebih lanjut.
Menetapkan fungsi meta konteks formal yang menambah respons LLM dasar
Menetapkan rangkaian pengujian benchmark dari makalah
Menetapkan lebih banyak fungsi panduan
Logicguide dirilis di bawah lisensi MIT. Lihat file lisensi untuk lebih jelasnya.
Catatan: Logicguide dibuat dan dikelola oleh Kye Gomez.
Ini adalah kelas panduan dasar yang tidak mengubah input.
Metode
__call__(self, history)
: Ketika instance kelas disebut seperti fungsi, itu hanya mengembalikan history
string input yang tidak berubah. Kelas panduan ini dirancang untuk berinteraksi dengan operasi terkait digit dalam string input.
Metode
__init__(self)
: Dalam metode inisialisasi, objek ekspresi reguler dibuat yang cocok dengan satu atau lebih digit.__call__(self, history)
: Jika history
string input cocok dengan ekspresi reguler (yaitu, itu adalah urutan digit), metode ini mengembalikan objek ekspresi reguler. Kalau tidak, tidak ada yang mengembalikan. Ini adalah kelas untuk membuat fungsi panduan berdasarkan alat yang disediakan.
Metode
__init__(self, tool)
: Metode inisialisasi menerima objek tool
yang disimpan untuk digunakan nanti.__call__(self, model_output)
: Ketika instance disebut sebagai fungsi dengan model_output
sebagai argumen, itu menerapkan metode tool_check
dari objek tool
ke model_output
. Fungsi ini digunakan untuk memeriksa paritas string biner.
binary_string
: Fungsi ini mengambil string biner sebagai argumen.1
Jika string biner memiliki jumlah genap 1 (milik bahasa paritas), dan 0
jika tidak. Kelas -kelas ini dirancang untuk memberikan pemeriksaan logika dan pemeriksaan fakta pada teks input masing -masing.
Metode
check(self, text)
: Metode ini menerima text
string sebagai input dan mengembalikan true. Dalam implementasi yang lengkap, metode ini akan menggunakan sistem logika yang kompleks, analisis semantik, sistem inferensi logis, dan sistem periksa fakta untuk memverifikasi konsistensi logis dan akurasi faktual teks. Kelas ini bertindak sebagai manajer memori, menyimpan dan mengambil nilai berdasarkan pemicu tertentu dalam string input.
Metode
__init__(self)
: Dalam metode inisialisasi, kamus kosong dibuat untuk bertindak sebagai penyimpanan memori.__call__(self, history)
: Metode ini memodifikasi history
string input berdasarkan set memori/dapatkan pemicu. Kelas ini mengambil kutipan dari URL sumber dan memungkinkan penggantian pemicu penawaran dalam teks input dengan kutipan dari sumber.
Metode
__init__(self, source)
: Metode inisialisasi menerima URL sumber dan menyimpan daftar kutipan yang diambil dari sumber.get_quotes_from_source(self)
: Metode ini mengambil semua paragraf dari halaman web sumber dan mengembalikannya sebagai daftar.__call__(self, history)
: Metode ini menggantikan pemicu penawaran dalam history
string input dengan kutipan dari sumber. Kelas ini berinteraksi dengan persamaan aljabar dalam string input.
Metode
__init__(self)
: Metode inisialisasi menciptakan kamus kosong untuk menyimpan pasangan simbol variabel.__call__(self, history)
: Metode ini berinteraksi dengan history
string input berdasarkan persamaan dan memecahkan pemicu. Kelas ini bertindak sebagai panduan logika utama yang menggunakan perpustakaan Face Transformers untuk menghasilkan respons berdasarkan fungsi panduan.
Metode
__init__(self, model_id, guide_function=None, device="cuda:0")
: Metode inisialisasi mengatur model Transformers dan tokenizer berdasarkan model_id
, dan mengatur fungsi panduan ke guide_function
atau a fungsi default jika guide_function
tidak ada.
default_guide_function(self, S)
: Metode ini mengembalikan string input S
tidak berubah.get_bnb_config(self)
: Metode ini mengembalikan objek BitsAndBytesConfig
untuk kuantisasi model.guide(self, S)
: Metode ini menerapkan fungsi panduan ke string input S
.get_blocks(self, s)
: Metode ini mengembalikan daftar semua blok panduan dalam string input s
.generate(self, text, max_new_tokens=20)
: Metode ini menghasilkan respons berdasarkan text
string input, menggunakan model Transformers dan menerapkan fungsi panduan jika diperlukan. Contoh penggunaan menunjukkan cara menggunakan kelas LogicGuide
dengan model Transformers tertentu. Ini menghasilkan respons terhadap input "Apa teori Anda tentang segalanya?" Menggunakan perilaku default model, karena tidak ada fungsi panduan yang disediakan.