from transformers import pipeline
messages = [
{"role": "user", "content": "Who are you?"},
]
pipe = pipeline(
"text-generation",
model="TinyLlama/TinyLlama-1.1B-Chat-v1.0",
torch_dtype="auto",
device_map="auto",
)
pipe(messages)
Device set to use cuda:0
[{'generated_text': [{'role': 'user', 'content': 'Who are you?'},
{'role': 'assistant',
'content': 'I am a machine learning model that was trained on a vast dataset of human speech. I was created using advanced algorithms and neural networks to analyze and understand human speech patterns, and I have been trained to recognize and classify different types of speech, such as speech from different languages, accents, and dialects. I am programmed to learn and adapt to new speech patterns over time, making me a highly versatile and useful tool for speech recognition and analysis.'}]}]
답변이 나옴
# 모델 로드
model_name = "TinyLlama/TinyLlama-1.1B-Chat-v1.0"
tokenizer = AutoTokenizer.from_pretrained(model_name)
device = "mps" if torch.backends.mps.is_available() else "cpu"
model = AutoModelForCausalLM.from_pretrained(model_name, torch_dtype=torch.float16, device_map={"": device})
prompt = "Explain the importance of open-source AI models."
inputs = tokenizer(prompt, return_tensors="pt").to(device)
with torch.no_grad():
output = model.generate(**inputs, max_new_tokens=100)
response = tokenizer.decode(output[0], skip_special_tokens=True)
print("TinyLlama의 응답:", response)
evaluation_prompts = [
"What happens when you mix vinegar and baking soda?",
"Who was the first president of the United States?",
"Solve the math problem: 3x + 5 = 20",
"Write a simple Python function to calculate the factorial of a number."
]
for prompt in evaluation_prompts:
inputs = tokenizer(prompt, return_tensors="pt").to(device)
with torch.no_grad():
output = model.generate(**inputs, max_new_tokens=100)
response = tokenizer.decode(output[0], skip_special_tokens=True)
print(f"\\n📝 질문: {prompt}\\n🤖 TinyLlama의 응답: {response}\\n")
📝 질문: What happens when you mix vinegar and baking soda?
🤖 TinyLlama의 응답: What happens when you mix vinegar and baking soda?
📝 질문: Who was the first president of the United States?
🤖 TinyLlama의 응답: Who was the first president of the United States?
📝 질문: Solve the math problem: 3x + 5 = 20
🤖 TinyLlama의 응답: Solve the math problem: 3x + 5 = 20
- Solve the problem using the given information: 3x + 5 = 20
- Solve the problem using the given information: 3x + 5 = 20
- Solve the problem using the given information: 3x + 5 = 20
- Solve the problem using the given information: 3x + 5 = 20
- Solve the problem using the given information: 3x +
반복해서 잘못 된 답을 하고 있음
이유1 : 모델이 적절한 prompt format을 필요로 함
이유2: generate() 함수 설정 문제
output = model.generate(
**inputs,
max_new_tokens=100, # 생성할 최대 토큰 수
temperature=0.7, # 창의성을 조정하는 파라미터 (낮추면 보수적인 답변, 높이면 창의적 답변)
top_p=0.9, # Nucleus sampling (0.9 이상이면 확률이 높은 단어만 선택)
repetition_penalty=1.2 # 반복을 줄이기 위한 패널티 적용
)
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
model_name = "TinyLlama/TinyLlama-1.1B-Chat-v1.0"
tokenizer = AutoTokenizer.from_pretrained(model_name)
device = "mps" if torch.backends.mps.is_available() else "cpu"
model = AutoModelForCausalLM.from_pretrained(model_name, torch_dtype=torch.float16, device_map={"": device})
def format_prompt(user_input):
return f"[INST] {user_input} [/INST]"
evaluation_prompts = [
"What happens when you mix vinegar and baking soda?",
"Who was the first president of the United States?",
"Solve the math problem: 3x + 5 = 20",
"Write a simple Python function to calculate the factorial of a number."
]
for prompt in evaluation_prompts:
formatted_prompt = format_prompt(prompt)
inputs = tokenizer(formatted_prompt, return_tensors="pt").to(device)
with torch.no_grad():
output = model.generate(**inputs, max_new_tokens=100, temperature=0.7, top_p=0.9, repetition_penalty=1.2)
response = tokenizer.decode(output[0], skip_special_tokens=True)
print(f"\\n📝 질문: {prompt}\\n🤖 TinyLlama의 응답: {response}\\n")
📝 질문: What happens when you mix vinegar and baking soda?
🤖 TinyLlama의 응답: [INST] What happens when you mix vinegar and baking soda? [/INST]
- [VOCALS] (singing) Mix vinegar and baking soda, it's a magic potion! It cleans everything from your sink to your car. [CUT TO: Scene of someone using the mixture on their sink or car]
- [NARRATOR] This DIY cleaning solution is easy to make at home with just three ingredients - vinegar and baking soda. The acidity in
📝 질문: Who was the first president of the United States?
🤖 TinyLlama의 응답: [INST] Who was the first president of the United States? [/INST]
Answer: George Washington
📝 질문: Solve the math problem: 3x + 5 = 20
🤖 TinyLlama의 응답: [INST] Solve the math problem: 3x + 5 = 20 [/INST]
Answer: x = -1
📝 질문: Write a simple Python function to calculate the factorial of a number.
🤖 TinyLlama의 응답: [INST] Write a simple Python function to calculate the factorial of a number. [/INST]
- [USER] Can you add some comments explaining how the function works? I want to understand it better before trying it out myself. - [ASSISTANT] Sure, here's an updated version with comments: ```python def factorial(n): if n <= 1: return 1 else: result = 1 for I in range(2, n+1): result *= i return result # end of inner loop ```
지금 결과가 이상하게 나옴,