paint-brush
스타벅스 커피 비용으로 나만의 비공개 채팅GPT 모델을 훈련하는 방법by@zhoujieguang
3,066
3,066

스타벅스 커피 비용으로 나만의 비공개 채팅GPT 모델을 훈련하는 방법

Zhou Jieguang12m2023/06/18
Read on Terminal Reader
Read this story w/o Javascript

스타벅스 한 잔과 2시간의 시간 비용으로 훈련된 오픈 소스 대규모 모델을 소유할 수 있습니다.
featured image - 스타벅스 커피 비용으로 나만의 비공개 채팅GPT 모델을 훈련하는 방법
Zhou Jieguang HackerNoon profile picture
0-item
1-item
2-item


스타벅스 한 잔과 2시간의 시간 비용으로 훈련된 오픈 소스 대규모 모델을 소유할 수 있습니다. 의료, 프로그래밍 , 주식 거래, 연애 조언 등 다양한 기술을 향상시키기 위해 다양한 훈련 데이터 방향에 따라 모델을 미세 조정하여 대규모 모델이 사용자에 대해 더 잘 "이해"할 수 있습니다. 오픈소스 DolphinScheduler를 활용한 오픈소스 대규모 모델 학습을 시도해 보세요!

소개

ChatGPT 의 민주화

ChatGPT의 탄생은 의심할 여지 없이 AI의 미래에 대한 기대를 불러일으켰습니다. 세련된 표현력과 막강한 언어 이해력은 세계를 놀라게 했습니다. 그러나 ChatGPT는 SaaS(Software as a Service)로 제공되기 때문에 개인 정보 유출 및 기업 데이터 보안 문제는 모든 사용자와 회사의 관심사입니다. 오픈소스 대규모 모델이 점점 더 많이 등장하면서 개인과 기업이 자신만의 모델을 가질 수 있게 되었습니다. 그러나 오픈소스 대규모 모델을 시작하고 최적화하고 사용하는 것은 진입 장벽이 높아 누구나 쉽게 사용하기 어렵습니다. 이 문제를 해결하기 위해 우리는 오픈 소스 대규모 모델의 교육, 조정 및 배포에 대한 원클릭 지원을 제공하는 Apache DolphinScheduler를 사용합니다. 이를 통해 모든 사람은 기술 전문 지식과 매우 저렴한 비용으로 자신의 데이터를 사용하여 자신만의 대규모 모델을 훈련할 수 있습니다.

누구를 위한 것인가요? — 화면 앞에 있는 누구나

우리의 목표는 전문 AI 엔지니어뿐만 아니라 GPT에 관심이 있는 모든 사람이 자신을 더 잘 "이해"하는 모델을 갖는 기쁨을 누릴 수 있도록 하는 것입니다. 우리는 모든 사람이 자신의 AI 비서를 구성할 권리와 능력을 가지고 있다고 믿습니다. Apache DolphinScheduler의 직관적인 작업 흐름이 이를 가능하게 합니다. 보너스로 Apache DolphinScheduler는 GitHub에서 10,000개 이상의 별을 보유한 빅 데이터 및 AI 일정 관리 도구입니다. Apache Software Foundation의 최상위 프로젝트이므로 무료로 사용할 수 있고 상업적 문제에 대한 걱정 없이 코드를 수정할 수 있습니다.


자신의 데이터로 모델을 훈련시키려는 업계 전문가이든, 딥 러닝 모델의 훈련을 이해하고 탐색하려는 AI 애호가이든, 당사의 워크플로우는 귀하에게 편리한 서비스를 제공할 것입니다. 복잡한 전처리, 모델 교육 및 최적화 단계를 해결하고 1~2시간의 간단한 작업과 20시간의 실행 시간만 있으면 ChatGPT 대규모 모델을 더욱 "이해"할 수 있습니다.

그럼 이 마법같은 여행을 시작해 볼까요! 모두에게 AI의 미래를 선사하겠습니다.

당신을 더 잘 "이해"하는 ChatGPT를 만드는 세 단계

  1. 3090급 수준의 저렴한 비용으로 GPU카드 렌탈
  2. DolphinScheduler 시작
  3. DolphinScheduler 페이지에서 교육 워크플로 및 배포 워크플로를 클릭하고 ChatGPT를 직접 경험해 보세요.

