[Hugging Face] Hugging Face Python Libraries 허깅 페이스 파이썬 라이브러리
AI, ML, DL 2026. 7. 4. 22:43 |허깅 페이스 파이썬 라이브러리를 사용해 보자.
import huggingface_hub
huggingface_hub.login(token="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")
# 로그인 후 사용자 정보 가져오기
user_info = huggingface_hub.whoami()
print(user_info['fullname'])
# 로그아웃
huggingface_hub.logout()

from huggingface_hub import InferenceClient
# 기본 질문-응답(question answering) 모델을 사용하여 질문에 대한 답변 생성
client = InferenceClient(token="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")
answer = client.question_answering(question="What is the capital of France?",
context="France is a country in Europe. Its capital is Paris.")
print(answer)
#print(answer.answer)
# 대화(conversational) 모델을 사용하여 대화 생성
client = InferenceClient(token="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",
model="Qwen/Qwen2.5-7B-Instruct")
messages = [{"role": "user", "content": "프랑스의 수도는 어디야?"}]
answer = client.chat_completion(messages=messages, max_tokens=100)
print(answer)
#print(answer.choices[0].message.content)
# 이미지 생성(text-to-image) 모델을 사용하여 텍스트를 기반으로 이미지 생성
client = InferenceClient(token="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",
model="stabilityai/stable-diffusion-xl-base-1.0")
image = client.text_to_image("A beautiful sunset over the mountains.")
image.save("sunset.png")


from transformers import AutoModelForCausalLM
model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen3-0.6B", dtype="auto", device_map="auto")
# 미리 학습된 인과적 언어 모델을 로드한다.
print(model._get_name())


from transformers import AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained(pretrained_model_name_or_path="Qwen/Qwen3-0.6B")
# 미리 학습된 모델의 토크나이저를 불러오는 코드이다. "Qwen/Qwen3-0.6B"는 모델의 이름을 나타낸다.
result = tokenizer("Hello, how are you?", return_tensors="pt")
# pt: PyTorch를 나타내며, return_tensors="pt"는 토큰화된 결과를 PyTorch 텐서 형식으로 반환하도록 지정하는 것이다.
print(result)

from transformers import AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained(pretrained_model_name_or_path="Qwen/Qwen2.5-7B-Instruct")
# 미리 학습된 모델의 토크나이저를 불러오는 코드이다. "Qwen/Qwen2.5-7B-Instruct"는 모델의 이름을 나타낸다.
result = tokenizer("Hello, how are you?", return_tensors="pt")
# pt: PyTorch를 나타내며, return_tensors="pt"는 토큰화된 결과를 PyTorch 텐서 형식으로 반환하도록 지정하는 것이다.
print(result)

LGAI-EXAONE 모델을 사용하면 토큰화 결과가 달라진다.
from transformers import AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained(pretrained_model_name_or_path="LGAI-EXAONE/EXAONE-4.0-1.2B")
result = tokenizer("Hello, how are you?", return_tensors="pt")
print(result)

from transformers import AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained(pretrained_model_name_or_path="Qwen/Qwen2.5-7B-Instruct")
# 미리 학습된 모델의 토크나이저를 불러오는 코드이다. "Qwen/Qwen2.5-7B-Instruct"는 모델의 이름을 나타낸다.
result = tokenizer("Hello, how are you?", return_tensors="pt")
# pt: PyTorch를 나타내며, return_tensors="pt"는 토큰화된 결과를 PyTorch 텐서 형식으로 반환하도록 지정하는 것이다.
print(result)
result = tokenizer.encode("Hello, how are you?", return_tensors="pt")
# encode() 메서드는 입력 텍스트를 토큰화하고, 토큰 ID만 반환하는 메서드이다.
print(result)

from transformers import AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained(pretrained_model_name_or_path="Qwen/Qwen2.5-7B-Instruct")
# 미리 학습된 모델의 토크나이저를 불러오는 코드이다. "Qwen/Qwen2.5-7B-Instruct"는 모델의 이름을 나타낸다.
result = tokenizer.encode("Hello, how are you?", return_tensors="pt")
# encode() 메서드는 입력 텍스트를 토큰화하고, 토큰 ID만 반환하는 메서드이다.
print(result)
result = tokenizer.decode(result[0], skip_special_tokens=True)
# decode() 메서드는 토큰 ID를 다시 텍스트로 변환하는 메서드이다.
# clean_up_tokenization_spaces=True 옵션은 토큰화 과정에서 생긴 불필요한 공백을 제거하는 옵션이다.
print(result)

