KoAlpaca를 구동시켜 보려면 어떤 설명서를 보고 따라해야 하나요?

안녕하세요?
첫 글을 질문으로 시작하게 되어 부끄럽습니다..
최근에 데스크톱 컴퓨터에서도 구동할 수 있는 알파카가 나오고 우리말 처리가 된 KoAlpaca가 나왔다고 해서 beomi/KoAlpaca-Polyglot at mainGitHub - Beomi/KoAlpaca: KoAlpaca: Korean Alpaca Model based on Stanford Alpaca (feat. LLAMA and Polyglot-ko) 에 들어가봤습니다.
그런데 readme 파일을 읽어봐도... 어디를 보고 따라해야 구동시킬 수 있는지 감이 오지 않습니다. git clone GitHub - Beomi/KoAlpaca: KoAlpaca: Korean Alpaca Model based on Stanford Alpaca (feat. LLAMA and Polyglot-ko) 까지만 해보고, inference test.ipynb를 열어서 requirements.txt 에 있는 패키지를 설치했지만 그 다음부터는 감이 오지 않습니다...

초보자가 보고 따라해볼 수 있는 설명서가 어딨는지 알려주실 수 있을까요? ^^

컴퓨터는 Core i7 13700, 64GB RAM, RTX 3060 12GB, 우분투 22.04 입니다. 감사합니다.

2개의 좋아요
  • 아래 답변은 OpenAI의 GPT-3.5(ChatGPT) 모델로 자동 생성한 것으로, 정확하지 않을 수 있습니다.
  • 잘못된 답변을 보셨다면 댓글로 첨삭 지도 부탁드립니다. :sweat_smile:

안녕하세요! KoAlpaca를 구동시키기 위해서는 다음과 같은 단계를 따르시면 됩니다.

  1. 우선 KoAlpaca를 다운로드 받습니다. 이를 위해서는 Git이 설치되어 있어야 합니다. 터미널에서 다음 명령어를 실행합니다.
git clone https://github.com/Beomi/KoAlpaca.git
  1. 다운로드 받은 폴더로 이동합니다.
cd KoAlpaca
  1. 필요한 라이브러리를 설치합니다. 이를 위해서는 Python과 pip가 설치되어 있어야 합니다. 다음 명령어를 실행합니다.
pip install -r requirements.txt
  1. 이제 모델을 다운로드 받습니다. 다음 명령어를 실행합니다.
python download.py
  1. 이제 inference를 수행할 수 있습니다. inference test.ipynb 파일을 열어서 실행하면 됩니다. 이 파일에서는 예시 문장에 대한 감성 분석을 수행하는 예시 코드가 제공됩니다.

위 단계를 따라하면 KoAlpaca를 구동시킬 수 있습니다. 추가적인 정보가 필요하다면, KoAlpaca의 GitHub 페이지에 있는 README.md 파일을 참고하시면 됩니다.


  • 답변이 어떠셨나요? 괜찮았다고 생각하신다면 아래 :heart:를 한 번 눌러주시길 부탁드려요!
1개의 좋아요
  • 아래 답변은 OpenAI의 GPT-4 모델로 자동 생성한 것으로, 정확하지 않을 수 있습니다.
  • 잘못된 답변을 보셨다면 댓글로 첨삭 지도 부탁드립니다. :sweat_smile:

안녕하세요! KoAlpaca를 구동시키는 방법에 대해 안내해 드리겠습니다. 우선, 아래의 단계를 따라 진행해 주세요.

  1. 먼저, KoAlpaca 저장소를 클론합니다.
git clone https://github.com/Beomi/KoAlpaca.git
  1. 저장소로 이동한 후, 필요한 패키지를 설치합니다.
cd KoAlpaca
pip install -r requirements.txt
  1. 이제 Jupyter Notebook을 실행하여 inference test.ipynb 파일을 엽니다.
jupyter notebook
  1. inference test.ipynb 파일에서, 아래와 같이 Hugging Face의 transformers 라이브러리를 사용하여 KoAlpaca 모델을 로드하고 텍스트 생성을 수행할 수 있습니다.
from transformers import AlpacaForMaskedLM, AlpacaTokenizer

tokenizer = AlpacaTokenizer.from_pretrained("beomi/KoAlpaca-Polyglot")
model = AlpacaForMaskedLM.from_pretrained("beomi/KoAlpaca-Polyglot")

