Skip to content

상위 10개 오픈소스 ChatGPT 대안: 대화형 AI를 위한 격차를 줄이다

챗봇은 기업이 고객과 상호작용하는 방식을 혁신적으로 바꾸었습니다. OpenAI에서 개발한 최첨단 GPT-4는 이 분야에서 주도적인 역할을 합니다. 그러나 이는 오픈소스가 아니므로, 개발자가 결과를 재현하거나 GPT-4와 비슷한 자신의 챗봇을 개발하는 것을 제한합니다.

이 공백을 채우기 위해 오픈소스 커뮤니티들은 GPT-4 대안을 제공하여, 거의 유사한 성능과 기능을 제공하면서도 적은 계산 능력이 필요합니다. 본 문서는 다음 AI 프로젝트에서 활용할 수 있는 상위 10개 오픈소스 ChatGPT 대안을 소개하는 것을 목적으로합니다.

1. ColossalChat

HPC AI Tech (opens in a new tab)에서 개발한 ColossalChat은 LLaMa 모델과 PyTorch AI 프레임 워크를 기반으로 한 ChatGPT와 유사한 모델을 복제하기 위한 오픈소스 프로젝트입니다. 이는 ChatGPT의 원래 기술 경로와 가장 가까운 프로젝트로, 완전한 인간 피드백 강화 학습(RLHF) 과정을 포함하는 최초의 오픈소스 프로젝트입니다.

ColossalChat은 PyTorch의 유연하고 효율적인 딥러닝 프레임 워크를 활용하여, 빠른 프로토타이핑, 다른 라이브러리와의 원활한 통합 및 고성능이며, 사용자 친화적인 대화형 AI 경험을 제공할 수 있습니다.

ColossalChat의 중요한 기능 중 하나는 영어와 중국어 모두에서 약 100,000개의 Q&A 쌍으로 이루어진 이중 언어 데이터셋입니다. 이 데이터셋은 소셜 미디어 플랫폼에서 실제 질문 시나리오에서 수집하고 정리되었으며, 씨앗 데이터셋으로 사용됩니다. 이는 자체 지도 기술을 사용하여 확장되었습니다. 이 고품질 데이터는 ColossalChat이 더 나은 대화 상호작용을 달성하고 중국어도 지원할 수 있는 이유입니다.

ColossalChat은 3단계 RLHF 알고리즘 복제 과정을 따릅니다. 첫 번째 단계는 감독 지도된 지시 후 분석(Term Instruct Fine-Tuning)입니다. 두 번째 단계는 보상 모델을 훈련합니다. 세 번째 단계에서는 강화 학습 알고리즘을 사용합니다. 이러한 복제 과정은 생성된 내용과 인간의 가치와의 일관성을 더욱 높일 수 있습니다.

이 프로젝트는 AI 대형 모델 개발 시스템인 Colossal-AI에 의해 지원됩니다. Colossal-AI는 PyTorch의 기본 기능을 기반으로 AI 대형 모델 교육 및 추론을 효율적이고 빠르게 배포할 수 있습니다. 이 인프라는 기본 지원을 제공하며 훈련 속도를 크게 향상시킵니다.

다음은 각 RLHF 단계에서 ColossalChat을 훈련하는 방법의 예입니다:

# 4-GPU 서버를 사용하여 훈련
colossalai run — nproc_per_node=4 train_sft.py \
— pretrain “/path/to/LLaMa-7B/\
— model ‘llama’ \
— strategy colossalai_zero2 \
— log_interval 10 \
— save_path /path/to/Coati-7B \
— dataset /path/to/data.json \
— batch_size 4 \
— accimulation_steps 8 \
— lr 2e-5
 
# 4-GPU 서버를 사용하여 훈련
colossalai run — nproc_per_node=4 train_reward_model.py \
— pretrain “/path/to/LLaMa-7B/\
— model ‘llama’ \
— strategy colossalai_zero2 \
— dataset /path/to/datasets
 
