안녕하세요. llms-eval 사용해보신 경험자분이 계시다면 도와주시면 감사드리겠습니다.
최근에 제 커스텀 데이터셋으로 LLaVA-OneVision을 파인튜닝 성공하고, 이제 평가를 돌리려 하는데, 사용법을 잘 몰라서 질문글 남깁니다.
# LMMs Eval Documentation
Welcome to the docs for `lmms-eval`!
Majority of this documentation is adapted from [lm-eval-harness](https://github.com/EleutherAI/lm-evaluation-harness/)
## Table of Contents
* To learn about the command line flags, see the [commands](commands.md)
* To learn how to add a new moddel, see the [Model Guide](model_guide.md).
* For a crash course on adding new tasks to the library, see our [Task Guide](task_guide.md).
* If you need to upload your datasets into correct HF format with viewer supported, please refer to [tools](https://github.com/EvolvingLMMs-Lab/lmms-eval/tree/pufanyi/hf_dataset_docs/tools)
이 항목에 접속하면 Model guide 버튼이 있는데, 혹시 커스텀 데이터로 파인튜닝된 모델(LLaVA-OneVision) 평가하기 위해 사용하는 것 맞나요? 아니면 이 코드 처럼 LLaVA-OneVision을 위해 준비된 코드만 돌리면 되는건가요?
솔직히 저 Model guide의 목적이 커스텀 데이테로 파인튜닝된 모델을 평가하자는건지, 아니면 llms-eval 모델 리스트에서 제공하지 않은 모델을 사용하는 것이 목적인지 잘 모르겠어서 질문드리는 겁니다.
감사합니다,
bot
(bot@PyTorchKorea)
9월 11, 2024, 10:40오전
2
아래 답변은 Perplexity로 자동 생성한 것으로, 정확하지 않을 수 있습니다.
잘못된 답변을 보셨다면 댓글로 첨삭 지도 부탁드립니다.
안녕하세요, 하지원님. LLaVA-OneVision을 커스텀 데이터로 파인튜닝한 모델을 평가하기 위해 lmms-eval
을 사용하는 방법에 대해 설명해드리겠습니다.
1. 이해와 요약
문제 : LLaVA-OneVision을 커스텀 데이터로 파인튜닝한 모델을 평가하려는 데, lmms-eval
의 사용법이 불분명합니다.
목적 : lmms-eval
을 사용하여 파인튜닝된 모델의 성능을 평가하는 방법을 찾습니다.
2. 해결 방법
lmms-eval
은 lm-eval-harness
를 기반으로 하는 평가 프레임워크로, 다양한 모델과 데이터셋을 평가할 수 있도록 설계되었습니다. 아래는 평가를 위한 단계별 설명입니다.
2.1. 환경 설정
설치 : lmms-eval
을 설치합니다.
pip install lmms-eval
데이터 준비 : 평가를 위한 데이터셋을 준비합니다. 이는 일반적으로 질문-답변 형식의 데이터셋이 필요합니다.
2.2. 모델 추가
기존 모델 사용 : lmms-eval
은 이미 많은 모델을 지원합니다. 그러나 LLaVA-OneVision과 같은 커스텀 모델을 추가하려면 모델 가이드를 따라야 합니다.
모델 가이드 : Model Guide 를 참조하여 새로운 모델을 추가합니다. 이 가이드는 새로운 모델을 추가하는 방법을 설명합니다.
2.3. 평가 실행
데이터셋 형식 : 데이터셋을 Hugging Face의 데이터셋 형식으로 변환합니다. tools 섹션을 참조하여 데이터셋을 올바른 형식으로 변환합니다.
평가 명령어 : lmms-eval
을 사용하여 모델을 평가하는 명령어는 다음과 같습니다.lmms-eval --model llava_onevision --task <task_name> --dataset <dataset_name>
<task_name>
: 평가할 태스크 이름 (예: 질문-답변, 요약 등)
<dataset_name>
: 사용할 데이터셋 이름
2.4. 예시 코드
모델 추가 예시 : LLaVA-OneVision을 추가하려면, 모델 가이드에 따라 모델을 정의해야 합니다. 예를 들어, llava_onevision.py
파일을 참조하여 모델을 정의할 수 있습니다.from lmms_eval.models import Model
class LLaVAOneVision(Model):
def __init__(self, model_name, device):
super().__init__(model_name, device)
# 모델 초기화 코드
def generate(self, input_text):
# 모델이 입력 텍스트에 대한 출력을 생성하는 코드
pass
평가 실행 예시 : 모델을 추가한 후, 다음 명령어를 사용하여 평가를 실행합니다.
lmms-eval --model llava_onevision --task question_answering --dataset my_custom_dataset
3. 추가 참고 자료
lm-eval-harness : lmms-eval
은 lm-eval-harness
를 기반으로 하므로, lm-eval-harness 의 문서도 참고하면 도움이 될 수 있습니다.
평가 지표 : 평가를 위한 다양한 지표(예: BLEU, ROUGE, Perplexity 등)를 사용할 수 있습니다. 자세한 내용은 LLM 성능 평가 방법 을 참조하세요.
4. 요약
모델 추가 : 모델 가이드를 따라 새로운 모델을 추가합니다.
데이터셋 준비 : 데이터셋을 Hugging Face의 데이터셋 형식으로 변환합니다.
평가 실행 : lmms-eval
명령어를 사용하여 모델을 평가합니다.
이 설명을 따라하면, LLaVA-OneVision을 커스텀 데이터로 파인튜닝한 모델을 평가할 수 있을 것입니다. 만약 추가적인 도움이 필요하다면, lmms-eval
의 GitHub 페이지나 관련 문서를 참고하세요. 감사합니다
이 답변이 도움이 되셨나요? 괜찮았다고 생각하신다면 아래 아이콘을 눌러주세요!
bot
(bot@PyTorchKorea)
9월 11, 2024, 10:52오전
3
아래 답변은 Anthropic의 Claude-3 Opus 모델로 자동 생성한 것으로, 정확하지 않을 수 있습니다.
잘못된 답변을 보셨다면 댓글로 첨삭 지도 부탁드립니다.
안녕하세요, 파인튜닝된 LLaVA-OneVision 모델을 평가하려는 과정에서 lmms-eval 사용법에 대해 궁금하시군요. shared URL과 설명을 잘 읽어보았습니다.
요약하자면, 커스텀 데이터셋으로 LLaVA-OneVision 모델을 파인튜닝한 후에 이를 lmms-eval로 평가하고 싶으신데, Model guide 문서의 목적이 명확하지 않아 질문 주신 것 같습니다.
lmms-eval에서 새로운 모델을 추가하는 방법은 Model guide에 설명되어 있습니다. 하지만 이는 lmms-eval에서 기본적으로 지원하지 않는 새로운 모델 아키텍처를 추가하는 경우를 위한 가이드입니다.
파인튜닝된 모델을 평가하는 경우라면, 이미 lmms-eval에서 지원하는 LLaVA-OneVision용 코드를 활용하시면 됩니다. Model guide를 참고할 필요는 없을 것 같네요.
파인튜닝된 모델 평가 방법은 다음과 같습니다:
우선 파인튜닝된 모델 체크포인트를 불러오세요. 보통은 --model_name_or_path 인자로 체크포인트 경로를 지정합니다.
평가에 사용할 task를 지정하세요. 내장된 task 이외에도 커스텀 task를 만들 수 있습니다. Task에 대한 자세한 내용은 아래 URL을 참고해 보시기 바랍니다.
lmms-eval/docs/task_guide.md at main · EvolvingLMMs-Lab/lmms-eval · GitHub
model_type을 "llava_onevision"으로 지정하시면 lmms_eval/models/llava_onevision.py 코드가 사용될 겁니다.
필요한 경우 generation parameter를 조정하세요. temperature, top_k, top_p 등이 있습니다.
evaluation을 실행하면 파인튜닝된 모델의 성능을 확인할 수 있습니다.
예를 들어 다음과 같이 실행할 수 있습니다:
python main.py \
--model llava_onevision \
--model_name_or_path path/to/finetuned/checkpoint \
--tasks openbookqa_main,piqa \
--batch_size 32
위 예시는 파인튜닝된 체크포인트로 openbookqa_main과 piqa 두 가지 task에 대해 평가를 수행합니다.
lmms-eval 사용이 익숙하지 않을 수 있어 혼란스러우실 수 있겠네요. 궁금한 점 있으시면 언제든 다시 질문 남겨 주시기 바랍니다. 제 답변이 도움이 되길 바라며, 추가 정보가 필요하시면 말씀해 주세요. 감사합니다!
답변이 어떠셨나요? 괜찮았다고 생각하신다면 아래 를 한 번 눌러주시길 부탁드려요!
bot
(bot@PyTorchKorea)
9월 11, 2024, 11:08오전
4
아래 답변은 Google의 Gemini Pro 모델로 자동 생성한 것으로, 정확하지 않을 수 있습니다.
잘못된 답변을 보셨다면 댓글로 첨삭 지도 부탁드립니다.
안녕하세요. gregorioha님께서 질문하신 내용을 잘 읽어봤습니다. 이번 llms-eval을 통해 파인튜닝된 커스텀 모델을 평가하고자 하시는 것으로 알고 있습니다.
llms-eval 모델 가이드를 사용하는 것
llms-eval 모델 가이드는 커스텀 파인튜닝 모델을 평가하는 방법에 대한 내용이 담겨 있지 않습니다. 이 가이드는 대신 llms-eval에 아직 포함되지 않은 모델을 추가하는 방법을 설명합니다.
llava_onevision.py 코드 사용하기
제공하신 코드는 llms-eval에 이미 포함된 LLaVA-OneVision 모델을 평가하는 데 사용하는 코드입니다. 귀하의 경우 커스텀 데이터로 파인튜닝한 LLaVA-OneVision 모델이므로 이 코드를 직접 사용할 수 없습니다.
파인튜닝된 커스텀 모델 평가하기
파인튜닝된 커스텀 모델을 평가하려면 다음 단계를 따르시기 바랍니다.
커스텀 평가 스크립트 작성하기: 커스텀 데이터셋과 평가 메트릭을 사용하여 평가 스크립트를 작성해야 합니다.
llms-eval에 통합하기: 커스텀 평가 스크립트를 llms-eval에 통합하여 사용할 수 있도록 해야 합니다. 이를 위해서는 model_guide.md
에 설명된 방법을 따르세요.
평가 실행하기: llms-eval을 사용하여 커스텀 모델에 대해 평가를 실행합니다.
llms-eval을 사용한 자세한 방법에 대해서는 다음 문서를 참조하세요.
위 답변이 도움이 되셨길 바랍니다. 제 답변이 부정확하거나 부족한 점이 있다면 알려주시기 바랍니다.
답변이 어떠셨나요? 괜찮았다고 생각하신다면 아래 를 한 번 눌러주시길 부탁드려요!
bot
(bot@PyTorchKorea)
9월 11, 2024, 11:33오전
5
아래 답변은 OpenAI의 GPT-4o 모델로 자동 생성한 것으로, 정확하지 않을 수 있습니다.
잘못된 답변을 보셨다면 댓글로 첨삭 지도 부탁드립니다.
안녕하세요! 질문해주셔서 감사합니다. 커스텀 데이터셋으로 LLaVA-OneVision 모델을 파인튜닝하셨다니 정말 대단하시네요. 이제 평가를 진행하려고 하시는데, lmms-eval 사용법에 대해 궁금해하시는 것 같습니다. 제가 도와드리겠습니다.
우선, lmms-eval의 Model Guide는 주로 새로운 모델을 추가하는 방법에 대해 설명하고 있습니다. 따라서, 이미 파인튜닝된 모델을 평가하려는 경우에는 Model Guide를 참고할 필요는 없습니다. 대신, lmms-eval에서 제공하는 평가 코드를 사용하는 것이 더 적합합니다.
LLaVA-OneVision 모델을 평가하기 위해서는 lmms-eval에서 제공하는 llava_onevision.py
파일을 사용하면 됩니다. 이 파일은 LLaVA-OneVision 모델을 평가하기 위한 코드가 포함되어 있습니다. 따라서, 별도로 Model Guide를 참고하지 않고도 평가를 진행할 수 있습니다.
다음은 LLaVA-OneVision 모델을 평가하는 예제 코드입니다:
import torch
from lmms_eval.models.llava_onevision import LLaVAOneVisionModel
from lmms_eval.evaluation import evaluate_model
# 모델 로드
model = LLaVAOneVisionModel.from_pretrained('path_to_your_finetuned_model')
# 평가 데이터셋 로드
eval_dataset = 'path_to_your_evaluation_dataset'
# 평가 실행
results = evaluate_model(model, eval_dataset)
# 결과 출력
print(results)
위 코드에서 path_to_your_finetuned_model
과 path_to_your_evaluation_dataset
를 실제 경로로 변경해주시면 됩니다. evaluate_model
함수는 모델과 평가 데이터셋을 입력으로 받아 평가를 수행하고 결과를 반환합니다.
추가로, lmms-eval의 공식 문서를 참고하시면 더 많은 정보를 얻을 수 있습니다. 아래 링크를 통해 문서를 확인해보세요:
혹시 더 궁금한 점이 있으시면 언제든지 질문해 주세요. 제 답변이 틀릴 수도 있으니, 꼭 공식 문서를 참고하시기 바랍니다. 감사합니다!
이 답변이 도움이 되셨나요? 괜찮았다고 생각하신다면 아래 를 한 번 눌러주시길 부탁드려요!