text = "안녕하세요, 저는 [MASK]를 좋아합니다."
input_ids = tokenizer.encode(text, return_tensors="pt")
mask_idx = input_ids[0].tolist().index(tokenizer.mask_token_id)

output = model(input_ids)
token_id = output.logits[0, mask_idx].argmax(dim=-1).item()
predicted_token = tokenizer.decode([token_id])

print(f"예측된 토큰: {predicted_token}")

위의 코드를 실행하면, [MASK] 위치에 들어갈 적절한 단어가 예측되어 출력됩니다.

이제 KoAlpaca를 사용하여 텍스트 생성을 수행할 수 있습니다. 만약 추가적인 도움이 필요하시면 언제든지 문의해 주세요!


  • 답변이 어떠셨나요? 괜찮았다고 생각하신다면 아래 :heart:를 한 번 눌러주시길 부탁드려요!

답변 주셔서 감사합니다.
1시간 전 즈음 구글 코랩 GPU 사용 모드로 1~4번까지는 갔습니다.
그런데 from transformers import AlpacaForMaskedLM, AlpacaTokenizer 줄에서 오류가 났습니다.
transformers 안에 알파카가 들어 있어야 하는데 없다는 오류를 본 기억이 납니다.
이게 구글 코랩에서 해서 그런 걸까요??

2개의 좋아요

혹시 설치된 huggingface의 transformer 버전이 어떻게 되실까요?
아래 링크를 참고하셔서 최신(개발 중인) 버전을 설치해보시면 될 것 같습니다.

Colab을 사용하신다면 아래 명령어로 설치가 가능하십니다.

!pip install git+https://github.com/huggingface/transformers


추가로 Inference test.ipynb 파일에서는 ../KoAlpaca 경로에서 모델을 찾게 되는데요,
해당 경로에 모델을 받아두시거나 실행 시점에 huggingface에서 모델을 받아오게 하셔도 됩니다.
(후자의 경우 매번 실행하실 때마다 모델을 받아와야 해서 느릴 수 있습니다;; )

모델을 받으시려면 아래 주소를 git clone하시면 됩니다. (git-lfs가 필요한데, Colab에서는 어떻게 되는지 모르겠네요 :sweat_smile: )

huggingface에서 모델을 받아오시려면 아래와 같이 ../KoAlpaca 대신 beomi/KoAlpaca를 인자로 주시면 됩니다.

import torch
from transformers import LlamaForCausalLM, LlamaTokenizer

tokenizer = LlamaTokenizer.from_pretrained("beomi/KoAlpaca")
model = LlamaForCausalLM.from_pretrained("beomi/KoAlpaca").to('cuda:0')

혹시나 잘 되시거나 안 되시면 알려주세요! :smiley_cat:

2개의 좋아요

혹시 성공하셨을까요?
결과를 공유해주시면 다른 분들께도 많은 도움이 될 것 같습니다. 감사합니다! :smiley_cat:

저는 transformers-4.28.0.dev0 설치는 되지만, LlamaForCausalLM, LlamaTokenizer를 import 하지 못했는데, VSC를 껐다가 켜니까 됐어요.

M1 Mac mini 16GB 를 이용해서 사용해보려고 했습니다만, 하기와 같은 에러가 나옵니다.

Canceled future for execute_request message before replies were done