# 8-GPU 서버를 사용하여 훈련
colossalai run — nproc_per_node=8 train_prompts.py prompts.csv \
— strategy colossalai_zero2 \
— pretrain “/path/to/Coati-7B” \
— model ‘llama’ \
— pretrain_dataset /path/to/dataset

ChatGPT를 LLaMa 모델을 기반으로 복제하는 전체 코드는 오픈 소스로 제공되며, 개발자 및 연구원 모두 사용할 수 있습니다.

2. 알파카-로라

알파카-로라 (opens in a new tab)는 LoRA(저랭크 적응) 기법을 사용하여 LLaMa와 같은 언어 모델의 미세 조정에 매우 효율적인 도구로 보입니다.

LoRA는 소비자 하드웨어와 호환되는 더 빠른 속도와 적은 메모리 소비를 포함하여 다른 미세 조정 방법보다 많은 이점을 제공합니다.

  • 작은 출력 크기 (기가바이트 대신 메가바이트).
  • 런타임에서 여러 미세 조정된 모델을 결합할 수 있는 기능.

PEFT (Python Easy Fine-Tuning) 라이브러리를 구현하는 알파카-로라는 LoRA를 사용하여 transformer 기반 언어 모델을 미세 조정할 수 있습니다. 이는 저렴한 하드웨어에서도 효율적이고 비용 효율적인 모델 미세 조정을 가능하게하며, 잠재적으로 조립 가능한 출력을 제공합니다.

Alpaca-LoRA를 사용하여 LLaMa을 미세 조정하는 단계는 다음과 같습니다.

사전 조건

시작하기 전에 GPU 기계에 액세스할 수 있는지 확인하십시오. LoRA의 효율성 때문에 NVIDIA T4와 같은 저급 GPU 또는 4090과 같은 소비자 GPU와 같은 하드웨어도 적합합니다. 또한 아직 공개되지 않은 LLaMa 가중치가 필요합니다. Meta Research 폼을 통해 액세스를 신청할 수 있습니다.

단계 1 : 알파카-로라 repo를 복제

먼저, Cog (머신 러닝 모델을 컨테이너에 패키징하는 도구)를 지원하는 알파카-로라 저장소를 복제합니다. 다음 명령어를 사용합니다.

git clone https://github.com/daanelson/alpaca-lora
cd alpaca-lora

단계 2: Cog 설치

다음으로, 다음 명령어를 사용하여 Cog를 설치합니다.

sudo curl -o /usr/local/bin/cog -L "https://github.com/replicate/cog/releases/latest/download/cog_$(uname -s)_$(uname -m)"
sudo chmod +x /usr/local/bin/cog

단계 3: LLaMa 가중치 가져오기

다운로드한 가중치를 'unconverted-weights'라는 폴더에 배치하십시오. 디렉토리 구조는 다음과 같아야 합니다.

unconverted-weights
├── 7B
│   ├── checklist.chk
│   ├── consolidated.00.pth
│   └── params.json
├── tokenizer.model
└── tokenizer_checklist.chk

다음 명령을 사용하여 PyTorch 체크포인트에서 가중치를 transformers 호환 형식으로 변환합니다.

cog run python -m transformers.models.llama.convert_llama_weights_to_hf \
  --input_dir unconverted-weights \
  --model_size 7B \
  --output_dir weights

최종 디렉토리 구조는 다음과 같아야합니다.

weights
├── llama-7b

단계 4: 모델 파인튜닝

GPU의 메모리가 더 많은 경우 MICRO_BATCH_SIZEfinetune.py에서 32 또는 64로 늘릴 수 있습니다. 자체 인스트럭션 튜닝 데이터셋이 있으면 finetune.py에서 DATA_PATH를 편집하여 자체 데이터셋을 가리키도록 합니다. alpaca_data_cleaned.json과 동일한 포맷을 가지고 있는지 확인합니다.

파인튜닝 스크립트를 실행합니다.

cog run python finetune.py

40GB A100 GPU에서 파인튜닝에는 약 3.5시간이 소요될 수 있습니다. 처리 능력이 덜한 GPU에서는 더 오래 걸릴 수 있습니다.

