๐Ÿ–ฅ๏ธ
Dive to AI
  • Get started
  • GPT4All
    • LangChain, GPT4All ์„ค์น˜
    • AI ๋ชจ๋ธ ์‹คํ–‰
    • ๋ฒˆ์—ญ์„ ๋งก๊ฒจ ๋ณด์ž
    • AI ์‘๋‹ต ๊ฐœ์„ ํ•˜๊ธฐ
  • AI ์‚ฌ์šฉํ•˜๊ธฐ
    • AI๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋ฒ•
    • ์–ด๋–ป๊ฒŒ AI๋ฅผ ํ™œ์šฉํ•ด์•ผ ํ• ๊นŒ?
  • ์—ฌ๋Ÿฌ ๊ฐ€์ง€ AI
    • Chat AI
    • Coding AI
    • Hugging Face
  • AI ๊ด€๋ จ ๊ฐœ๋…๋“ค
    • Reader-Retriever Model
    • RAG
    • Fine-tuning
  • Other
    • ๊ทธ ์™ธ
  • Links
    • GitHub
    • Dive to Argo
Powered by GitBook
On this page
  • API๋กœ ๋ชจ๋ธ ์‚ฌ์šฉํ•˜๊ธฐ
  • ์ง์ ‘ ๋ชจ๋ธ ๋‹ค์šด๋กœ๋“œํ•˜์—ฌ ์‚ฌ์šฉํ•˜๊ธฐ
  • Spaces

Was this helpful?

  1. ์—ฌ๋Ÿฌ ๊ฐ€์ง€ AI

Hugging Face

PreviousCoding AINextAI ๊ด€๋ จ ๊ฐœ๋…๋“ค

Last updated 7 months ago

Was this helpful?

๋Š” ์„ธ๊ณ„ ์ตœ๋Œ€์˜ ์˜คํ”ˆ์†Œ์Šค AI ํ”Œ๋žซํผ์ž…๋‹ˆ๋‹ค. ์ฝ”๋”ฉ์— GitHub๊ฐ€ ์žˆ๋‹ค๋ฉด AI์—๋Š” Hugging Face๊ฐ€ ์žˆ๋‹ค๊ณ  ํ•  ์ˆ˜ ์žˆ์„ ์ •๋„๋กœ ๋…๋ณด์ ์ธ ์œ„์น˜๋ฅผ ์ž๋ž‘ํ•ฉ๋‹ˆ๋‹ค.

AI ๋ชจ๋ธ์„ ์ƒ์„ฑํ•˜์—ฌ ๊ณต์œ ํ•˜๊ณ , ๋ฒ„์ „ ๊ด€๋ฆฌ์™€ ์—…๋ฐ์ดํŠธ๋ฅผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์˜ ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ›์•„ ๋ชจ๋ธ์„ ์ˆ˜์ •/๋ฐœ์ „์‹œํ‚ฌ ์ˆ˜ ์žˆ์œผ๋ฉฐ, Hugging Face์— ๊ณต๊ฐœ๋œ ๋ชจ๋ธ์„ Fine-tuning ํ•˜๊ฑฐ๋‚˜, ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•œ ํŽ˜์ด์ง€๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

API๋กœ ๋ชจ๋ธ ์‚ฌ์šฉํ•˜๊ธฐ

์˜ˆ์‹œ๋กœ ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์šฐ์„  Hugging Face์— ๊ฐ€์ž…ํ•˜๊ณ  API ์‚ฌ์šฉ์„ ์œ„ํ•œ ํ† ํฐ์„ ๋ฐœ๊ธ‰๋ฐ›๊ฒ ์Šต๋‹ˆ๋‹ค.

