인프런 커뮤니티 질문&답변

윤종웅님의 프로필 이미지
윤종웅

작성한 질문수

모두를 위한 대규모 언어 모델 LLM(Large Language Model) Part 2 - 랭체인(LangChain)으로 나만의 ChatGPT 만들기

라마 3(Llama 3)로 AI 텍스트 번역하기 실행 오류.

작성

·

222

0

안녕하세요. 강의를 듣던 중 유트뷰에서 라마 3(Llama 3)로 AI 텍스트 번역하기 - 무료로 ChatGPT보다 뛰어난 성능의 AI 번역챗봇 만들기를 듣고 따라해 보던 중 소스코드가 실행이 안되어서 문의드립니다.

에러가 나는 부분은 아래입니다.

 

llama3_translatation_text = generate_response(system_message="너는 번역을 수행하는 챗봇이야. 다음 내용을 번역해줘.", 
                                              user_message=eng_text)
print(llama3_translatation_text)

오류 메시지는 처음에는 아래와 같았습니다.

The attention mask and the pad token id were not set. As a consequence, you may observe unexpected behavior. Please pass your input's attention_mask to obtain reliable results. Setting pad_token_id to eos_token_id:2 for open-end generation.'

 

그리고 최근에는 아래와 같습니다.

ValueError: Cannot use apply_chat_template() because tokenizer.chat_template is not set and no template argument was passed! For information about writing templates and setting the tokenizer.chat_template attribute, please see the documentation at https://huggingface.co/docs/transformers/main/en/chat_templating

여러 가지를 찾아 봐도 해결을 못해서 문의드립니다.

그럼 수고하세요.

 

답변 2

0

윤종웅님의 프로필 이미지
윤종웅
질문자

감사합니다. 잘 되고 있습니다. 좋은 강의 감사드립니다.

0

안녕하세요, 인프런 AI 인턴입니다. 윤종웅님.

Llama 모델을 사용하는 중 발생하는 문제에 대해 몇 가지 해결 방법을 추천해드립니다.

해당 문제는 모델의 마스크 설정 및 tokenizer와 관련된 문제로 보입니다. 유사한 경우에 대한 기존 답변들을 참고하여 몇 가지 해결책과 링크를 제공해 드리겠습니다.

1. attention_maskpad_token_id 설정 문제

먼저, 모델의 attention_maskpad_token_id를 명시적으로 설정해야 할 필요가 있습니다. 관련해서 아래 링크를 참고해보시기 바랍니다.

  • 소스코드 실행 시 에러
    • 주요 해결 방법: 이 에러는 패딩 토큰 설정 문제를 해결하는 방법에 대해 설명하고 있습니다.

따라서, 아래와 같이 코드를 수정해보세요:

generate_response(
  system_message="너는 번역을 수행하는 챗봇이야. 다음 내용을 번역해줘.",
  user_message=eng_text,
  pad_token_id=tokenizer.eos_token_id
)

2. apply_chat_template 문제

다음으로, tokenizer.chat_template 속성이 설정되지 않았다는 에러입니다. 이 문제는 챗봇 템플릿 관련 설정을 올바르게 지정하지 않았을 가능성이 높습니다.

아래와 같이 llama3_translator의 tokenizer 템플릿을 설정해야 할 수 있습니다:

tokenizer.chat_template = "You are a chatbot performing translations. Translate the following content:"

다같이 조합해보면, 다음과 같은 최종 코드가 될 수 있습니다:

# 템플릿 설정
tokenizer.chat_template = "너는 번역을 수행하는 챗봇이야. 다음 내용을 번역해줘."

llama3_translatation_text = generate_response(
  system_message=tokenizer.chat_template,
  user_message=eng_text,
  pad_token_id=tokenizer.eos_token_id
)
print(llama3_translatation_text)

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

윤종웅님의 프로필 이미지
윤종웅

작성한 질문수

질문하기