단계 5: Cog로 모델 실행

마지막으로, Cog를 사용하여 모델을 실행할 수 있습니다. 예를 들어:

$ cog predict -i prompt="알파카에 대해 뭔가 말해봐."

응답은 알파카에 대한 정보를 제공하는 출력으로, LLaMa 모델 파인튜닝의 성공을 보여줍니다.

3. Vicuna-13B

FastChat의 일부인 Vicuna는 GPT 모델과 유사한 transformer 기반 구조를 활용하며, ShareGPT.com의 대화형 데이터셋에서 파인튜닝됩니다. ChatGPT의 약 90%의 성능을 제공하여 접근성과 비용 효율적인 대안을 제공합니다. 성능이 낮지만, Vicuna는 뛰어난 맞춤성과 다양한 작업에 대한 적응성으로 인해 높은 인기를 누립니다.

더 자세한 사용법은 Vicuna-13B의 자세한 기사를 참조하십시오.

4. GPT4ALL

Nomic AI 팀의 GPT4ALL은 단어 문제, 코드, 이야기, 일러스트레이션 및 다중 턴 대화와 같은 광범위하게 관리된 데이터를 기반으로 한 챗봇을 제공합니다. GPT-4와 유사하게 LLaMa를 활용하여 저지연 ML 가속화를 사용하지만, GPT4ALL의 강점은 다양한 작업에 대한 다양성과 적응성입니다.

다음은 GPT4ALL의 예입니다.

더 자세한 사용법은 GPT4ALL의 자세한 기사를 참조하십시오.

5. Raven RWKV

RWKV (opens in a new tab) (Raven RWKV)는 2021년 9월 기준으로 새로 출시된 모델입니다. 그러나 제공된 정보에 기반하여 사용 방법을 일반적인 단계별 가이드와 코드 스니펫과 함께 제공합니다.

먼저 필요한 패키지를 설치해야 합니다. RWKV 패키지는 PyPI에 호스팅되어 있으며 pip를 사용하여 설치할 수 있습니다.

pip install rwkv

그런 다음 패키지에서 모델을 가져와야 합니다.

from rwkv.model import RWKV

다음으로 모델을 인스턴스화합니다. 이는 모델 경로와 사용할 전략을 지정하는 것을 포함합니다.

model = RWKV(model='/path/to/your/model', strategy='cuda fp16')
```이것은 추론에 사용할 수 있는 모델의 인스턴스를 생성합니다.
 
다음으로 모델의 'forward' 메소드를 사용하여 추론을 수행합니다. 이 메소드는 두 개의 매개변수, 즉 입력 토큰과 상태를 사용합니다. 초기 실행에서는 상태를 'None'으로 설정할 수 있습니다:
 
```python
out, state = model.forward([187, 510, 1563, 310, 247], None)

그런 다음 모델의 출력을 출력할 수 있습니다.

print(out.detach().cpu().numpy())

그런 다음 다음 실행을 위해 이전 실행에서의 상태를 제공할 수 있습니다:

out, state = model.forward([187, 510], None)
out, state = model.forward([1563], state)
out, state = model.forward([310, 247], state)
print(out.detach().cpu().numpy())

이 단계별 가이드는 추론을 위한 RWKV 모델의 기본 사용법을 보여줍니다. 과제, 사용 중인 특정 모델 가중치 및 기타 요소에 따라 특정 단계가 달라질 수 있음에 유의해야 합니다. 가장 정확한 정보를 얻으려면 공식 문서를 참조하십시오.

또한 이 모델은 비교적 새로운 모델입니다. 2021년 9월 이후로 추가적인 개발 및 개선이 이루어졌을 수 있습니다. 최신 및 관련된 문헌 및 코드베이스를 참조하여 최신 및 정확한 정보를 확인하십시오.

6. OpenChatKit

OpenChatKit (opens in a new tab)은 오픈소스 ChatGPT 대안으로 자리 잡은 챗봇 애플리케이션 개발을 위한 완전한 툴킷을 제공합니다. 구조적으로 GPT 모델과 유사하지만 OpenChatKit은 명령어에 맞게 조정된 대형 언어 모델의 학습을 가능하게 하며 챗봇 응답을 위한 확장 가능한 검색 시스템을 제공하여 사용자 정의를 강화합니다.

