llama2-demo / app.py
learningai's picture
Update app.py
bee6408
import os
from dotenv import load_dotenv
from huggingface_hub import login
from transformers import AutoModelForCausalLM, AutoTokenizer, pipeline, BitsAndBytesConfig
import gradio as gr
load_dotenv()
API_TOKEN = os.environ.get("HUGGINGFACE_TOKEN")
login(API_TOKEN)
model_id = "meta-llama/Llama-2-7b-chat-hf"
quantization_config = BitsAndBytesConfig(llm_int8_enable_fp32_cpu_offload=True)
device_map = {
"transformer.word_embeddings": "cpu",
"transformer.word_embeddings_layernorm": "cpu",
"lm_head": "cpu",
"transformer.h": "cpu",
"transformer.ln_f": "cpu",
"model.embed_tokens": "cpu",
"model.layers":"cpu",
"model.norm":"cpu"
}
model = AutoModelForCausalLM.from_pretrained(model_id, device_map=device_map,quantization_config=quantization_config)
tokenizer = AutoTokenizer.from_pretrained(model_id)
generate_text_pipeline = pipeline(
model=model, tokenizer=tokenizer,
return_full_text=True,
task='text-generation',
temperature=0.1,
max_new_tokens=512,
repetition_penalty=1.1 # without this output begins repeating
)
def get_results(text):
res = generate_text_pipeline(text)
return res[0]["generated_text"]
iface = gr.Interface(fn=get_results, inputs="text", outputs="text")
iface.launch()