- 참고: https://velog.io/@citron03/web3.js%EC%97%90-%EB%8C%80%ED%95%B4%EC%84%9C

 

 

- web3는 각 사용자가 노드가 되어 탈중앙화된 분산네트워크를 구성하여, 네트워크에서 정보를 읽거나 쓸 뿐만 아니라, 서비스를 제공할 수도 있는 이코노미를 의미한다.
- ⛲ web1은 클라이언트(사용자)가 서버로부터 컨텐츠를 제공받기만 했던 웹을 의미한다.
- 🎡 web2는 AJAX의 등장으로 클라이언트가 서버와 상호작용을 하여 서버에 데이터를 기록할 수 있는 웹을 의미한다.
- web2에서 소수의 플랫폼 기업이 사용자의 개인정보를 제공받아 이를 통해서 광고와 같은 수익을 창출하였다.
- 또한, web2에서는 해커들이 악의적으로 사용자들의 개인정보를 탈취하는 문제가 있다. ⚓ 또한, 개인 정보의 보안은 플랫폼 기업에 의존해야 한다.
- web3는 위와 같은 문제를 해결하고자 등장하였다.
- web3는 중앙집중적인 플랫폼 이코노미를 벗어나, 모든 참여자가 플랫폼이 될 수 있는 분산형 인터넷을 의미한다. ✈ web3는 이를 구현하기 위해서 블록체인 기술을 사용한다.
- web3에서는 모든 데이터가 공유되며, 동시에 암호화 기술을 통해 개인정보의 제공없이 사용자는 신원을 식별할 수 있다.

 

[0] CLI(command-line interface) 시스템 환경 세팅
 
 
1. openai 라이브러리 설치
$ pip install --upgrade openai
 
 
 
 
2. OPENAI API KEY 환경 변수 추가
$ export OPENAI_API_KEY="{OPENAI_API_KEY}"

 

 

 


 
 
 
 
[1] 학습 데이터 생성
 
<prompt와 completion는 무엇인가?>
- prompt: 쉽게 말해, 요청문(명령문 또는 질문)이다.
- completion: 쉽게 말해, prompt에 대한 응답문이다.
 
 
 
<명령어>
$ openai tools fine_tunes.prepare_data -f {LOCAL FILE}
 
 
 
<생성되는 TRAINING FILE(학습 데이터 파일) 이름>
{LOCAL FILE 이름}_prepared.jsonl
 
 
 
 
<LOCAL FILE 포맷 조건>
- 지원하는 파일 확장자 종류: CSV, TSV, XLSX, JSON, JSONL
- 데이터 구조: prompt와 completion가 서로 1:1 대응하여 쌍을 이루는 데이터 목록
- prompt와 completion 작성 조건:
   => "TRAINING FILE(학습 데이터 파일) 포맷 조건"에 맞게 학습 데이터 파일이 생성되도록 포맷 작성.
   =>  학습 데이터량이 많을수록 또는 prompt와 completion 포맷을 최적화할수록 prompt가 다양한 포맷으로 입력되더라도 원하는 completion을 응답 받을 수 있다.
 
 
 
 
 

 
 
 
 
[2] 학습 모델 생성
 
<명령어>
$ openai api fine_tunes.create --training_file {TRAINING FILE의 ID 또는 파일 경로} --model {GPT v3.0 BASE MODEL}
 
 
<TRAINING FILE(학습 데이터 파일) 포맷 조건>
- prompt 포맷 조건:
   => 문장의 끝에는 동일한 suffix(예를 들어, "\n\n###\n\n")가 존재해야 한다.
- completion 포맷 조건:
   => 문장의 시작에는 공백(whitespace)이 존재해야 한다.
   => 문장의 끝에는 특정 stop sequence(예를 들어, "###")가 존재해야 한다.
 
 
<GPT v3.0 BASE MODEL 종류>
- text-curie-001
- text-babbage-001
- text-ada-001
- davinci
- curie
- babbage
- ada

 

 

 


 

 

 

[3] 학습 모델 테스트
 
1. OpenAI Playground 사이트 접속 (https://platform.openai.com/playground)
 
2. 다음과 같이 항목 설정
- Mode: Complete
- Model: (학습시킨 모델명으로 설정)
- Temperature: (기본적으로 0으로 설정)
- Maximum length: (completion 데이터의 최대 길이보다 크게 설정)
- Stop sequences: (completion 포맷의 suffix로 설정)
- (나머지 항목들은 그대로 두기)
 
3. prompt 입력 후 [Submit] 버튼 클릭
 
4. 생성된 응답 값 확인

1. API는 영원하다!
2. 하위 호환성을 지켜주세요.
3. 고객 사용 사례에서 거꾸로 만드세요.
4. 오류가 명시적인 API를 만드세요.
5. 바로 목적과 사용법을 이해할 수 있는 API를 만드세요.
6. 구현 세부 정보는 누출되지 않게 신경을 쓰세요.

+ Recent posts