단계 1: 설정

필요한 시스템 요구 사항 및 종속성이 있는지 확인하십시오. Git LFS, Miniconda 및 PyTorch 등이 필요합니다. 제공된 'environment.yml' 파일에는 필요한 환경의 사양이 포함되어 있습니다.

먼저 Git LFS와 Miniconda를 설치한 후 다음과 같이 환경을 설정하십시오.

git lfs install
conda install mamba -n base -c conda-forge
mamba env create -f environment.yml 
conda activate OpenChatKit

단계 2: Pythia-Chat-Base-7B로 채팅

모델과 상호작용하려면 inference 디렉토리에 위치한 'bot.py' 스크립트를 사용할 수 있습니다.

python inference/bot.py --model togethercomputer/Pythia-Chat-Base-7B

그런 다음 제공된 명령줄 프롬프트에 텍스트를 입력하여 모델과 채팅할 수 있습니다.

단계 3: Pythia-Chat-Base-7B 복제

모델을 직접 학습하려면 먼저 학습 데이터와 기본 모델을 다운로드해야 합니다:```bash python data/OIG/prepare.py python pretrained/Pythia-6.9B-deduped/prepare.py


그런 다음, 제공된 쉘 스크립트를 사용하여 모델을 세밀하게 조정할 수 있습니다.

```bash
bash training/finetune_Pythia-Chat-Base-7B.sh

학습 후 변환 도구를 사용하여 모델을 Huggingface 형식으로 변환합니다.

mkdir huggingface_models
python tools/convert_to_hf_gptneox.py \
   --config-name EleutherAI/pythia-6.9b-deduped \
   --ckpt-path model_ckpts/Pythia-Chat-Base-7B/checkpoint_100 \
   --save-path huggingface_models/Pythia-Chat-Base-7B \
   --n-stages 4 \
   --n-layer-per-stage 8 \
   --fp16

model_ckpts/Pythia-Chat-Base-7B/checkpoint_100을 모델 체크포인트 경로로 바꾸세요.

단계 4: 새 모델 테스트:

모델 세밀 조정 후 bot.py 스크립트를 사용하여 모델과 채팅할 수 있습니다.

python inference/bot.py --model ./huggingface_models/Pythia-Chat-Base-7B

단계 5. 모니터링:

로그루 및 Weights & Biases 대한 OpenChatKit에서 모니터링 지원합니다.

단계 6. 실험: 검색 보강 모델

OpenChatKit은 검색 보강 모델의 실험적 기능도 제공합니다. Wikipedia Faiss 인덱스를 쿼리하여 구현됩니다. 다음과 같이 실행할 수 있습니다.

python data/wikipedia-3sentence-level-retrieval-index/prepare.py
python inference/bot.py --retrieval

자세하고 정확한 정보는 공식 OpenChatKit 문서를 참조하십시오. 위의 단계는 당신이 제공한 정보로부터 기반하여 작성되었습니다.

7. OPT

OPT (opens in a new tab) (Open Pre-trained Transformer) 언어 모델은 제로샷 및 퓨샷 학습 및 성취도 공정성 분석과 같은 예외적인 능력을 보이지만 ChatGPT의 품질에는 미치지 못합니다. 이러한 모델은 디코더만을 사용하는 트랜스포머이며, GPT 모델과 같이 왼쪽에서 오른쪽으로 텍스트를 생성합니다.

각 작업에서 OPT 모델을 사용하는 방법을 보다 자세하게 설명하겠습니다.

단계 1: 텍스트 생성

OPT 모델을 텍스트 생성에 사용하려면 먼저 파이프 라인에 모델을 로드해야합니다. Hugging Face의 transformers 라이브러리를 사용하는 예제는 다음과 같습니다.```python from transformers import pipeline

generator = pipeline('text-generation', model="facebook/opt-350m")


파이프라인을 설정한 후에는 다음과 같이 텍스트를 생성할 수 있습니다.

```python
print(generator("안녕하세요, 저는", max_length=50)[0]['generated_text'])

