LLMFLEX เป็นแพ็คเกจ Python ที่ช่วยให้นักพัฒนา Python ทำงานกับโมเดลภาษาขนาดใหญ่ที่แตกต่างกัน (LLM) และทำวิศวกรรมที่รวดเร็วด้วยอินเทอร์เฟซอย่างง่าย มันสนับสนุนทรัพยากรฟรีและท้องถิ่นแทนที่จะใช้ API ที่ต้องชำระเงินเพื่อพัฒนาโซลูชัน AI ที่ใช้พลังงานท้องถิ่นและส่วนตัวอย่างแท้จริง
มันมีคลาสสำหรับโหลดโมเดล LLM โมเดลการฝังและฐานข้อมูลเวกเตอร์เพื่อสร้างแอพพลิเคชั่นที่ใช้พลังงาน LLM ด้วยเทคนิควิศวกรรมและ RAG ที่รวดเร็วของคุณเอง ด้วยคำสั่ง One-Liner คุณสามารถโหลดอินเทอร์เฟซ chatbot เพื่อแชทกับ LLM หรือทำหน้าที่เป็นโมเดลเป็น OpenAI API ได้เช่นกัน
การสร้างสภาพแวดล้อมเสมือนจริงก่อนที่จะติดตั้งแพ็คเกจแนะนำเป็นอย่างยิ่ง ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้ง pytorch และ llama-cpp-python ด้วยวิธีการติดตั้งที่ถูกต้องตามการกำหนดค่าฮาร์ดแวร์ของคุณก่อนที่จะติดตั้ง LLMFLEX กรุณาเยี่ยมชมลิงค์ที่ให้ไว้สำหรับแพ็คเกจที่เกี่ยวข้องสำหรับคู่มือการติดตั้งโดยละเอียดเพิ่มเติม
หลังจากทำตามขั้นตอนข้างต้นแล้วคุณสามารถติดตั้ง LLMFLEX ด้วย pip ได้อย่างง่ายดาย
pip install llmflex
นอกจากนี้คุณยังสามารถติดตั้ง exllamav2, autoAWQ และ AutoGPTQ หากคุณมีอุปกรณ์ CUDA กรุณาเยี่ยมชมลิงค์ที่ให้ไว้สำหรับแพ็คเกจที่เกี่ยวข้องสำหรับคู่มือการติดตั้งโดยละเอียดเพิ่มเติม
ซึ่งแตกต่างจาก Langchain คุณสามารถสร้าง LLM หลายตัวที่มีอุณหภูมิที่แตกต่างกันโทเค็นใหม่สูงสุดหยุดคำพูด ฯลฯ ด้วยโมเดลพื้นฐานเดียวกันโดยไม่ต้องโหลดโมเดลหลายครั้งโดยใช้คลาส LlmFactory สิ่งนี้มีประโยชน์เมื่อคุณสร้างเอเจนต์ของคุณเองด้วยงาน LLM ที่แตกต่างกันซึ่งต้องใช้การกำหนดค่าที่แตกต่างกัน
LLM ทั้งหมดที่สร้างขึ้นด้วย LlmFactory นั้นเข้ากันได้กับ Langchain และสามารถรวมเข้ากับรหัส Langchain ที่มีอยู่ได้อย่างราบรื่น คลาส LLM ทั้งหมดเป็นการดำเนินการอีกครั้งของคลาส LANGCHAIN LLM บางคลาสซึ่งรองรับการสตรีมที่มีประสิทธิภาพมากขึ้นและหยุดการจัดการคำทั้งหมดด้วยอินเทอร์เฟซแบบครบวงจร
รูปแบบของโมเดลหลายรูปแบบได้รับการสนับสนุนทั้งหมดและกระบวนการโหลดทั้งหมดได้รับการจัดการในคลาส LlmFactory ดังนั้นจึงเป็นเพียงการเล่นและเล่น รูปแบบที่รองรับ:
BaseTool คลาสพื้นฐานสำหรับการสร้างเครื่องมือขับเคลื่อน LLM BrowserTool ขับเคลื่อนโดย Duckduckgo ถูกนำมาใช้เป็นตัวอย่าง
มีการจัดคลาส Agent คุณสามารถส่งเครื่องมือและ LLM ของคุณเพื่อเริ่มต้นตัวแทนหลังจากให้งานกับตัวแทนแล้วตัวแทนจะสร้างเวทมนตร์ให้คุณด้วยเครื่องมือที่กำหนด
คลาสที่รวมเข้าด้วยกันสำหรับการใช้แบบจำลองการฝังซึ่งมีโมเดลการฝังและตัวแยกข้อความที่ใช้โทเค็นนับโดยใช้แบบจำลองการฝัง
การใช้ชุดเครื่องมือฝังและ FAISS คลาส FaissVectorDatabase สามารถอนุญาตให้คุณจัดเก็บและค้นหาข้อความสำหรับงานผ้าขี้ริ้วของคุณ
คลาสหน่วยความจำแชทสำหรับการจัดเก็บหน่วยความจำแชทบนดิสก์
BaseChatMemory
คลาสหน่วยความจำโดยไม่ต้องใช้โมเดลการฝังหรือฐานข้อมูลเวกเตอร์
LongShortTermChatMemory
คลาสหน่วยความจำโดยใช้ FaissVectorDatabase พื้นฐานเพื่อรักษาหน่วยความจำระยะยาวพร้อมกับหน่วยความจำล่าสุด
คลาส PromptTemplate ถูกนำมาใช้เพื่อจัดรูปแบบพรอมต์ของคุณด้วยรูปแบบพรอมต์ที่แตกต่างกันสำหรับรุ่นจากแหล่งที่แตกต่างกัน สถานที่ตั้งค่าล่วงหน้าบางอย่างเช่น Llama3 , ChatML , Vicuna และอื่น ๆ ได้ถูกนำไปใช้แล้ว แต่คุณสามารถเพิ่มเทมเพลตรูปแบบที่รวดเร็วของคุณเองได้
มีการจัดเตรียม WebApp สำหรับการใช้งาน AI chatbot ในพื้นที่ ฟังก์ชั่นการเรียกและผ้าขี้ริ้วในเอกสารของคุณเองได้รับการสนับสนุนบน WebApp นอกจากนี้คุณยังสามารถคัดท้ายการตอบสนองของ LLM โดยการให้ข้อความเริ่มต้นสำหรับการตอบกลับ
นี่คือวิธีที่คุณสามารถเริ่มต้นด้วยรูปแบบการสร้างข้อความใด ๆ บน HuggingFace ด้วยเครื่องของคุณ
from llmflex import LlmFactory
# Load the model from Huggingface
model = LlmFactory ( "TheBloke/OpenHermes-2.5-Mistral-7B-GGUF" )
# Create a llm
llm = model ( temperature = 0.7 , max_new_tokens = 512 )
# Use the LLM for your task
prompt = "Q: What is the colour of an apple? A:"
ans = llm . invoke ( prompt , stop = [ 'Q:' ])
print ( ans )
# Or if you prefer to generate the output with token streamming.
for token in llm . stream ( prompt , stop = [ 'Q:' ]):
print ( token , end = "" )ในการโหลดรูปแบบการฝังและใช้ฐานข้อมูลเวกเตอร์:
from llmflex . Embeddings import HuggingfaceEmbeddingsToolkit
from llmflex . VectorDBs import FaissVectorDatabase
# Loading the embedding model toolkit
embeddings = HuggingfaceEmbeddingsToolkit ( model_id = "thenlper/gte-small" )
# Create a vector database
food = [ "Apple" , "Banana" , "Pork" ]
vectordb = FaissVectorDatabase . from_texts ( embeddings = embeddings , texts = food )
# Do semantic search on the vector database
print ( vectordb . search ( "Beef" )) คลาส BrowserTool ถูกนำมาใช้เป็นตัวอย่างในการสร้างเครื่องมือด้วย LLMFLEX เครื่องมือกำลังใช้ Duckduckgo โดยค่าเริ่มต้น นี่คือวิธีที่คุณสามารถใช้งานได้:
from llmflex . Tools import BrowserTool
from llmflex . Rankers import FlashrankRanker
# Create a reranker
ranker = FlashrankRanker ()
# Create a broswer tool with the embeddings toolkit created earlier
tool = BrowserTool ( embeddings = embeddings , llm = llm , ranker = ranker )
# Run the tool
tool ( search_query = 'Install python' )ใช้เอเจนต์ปฏิกิริยาเดียวเพื่อผ่านเวิร์กโฟลว์ที่ซับซ้อนมากขึ้น
from llmflex . Agents import Agent
agent = Agent ( llm = llm , tools = [ tool ], prompt_template = model . prompt_template )
agent . run ( "Do some research online to find out the latest trends about Generative AI." )หากคุณต้องการให้ GUI เริ่มแชทกับรุ่น LLM ของคุณด้วยหน่วยความจำทั้งระยะยาวและระยะสั้นให้พิมพ์คำสั่งนี้ในเทอร์มินัล:
llmflex interfaceหากคุณต้องการกำหนดค่าโมเดล LLM, Embedding Model, ตัวแยกข้อความและ Reranker ให้สร้างไฟล์กำหนดค่าและแก้ไขก่อน:
# Create a config file for the webapp
llmflex create-app-configหลังจากแก้ไขไฟล์แล้วให้เรียกใช้สิ่งต่อไปนี้:
llmflex interface --config_dir chatbot_config.yamlคุณจะเห็นส่วนหน้าแบบสตรีมใช้เพื่อแชทกับรุ่น LLM
ตอนนี้คุณสามารถอัปโหลดไฟล์ข้อความของคุณเพื่อสร้างฐานความรู้และพูดคุยเกี่ยวกับเอกสารของคุณกับผู้ช่วย AI ของคุณ
สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับวิธีกำหนดค่า YAML ของคุณโปรดอ่านเอกสารที่มีให้ 
เอกสาร Python สำหรับคลาสวิธีการและฟังก์ชั่นทั้งหมดมีให้ในไดเรกทอรี ./docs ในที่เก็บนี้
โครงการนี้ได้รับใบอนุญาตภายใต้ข้อกำหนดของใบอนุญาต MIT