Spaces:
Sleeping
Sleeping
# 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: | |
# 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 |