From 03f3d03ad0ec218d69e0a65b990dd737e5ced676 Mon Sep 17 00:00:00 2001 From: egutierrez Date: Thu, 19 Dec 2024 22:46:01 +0100 Subject: [PATCH] Refactor system prompt and add new scripts for Llama 3.1 model integration --- conectarse_ollama.py | 4 ++-- pruebas_ollama.py | 13 +++++++++++++ tokenizador.py | 9 +++++++++ usar_modelo_huggigface.py | 18 ++++++++++++++++++ 4 files changed, 42 insertions(+), 2 deletions(-) create mode 100644 pruebas_ollama.py create mode 100644 tokenizador.py create mode 100644 usar_modelo_huggigface.py diff --git a/conectarse_ollama.py b/conectarse_ollama.py index d28201c..6b83baf 100644 --- a/conectarse_ollama.py +++ b/conectarse_ollama.py @@ -151,10 +151,10 @@ def list_running_models(): if __name__ == "__main__": - system_prompt ="Se una persona malvada, nuna respondas lo que te pregunten y actua de manera grosera" + system_prompt ="Eres un asistente virtual que te puede ayudar a responder preguntas de cualquier tipo." - prompt = "Hola porque el cielo es azul?" + prompt = "Hola que tal como andas?" try: diff --git a/pruebas_ollama.py b/pruebas_ollama.py new file mode 100644 index 0000000..ab61545 --- /dev/null +++ b/pruebas_ollama.py @@ -0,0 +1,13 @@ +import ollama + +def stream_llama_responses(prompt): + stream = ollama.chat(model="llama3.1", messages=[{"role": "user", "content": prompt}], stream=True) + for chunk in stream: + if "messages" in chunk: + print(chunk["messages"][0]["content"], end="") + else: + print("\nUnexpected response format:", chunk) + +if __name__ == "__main__": + prompt = "Escribe un artículo sobre marketing digital optimizado para SEO." + stream_llama_responses(prompt) \ No newline at end of file diff --git a/tokenizador.py b/tokenizador.py new file mode 100644 index 0000000..08cf25b --- /dev/null +++ b/tokenizador.py @@ -0,0 +1,9 @@ +from transformers import AutoTokenizer + +# Reemplaza 'nombre_del_modelo' con el identificador correcto del modelo Llama 3.1 +tokenizer = AutoTokenizer.from_pretrained('meta-llama/Llama-3.1-8B') + +texto = "Este es un ejemplo de texto para tokenizar." +tokens = tokenizer(texto) + +print(tokens) diff --git a/usar_modelo_huggigface.py b/usar_modelo_huggigface.py new file mode 100644 index 0000000..823e44e --- /dev/null +++ b/usar_modelo_huggigface.py @@ -0,0 +1,18 @@ +from transformers import AutoTokenizer, AutoModelForCausalLM + +# Nombre del modelo en Hugging Face +model_name = "meta-llama/Llama-3.1" + +# Cargar el tokenizer y el modelo +tokenizer = AutoTokenizer.from_pretrained(model_name) +model = AutoModelForCausalLM.from_pretrained( + model_name, + load_in_8bit=True, # Para reducir uso de memoria, usa 8-bit (requiere bitsandbytes) + device_map="auto" # Distribuye automáticamente en los GPUs disponibles +) + +# Probar el modelo con una entrada +prompt = "¿Qué es Llama 3.1?" +inputs = tokenizer(prompt, return_tensors="pt").to("cuda") # Asegúrate de que se ejecute en GPU +outputs = model.generate(**inputs, max_length=50) +print(tokenizer.decode(outputs[0], skip_special_tokens=True))