HuggingFace를 처음 보는 사람의 허깅페이스 산책

- 비슷한 기존 사례

[9기, 허깅페이스] 🤗 HuggingFace가 뭔가요? 뭘 할 수 있나요?

HuggingFace 모델 Inference API와 Local 호출 비교


- 목차

  1. 허깅페이스 둘러보기

  2. 허깅페이스 실습: layoutlm-document-qa

  3. 허깅페이스 실습: Llama-2-7b-chat-hf

  4. 허깅페이스 실습: phi-2

  5. 추가 시도할 것

  6. 느낀 점


- 허깅페이스 둘러보기

이것저것 눌러보며.. 말 그대로 둘러보았습니다.

둘러보던 중 meta나 microsoft같은 기업에서도 huggingFace에 model을 올려놓기도 한다는 사실을 알게 되어, 그냥 눈에 들어왔던 모델 하나와 meta의 모델 하나, microsoft의 모델 하나를 실습해 보았습니다.

물론.. 둘러보며 Spaces에서 다양한 모델들을 체험해 보기도 했는데, 기록을 따로 안 해두어서… 방문 기록에서 찾기가 어렵고, 그때 체험했던 것을 똑같이 재현하여 캡처하기도 어려워서.. 그 부분은 유감스럽게도 글에 포함하지 못하였답니다..

다음부터는 기록을 해두어야겠습니다~~!!!


- 허깅페이스 실습: layoutlm-document-qa

[소개]

(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

(Llama-2-7b-chat-hf)



이 친구도 로컬에서 돌리고 싶어서 바로 들어가 보았더니.. 뭔가 검증된 사용자만 접근할 수 있나봅니다.. 그래서 일단 Submit하고, 추가적인 실습은 못 했습니다..ㅠ


- 허깅페이스 실습: phi-2

(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)


- 추가 시도할 것

  1. Llama-2 모델 사용해보는 것

  2. phi 실행 과정 중에 오류났던 부분을 해결하여 실행시켜보는 것

  3. transformers 패키지에 관한 설명(공식 링크) 읽고 숙지하는 것


- 느낀 점

  1. 떡도 먹어본 사람이 먹는다고.. 둘러보기만 하다가 막상 사용하려고 하니 막막하더군요.. 아직 모델 readme 읽어보고 어떻게 사용해봐야겠다 생각하는 과정이 순탄하지 않아서, 꾸준한 공부가 필요하다고 느꼈습니다.

  2. 글을 쓸 것을 대비하여.. 메모해 두는 습관이 필요하다고 느꼈습니다.. 방문기록에서 하나하나 찾아보느라 혼났네요…ㅋㅋ

#9기HuggingFace

4
2개의 답글

👉 이 게시글도 읽어보세요