Skip to content

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

Projects

  • ChatGPT for Google
    • 구글 검색결과 옆에 ChatGPT 답변을 표시하는 크롬 확장 (github.com/wong2)
    • 구글 검색에 입력한 문구를 ChatGPT에게 똑같은 물어본 후 해당 답변을 결과 페이지에 같이 표시
    • ChatGPT에는 자신의 아이디로 로그인 필요
    • 소스에서 직접빌드하거나, 크롬/엣지/Firefox 에 설치 가능 (웹스토어)
    • Kagi / DuckDuckGo 지원 PR도 올라와 있어서 곧 추가 될듯
  • Awesome ChatGPT Prompts
  • Poe from Quora - ChatGPT가 C-3PO가 아니라 평범하게 말한다면?
  • Jasper Chat - ChatGPT보다 더 나은 문장, 더 상상력이 풍부한
  • Youchat - ChatGPT + 검색
  • Ghostwriter Chat from Replit - AI와 대화하면서 코드 생성, 디버그
  • Perplexity.ai - GPT3.5 + Bing. 대화형은 아니지만 검색결과를 합쳐서 훨씬 유용
  • ChatHub - ChatGPT/Bing/Bard를 동시에 사용하는 크롬 확장
  • Scrapeghost - GPT를 이용한 웹 스크래핑 라이브러리
  • Telegram ChatGPT Concierge Bot (+ Voice!)
    • ChatGPT와 텔레그램 및 음성을 이용한 컨시어지 봇 오픈소스
    • ChatGPT에 LangChainJS로 프롬프트 구성 및 히스토리 기억, 구글과 연동
    • OpenAI Whisper로 음성을 인식
    • Play.htText-To-Voice 생성하여 음성으로 대답
  • ChatGDB - GDB 디버거 안에서 ChatGPT 사용하기
  • GPT-4 & LangChain - Create a ChatGPT Chatbot for Your PDF Files
    • 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
  • HuggingChat - 오픈소스 ChatGPT 대체제
  • ChatPDF - https://www.chatpdf.com/
    • PDF를 업로드 하거나 PDF의 URL을 넣은 뒤, PDF의 내용에 대해 대화 가능
    • 업로드하면 PDF의 모든 문장에 대해서 시맨틱 인덱스를 생성하고, 질문에 답변할 때 관련 문장을 찾아서 ChatGPT API로 답변하는 형식
    • 무료 버전에서 하루에 PDF 3개 / 50개 질문까지 지원. (PDF는 최대 120p 까지, 10MB 이하)
  • GirlfriendGPT - ChatGPT 4로 AI 여자친구 만들기
  • GPT-Code UI - OpenAI ChatGPT 의 Code Interpreter 오픈소스 구현버전

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를 이용한 기본 채팅)

Full (데이터 있음, 모델 가중치 있음, TUI와 GUI를 포함한 팬시한 채팅 시스템)

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

Favorite site

Article