PDF-Chatbot / loadllm.py
WhiskeyCorridor's picture
Update loadllm.py
9cf956d verified
# Import library langchain
# Langchain adalah framework untuk mempermudah pembuatan aplikasi dengan menggunakan Large Language Models (LLM) seperti
# GPT, Claude, Llama, dan banyak LLM lainnya
from langchain.llms import LlamaCpp
from langchain.callbacks.manager import CallbackManager
from langchain.callbacks.streaming_stdout import StreamingStdOutCallbackHandler
# Path dimana file model Llama yang digunakan sebagai chatbot disimpan
# Model yang kami gunakan adalah Llama 2 7B Chat GGUF yang merupakan modifikasi dari Llama 2 7B Chat yang dibuat oleh Meta
# Model ini dimodifikasi untuk menggunakan format GGUF yang menawarkan beberapa keuntungan dari tipe lama GGML seperti
# tokenization yang lebih baik, support untuk token special, support untuk metadata, dan didesain extensible
model_path = 'model/llama-2-7b-chat.Q4_K_M.gguf'
class Loadllm:
@staticmethod
# Function untuk meload model Llama 2 dan menyiapkannya untuk digunakan
def load_llm():
callback_manager = CallbackManager([StreamingStdOutCallbackHandler()])
# Prepare the LLM
# LlamaCpp adalah sebuah library yang bertujuan unutk memberikan LLM inference dengan setup minimal dan performa
# state of the art pada berbagai macam hardware, baik local, maupun di cloud
# model_path = Tempat dimana model Llama disimpan di komputer
# n_gpu_layers = Jumlah layer yang akan dioffload ke GPU
# n_batch = Ukuran batch maximum untuk pemrosesan prompt
# n_ctx = Text context
# max_tokens = Jumlah maximum token yang akan digenerate sebagai respons oleh model
# local_files_only = Apakah hanya menggunakan file model yang ada secara lokal saja atau akan mendownload dari luar
# f16_kv
# callback_manager
# verbose = Print output verbose
llm = LlamaCpp(
model_path=model_path,
n_gpu_layers=20,
n_batch=512,
n_ctx=4096,
max_tokens=256,
local_files_only = True,
f16_kv=True, # MUST set to True, otherwise you will run into problem after a couple of calls
callback_manager=callback_manager,
verbose=True,
)
# Return model Llama yang telah siap
return llm