250x250
준 푸르시안테
미들웨어/MiddleWare/中间件
준 푸르시안테
  • 분류 전체보기 (280)
    • Nvidia (16)
      • AI (9)
      • CS231n (7)
    • WAS & WEB (14)
    • Oracle (156)
      • Weblogic (67)
      • Web Tier (44)
      • Middleware (4)
      • TroubleShooting (26)
      • PPT 안내 자료 (15)
    • JAVA (14)
      • JAVA (14)
      • Spring (0)
    • Open Source (12)
      • APM (5)
      • etc (7)
    • DB (6)
    • Cloud (7)
      • OCI (4)
      • AWS (1)
      • Cloud 개념 (1)
    • Linux & Windows (20)
    • 네트워크 (3)
    • 개인 공부 (8)
    • 個人 活動 (23)
      • 馬來西亞 & 印度尼西亞 (6)
      • sertifikat kemampuan (4)
      • ekonomi (0)
      • pencatatan (3)
      • 虎談 (0)
      • kegiatan eksternal (10)
전체 방문자
오늘
어제
hELLO · Designed By 정상우.
준 푸르시안테

미들웨어/MiddleWare/中间件

Nvidia/AI

Nvidia Nemo를 이용하여 gemma-7b 모델 사용하기

2024. 4. 25. 16:05
728x90

https://docs.nvidia.com/nemo-framework/user-guide/latest/llms/gemma/dataprep.html#step-1-download-dataset

 

Data Preparation for SFT and PEFT - NVIDIA Docs

This section provides detailed steps to prepare a packed Sequence-to-Sequence Fine-Tuning (SFT) dataset for Gemma models, using the example of the “dolly” dataset. Although we focus on “dolly”, the methodology should be applicable to any dataset. T

docs.nvidia.com

위 링크보고 진행한거니 참고하자...

=================== =================== ===================

 

1. SFT와 PEFT를 위한 data preparation

 

# huggingface에서 아래 데이터셋 가져오기
git clone https://huggingface.co/datasets/databricks/databricks-dolly-15k

# json 파일이 아래 사이즈가 맞는지 확인
$ du -sh databricks-dolly-15k/databricks-dolly-15k.jsonl
13M     databricks-dolly-15k/databricks-dolly-15k.jsonl
 => 사이즈가 안맞는다면 다음과 같이 가져오기
wget https://huggingface.co/datasets/databricks/databricks-dolly-15k/resolve/main/databricks-dolly-15k.jsonl


# gemma 모델 관련 docker image 가져오기
docker run --gpus device=1 --shm-size=2g --net=host --ulimit memlock=-1 --rm -it -v ${PWD}:/workspace -w /workspace -v ${PWD}/results:/results nvcr.io/nvidia/nemo:24.01.gemma bash

# data processing
python3 /opt/NeMo-Megatron-Launcher/launcher_scripts/nemo_launcher/collections/dataprep_scripts/dolly_dataprep/preprocess.py --input databricks-dolly-15k/databricks-dolly-15k.jsonl
 => 통해서 output.jsonl 생성하자

# 데이터셋 나누기 (validation, train, test)
 => step 3에 있는 python 파일 가지고 생성하기


# gemma-7b 설치하기
https://huggingface.co/google/gemma-7b
 => 이때 username은 내가 설정한 huggingface 이름이고 비밀번호는 huggingface에서 access tokens 생성해서 토큰 값을 넣어줘야 한다.

# .nemo 파일 포맷 패키징
root@a2c841c42404:/opt/NeMo/jhhan/hugginface# cat make_nemo.py
import os
import zipfile

def create_nemo_file(output_dir, nemo_file_name):
    with zipfile.ZipFile(nemo_file_name, 'w', zipfile.ZIP_DEFLATED) as zfile:
        # 모델 구성 파일 추가
        zfile.write(os.path.join(output_dir, 'config.json'), arcname='config.json')
        # 토크나이저 파일 추가
        zfile.write(os.path.join(output_dir, 'tokenizer.json'), arcname='tokenizer.json')
        zfile.write(os.path.join(output_dir, 'tokenizer.model'), arcname='tokenizer.model')
        # 가중치 파일 추가
        for i in range(1, 5):
            weight_file = f'model-0000{i}-of-00004.safetensors'
            zfile.write(os.path.join(output_dir, weight_file), arcname=weight_file)
        # 다른 필수 파일들 추가
        # 예를 들어, README.md, generation_config.json 등도 포함할 수 있습니다.

create_nemo_file('/opt/NeMo/jhhan/hugginface/gemma-7b', 'gemma-7b.nemo')

위 python 파일로 위 gemma-7b를 .nemo 파일로 패키징 했다.


# Packaged된 데이터셋 준비하기
python /workspace/sequence_packing/tokenize_dataset.py \
  model.data.train_ds.file_names=[/path/to/training.jsonl] \
  model.data.train_ds.max_seq_length=4096 \
  model.restore_from_path=/path/to/gemma-7b.nemo \# any gemma .nemo models works here
  +output_path=/path/to/my_dataset.npy
위에서 경로들 잘 수정해서 위에서 생성한 gemma-7b.nemo랑 같이 잘 생성해보기


 

 

728x90
저작자표시 비영리 변경금지 (새창열림)

'Nvidia > AI' 카테고리의 다른 글

slurm Admin  (0) 2024.05.20
slurm 설치  (0) 2024.05.20
CNN  (0) 2023.09.05
영화 리뷰 인공지능 만들기  (0) 2023.09.05
Word2Vec  (0) 2023.09.05
    'Nvidia/AI' 카테고리의 다른 글
    • slurm Admin
    • slurm 설치
    • CNN
    • 영화 리뷰 인공지능 만들기
    준 푸르시안테
    준 푸르시안테

    티스토리툴바