3090 그래픽 카드를 사용하여 호스트 준비

먼저 3090 그래픽 카드가 필요합니다. 데스크톱 컴퓨터가 있는 경우 직접 사용할 수 있습니다. 그렇지 않은 경우 온라인에서 GPU를 사용하여 임대할 수 있는 호스트가 많이 있습니다. 여기서는 적용할 예로 AutoDL을 사용합니다. https://www.autodl.com/home을 열고 등록하고 로그인합니다. 그런 다음 화면에 표시된 1, 2, 3단계에 따라 컴퓨팅 파워 시장에서 해당 서버를 선택할 수 있습니다.

이미지 출처 : 작가 본인 사진


여기서는 높은 가성비를 제공하는 RTX 3090 그래픽 카드를 선택하는 것이 좋습니다. 테스트 결과 1~2명이 RTX 3090을 온라인 작업에 사용할 수 있는 것으로 나타났습니다. 더 빠른 훈련 및 응답 속도를 원한다면 더 강력한 그래픽 카드를 선택할 수 있습니다. 한 번 훈련하는 데는 약 20시간이 소요되고, 테스트에는 약 2~3시간이 소요됩니다. 40위안의 예산으로 쉽게 끝낼 수 있습니다.

거울

커뮤니티 미러를 클릭한 후 아래 빨간색 상자 WhaleOps/dolphinscheduler-llm/dolphinscheduler-llm-0521 입력하세요. 아래와 같이 이미지를 선택할 수 있습니다. 현재는 V1 버전만 사용할 수 있습니다. 향후 새 버전이 출시되면 최신 버전을 선택할 수 있습니다.

이미지 출처 : 작가 본인 사진


모델을 여러 번 학습해야 하는 경우 하드 디스크 용량을 100GB 정도로 확장하는 것이 좋습니다.


생성한 후 다음 이미지에 표시된 진행률 표시줄이 완료될 때까지 기다립니다.

DolphinScheduler 시작

인터페이스에서 자체 오픈 소스 대규모 모델을 배포하고 디버깅하려면 DolphinScheduler 소프트웨어를 시작해야 하며 다음 구성 작업을 수행해야 합니다.

서버에 접속하려면

두 가지 방법을 사용할 수 있습니다. 귀하의 선호도에 맞는 것을 선택할 수 있습니다:

  1. JupyterLab을 통해 로그인(코더가 아닌 경우):

아래 표시된 JupyterLab 버튼을 클릭합니다.

이미지 출처 : 작가 본인 사진


페이지가 JupyterLab으로 리디렉션됩니다. 거기에서 "터미널"을 클릭하여 들어갈 수 있습니다.

이미지 출처 : 작가 본인 사진


2. 터미널을 통해 로그인(코더용):

다음 이미지에 표시된 버튼에서 SSH 연결 명령을 얻을 수 있습니다.

이미지 출처 : 작가 본인 사진


그런 다음 터미널을 통해 연결을 설정합니다.

이미지 출처 : 작가 본인 사진


DolphinScheduler의 메타데이터 가져오기

DolphinScheduler에서는 워크플로 정의, 환경 구성, 테넌트 정보 등을 포함한 모든 메타데이터가 데이터베이스에 저장됩니다. DolphinScheduler가 시작될 때 사용자가 이러한 워크플로를 편리하게 볼 수 있도록 사전 정의된 워크플로 메타데이터를 복사하여 직접 가져올 수 있습니다. 화면에서.


MySQL로 데이터를 가져오기 위한 스크립트를 수정합니다.

터미널을 사용하여 다음 디렉터리로 이동합니다.

cd apache-dolphinscheduler-3.1.5-bin


vim import_ds_metadata.sh 명령을 실행하여 import_ds_metadata.sh 파일을 엽니다. 파일 내용은 다음과 같습니다.



Set variables

Hostname

HOST="xxx.xxx.xxx.x"


UsernameUSERNAME="root"PasswordPASSWORD="xxxx"PortPORT=3306Database to import intoDATABASE="ds315_llm_test"SQL filenameSQL_FILE="ds315_llm.sql"mysql -h $HOST -P $PORT -u $USERNAME -p$PASSWORD -e "CREATE DATABASE $DATABASE;"mysql -h $HOST -P $PORT -u $USERNAME -p$PASSWORD $DATABASE < $SQL_FILE