from transformers import AutoModelForCausalLM, AutoTokenizer
model_name = "LGAI-EXAONE/EXAONE-4.0-1.2B"
model = AutoModelForCausalLM.from_pretrained(model_name, dtype="bfloat16", device_map="auto")
tokenizer = AutoTokenizer.from_pretrained(model_name)
prompt = "네가 얼마나 대단한지 설명해 봐"
messages = [
{"role": "user", "content": prompt}
]
inputs = tokenizer.apply_chat_template(
messages,
tokenize=True,
add_generation_prompt=True,
return_tensors="pt",
return_dict=True
).to(model.device)
# .to(model.device): 모델이 실행되는 장치(GPU 또는 CPU)로 입력 데이터를 이동시키는 역할을 함.
output = model.generate(
**inputs,
max_new_tokens=256,
do_sample=False,
)
# **inputs의 의미: inputs 딕셔너리의 키-값 쌍을 언패킹하여 model.generate 함수에 전달하는 것.
# 즉, inputs 딕셔너리의 각 항목이 model.generate 함수의 인자로 전달됨.
# do_sample=False의 의미: 모델이 생성할 텍스트를 결정할 때 무작위성을 배제하고,
# 가장 가능성이 높은 토큰을 선택하도록 설정하는 것.
print(tokenizer.decode(output[0]))

from transformers import AutoModelForCausalLM, AutoTokenizer
model_name = "QWen/Qwen3-0.6B"
model = AutoModelForCausalLM.from_pretrained(model_name, dtype="bfloat16", device_map="auto")
tokenizer = AutoTokenizer.from_pretrained(model_name)
prompt = "네가 얼마나 대단한지 설명해 봐"
messages = [
{"role": "user", "content": prompt}
]
inputs = tokenizer.apply_chat_template(
messages,
tokenize=True,
add_generation_prompt=True,
return_tensors="pt",
return_dict=True
).to(model.device)
# .to(model.device): 모델이 실행되는 장치(GPU 또는 CPU)로 입력 데이터를 이동시키는 역할을 함.
output = model.generate(
**inputs,
max_new_tokens=256,
do_sample=False,
)
# **inputs의 의미: inputs 딕셔너리의 키-값 쌍을 언패킹하여 model.generate 함수에 전달하는 것.
# 즉, inputs 딕셔너리의 각 항목이 model.generate 함수의 인자로 전달됨.
# do_sample=False의 의미: 모델이 생성할 텍스트를 결정할 때 무작위성을 배제하고,
# 가장 가능성이 높은 토큰을 선택하도록 설정하는 것.
print(tokenizer.decode(output[0]))

from transformers import pipeline
generator = pipeline(task='text-generation', model='LGAI-EXAONE/EXAONE-4.0-1.2B')
# EXAONE과 같은 인스트럭션(대화형) 튜닝 모델은 챗 템플릿 형식으로 프롬프트를 전달해야 올바른 답변이 나온다.
messages = [
{"role": "user", "content": "한국의 수도는 어디야?"}
]
# return_full_text=False를 주면 질문은 제외하고 생성된 답변만 반환한다.
result = generator(messages, return_full_text=False)
print(result)
#print(result[0]['generated_text'])

from transformers import pipeline
generator = pipeline(task='text-generation', model='QWen/Qwen3-0.6B')
messages = [
{"role": "user", "content": "한국의 수도는 어디야?"}
]
# return_full_text=False를 주면 질문은 제외하고 생성된 답변만 반환한다.
result = generator(messages, return_full_text=False)
print(result)
#print(result[0]['generated_text'])

※ 참고
'AI, ML, DL' 카테고리의 다른 글
| [Hugging Face] Datasets 데이터셋 (0) | 2026.07.05 |
|---|---|
| [vLLM] WSL에서 vLLM 서버 실행하고 사용하기 (2) | 2026.06.21 |
| [vLLM] WSL에서 vLLM 설치 및 간단한 실행 (1) | 2026.06.19 |
| [YOLO] YOLO-World (0) | 2026.06.16 |
| [Ollama] Ollama Backend Serve 백엔드 실행 (0) | 2026.06.14 |





