이 코드는 "안녕하세요, 저는"으로 시작하는 최대 50토큰의 텍스트를 출력합니다.

2단계: Zero-shot Learning

제로샷 러닝은 모델이 명시적으로 고안된 작업에 적용하는 것을 통해 수행됩니다. 예를 들어, 추가적인 훈련 없이 텍스트 분류를 위해 이를 사용할 수 있습니다. 다음과 같이 수행할 수 있습니다.

from transformers import pipeline
 
classifier = pipeline("text-classification", model="facebook/opt-350m")
print(classifier("날씨가 좋은 날에는 나는 행복합니다.", ["날씨", "감정"]))

이 코드는 "날씨가 좋은 날에는 나는 행복합니다." 라는 문장을 "날씨"와 "감정" 측면에서 분류하고 확률을 출력합니다.

3단계: Few-shot Learning

퓨샷 러닝은 작업을 이해하는 데 일부 예제를 제공하는 것을 의미합니다. 예를 들어, 모델이 영어를 프랑스어로 번역하도록 하려면 몇 개의 예제 번역을 제공할 수 있습니다.

from transformers import pipeline
 
translator = pipeline('translation', model="facebook/opt-350m")
 
examples = [
    {"영어": "안녕하세요", "프랑스어": "Bonjour"},
    {"영어": "안녕히 가세요", "프랑스어": "Au revoir"},
]
 
translator.set_examples(examples)
 
print(translator("Good morning"))

이 예제는 설명을 위해 단순화되었음을 유의하십시오. 실제 사용 시 좀 더 복잡하고 정교한 설정이 필요할 수 있습니다.

4단계: 스테레오 타입 바이어스 분석

OPT 모델을 사용하여 생성된 텍스트에서 나타나는 스테레오 타입 바이어스를 분석할 수 있습니다. 예를 들어 다음과 같습니다:

from transformers import pipeline
 
generator = pipeline('text-generation', model="facebook/opt-350m")
 