์ดํ›„ API๋ฅผ ํ˜ธ์ถœํ•˜๊ธฐ ์œ„ํ•œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. Hugging Face API๋ฅผ ์ง€์›ํ•˜๋Š” ๊ฒฝ์šฐ ์•„๋ž˜์ฒ˜๋Ÿผ Inference API (serverless) ์˜ต์…˜์„ ์„ ํƒํ•˜๋ฉด API ํ˜ธ์ถœ ์ฝ”๋“œ๋ฅผ ์กฐํšŒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

huggingface_api.py
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",
})

์‹คํ–‰ํ•ด ๋ณด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ฒฐ๊ณผ๊ฐ€ ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค.

huggingface_api2.py
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๋ฅผ ์ดˆ๊ณผํ•˜๋Š” ๋ชจ๋ธ์€ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋Š” ๋“ฑ ๋ช‡ ๊ฐ€์ง€ ์ œ์•ฝ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ง์ ‘ ๋ชจ๋ธ ๋‹ค์šด๋กœ๋“œํ•˜์—ฌ ์‚ฌ์šฉํ•˜๊ธฐ

Use in Transformers ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ ๊ด€๋ จ ์ฝ”๋“œ๋ฅผ ์กฐํšŒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‹คํ–‰์„ ์œ„ํ•ด์„œ๋Š” Hugging Face์—์„œ ์ œ๊ณตํ•˜๋Š” transformers ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

pip install transformers
huggingface_down.py
# 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 ํด๋”์— ๋ชจ๋ธ์ด ๋‹ค์šด๋กœ๋“œ๋ฉ๋‹ˆ๋‹ค.

๋ชจ๋ธ์— ๋”ฐ๋ผ ์ถ”๊ฐ€๋กœ ํŒจํ‚ค์ง€ ์„ค์น˜๊ฐ€ ํ•„์š”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ์‹œ ๋ชจ๋ธ์˜ ๊ฒฝ์šฐ TensorFlow ๋˜๋Š” PyTorch๋ฅผ ์ถ”๊ฐ€๋กœ ์„ค์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

pip3 install torch torchvision torchaudio

์ด์ œ ๋‹ค์šด๋กœ๋“œํ•œ ๋ชจ๋ธ์„ ์‹คํ–‰ํ•ด ๋ณผ ์ฐจ๋ก€์ž…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” ๊ณต์‹ ์˜ˆ์ œ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

huggingface_down_run.py
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 ๋ชจ๋ธ์„ ํ†ตํ•ด ํŽ˜์ด์ง€๋ฅผ ๋งŒ๋“ค์–ด ๊ณต๊ฐœํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

์•„๋ž˜๋Š” ๋‹ค๋ฅธ ์œ ์ €๊ฐ€ ๋งŒ๋“  ์‚ฌ์ดํŠธ๋ฅผ ์‚ฌ์šฉํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ง์ ‘ ๋ชจ๋ธ์„ ๋‹ค์šด๋กœ๋“œํ•ด์„œ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ์—๋Š” ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ์ด ์žˆ๋‹ค๊ณ  ํ–ˆ์„ ๋•Œ, ์‚ฌ์ง„์„ ์˜ฌ๋ ค ์–ด๋–ค ์ธ๋„ ์Œ์‹์ธ์ง€ ํŒ๋‹จํ•˜๋Š” ํŽ˜์ด์ง€๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

microsoft/phi-2
์ธ๋„ ์Œ์‹์„ ์ธ์‹ํ•˜๋Š” ๋ชจ๋ธ
Hugging Face
google/flan-t5-large
ํ† ํฐ์€ ๊ฐ„ํŽธํ•˜๊ฒŒ ๋ฐœ๊ธ‰ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค
Hugging Face์—์„œ ์ œ๊ณตํ•˜๋Š” API ํ˜ธ์ถœ ์ฝ”๋“œ
์‹คํ–‰ ๊ฒฐ๊ณผ
์‹คํ–‰ ๊ฒฐ๊ณผ
์ •ํ™•๋„๋Š” ๋ณ„๊ฐœ์ž…๋‹ˆ๋‹ค