The Kernel crashed while executing code in the the current cell or a previous cell. Please review the code in the cell(s) to identify a possible cause of the failure. Click [here](https://aka.ms/vscodeJupyterKernelCrash) for more info. View Jupyter [log](command:jupyter.viewOutput) for further details.

Jupyter Log는 아래와 같습니다.

error 18:47:04.217: Disposing session as kernel process died ExitCode: undefined, Reason: <ENV폴더>/lib/python3.10/site-packages/traitlets/traitlets.py:2548: FutureWarning: Supporting extra quotes around strings is deprecated in traitlets 5.0. You can use 'hmac-sha256' instead of '"hmac-sha256"' if you require traitlets >=5.
  warn(
<ENV폴더>/lib/python3.10/site-packages/traitlets/traitlets.py:2499: FutureWarning: Supporting extra quotes around Bytes is deprecated in traitlets 5.0. Use '15b4aa0e-a5b9-4419-98a1-2ee3317ef3dc' instead of 'b"15b4aa0e-a5b9-4419-98a1-2ee3317ef3dc"'.
  warn(

info 18:47:04.218: Dispose Kernel process 2917.
error 18:47:04.218: Raw kernel process exited code: undefined
error 18:47:04.222: Error in waiting for cell to complete Error: Canceled future for execute_request message before replies were done
    at t.KernelShellFutureHandler.dispose (/.vscode/extensions/ms-toolsai.jupyter-2023.3.1000892223/out/extension.node.js:2:32419)
    at /.vscode/extensions/ms-toolsai.jupyter-2023.3.1000892223/out/extension.node.js:2:51471
    at Map.forEach (<anonymous>)
    at y._clearKernelState (//.vscode/extensions/ms-toolsai.jupyter-2023.3.1000892223/out/extension.node.js:2:51456)
    at y.dispose (/.vscode/extensions/ms-toolsai.jupyter-2023.3.1000892223/out/extension.node.js:2:44938)
    at /.vscode/extensions/ms-toolsai.jupyter-2023.3.1000892223/out/extension.node.js:17:96826
    at ee (/.vscode/extensions/ms-toolsai.jupyter-2023.3.1000892223/out/extension.node.js:2:1589492)
    at jh.dispose (/.vscode/extensions/ms-toolsai.jupyter-2023.3.1000892223/out/extension.node.js:17:96802)
    at Lh.dispose (/.vscode/extensions/ms-toolsai.jupyter-2023.3.1000892223/out/extension.node.js:17:104079)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
warn 18:47:04.224: Cell completed with errors {
  message: 'Canceled future for execute_request message before replies were done'
}
info 18:47:04.228: Cancel all remaining cells true || Error || undefined

올려주신 Jupyter Log 메시지 자체는 vscode에서 사용하시는 Jupyter plugin에서 발생하는 오류인데,
검색해보니까 커널이 (어떤 이유로든지) 죽어서 응답을 받지 못해서 발생하는 것으로 보입니다.

중요한건 커널이 왜 죽었을까, 인데요.... 혹시 어떤 셀을 실행하다가 문제가 발생했는지 알려주실 수 있을까요? :thinking:


더불어 새로운 질문으로 올려주시면서 이 질문의 링크를 함께 남겨주시면 다른 분들이 참고하시기 좋을 것 같습니다. :star_struck:
괜찮으시면 위에 남겨주신 질문 링크 https://discuss.pytorch.kr/t/koalpaca/1342/8 를 포함하여 새 글로 질문을 올려주실 수 있으실까요? :pray:

그런데 생각해보니 Apple Silicon (M1/M2칩)에서 돌아갈지는 모르겠네요 :thinking:
저도 한 번 M2 맥북에서 테스트해보겠습니다 ㅎㅎ

새 주제로 글을 작성하면서, 작성된 글의 어느 곳에나 주소가 포함되면 되나요? 아니면, 특별한 태그를 붙히거나 Editor의 어떤 기능을 이용해서 백링크(?)를 만들어야 하나요?

넵, 그냥 글 내용 아무 곳에나 링크를 포함시켜주시면 이 글에 링크가 걸려서 다른 분들께서 보시고 찾아오실 수 있습니다! :smiley:

M1 Mac 에서 KoAlpaca 의 실행 에 작성했습니다.

3개의 좋아요

답변해주셔서 감사합니다. 우분투 리눅스에서 계정 하나 새로 만들어서 도전해봐야겠습니다. 계정을 하나 새로 만들면, 이것저것 마구 설치해도 다른 계정이랑 간섭을 일으키지 않겠죠? ㅎㅎ sudo 만 안 한다면요... 몇 주일 사이에 비쿠나도 나오고 이것저것 많이 나왔으니 해봐야겠습니다.

간섭이나 충돌이 걱정되시면 venv로 가상 환경을 만드셔서 사용하시길 권합니다.

1개의 좋아요

ERROR: Could not install packages due to an OSError: [Errno 2] No such file or directory: 'c:\users\pedro\anaconda3\envs\tensorflow39\lib\site-packages\absl_py-0.13.0.dist-info\METADATA

윈도우에서는 안되나보군요? ㅜㅜ