여성 프롬프트 = "여자는"
남성 프롬프트 = "남자는"
```여성 출력 = 생성기 (여성 프롬프트, num_return_sequences =5) 
남성 출력 = 생성기 (남성 프롬프트, num_return_sequences =5) 
 
print("여성 프롬프트 출력:")
for output in female_output:
    print (output ['generated_text']) 
 
print("남성 프롬프트 출력:")
for output in male_output:
    print (output ['generated_text'])

이 명령은 각 프롬프트에 대해 5개의 생성 된 시퀀스를 인쇄하며, 잠재적인 편향을 분석 할 수 있습니다. 이러한 분석은 복잡한 작업일 수 있으며, 고급 자연 언어 처리 (NLP) 기술이 필요할 수 있습니다.

오는 2021년 9월 이전으로 제한한다면 translator.set_examples (examples)와 같은 기능이 Transformers 라이브러리에 존재하지 않을 수 있음을 유의하십시오. 이것은 개념적인 예시를 보여주기 위해 제공되었습니다.

8. Flan-T5-XXL

Flan-T5-XXL (opens in a new tab)은 방대한 컴파일이 된 교육 데이터 세트를 기반으로 미세 조정 된 T5 모델의 모음입니다. 이러한 모델은 GPT 모델과는 달리 트랜스포머 아키텍처를 기반으로하지 않지만 PaLM, T5 및 U-PaLM을 비롯한 다양한 모델 클래스에서 크게 향상된 성능을 발휘합니다.

Flan-T5-XXL을 사용하려면 다음 예제 사용 가이드를 따를 수 있습니다.

# Flan-T5-XXL 리포지토리를 이미 복제하고 환경을 설정했다고 가정
 
from flan_t5_xx1 import FlanT5XXL
 
# Flan-T5-XXL 모델 초기화
model = FlanT5XXL()
 
# 예시 사용: 작업에 대한 지침 생성
task_input = "케이크 굽는 방법"
instructions = model.generate_instructions(task_input)
print(instructions)

이 예제는 Flan-T5-XXL 모델을 사용하여 주어진 작업에 대한 지침을 생성하는 방법을 보여줍니다. 'task_input' 변수는 작업 설명을 포함하고 'generate_instructions ()' 메소드는 해당 지침을 생성합니다.

위 코드 스니펫은 Flan-T5-XXL 리포지토리를 이미 복제하고 필요한 종속성을 설정했다고 가정합니다.

Flan-T5-XXL은 언어 작업에 중점을 둔 시퀀스 모델 교육 및 평가를 위한 모듈식 및 구성 가능한 프레임워크를 제공합니다. 이는 T5 코드베이스를 기반으로 JAX 및 Flax를 사용하여 구현되었습니다. Flan-T5-XXL은 다양한 규모에서 시퀀스 모델을 훈련하고 평가할 수있는 고도로 구성 가능하고 셀프 서비스 기능을 제공하여 연구원들이 시퀀스 모델을 효과적으로 훈련하고 평가할 수 있도록 지원합니다.

사용 가능한 기능과 그들의 효과적인 사용 방법을 포함한 상세한 이해를 위해 Flan-T5-XXL의 공식 문서와 예제를 참조하는 것이 중요합니다.

Flan-T5-XXL의 예제 사용법은 다음과 같습니다.

from flan import FlanT5
 
# 모델 초기화
flan_model = FlanT5()
 
# 응답 생성
response = flan_model.generate("Translate this text to French.")
print (response)

9. BaizeBaize (opens in a new tab)은 LoRA로 훈련된 오픈소스 챗봇 모델입니다. ChatGPT에서 유도한 10만개의 대화 데이터를 포함하며, Alpaca의 데이터를 활용하여 성능을 향상시켰습니다. 7B, 13B, 30B와 같이 크기가 다른 다양한 모델도 제공됩니다.

Fastchat의 CLI 및 API를 사용하여 Baize와 상호작용하려면 다음 단계를 따르세요:

  1. Fastchat 설치:
pip install git+https://github.com/huggingface/peft.git
pip install git+https://github.com/lm-sys/FastChat.git
  1. Baize의 LoRA 가중치 병합(V1 버전만):
python3 -m fastchat.model.apply_lora --base huggyllama/llama-7b --target ./model_weights/baize-7b --lora project-baize/baize-lora-7B
  1. CLI 실행:
python -m fastchat.serve.cli --model-path ./model_weights/baize-7b

Baize는 OpenAI API 또는 Hugging Face API와 함께 사용할 수도 있습니다.

Baize 데모를 실행하려면 다음 단계를 따르세요:

  1. 필요한 패키지 설치:
cd demo
pip install -r requirements.txt
  1. 모델 로컬 호스팅:
# V1 모델에 대해서
base_model=huggyllama/llama-7b
lora_model=project-baize/baize-lora-7B
python app.py $base_model $lora_model
 
# V2 모델에 대해서
base_model=project-baize/baize-v2-7b
python app.py $base_model None

Baize 데모는 사용자 친화적인 Gradio 인터페이스를 제공합니다.

이것들은 단순화 된 샘플 코드입니다. 보다 자세한 지침과 옵션은 Baize 프로젝트 문서를 참조하십시오.

10. Koala

Koala (opens in a new tab)은 웹에서 수집한 대화 데이터셋에서 LLaMA를 fine-tuning한 AI 대화 모델입니다. 알파카의 성능을 뛰어넘으면서도 다양한 시나리오에서 ChatGPT와 유사한 결과를 보여줍니다. Koala의 주요 장점 중 하나는 훈련 코드, 공개 가중치 및 대화 fine-tuner의 제공으로 인한 광범위한 사용자 정의 및 적응성입니다.

Koala를 사용하여 파워드 바이 Koala로 구동되는 100% 무료 개인용 "ChatGPT" 챗봇을 구축하는 방법은 제공된 Colab 노트북을 활용할 수 있습니다. 과정 개요는 다음과 같습니다:

1단계: Koala Colab 노트북에 접속

기계 학습 전문가인 Sam Witteveen이 작성한 미리 구성된 노트북을 사용하여 Koala 모델을 실행할 수 있습니다. 노트북은 여기에서 찾을 수 있습니다. 노트북을 복사하여 사용자의 Google 드라이브에 저장합니다.

2단계: 노트북 실행

사용자의 Google 드라이브에 노트북을 가져오면 노트북을 실행할 수 있습니다. 노트북은 필요한 모듈을 설치하고 가져오는 것으로 시작합니다. 그런 다음, transformers 라이브러리에서 LlamaTokenizer와 LlamaForCausalLM을 사용하여 미리 훈련된 모델 samwit/koala-7b를 로드합니다. 모델은 비용 효율적인 GPU와 호환되도록 8비트 모드로 로드됩니다.

from transformers import LlamaTokenizer, LlamaForCausalLM, GenerationConfig, pipeline
import torch
import textwrap
 
tokenizer = LlamaTokenizer.from_pretrained("samwit/koala-7b")
 
base_model = LlamaForCausalLM.from_pretrained(
    "samwit/koala-7b",
    load_in_8bit=True,
    device_map='auto',
)

단계 3 : 텍스트 생성 파이프 라인 설정하기

이 노트북은 Hugging Face pipeline 메소드를 사용하여 텍스트 생성에 대한 파이프 라인을 설정합니다. 최대 길이, 온도 및 반복 페널티와 같은 매개 변수가 정의됩니다. 또한 wrap_text_preserve_newlines()라는 유틸리티 함수가 제공되어 생성된 텍스트의 모양을 향상시킵니다.

pipe = pipeline(
    "text-generation",
    model=base_model, 
    tokenizer=tokenizer, 
    max_length=512,
    temperature=0.7,
    top_p=0.95,
    repetition_penalty=1.15
)
 
def wrap_text_preserve_newlines(text, width=110):
    # 입력 텍스트를 새 줄 문자를 기준으로 개행합니다.
    lines = text.split('\n')
 
    # 각 줄을 개별적으로 래핑합니다.
    wrapped_lines = [textwrap.fill(line, width=width) for line in lines]
 
    # 개행 문자를 사용하여 래핑된 줄을 다시 결합합니다.
    wrapped_text = '\n'.join(wrapped_lines)
 
    return wrapped_text

단계 4 : 대화 참여하기

노트북은 Hugging Face 라이브러리의 pipe() 메소드를 사용하여 프롬프트-응답 대화 예제를 제공합니다. 각 대화의 시작부분에 적절한 프롬프트를 사용하는 것이 모델의 성공에 매우 의존하는 것이 중요합니다. 노트북에서는 "BEGINNING OF CONVERSATION: USER:" 로 시작하는 프롬프트를 사용하여 원하는 논리를 활성화하라고 제안합니다. 다른 프롬프트와 매개 변수를 실험하여 모델의 응답을 관찰하는 것을 권장합니다.

전반적으로 Koala는 GPT-3와 같은 대형 언어 모델에 대한 유망한 대안임을 입증하고 있습니다. 교육 데이터를 신중하게 선별함으로써 작은 모델도 인상적인 성능을 제공할 수 있습니다. Koala 팀 및 커뮤니티 전문가들은 온라인 데모와 제공된 Google Colab 노트북을 통해 모델에 액세스하고 실험하는 것이 편리하게 만들었습니다. 챗봇을 개발하거나 모델 사용 비용을 부과하지 않고 LLM 연구를 수행하려는 경우 Koala는 훌륭한 선택입니다.

결론

오픈 소스 환경에서는 ChatGPT 대안이 풍부하며 각각이 독특한 기능을 제공합니다. AI 열정가, 연구원 또는 개발자인 경우 이러한 도구를 사용하여 자체 대화 모델을 구축하고 세밀하게 조정할 수 있습니다. 따라서 오픈 소스 대화형 AI의 세계에 뛰어들어 보십시오.