- 비슷한 기존 사례
[9기, 허깅페이스] 🤗 HuggingFace가 뭔가요? 뭘 할 수 있나요?
HuggingFace 모델 Inference API와 Local 호출 비교
- 목차
허깅페이스 둘러보기
허깅페이스 실습: layoutlm-document-qa
허깅페이스 실습: Llama-2-7b-chat-hf
허깅페이스 실습: phi-2
추가 시도할 것
느낀 점
- 허깅페이스 둘러보기
이것저것 눌러보며.. 말 그대로 둘러보았습니다.
둘러보던 중 meta나 microsoft같은 기업에서도 huggingFace에 model을 올려놓기도 한다는 사실을 알게 되어, 그냥 눈에 들어왔던 모델 하나와 meta의 모델 하나, microsoft의 모델 하나를 실습해 보 았습니다.
물론.. 둘러보며 Spaces에서 다양한 모델들을 체험해 보기도 했는데, 기록을 따로 안 해두어서… 방문 기록에서 찾기가 어렵고, 그때 체험했던 것을 똑같이 재현하여 캡처하기도 어려워서.. 그 부분은 유감스럽게도 글에 포함하지 못하였답니다..
다음부터는 기록을 해두어야겠습니다~~!!!
- 허깅페이스 실습: layoutlm-document-qa
[소개]
이 친구는 document question answering에서 찾은 모델입니다.
어떤 png 파일의 http 주소와 질문을 보내면 그 png 파일을 읽어서 질문에 맞는 답을 제공하는 모델입니다.
[실습 내용]
저는 https://iconspng.com/images/receipt/receipt.jpg&w=640&q=75" target="_blank" rel="noopener noreferrer">이 파일을 사용하였습니다.
구글에다가 receipt png라고 검색하여 찾았습니다.
저 파일을 이용하여 모델을 돌려보았는데, 실행 코드가 짧길래 그냥 터미널에서 돌려보았습니다!
from transformers import pipeline
layoutlm = pipeline("document-question-answering", model="impira/layoutlm-document-qa")
layoutlm("https://iconspng.com/_next/image?url=https%3A%2F%2Ficonspng.com%2Fimages%2Freceipt%2Freceipt.jpg&w=640&q=75", "How much is T-Shirt?")
위 코드는 제가 실행한 코드의 코드만 가져온 것입니다! 이렇게 하면
[{'score': 0.9972447752952576, 'answer': '$14,95', 'start': 13, 'end': 13}]
이렇게 반환됩니다!
위에 오류난 것은.. 컴퓨터에 다운받은 png 로컬 주소를 가져다가 두었더니.. “Must be a valid URL starting with `http://` or `https://`, a valid path to an image file, or a base64 encoded string.” 라고 오류가 난 모습입니다..
혹은, 로컬 컴퓨터에다가 다운 받아서 실행할 수도 있더군요!
허깅페이스 모델 페이지에서, 동그라미를 누르면 이렇게 전환되는데, 여기에서 보이는 모든 파일을 다운받습니다!
그 후 다운받은 파일을 한 폴더에 넣어둡니다!
그리고 그 파일의 경로를 코드에서 모델을 불러올 때 넣어줍니다!
/Users/leeyj/Downloads 경로에다가 layoutlm이라는 폴더를 만들어서 저장했다면, 이렇게요~~~
from transformers import pipeline
layoutlm = pipeline("document-question-answering", model="/Users/leeyj/Downloads/layoutlm")
layoutlm("https://iconspng.com/_next/image?url=https%3A%2F%2Ficonspng.com%2Fimages%2Freceipt%2Freceipt.jpg&w=640&q=75", "How much is T-Shirt?")
- 허깅페이스 실습: Llama-2-7b-chat-hf
이 친구도 로컬에서 돌리고 싶어서 바로 들어가 보았더니.. 뭔가 검증된 사용자만 접근할 수 있나봅니다.. 그래서 일단 Submit하고, 추가적인 실습은 못 했습니다..ㅠ
- 허깅페이스 실습: phi-2
이 친구는..
importlib.metadata.PackageNotFoundError: No package metadata was found for auto-gptq
라는 오류가 떴습니다.. 좀 더 찾아보고 수정해보겠습니다~~!!
코드는 다음과 같습니다!
직접짠 부분은 파일 경로(/Users/leeyj/Downloads/phi) 뿐이고.. 나머지는 다 readme에 있는 샘플코드랍니다..ㅋㅋ
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
torch.set_default_device("cuda")
model = AutoModelForCausalLM.from_pretrained("/Users/leeyj/Downloads/phi", torch_dtype="auto", trust_remote_code=True)
tokenizer = AutoTokenizer.from_pretrained("/Users/leeyj/Downloads/phi", 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)
model과 tokenizer를 선언하는 부분의 원래 코드는 이랬습니다!
model = AutoModelForCausalLM.from_pretrained("microsoft/phi-2", torch_dtype="auto", trust_remote_code=True)
tokenizer = AutoTokenizer.from_pretrained("microsoft/phi-2", trust_remote_code=True)
- 추가 시도할 것
Llama-2 모델 사용해보는 것
phi 실행 과정 중에 오류났던 부분을 해결하여 실행시켜보는 것
transformers 패키지에 관한 설명(공식 링크) 읽고 숙지하는 것
- 느낀 점
떡도 먹어본 사람이 먹는다고.. 둘러보기만 하다가 막상 사용하려고 하니 막막하더군요.. 아직 모델 readme 읽어보고 어떻게 사용해봐야겠다 생각하는 과정이 순탄하지 않아서, 꾸준한 공부가 필요하다고 느꼈습니다.
글을 쓸 것을 대비하여.. 메모해 두는 습관이 필요하다고 느꼈습니다.. 방문기록에서 하나하나 찾아보느라 혼났네요…ㅋㅋ
#9기HuggingFace