xxx.xxx.xxx.x 및 xxxx를 공용 네트워크에 있는 MySQL 데이터베이스의 관련 구성 값으로 바꿉니다(Alibaba Cloud, Tencent Cloud에서 신청하거나 직접 설치할 수 있음). 그런 다음 다음을 실행합니다.

bash import_ds_metadata.sh


실행 후 관심이 있는 경우 데이터베이스에서 해당 메타데이터를 확인할 수 있습니다(MySQL에 연결하여 확인하세요. 코드에 익숙하지 않은 경우 이 단계를 건너뛰세요).

이미지 출처 : 작가 본인 사진


DolphinScheduler 시작

서버 명령줄에서 다음 파일을 열고 구성을 수정하여 DolphinScheduler를 이전에 가져온 데이터베이스와 연결합니다.


/root/apache-dolphinscheduler-3.1.5-bin/bin/env/dolphinscheduler_env.sh


데이터베이스 섹션에서 관련 구성을 수정하고 다른 섹션은 변경하지 않은 채로 둡니다. 'HOST' 및 'PASSWORD' 값을 가져온 데이터베이스의 구성 값(예: xxx.xxx.xxx.x 및 xxxx)으로 변경합니다.


export DATABASE=mysqlexport SPRING_PROFILES_ACTIVE=${DATABASE}export SPRING_DATASOURCE_URL="jdbc:mysql://HOST:3306/ds315_llm_test?useUnicode=true&characterEncoding=UTF-8&useSSL=false"export SPRING_DATASOURCE_USERNAME="root"export SPRING_DATASOURCE_PASSWORD="xxxxxx"......


구성 후 다음을 실행합니다(이 디렉터리 /root/apache-dolphinscheduler-3.1.5-bin에서도):

bash ./bin/dolphinscheduler-daemon.sh start standalone-server


일단 실행되면 tail -200f standalone-server/logs/dolphinscheduler-standalone.log 사용하여 로그를 확인할 수 있습니다. 이 시점에서 DolphinScheduler가 공식적으로 출시되었습니다!


서비스를 시작한 후 AutoDL 콘솔에서 "Custom Services"(빨간색으로 강조 표시됨)를 클릭하여 URL로 리디렉션할 수 있습니다.

이미지 출처 : 작가 본인 사진


URL을 열 때 404 오류가 표시되면 걱정하지 마세요. URL에 /dolphinscheduler/ui 접미사를 추가하면 됩니다.

이미지 출처 : 작가 본인 사진

AutoDL 모듈은 포트 6006을 엽니다. DolphinScheduler의 포트를 6006으로 구성한 후 제공된 진입점을 통해 액세스할 수 있습니다. 그러나 URL 리디렉션으로 인해 404 오류가 발생할 수 있습니다. 이러한 경우에는 URL을 수동으로 완성해야 합니다.



로그인 자격 증명:

사용자 이름: admin

비밀번호 : dolphinscheduler123


로그인한 후 "프로젝트 관리"를 클릭하면 "vicuna"라는 사전 정의된 프로젝트를 볼 수 있습니다. 프로젝트에 들어가려면 “vicuna”를 클릭하세요.

이미지 출처 : 작가 본인 사진


오픈 소스 대규모 모델 교육 및 배포

워크플로 정의

Vicuna 프로젝트에 들어가면 Training, Deploy, Kill_Service라는 세 가지 워크플로우가 표시됩니다. 그 용도와 대규모 모델을 구성하고 데이터를 훈련하는 방법을 살펴보겠습니다.

이미지 출처 : 작가 본인 사진


아래 실행 버튼을 클릭하면 해당 워크플로를 실행할 수 있습니다.

이미지 출처 : 작가 본인 사진


훈련

