영어 | 중국어
? 포옹하는 얼굴 • ? 모델 범위 • ? 현명한 모델
? GitHub에서 질문을 하거나 아이디어에 대해 토론하세요
우리와 함께 하시겠습니까? 디스코드나 위챗
Yi 기술 보고서를 확인하세요
Yi 학습 허브에서 성장하세요
? Yi Tech 블로그에서 알아보기
? Yi 시리즈 모델은 01.AI가 처음부터 훈련한 차세대 오픈 소스 대형 언어 모델입니다.
? 이중 언어 모델을 목표로 하고 3T 다국어 코퍼스에서 훈련된 Yi 시리즈 모델은 전 세계에서 가장 강력한 LLM 중 하나가 되어 언어 이해, 상식 추론, 독해 등에 대한 가능성을 보여줍니다. 예를 들어,
Yi-34B-Chat 모델은 AlpacaEval 순위표(2024년 1월까지 사용 가능한 데이터 기준)에서 다른 LLM(예: GPT-4, Mixtral, Claude)을 능가하여 2위(GPT-4 Turbo에 이어)에 올랐습니다 .
Yi-34B 모델은 Hugging Face Open LLM Leaderboard(사전 훈련됨) 및 C-Eval을 포함한 다양한 벤치마크에서 영어와 중국어 모두 기존의 모든 오픈 소스 모델(예: Falcon-180B, Llama-70B, Claude) 중 1 위를 차지했습니다. (2023년 11월까지 이용 가능한 데이터 기준)
(Llama 제공) Transformer 및 Llama 오픈 소스 커뮤니티 덕분에 처음부터 구축하는 데 필요한 노력을 줄이고 AI 생태계 내에서 동일한 도구를 활용할 수 있습니다.
TL;DR
Yi 시리즈 모델은 Llama와 동일한 모델 아키텍처를 채택하지만 Llama의 파생물은 아닙니다 .
Yi와 Llama는 모두 2018년부터 대규모 언어 모델의 표준 아키텍처였던 Transformer 구조를 기반으로 합니다.
Transformer 아키텍처를 기반으로 하는 Llama는 뛰어난 안정성, 신뢰할 수 있는 수렴 및 강력한 호환성으로 인해 대부분의 최첨단 오픈 소스 모델의 새로운 초석이 되었습니다. 이로 인해 Llama는 Yi를 포함한 모델의 기본 프레임워크로 인식되었습니다.
Transformer 및 Llama 아키텍처 덕분에 다른 모델도 해당 기능을 활용하여 처음부터 구축하는 데 필요한 노력을 줄이고 생태계 내에서 동일한 도구를 활용할 수 있습니다.
그러나 Yi 시리즈 모델은 Llama의 가중치를 사용하지 않으므로 Llama의 파생물이 아닙니다.
Llama의 구조는 대부분의 오픈 소스 모델에서 사용되므로 모델 성능을 결정하는 주요 요소는 교육 데이터 세트, 교육 파이프라인 및 교육 인프라입니다.
독특하고 독점적인 방식으로 개발한 Yi는 처음부터 자체적으로 고품질 훈련 데이터 세트, 효율적인 훈련 파이프라인 및 강력한 훈련 인프라를 독립적으로 만들었습니다. 이러한 노력으로 인해 Yi 시리즈 모델은 GPT4 바로 뒤를 잇고 2023년 12월 Alpaca 리더보드에서 Llama를 능가하는 등 뛰어난 성능을 발휘했습니다.
[ 맨 위로 ⬆️ ]
Yi-9B-200K
는 오픈 소스로 대중에게 공개됩니다.Yi-9B
는 오픈 소스로 대중에게 공개됩니다.Yi-9B
유사한 크기의 다양한 오픈 소스 모델(Mistral-7B, SOLAR-10.7B, Gemma-7B, DeepSeek-Coder-7B-Base-v1.5 등 포함) 중에서 최고의 성능을 발휘합니다. 특히 코드, 수학, 상식적 추론, 독해력이 뛰어납니다.Yi-VL-34B
및 Yi-VL-6B
는 오픈 소스로 공개되어 일반에 공개됩니다.Yi-VL-34B
MMMU, CMMMU 등 최신 벤치마크에서 기존 오픈소스 모델 중 1위를 차지했습니다(2024년 1월까지 사용 가능한 데이터 기준).Yi-34B-Chat
Yi-34B-Chat-4bits
Yi-34B-Chat-8bits
Yi-6B-Chat
Yi-6B-Chat-4bits
Yi-6B-Chat-8bits
다음 사이트에서 그 중 일부를 대화형으로 시도해 볼 수 있습니다.
Yi-6B-200K
및 Yi-34B-200K
가 오픈 소스로 공개되어 일반에 공개됩니다.Yi-6B
및 Yi-34B
가 오픈 소스로 공개되어 일반에 공개됩니다.[ 맨 위로 ⬆️ ]
Yi 모델은 다양한 크기로 제공되며 다양한 사용 사례에 적합합니다. 특정 요구 사항에 맞게 Yi 모델을 미세 조정할 수도 있습니다.
Yi 모델을 배포하려면 소프트웨어 및 하드웨어 요구 사항을 충족하는지 확인하세요.
모델 | 다운로드 |
---|---|
Yi-34B-채팅 | • ? 포옹하는 얼굴 • ? 모델 범위 • ? 현명한 모델 |
Yi-34B-채팅-4비트 | • ? 포옹하는 얼굴 • ? 모델 범위 • ? 현명한 모델 |
Yi-34B-채팅-8비트 | • ? 포옹하는 얼굴 • ? 모델 범위 • ? 현명한 모델 |
Yi-6B-채팅 | • ? 포옹하는 얼굴 • ? 모델 범위 • ? 현명한 모델 |
Yi-6B-채팅-4비트 | • ? 포옹하는 얼굴 • ? 모델 범위 • ? 현명한 모델 |
Yi-6B-채팅-8비트 | • ? 포옹하는 얼굴 • ? 모델 범위 • ? 현명한 모델 |
- 4비트 시리즈 모델은 AWQ에 의해 양자화됩니다.
- 8비트 시리즈 모델은 GPTQ에 의해 양자화됩니다.
- 모든 양자화된 모델은 소비자급 GPU(예: 3090, 4090)에 배포할 수 있으므로 사용 장벽이 낮습니다.
모델 | 다운로드 |
---|---|
Yi-34B | • ? 포옹하는 얼굴 • ? 모델 범위 • ? 현명한 모델 |
Yi-34B-200K | • ? 포옹하는 얼굴 • ? 모델 범위 • ? 현명한 모델 |
Yi-9B | • ? 포옹하는 얼굴 • ? 모델 범위 • ? 현명한 모델 |
Yi-9B-200K | • ? 포옹하는 얼굴 • ? 모델 범위 • ? 현명한 모델 |
Yi-6B | • ? 포옹하는 얼굴 • ? 모델 범위 • ? 현명한 모델 |
Yi-6B-200K | • ? 포옹하는 얼굴 • ? 모델 범위 • ? 현명한 모델 |
- 200k는 대략 한자 40만 자에 해당합니다.
- 이전 버전의 Yi-34B-200K(2023년 11월 5일 출시)를 사용하고 싶다면 git checkout 069cd341d60f4ce4b07ec394e82b79e94f656cf
실행하여 무게를 다운로드하세요.
모델 | 소개 | 기본 컨텍스트 창 | 사전 훈련된 토큰 | 훈련 데이터 날짜 |
---|---|---|---|---|
6B 시리즈 모델 | 개인 및 학술 용도로 적합합니다. | 4K | 3T | 2023년 6월까지 |
9B 시리즈 모델 | Yi 시리즈 모델 중 코딩과 수학 능력이 가장 뛰어납니다. | Yi-9B는 0.8T 토큰을 사용하여 Yi-6B를 기반으로 지속적으로 훈련됩니다. | ||
34B 시리즈 모델 | 이는 개인, 학술, 상업(특히 중소기업의 경우) 목적에 적합합니다. 합리적인 가격과 긴급 능력을 갖춘 비용 효율적인 솔루션입니다. | 3T |
채팅 모델의 경우
그러나 이러한 높은 다양성은 다음과 같은 특정 기존 문제를 증폭시킬 수 있습니다.
[ 맨 위로 ⬆️ ]
팁 : Yi 모델을 시작하고 다양한 추론 방법을 탐색하려면 Yi Cookbook을 확인하세요.
Yi와 함께 여행을 시작하려면 다음 경로 중 하나를 선택하세요!
Yi 모델을 로컬로 배포하려는 경우
?♀️ 리소스가 충분 하고(예: NVIDIA A800 80GB) 다음 방법 중 하나를 선택할 수 있습니다.
?♀️ 리소스가 제한되어 있고(예: MacBook Pro) llama.cpp를 사용할 수 있습니다.
Yi 모델을 로컬로 배포하지 않으려는 경우 다음 옵션 중 하나를 사용하여 Yi의 기능을 탐색할 수 있습니다.
Yi의 더 많은 기능을 살펴보고 싶다면 다음 방법 중 하나를 채택할 수 있습니다.
Yi API(Yi 공식)
Yi API(복제)
더 많은 사용자 정의 옵션(예: 시스템 프롬프트, 온도, 반복 패널티 등)으로 Yi와 채팅하고 싶다면 다음 옵션 중 하나를 시도해 볼 수 있습니다.
Yi-34B-채팅-놀이터 (Yi 공식)
Yi-34B-채팅-놀이터 (복제)
Yi와 채팅하고 싶다면 유사한 사용자 경험을 제공하는 다음 온라인 서비스 중 하나를 사용할 수 있습니다.
Yi-34B-Chat (Hugging Face의 Yi 공식)
Yi-34B-Chat (Yi 공식 베타)
[ 맨 위로 ⬆️ ]
이 튜토리얼은 A800(80G)에서 로컬로 Yi-34B-Chat을 실행한 다음 추론을 수행하는 모든 단계를 안내합니다.
Python 3.10 이상 버전이 설치되어 있는지 확인하세요.
다른 Yi 모델을 실행하려면 소프트웨어 및 하드웨어 요구 사항을 참조하세요.
환경을 설정하고 필요한 패키지를 설치하려면 다음 명령을 실행하십시오.
git clone https://github.com/01-ai/Yi.git
cd yi
pip install -r requirements.txt
다음 소스에서 Yi 모델의 가중치와 토크나이저를 다운로드할 수 있습니다.
아래와 같이 Yi chat 또는 기본 모델을 사용하여 추론을 수행할 수 있습니다.
quick_start.py
라는 파일을 만들고 다음 내용을 복사합니다.
from transformers import AutoModelForCausalLM , AutoTokenizer
model_path = '<your-model-path>'
tokenizer = AutoTokenizer . from_pretrained ( model_path , use_fast = False )
# Since transformers 4.35.0, the GPT-Q/AWQ model can be loaded using AutoModelForCausalLM.
model = AutoModelForCausalLM . from_pretrained (
model_path ,
device_map = "auto" ,
torch_dtype = 'auto'
). eval ()
# Prompt content: "hi"
messages = [
{ "role" : "user" , "content" : "hi" }
]
input_ids = tokenizer . apply_chat_template ( conversation = messages , tokenize = True , add_generation_prompt = True , return_tensors = 'pt' )
output_ids = model . generate ( input_ids . to ( 'cuda' ))
response = tokenizer . decode ( output_ids [ 0 ][ input_ids . shape [ 1 ]:], skip_special_tokens = True )
# Model response: "Hello! How can I assist you today?"
print ( response )
quick_start.py
실행하세요.
python quick_start.py
그러면 아래와 비슷한 출력을 볼 수 있습니다. ?
Hello ! How can I assist you today ?
Yi-34B
단계는 pip - Yi 채팅 모델로 추론 수행과 유사합니다.
기존 파일 text_generation.py
를 사용할 수 있습니다.
python demo/text_generation.py --model < your-model-path >
그러면 아래와 비슷한 출력을 볼 수 있습니다. ?
프롬프트 : 고양이 톰과 쥐 제리의 흥미로운 이야기를 들려드리겠습니다.
세대 : 어린 시절 있었던 고양이 톰과 쥐 제리의 재미있는 이야기를 들려드리겠습니다. 아버지는 쥐를 죽이기 위해 고양이 두 마리가 살고 있는 큰 집을 갖고 계셨습니다. 어느 날 집에서 혼자 놀고 있을 때, 우리 부엌 문 근처에 등을 대고 누워 있는 수코양 한 마리를 발견했습니다. 그 수코양이는 우리에게 뭔가를 원하는 것처럼 보였지만 주변에 너무 많은 사람들이 있어서 일어나지 못했습니다! 그는 몇 분 동안 계속 시도하다가 결국 포기했습니다...
Yi-9B
입력
from transformers import AutoModelForCausalLM, AutoTokenizer
MODEL_DIR = " 01-ai/Yi-9B "
model = AutoModelForCausalLM.from_pretrained(MODEL_DIR, torch_dtype= " auto " )
tokenizer = AutoTokenizer.from_pretrained(MODEL_DIR, use_fast=False)
input_text = " # write the quick sort algorithm "
inputs = tokenizer(input_text, return_tensors= " pt " ).to(model.device)
outputs = model.generate( ** inputs, max_length=256)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
산출
# write the quick sort algorithm
def quick_sort(arr):
if len(arr) < = 1:
return arr
pivot = arr[len(arr) // 2]
left = [x for x in arr if x < pivot]
middle = [x for x in arr if x == pivot]
right = [x for x in arr if x > pivot]
return quick_sort(left) + middle + quick_sort(right)
# test the quick sort algorithm
print(quick_sort([3, 6, 8, 10, 1, 2, 1]))
[ 맨 위로 ⬆️ ]
Docker와 nvidia-container-toolkit을 설치했는지 확인하세요.
docker run -it --gpus all
-v <your-model-path>: /models
ghcr.io/01-ai/yi:latest
또는 registry.lingyiwanwu.com/ci/01-ai/yi:latest
에서 Yi Docker 이미지를 가져올 수 있습니다.
아래와 같이 Yi chat 또는 기본 모델을 사용하여 추론을 수행할 수 있습니다.
단계는 pip - Yi 채팅 모델로 추론 수행과 유사합니다.
유일한 차이점 은 model_path = '<your-model-mount-path>'
대신 model_path = '<your-model-path>'
를 설정하는 것입니다.
단계는 pip - Yi 기본 모델로 추론 수행과 유사합니다.
유일한 차이점 은 model <your-model-path>
대신 --model <your-model-mount-path>'
설정하는 것입니다.
conda-lock
사용하면 conda 환경에 대해 완전히 재현 가능한 잠금 파일을 생성할 수 있습니다.micromamba
활용할 수 있습니다.여기에서 제공되는 지침에 따라 micromamba를 설치하세요.
micromamba install -y -n yi -f conda-lock.yml
실행하여 yi
라는 conda 환경을 만들고 필요한 종속성을 설치합니다.
다음 튜토리얼에서는 양자화된 모델(Yi-chat-6B-2bits)을 로컬에서 실행한 후 추론을 수행하는 모든 단계를 안내합니다.
이 튜토리얼에서는 16GB 메모리와 Apple M2 Pro 칩을 갖춘 MacBook Pro를 사용한다고 가정합니다.
컴퓨터에 git-lfs
설치되어 있는지 확인하세요.
llama.cpp
다운로드 llama.cpp
저장소를 복제하려면 다음 명령을 실행하세요.
git clone [email protected]:ggerganov/llama.cpp.git
2.1 포인터만 사용하여 XeIaso/yi-chat-6B-GGUF를 복제하려면 다음 명령을 실행합니다.
GIT_LFS_SKIP_SMUDGE=1 git clone https://huggingface.co/XeIaso/yi-chat-6B-GGUF
2.2 양자화된 Yi 모델(yi-chat-6b.Q2_K.gguf)을 다운로드하려면 다음 명령을 실행합니다.
git-lfs pull --include yi-chat-6b.Q2_K.gguf
Yi 모델로 추론을 수행하려면 다음 방법 중 하나를 사용할 수 있습니다.
방법 1: 터미널에서 추론 수행
방법 2: 웹에서 추론 수행
4개의 스레드를 사용하여 llama.cpp
컴파일한 후 추론을 수행하려면 llama.cpp
디렉터리로 이동하여 다음 명령을 실행합니다.
팁
/Users/yu/yi-chat-6B-GGUF/yi-chat-6b.Q2_K.gguf
모델의 실제 경로로 바꾸세요.기본적으로 모델은 완료 모드에서 작동합니다.
추가 출력 사용자 정의 옵션(예: 시스템 프롬프트, 온도, 반복 패널티 등)의 경우
./main -h
실행하여 자세한 설명과 사용법을 확인하세요.
make -j4 && ./main -m /Users/yu/yi-chat-6B-GGUF/yi-chat-6b.Q2_K.gguf -p " How do you feed your pet fox? Please answer this question in 6 simple steps:nStep 1: " -n 384 -e
...
How do you feed your pet fox ? Please answer this question in 6 simple steps:
Step 1: Select the appropriate food for your pet fox. You should choose high-quality, balanced prey items that are suitable for their unique dietary needs. These could include live or frozen mice, rats, pigeons, or other small mammals, as well as fresh fruits and vegetables.
Step 2: Feed your pet fox once or twice a day, depending on the species and its individual preferences. Always ensure that they have access to fresh water throughout the day.
Step 3: Provide an appropriate environment for your pet fox. Ensure it has a comfortable place to rest, plenty of space to move around, and opportunities to play and exercise.
Step 4: Socialize your pet with other animals if possible. Interactions with other creatures can help them develop social skills and prevent boredom or stress.
Step 5: Regularly check for signs of illness or discomfort in your fox. Be prepared to provide veterinary care as needed, especially for common issues such as parasites, dental health problems, or infections.
Step 6: Educate yourself about the needs of your pet fox and be aware of any potential risks or concerns that could affect their well-being. Regularly consult with a veterinarian to ensure you are providing the best care.
...
이제 Yi 모델에게 성공적으로 질문하고 답변을 받았습니다! ?
가볍고 빠른 챗봇을 초기화하려면 다음 명령을 실행하세요.
cd llama.cpp
./server --ctx-size 2048 --host 0.0.0.0 --n-gpu-layers 64 --model /Users/yu/yi-chat-6B-GGUF/yi-chat-6b.Q2_K.gguf
그러면 다음과 같은 출력을 얻을 수 있습니다.
...
llama_new_context_with_model: n_ctx = 2048
llama_new_context_with_model: freq_base = 5000000.0
llama_new_context_with_model: freq_scale = 1
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M2 Pro
ggml_metal_init: picking default device: Apple M2 Pro
ggml_metal_init: ggml.metallib not found, loading from source
ggml_metal_init: GGML_METAL_PATH_RESOURCES = nil
ggml_metal_init: loading ' /Users/yu/llama.cpp/ggml-metal.metal '
ggml_metal_init: GPU name: Apple M2 Pro
ggml_metal_init: GPU family: MTLGPUFamilyApple8 (1008)
ggml_metal_init: hasUnifiedMemory = true
ggml_metal_init: recommendedMaxWorkingSetSize = 11453.25 MB
ggml_metal_init: maxTransferRate = built-in GPU
ggml_backend_metal_buffer_type_alloc_buffer: allocated buffer, size = 128.00 MiB, ( 2629.44 / 10922.67)
llama_new_context_with_model: KV self size = 128.00 MiB, K (f16): 64.00 MiB, V (f16): 64.00 MiB
ggml_backend_metal_buffer_type_alloc_buffer: allocated buffer, size = 0.02 MiB, ( 2629.45 / 10922.67)
llama_build_graph: non-view tensors processed: 676/676
llama_new_context_with_model: compute buffer total size = 159.19 MiB
ggml_backend_metal_buffer_type_alloc_buffer: allocated buffer, size = 156.02 MiB, ( 2785.45 / 10922.67)
Available slots:
- > Slot 0 - max context: 2048
llama server listening at http://0.0.0.0:8080
챗봇 인터페이스에 액세스하려면 웹 브라우저를 열고 주소 표시줄에 http://0.0.0.0:8080
입력하세요.
프롬프트 창에 "애완 여우에게 먹이를 주는 방법은 무엇입니까? 이 질문에 간단한 6단계로 대답해 주세요"와 같은 질문을 입력하면 해당 답변을 받게 됩니다.
[ 맨 위로 ⬆️ ]
Yi 채팅 모델용 웹 UI 데모를 구축할 수 있습니다(이 시나리오에서는 Yi 기본 모델이 지원되지 않습니다).
1단계: 환경을 준비합니다.
2단계: Yi 모델을 다운로드합니다.
3단계. 로컬에서 웹 서비스를 시작하려면 다음 명령을 실행합니다.
python demo/web_demo.py -c < your-model-path >
콘솔에 제공된 주소를 브라우저에 입력하면 웹 UI에 접속할 수 있습니다.
[ 맨 위로 ⬆️ ]
bash finetune/scripts/run_sft_Yi_6b.sh
완료되면 다음 명령을 사용하여 미세 조정된 모델과 기본 모델을 비교할 수 있습니다.
bash finetune/scripts/run_eval.sh
기본적으로 BAAI/COIG의 작은 데이터 세트를 사용하여 기본 모델을 미세 조정합니다. 다음 jsonl
형식으로 사용자 정의 데이터 세트를 준비할 수도 있습니다.
{ "prompt" : " Human: Who are you? Assistant: " , "chosen" : " I'm Yi. " }
그런 다음 컨테이너에 마운트하여 기본 항목을 교체합니다.
docker run -it
-v /path/to/save/finetuned/model/:/finetuned-model
-v /path/to/train.jsonl:/yi/finetune/data/train.json
-v /path/to/eval.jsonl:/yi/finetune/data/eval.json
ghcr.io/01-ai/yi:latest
bash finetune/scripts/run_sft_Yi_6b.sh
콘다가 있는지 확인하세요. 그렇지 않은 경우
mkdir -p ~ /miniconda3
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~ /miniconda3/miniconda.sh
bash ~ /miniconda3/miniconda.sh -b -u -p ~ /miniconda3
rm -rf ~ /miniconda3/miniconda.sh
~ /miniconda3/bin/conda init bash
source ~ /.bashrc
그런 다음 conda 환경을 만듭니다.
conda create -n dev_env python=3.10 -y
conda activate dev_env
pip install torch==2.0.1 deepspeed==0.10 tensorboard transformers datasets sentencepiece accelerate ray==2.7
Yi-6B 모델의 경우 각각 60GB 이상의 GPU 메모리를 갖춘 4개의 GPU가 있는 노드를 권장합니다.
Yi-34B 모델의 경우 제로 오프로드 기술을 사용하면 CPU 메모리가 많이 소모되므로 34B 미세 조정 훈련에서 GPU 수를 제한하는 데 주의하시기 바랍니다. GPU 수를 제한하려면 CUDA_VISIBLE_DEVICES를 사용하세요(scripts/run_sft_Yi_34b.sh에 표시됨).
34B 모델을 미세 조정하기 위한 일반적인 하드웨어 설정은 8개의 GPU(CUDA_VISIBLE_DEVICES=0,1,2,3에 의해 실행 시 4개로 제한됨)가 있는 노드이며, 각 GPU 메모리는 80GB보다 크고 총 CPU 메모리는 900GB보다 큽니다.
LLM 기반 모델을 MODEL_PATH(6B 및 34B)에 다운로드합니다. 일반적인 모델 폴더는 다음과 같습니다.
| -- $MODEL_PATH
| | -- config.json
| | -- pytorch_model-00001-of-00002.bin
| | -- pytorch_model-00002-of-00002.bin
| | -- pytorch_model.bin.index.json
| | -- tokenizer_config.json
| | -- tokenizer.model
| | -- ...
Huggingface에서 로컬 저장소 DATA_PATH(예: Dahoas/rm-static)로 데이터세트를 다운로드합니다.
| -- $DATA_PATH
| | -- data
| | | -- train-00000-of-00001-2a1df75c6bce91ab.parquet
| | | -- test-00000-of-00001-8c7c51afc6d45980.parquet
| | -- dataset_infos.json
| | -- README.md
finetune/yi_example_dataset
에는 BAAI/COIG에서 수정된 예제 데이터세트가 있습니다.
| -- $DATA_PATH
| --data
| -- train.jsonl
| -- eval.jsonl
cd
scripts 폴더에 넣고 스크립트를 복사하여 붙여넣은 후 실행하세요. 예를 들어:
cd finetune/scripts
bash run_sft_Yi_6b.sh
Yi-6B 기본 모델의 경우 training_debug_steps=20 및 num_train_epochs=4로 설정하면 약 20분 정도 소요되는 채팅 모델을 출력할 수 있습니다.
Yi-34B 기본 모델의 경우 초기화 시간이 비교적 오래 걸립니다. 인내심을 가지십시오.
cd finetune/scripts
bash run_eval.sh
그러면 기본 모델과 미세 조정된 모델 모두에서 답을 볼 수 있습니다.
[ 맨 위로 ⬆️ ]
python quantization/gptq/quant_autogptq.py
--model /base_model
--output_dir /quantized_model
--trust_remote_code
완료되면 다음과 같이 결과 모델을 평가할 수 있습니다.
python quantization/gptq/eval_quantized_model.py
--model /quantized_model
--trust_remote_code
GPT-Q는 PTQ(Post-Training Quantization) 방법입니다. 모델의 정확성을 유지하면서 메모리를 절약하고 잠재적인 속도 향상을 제공합니다.
Yi 모델은 많은 노력 없이도 GPT-Q를 양자화할 수 있습니다. 아래에서 단계별 튜토리얼을 제공합니다.
GPT-Q를 실행하려면 AutoGPTQ와 exllama를 사용하겠습니다. 그리고 Huggingface 변환기는 언어 모델에서 GPTQ 양자화를 수행하기 위해 최적 및 자동 gptq를 통합했습니다.
GPT-Q 양자화를 수행할 수 있도록 quant_autogptq.py
스크립트가 제공됩니다.
python quant_autogptq.py --model /base_model
--output_dir /quantized_model --bits 4 --group_size 128 --trust_remote_code
eval_quantized_model.py
를 사용하여 양자화 모델을 실행할 수 있습니다.
python eval_quantized_model.py --model /quantized_model --trust_remote_code
python quantization/awq/quant_autoawq.py
--model /base_model
--output_dir /quantized_model
--trust_remote_code
완료되면 다음과 같이 결과 모델을 평가할 수 있습니다.
python quantization/awq/eval_quantized_model.py
--model /quantized_model
--trust_remote_code
AWQ는 PTQ(Post-Training Quantization) 방법입니다. LLM을 위한 효율적이고 정확한 낮은 비트 가중치 양자화(INT3/4)입니다.
Yi 모델은 많은 노력 없이 AWQ 양자화될 수 있습니다. 아래에서 단계별 튜토리얼을 제공합니다.
AWQ를 실행하려면 AutoAWQ를 사용하겠습니다.
AWQ 양자화를 수행할 수 있도록 quant_autoawq.py
스크립트가 제공됩니다.
python quant_autoawq.py --model /base_model
--output_dir /quantized_model --bits 4 --group_size 128 --trust_remote_code
eval_quantized_model.py
를 사용하여 양자화 모델을 실행할 수 있습니다.
python eval_quantized_model.py --model /quantized_model --trust_remote_code
[ 맨 위로 ⬆️ ]
Yi 모델을 배포하려면 소프트웨어 및 하드웨어 요구 사항을 충족하는지 확인하세요.
Yi 양자화 모델을 사용하기 전에 아래 나열된 올바른 소프트웨어를 설치했는지 확인하세요.
모델 | 소프트웨어 |
---|---|
Yi 4비트 양자화 모델 | AWQ와 CUDA |
Yi 8비트 양자화 모델 | GPTQ와 CUDA |
사용자 환경에 Yi를 배포하기 전에 하드웨어가 다음 요구 사항을 충족하는지 확인하세요.
모델 | 최소 VRAM | 권장 GPU 예 |
---|---|---|
Yi-6B-채팅 | 15GB | 1개의 RTX 3090(24GB) 1개의 RTX 4090(24GB) A10(24GB) 1개 A30(24GB) 1개 |
Yi-6B-채팅-4비트 | 4GB | 1개의 RTX 3060(12GB) 1개의 RTX 4060(8GB) |
Yi-6B-채팅-8비트 | 8GB | 1개의 RTX 3070(8GB) 1개의 RTX 4060(8GB) |
Yi-34B-채팅 | 72GB | 4개의 RTX 4090(24GB) A800(80GB) 1대 |
Yi-34B-채팅-4비트 | 20GB | 1개의 RTX 3090(24GB) 1개의 RTX 4090(24GB) A10(24GB) 1개 A30(24GB) 1개 A100(40GB) 1개 |
Yi-34B-채팅-8비트 | 38GB | 2개의 RTX 3090(24GB) 2개의 RTX 4090(24GB) A800(40GB) 1개 |
다음은 다양한 배치 사용 사례에 따른 자세한 최소 VRAM 요구 사항입니다.
모델 | 배치=1 | 배치=4 | 배치=16 | 배치=32 |
---|---|---|---|---|
Yi-6B-채팅 | 12GB | 13GB | 15GB | 18GB |
Yi-6B-채팅-4비트 | 4GB | 5GB | 7GB | 10GB |
Yi-6B-채팅-8비트 | 7GB | 8GB | 10GB | 14GB |
Yi-34B-채팅 | 65GB | 68GB | 76GB | > 80GB |
Yi-34B-채팅-4비트 | 19GB | 20GB | 30GB | 40GB |
Yi-34B-채팅-8비트 | 35GB | 37GB | 46GB | 58GB |
모델 | 최소 VRAM | 권장 GPU 예 |
---|---|---|
Yi-6B | 15GB | 1개의 RTX 3090(24GB) 1개의 RTX 4090(24GB) A10(24GB) 1개 A30(24GB) 1개 |
Yi-6B-200K | 50GB | A800(80GB) 1개 |
Yi-9B | 20GB | 1개의 RTX 4090(24GB) |
Yi-34B | 72GB | 4개의 RTX 4090(24GB) A800(80GB) 1개 |
Yi-34B-200K | 200GB | 4개의 A800(80GB) |
[ 맨 위로 ⬆️ ]
Yi-34B
와 Yi-34B-Chat
의 본격적인 미세 조정 사이의 주요 차이점은 미세 조정 접근 방식과 결과에 있습니다.Yi-34B
로 미세 조정하는 것이 좋습니다.Yi-34B-Chat
최선의 선택일 수 있습니다.