Hugging Face
Hugging Face๋ ์ธ๊ณ ์ต๋์ ์คํ์์ค AI ํ๋ซํผ์ ๋๋ค. ์ฝ๋ฉ์ GitHub๊ฐ ์๋ค๋ฉด AI์๋ Hugging Face๊ฐ ์๋ค๊ณ ํ ์ ์์ ์ ๋๋ก ๋ ๋ณด์ ์ธ ์์น๋ฅผ ์๋ํฉ๋๋ค.
AI ๋ชจ๋ธ์ ์์ฑํ์ฌ ๊ณต์ ํ๊ณ , ๋ฒ์ ๊ด๋ฆฌ์ ์ ๋ฐ์ดํธ๋ฅผ ํ ์ ์์ต๋๋ค. ๋ํ ๋ค๋ฅธ ์ฌ๋๋ค์ ํผ๋๋ฐฑ์ ๋ฐ์ ๋ชจ๋ธ์ ์์ /๋ฐ์ ์ํฌ ์ ์์ผ๋ฉฐ, Hugging Face์ ๊ณต๊ฐ๋ ๋ชจ๋ธ์ Fine-tuning ํ๊ฑฐ๋, ๋ชจ๋ธ์ ์ฌ์ฉํ ํ์ด์ง๋ฅผ ์์ฑํ ์๋ ์์ต๋๋ค.
API๋ก ๋ชจ๋ธ ์ฌ์ฉํ๊ธฐ
์์๋ก google/flan-t5-large ๋ชจ๋ธ์ ์ฌ์ฉํด ๋ณด๊ฒ ์ต๋๋ค. ์ฐ์ Hugging Face์ ๊ฐ์ ํ๊ณ API ์ฌ์ฉ์ ์ํ ํ ํฐ์ ๋ฐ๊ธ๋ฐ๊ฒ ์ต๋๋ค.

์ดํ API๋ฅผ ํธ์ถํ๊ธฐ ์ํ ์ฝ๋๋ฅผ ์์ฑํด์ผ ํฉ๋๋ค. Hugging Face API๋ฅผ ์ง์ํ๋ ๊ฒฝ์ฐ ์๋์ฒ๋ผ Inference API (serverless) ์ต์ ์ ์ ํํ๋ฉด API ํธ์ถ ์ฝ๋๋ฅผ ์กฐํํ ์ ์์ต๋๋ค.


import requests
API_URL = "https://api-inference.huggingface.co/models/google/flan-t5-large"
headers = {"Authorization": "Bearer ******"}
def query(payload):
response = requests.post(API_URL, headers=headers, json=payload)
return response.json()
output = query({
"inputs": "The answer to the universe is",
})
์คํํด ๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ์ด ๊ฒฐ๊ณผ๊ฐ ์ถ๋ ฅ๋ฉ๋๋ค.

from langchain_community.llms.huggingface_hub import HuggingFaceHub
from langchain.chains import LLMChain
from langchain.prompts import PromptTemplate
import os
os.environ["HUGGINGFACEHUB_API_TOKEN"] = "******"
repo_id = "google/flan-t5-large"
template = """
Question: {sentence}
"""
prompt = PromptTemplate.from_template(template)
llm = HuggingFaceHub(
repo_id=repo_id, model_kwargs={"temperature": 0.5, "max_length": 64}
)
llm_chain = LLMChain(prompt=prompt, llm=llm)
print(llm_chain.invoke({
"sentence": "What is the capital of France?"
}))
LangChain์ผ๋ก๋ API ํธ์ถ์ด ๊ฐ๋ฅํฉ๋๋ค.
์ถ๊ฐ๋ก Hugging Face์์ ์ ๊ณตํ๋ huggingface_hub
ํจํค์ง๋ฅผ ์ค์นํด์ผ ํฉ๋๋ค.
pip install huggingface_hub
Hugging Face API๋ ์ฌ์ฉ๋ ์ ํ์ด ์์ผ๋ฉฐ, ์ ๋ฃ ํ๋์ ๊ฒฐ์ ํ๋ฉด ์ ํ์ด ๋์ด๋ฉ๋๋ค. ๊ทธ ์ธ์๋ 10Gi๋ฅผ ์ด๊ณผํ๋ ๋ชจ๋ธ์ ์ฌ์ฉํ ์ ์๋ ๋ฑ ๋ช ๊ฐ์ง ์ ์ฝ์ด ์์ต๋๋ค.
์ง์ ๋ชจ๋ธ ๋ค์ด๋ก๋ํ์ฌ ์ฌ์ฉํ๊ธฐ
์ง์ ๋ชจ๋ธ์ ๋ค์ด๋ก๋ํด์ ์ฌ์ฉํ ์๋ ์์ต๋๋ค. ์ด๋ฒ์๋ microsoft/phi-2 ๋ชจ๋ธ์ ์ฌ์ฉํด ๋ณด๊ฒ ์ต๋๋ค.
Use in Transformers ๋ฒํผ์ ๋๋ฌ ๊ด๋ จ ์ฝ๋๋ฅผ ์กฐํํ ์ ์์ต๋๋ค.


์คํ์ ์ํด์๋ Hugging Face์์ ์ ๊ณตํ๋ transformers
ํจํค์ง๋ฅผ ์ค์นํด์ผ ํฉ๋๋ค.
pip install transformers
# Use a pipeline as a high-level helper
from transformers import pipeline
pipe = pipeline("text-generation", model="microsoft/phi-2")
pipe.save_pretrained("model/phi-2")
์ฝ๋๋ฅผ ์คํํ๋ฉด model/phi-2
ํด๋์ ๋ชจ๋ธ์ด ๋ค์ด๋ก๋๋ฉ๋๋ค.
์ด์ ๋ค์ด๋ก๋ํ ๋ชจ๋ธ์ ์คํํด ๋ณผ ์ฐจ๋ก์ ๋๋ค. ์ฌ๊ธฐ์๋ ๊ณต์ ์์ ์ฝ๋๋ฅผ ์คํํด ๋ณด๊ฒ ์ต๋๋ค.
from transformers import AutoModelForCausalLM, AutoTokenizer
model = AutoModelForCausalLM.from_pretrained("model/phi-2", torch_dtype="auto", trust_remote_code=True)
tokenizer = AutoTokenizer.from_pretrained("model/phi-2", trust_remote_code=True)
inputs = tokenizer('''def print_prime(n):
"""
Print all primes between 1 and n
"""''', return_tensors="pt", return_attention_mask=False)
outputs = model.generate(**inputs, max_length=200)
text = tokenizer.batch_decode(outputs)[0]
print(text)

์ ์์ ์ผ๋ก ์คํ๋๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค.
Spaces
Hugging Face ๋ชจ๋ธ์ ํตํด ํ์ด์ง๋ฅผ ๋ง๋ค์ด ๊ณต๊ฐํ ์๋ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด, ์ธ๋ ์์์ ์ธ์ํ๋ ๋ชจ๋ธ์ด ์๋ค๊ณ ํ์ ๋, ์ฌ์ง์ ์ฌ๋ ค ์ด๋ค ์ธ๋ ์์์ธ์ง ํ๋จํ๋ ํ์ด์ง๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค.
์๋๋ ๋ค๋ฅธ ์ ์ ๊ฐ ๋ง๋ ์ฌ์ดํธ๋ฅผ ์ฌ์ฉํ ๊ฒ์ ๋๋ค.

Last updated
Was this helpful?