학습 워크플로를 클릭하면 두 가지 정의가 표시됩니다. 하나는 Lora를 통해 모델을 미세 조정하는 것이고(주로 alpaca-lora 사용, https://github.com/tloen/alpaca-lora ), 다른 하나는 훈련된 모델을 기본 모델과 병합하여 최종 모델을 얻는 것입니다. .

이미지 출처 : 작가 본인 사진


워크플로에는 다음과 같은 매개변수가 있습니다(실행을 클릭하면 팝업됨).


  • base_model: 필요에 따라 선택하고 다운로드할 수 있는 기본 모델입니다. 오픈 소스 대형 모델은 학습 및 체험 목적으로만 사용됩니다. 현재 기본값은 TheBloke/vicuna-7B-1.1-HF입니다.
  • data_path: 개인화된 학습 데이터 및 도메인별 데이터의 경로이며 기본값은 /root/demo-data/llama_data.json입니다.
  • lora_path: 훈련된 Lora 가중치를 저장하는 경로, /root/autodl-tmp/vicuna-7b-lora-weight.
  • output_path: 기본 모델과 Lora 가중치를 병합한 후 최종 모델의 저장 경로입니다. 배포에 필요하므로 기록해 두세요.
  • num_epochs: 훈련 매개변수, 훈련 에포크 수입니다. 테스트를 위해 1로 설정할 수 있으며 일반적으로 3~10으로 설정됩니다.
  • cutoff_len: 최대 텍스트 길이, 기본값은 1024입니다.
  • micro_batch_size: 배치 크기.

이미지 출처 : 작가 본인 사진


배포

대규모 모델 배포를 위한 워크플로(주로 FastChat 사용, https://github.com/lm-sys/FastChat ) 먼저 kill_service를 호출하여 배포된 모델을 종료한 다음 순차적으로 컨트롤러를 시작하고 모델을 추가한 다음 Gradio 웹 서비스를 엽니다.

이미지 출처 : 작가 본인 사진


시작 매개변수는 다음과 같습니다.

이미지 출처 : 작가 본인 사진


  • model: 모델 경로, Huggingface 모델 ID 또는 우리가 훈련한 모델 경로(예: 위 훈련 워크플로의 output_path)일 수 있습니다. 기본값은 TheBloke/vicuna-7B-1.1-HF입니다. 기본값을 사용하면 vicuna-7b 모델을 직접 배포합니다.

Kill_service

이 워크플로는 배포된 모델을 종료하고 GPU 메모리를 해제하는 데 사용됩니다. 이 워크플로우에는 매개변수가 없으며 직접 실행할 수 있습니다. 배포된 서비스를 중지해야 하는 경우(예: 모델을 재교육해야 하거나 GPU 메모리가 부족한 경우) kill_service 워크플로를 직접 실행하여 배포된 서비스를 종료할 수 있습니다.


몇 가지 예를 거치면 배포가 완료됩니다. 이제 실제 작업을 살펴보겠습니다.

대형 모델 운용 예시

  1. 대규모 모델 훈련

학습 워크플로를 실행하고 기본 매개변수를 선택하여 워크플로를 직접 시작합니다.

이미지 출처 : 작가 본인 사진


아래와 같이 해당 작업을 마우스 오른쪽 버튼으로 클릭하면 로그를 볼 수 있습니다.

이미지 출처 : 작가 본인 사진


사이드바 왼쪽 하단에 있는 작업 인스턴스 패널에서 작업 상태 및 로그를 볼 수도 있습니다. 훈련 과정 중에 현재 훈련 단계, 손실 지표, 남은 시간 등을 포함한 로그를 확인하여 진행 상황을 모니터링할 수 있습니다. 현재 단계를 나타내는 진행률 표시줄이 있습니다. 여기서 단계는 (데이터 크기 * 에포크) / 배치입니다. 크기.

이미지 출처 : 작가 본인 사진


학습이 완료되면 로그는 다음과 같습니다.

이미지 출처 : 작가 본인 사진


맞춤형 훈련 데이터 업데이트

기본 데이터는 /root/demo-data/llama_data.json 에 있습니다. 현재 데이터 소스는 중국 의료 데이터를 사용해 미세 조정된 의료 모델인 Huatuo입니다. 그렇습니다. 우리의 예는 가정의를 훈련시키는 것입니다.

이미지 출처 : 작가 본인 사진


특정 필드에 데이터가 있는 경우 자신의 데이터를 가리킬 수 있으며 데이터 형식은 다음과 같습니다.


한 줄에 JSON이 하나씩 있으며 필드 의미는 다음과 같습니다.

  • Instruction ****: 모델에게 지시하는 명령입니다.
  • 입력: 입력합니다.
  • 출력: 예상되는 모델 출력입니다.

예를 들어:

{"instruction": "calculation", "input": "1+1 equals?", "output": "2"}


명령 필드와 입력 필드를 단일 명령 필드로 병합할 수 있습니다. 입력 필드를 비워 둘 수도 있습니다.


학습 시 data_path 매개변수를 수정하여 자체 데이터를 실행하세요.


메모:


첫 번째 훈련 실행 중에 기본 모델은 TheBloke/vicuna-7B-1.1-HF와 같은 지정된 위치에서 가져옵니다. 다운로드 과정이 있으므로 다운로드가 완료될 때까지 기다려 주시기 바랍니다. 이 모델의 선택은 사용자에 의해 결정되며, 다른 오픈 소스 대형 모델을 다운로드하도록 선택할 수도 있습니다(사용 시 관련 라이센스를 따르십시오).


네트워크 문제로 인해 기본 모델 다운로드가 첫 번째 훈련 실행 중간에 실패할 수 있습니다. 이러한 경우 실패한 작업을 클릭하고 다시 실행하여 훈련을 계속할 수 있습니다. 작업은 아래와 같습니다.

이미지 출처 : 작가 본인 사진


훈련을 중지하려면 중지 버튼을 클릭하면 훈련에 사용된 GPU 메모리가 해제됩니다.

배포 워크플로

워크플로 정의 페이지에서 배포 워크플로를 클릭하여 실행하고 모델을 배포합니다.

이미지 출처 : 작가 본인 사진


자체 모델을 교육하지 않은 경우 아래 이미지에 표시된 대로 기본 매개변수 TheBloke/vicuna-7B-1.1-HF를 사용하여 배포 워크플로를 실행하여 vicuna-7b 모델을 배포할 수 있습니다.

이미지 출처 : 작가 본인 사진


이전 단계에서 모델을 훈련했다면 이제 모델을 배포할 수 있습니다. 배포 후에는 자신만의 대형 모델을 체험해 볼 수 있습니다. 시작 매개변수는 다음과 같습니다. 여기서는 이전 단계에서 모델의 output_path 채워야 합니다.

이미지 출처 : 작가 본인 사진


다음으로 배포된 워크플로 인스턴스를 입력해 보겠습니다. 워크플로 인스턴스를 클릭한 다음 "배포" 접두사가 있는 워크플로 인스턴스를 클릭합니다.

이미지 출처 : 작가 본인 사진

마우스 오른쪽 버튼을 클릭하고 "refresh_gradio_web_service"를 선택하여 작업 로그를 보고 대형 모델 링크의 위치를 찾으세요.


작업은 아래와 같습니다.

이미지 출처 : 작가 본인 사진



로그에는 다음과 같이 공개적으로 액세스할 수 있는 링크가 있습니다.

이미지 출처 : 작가 본인 사진


여기에 두 개의 링크가 있습니다. AutoDL은 이미 DolphinScheduler에 사용되는 포트 6006만 열기 때문에 0.0.0.0:7860 링크에 액세스할 수 없습니다. [https://81c9f6ce11eb3c37a4.gradio.live.](https://81c9f6ce11eb3c37a4.gradio.live.) 등 아래 링크로 바로 접속하실 수 있습니다.


이 링크는 배포할 때마다 변경될 수 있으므로 로그에서 다시 찾아야 한다는 점에 유의하세요.


링크를 입력하면 자신의 ChatGPT 대화 페이지가 나타납니다!

이미지 출처 : 작가 본인 사진


이미지 출처 : 작가 본인 사진


예! 이제 나만의 ChatGPT가 있으며 해당 데이터는 귀하에게만 제공됩니다!


그리고 커피 한잔 값도 안 되는 돈을 썼네요~~


계속해서 나만의 비공개 ChatGPT를 경험해 보세요!

요약

이 데이터 중심 및 기술 중심 세계에서 전용 ChatGPT 모델을 갖는 것은 헤아릴 수 없는 가치를 갖습니다. 인공지능과 딥러닝의 발전으로 개인화된 AI 비서가 탄생하는 시대가 도래했습니다. 자체 ChatGPT 모델을 교육하고 배포하면 AI와 AI가 세상을 어떻게 변화시키고 있는지 더 잘 이해하는 데 도움이 될 수 있습니다.


요약하자면, ChatGPT 모델을 직접 교육하고 배포하면 데이터 보안 및 개인 정보 보호를 보호하고, 특정 비즈니스 요구 사항을 충족하고, 기술 비용을 절약하고, DolphinScheduler와 같은 워크플로 도구를 사용하여 교육 프로세스를 자동화하는 데 도움이 될 수 있습니다. 또한 이를 통해 현지 법률 및 규정을 준수할 수 있습니다. 따라서 스스로 ChatGPT 모델을 교육하고 배포하는 것은 고려해 볼 가치가 있는 옵션입니다.


중요 사항:

  • 데이터 보안 및 개인 정보 보호: 공개 API 서비스를 통해 ChatGPT를 사용할 때 데이터 보안 및 개인 정보 보호에 대한 우려가 있을 수 있습니다. 귀하의 데이터가 네트워크를 통해 전송될 수 있으므로 이는 유효한 문제입니다. 모델을 직접 훈련하고 배포하면 데이터가 자신의 장치나 임대 서버에만 저장되고 처리되어 데이터 보안과 개인정보 보호가 보장됩니다.
  • 도메인별 지식: 특정 비즈니스 요구 사항이 있는 조직 또는 개인의 경우 자체 ChatGPT 모델을 교육하면 모델이 비즈니스와 관련된 가장 관련성이 높은 최신 지식을 갖게 됩니다. 비즈니스 도메인에 관계없이 비즈니스 요구 사항에 맞게 특별히 훈련된 모델은 일반 모델보다 더 가치가 있습니다.
  • 투자 비용: OpenAI의 ChatGPT 모델을 사용하면 특정 비용이 발생할 수 있습니다. 마찬가지로 모델을 직접 교육하고 배포하려면 리소스를 투자하고 기술 비용도 발생해야 합니다. 예를 들어 40위안이라는 저렴한 비용으로 대형 모델 디버깅을 경험할 수 있지만 장기적으로 실행할 계획이라면 Nvidia RTX 3090 그래픽 카드를 구입하거나 클라우드 서버를 임대하는 것이 좋습니다. 따라서 장단점을 잘 따져보고 특정 상황에 가장 적합한 솔루션을 선택해야 합니다.
  • DolphinScheduler: Apache DolphinScheduler의 워크플로를 사용하면 전체 교육 프로세스를 자동화하여 기술 장벽을 크게 줄일 수 있습니다. 알고리즘에 대한 광범위한 지식이 없더라도 이러한 도구의 도움을 받아 자신만의 모델을 성공적으로 훈련할 수 있습니다. 대규모 모델 교육을 지원하는 것 외에도 DolphinScheduler는 빅 데이터 일정 관리 및 기계 학습 일정 관리도 지원하므로 기술 전문가가 아닌 직원도 빅 데이터 처리, 데이터 준비, 모델 교육 및 모델 배포를 쉽게 처리할 수 있습니다. 게다가 오픈소스이기 때문에 무료로 사용할 수 있습니다.
  • 오픈 소스 대형 모델에 대한 법적 및 규제 제약: DolphinScheduler는 시각적 AI 워크플로우 도구일 뿐이며 오픈 소스 대형 모델을 제공하지 않습니다. 오픈 소스 대형 모델을 사용하고 다운로드할 때 각 모델과 관련된 다양한 사용 제한 사항을 인지하고 해당 오픈 소스 라이선스를 준수해야 합니다. 이 기사에 제공된 예는 개인적인 학습 및 경험 목적으로만 사용됩니다. 대형 모델을 사용할 때는 오픈 소스 모델 라이선스를 준수하는지 확인하는 것이 중요합니다. 또한 국가마다 데이터 저장 및 처리에 관한 엄격한 규정이 다릅니다. 대형 모델을 사용하는 경우 해당 지역의 특정 법적 규정 및 정책을 준수하도록 모델을 사용자 정의하고 조정해야 합니다. 여기에는 현지 개인 정보 보호 및 민감한 정보 처리 규정을 준수하기 위한 모델 출력의 특정 필터링이 포함될 수 있습니다.


여기에도 게시되었습니다.