ChatGPT
ChatGPT is a prototype artificial intelligence chatbot developed by OpenAI that focuses on usability and dialogue. The chatbot uses a large language model trained with reinforcement learning and is based on the GPT-3.5 architecture.
ChatGPT was launched in November 2022 and has garnered attention for its detailed responses and historical knowledge, although its accuracy has been criticized.
Categories
- Generative Pre-trained Transformer#Store - GPTs 스토어의 분야별 추천 모델 모음
Projects
- ChatGPT for Google
- 구글 검색결과 옆에 ChatGPT 답변을 표시하는 크롬 확장 (github.com/wong2)
- 구글 검색에 입력한 문구를 ChatGPT에게 똑같은 물어본 후 해당 답변을 결과 페이지에 같이 표시
- ChatGPT에는 자신의 아이디로 로그인 필요
- 소스에서 직접빌드하거나, 크롬/엣지/Firefox 에 설치 가능 (웹스토어)
- Kagi / DuckDuckGo 지원 PR도 올라와 있어서 곧 추가 될듯
- ChatGPT와 텔레그램 및 음성을 이용한 컨시어지 봇 오픈소스
- ChatGPT에 LangChainJS로 프롬프트 구성 및 히스토리 기억, 구글과 연동
- OpenAI Whisper로 음성을 인식
- Play.ht 로 Text-To-Voice 생성하여 음성으로 대답
- GPT4 & LangChain - PDF를 위한 ChatGPT 챗봇 만들기
- 다수의 큰 PDF 파일을 LLM에 로딩해서 파일 내용에 대해 대화 가능
- PDF를 넣으면 텍스트를 추출하여 다수의 Chunk로 만들고, Embedding을 생성하여 Pinecone 벡터스토어에 저장
- 질문에 대해서 OpenAI Embeddings API로 문서의 관련 부분을 찾아서 GPT에 넣고 답변을 생성
- LangChain + Pinecone + TypeScript + OpenAI Embeddings / GPT-3.5 & GPT-4 + Next.js
- PDF를 업로드 하거나 PDF의 URL을 넣은 뒤, PDF의 내용에 대해 대화 가능
- 업로드하면 PDF의 모든 문장에 대해서 시맨틱 인덱스를 생성하고, 질문에 답변할 때 관련 문장을 찾아서 ChatGPT API로 답변하는 형식
- 무료 버전에서 하루에 PDF 3개 / 50개 질문까지 지원. (PDF는 최대 120p 까지, 10MB 이하)
Alternative
ChatGPT는 채팅을 위한 RLHF가 적용된 GPT-3.5
채팅 시스템을 위한 다른 언어 모델을 적용한 오픈소스들만 나열
Bare (데이터 없음, 모델 가중치 없음, 채팅 시스템 없음)
- lucidrains/PaLM-rlhf-pytorch - Implementation of RLHF (Reinforcement Learning with Human Feedback) on top of the PaLM architecture. Basically ChatGPT but with PaLM
- carperai/trlx - A repo for distributed training of language models with Reinforcement Learning via Human Feedback (RLHF), supporting online RL up to 20b params and offline RL to larger models. Basically what you would use to finetune GPT into ChatGPT.
Mildly bare (데이터 있음, 모델 가중치 있음, API를 이용한 기본 채팅)
- bigscience-workshop/xmtf - This repository provides an overview of all components used for the creation of BLOOMZ & mT0 and xP3 introduced in the paper Crosslingual Generalization through Multitask Finetuning.
Full (데이터 있음, 모델 가중치 있음, TUI와 GUI를 포함한 팬시한 채팅 시스템)
- togethercomputer/OpenChatKit - OpenChatKit provides a powerful, open-source base to create both specialized and general purpose chatbots for various applications.
- Alternative Web UI: Akegarasu/ChatGLM-webui
- Slim version (remove 20K image tokens to reduce memory usage): silver/chatglm-6b-slim
- Fintune ChatGLM-6b using low-rank adaptation (LoRA): lich99/ChatGLM-finetune-LoRA
- Deploying ChatGLM on Modelz: tensorchord/modelz-ChatGLM
- Docker image with built-on playground UI and streaming API compatible with OpenAI, using Basaran: peakji92/chatglm:6b
Complicated (세미 오픈소스, 실제론 오픈소스 아님, 클로즈 모델 기반,..)
- tatsu-lab/stanford_alpaca - This is the repo for the Stanford Alpaca project, which aims to build and share an instruction-following LLaMA model.
- Related links
Fine-tuning
hyper parameters
OpenAI의 GPT 모델들의 API 호출시 사용 가능한 하이퍼파라미터들이 있습니다. 하이퍼파라미터는 훈련되는 신경망 가중치가 아니라 사용자가 직접 입력하는 매개변수로, 모델의 응답에 영향을 미치게 됩니다. 주요 하이퍼파라미터들은 다음과 같습니다.
하이퍼파라미터 | 기본값 | 범위 |
temperature | 1 | 0.0~2.0 |
top-p | 1 | 0.0~1.0 |
max_tokens | inf | 정수 |
frequency_penalty | 0 | -2.0~2.0 |
presence_penalty | 0 | -2.0~2.0 |
각 하이퍼파라미터를 통해 얻을 수 있는 결과를 살펴봅시다.
temperature
결과의 다양성과 예측 가능성을 조절합니다. 값이 클수록 더 무작위적인 응답(더 창의적인 응답)을 얻을 수 있습니다. 예측 가능하고 일관된 응답을 얻어야 할 경우에는 0에 가까운 값을 사용합니다. 보통 아래 나오는 top_p나 temperature 중 하나를 조정합니다.
top_p
단어 샘플링시 사용하는 확률 분포의 상위 부분을 의미합니다. 예를 들어, top_p=0.9라면 확률 분포 상위 90% 내에서만 단어를 샘플링합니다. 이렇게 되면 이상치를 제거하는 효과를 얻을 수 있겠죠. top_p=0.1이라면 상위 10% 내의 확률 분포 내에서만 단어를 샘플링하므로 좀 더 예측 가능한 결과를 얻을 수 있습니다.
max_tokens
답변의 최대 토큰 수를 제한할 때 사용합니다.
presence_penalty
0보다 큰 값을 사용할 경우 앞에서 나왔던 단어(토큰)가 또 나오는 것을 억제합니다. 즉, 새로운 내용을 이야기할 가능성이 높아집니다.
frequency_penalty
0보다 큰 값을 사용할 경우 특정 단어(토큰)의 출현 빈도가 높아지는 것을 억제합니다. 즉, 같은 말을 문자 그대로 반복하는 것을 막습니다.
Predicted Outputs
Chat Completion API에서 주로 예측 가능한 응답이 있는 경우 응답 속도를 높이는 기능. prediction 매개변수를 사용하여 예상되는 출력을 모델에 제공하여 효율적으로 결과를 생성할 수 있음. 현재(2024-11-24) gpt-4o 및 gpt-4o-mini 모델에서만 지원됨.
- OpenAI는 최근 Predicted Outputs라는 강력한 기능을 공개했음
- 기술 미디어에서 크게 주목 받지 못했지만, 이는 주목할 만한 가치가 있음
- 이 기능은 API 응답 대기 시간을 줄이고, 미리 예상 가능한 출력물의 생성 속도를 크게 향상 시킬 수 있음
- 이미 대부분의 콘텐츠가 예상 가능한 경우 해당 콘텐츠를 모델에 예측값으로 제공 가능
- 모델은 이 예측값을 사용해 응답 생성을 가속화하고 성능을 향상시킴
제약 사항
- 모델 호환성: gpt-4o 및 gpt-4o-mini 모델에서만 사용 가능
- 비용: 거부된 예측 토큰도 생성된 토큰과 동일한 비용이 부과됨. 비용 관리를 위해 rejected_prediction_tokens를 모니터링해야 함
- 지원되지 않는 매개변수:
- n (1보다 큰 값)
- logprobs
- presence_penalty (0보다 큰 값)
- frequency_penalty (0보다 큰 값)
- max_completion_tokens
- tools (함수 호출 불가)
See also
- OpenAI
- GPT
- LLM
- LLaMA - Meta가 공개한 65b 파라미터 LLM
- ChatLLaMA - LLaMa 기반 ChatGPT의 오픈소스 구현체
- OpenChatKit - ChatGPT를 구현 가능한 오픈소스 프로젝트
- Alpaca.cpp - ChatGPT 같은 모델을 개인 노트북에서 실행하기
- Vicuna - 90%* ChatGPT 품질로 GPT-4에 감동을 주는 오픈 소스 챗봇
- nanoGPT
- ColossalChat - ChatGPT를 복제하기 위한 RLHF 파이프라인 오픈소스 솔루션
- Databricks - ChatGPT와 비슷한 Dolly 2.0 오픈소스로 공개
- AgentGPT - 브라우저에 AI Agent 도입하기
- DeepSpeed Chat - RLHF를 이용한 ChatGPT-like 모델 훈련용 프레임워크
- Open Assistant - 모두를 위한 대화형 AI 공개
- Auto-GPT - GPT-4를 자동화 하는 실험적 오픈소스
- MiniGPT-4 - 고급 LLM을 이용한 비젼-언어 이해도 향상
- LocalAI - 셀프호스트 가능한 OpenAI 호환 API
- langchain
Favorite site
Article
- [원문] Building A Virtual Machine inside ChatGPT
- ChatGPT에게 리눅스 터미널 처럼 동작하라고 지시한 후에 다양한 명령을 내려봄
- ls, cd, touch, cat 등의 기본 동작이 가능. 파일시스템도 이해하고 있음
- Dockerfile 도 이해서 Docker 실행이 가능함
- 외부로 ping / curl 도 가능하며, lynx로 브라우징도 가능
- ChatGPT URL로 Curl을 보내서 자기 자신에게 물어보도록 지시해서 답변 받는게 가능함
- 자기 자신에게 리눅스 터미널로 동작하라고 curl로 명령을 내려봄(이 글의 처음 시작으로 재귀..)
- 이제 ChatGPT가 데이터베이스의 버그를 찾고 있습니다
- 오픈소스 OLAP 프로젝트인 StarRocks가 ChatGPT와 다른 자동화 테스트 도구들을 비교