본문 바로가기
카테고리 없음

챗GPT 개발자 핸드북 요점 정리

by 랴망 2024. 1. 14.

 

  • 기본 개념
    • 생성형 AI
      • "사람의 언어를 알아듣고 자연어로 대답도 한다!"
        • 의도 이해하기: ~~에 대한 이야기를 하는구나
        • 의도를 충족하기 위해 뭘 해야하는 지 계획 세우기: ~~에 대한 기록을 찾아보자. 그리고 ~~의 배경으로 나올만한 말뭉치도 찾아보자.
        • 계획 실행하기: 이런 정보들을 가져올 수 있었어.
        • 결과물을 가져와서 알아듣기 쉽게 대답하기: 이제 가져온 것들로 말을 만들어보자! 
    • 프롬프트 엔지니어링: AI ㅁ델이 좋은 결과물을 내도록 잘 지시하는 방법 
    • 파라미터
      • temparuture: 텍스트의 창의성/무작위성 
        • 높을수록 다양하고 예측 불가 / 낮을수록 일관되고 예측 가능
      • Frequency Penalty: 자주 사용되는 단어나 문구에 페널티 부여
        • 높을수록 창의적인 표현 / 낮을수록 일반적인 표현
      • Presence Penalty: 새로운 개념이나 아이디어에 패널티 부여
        • 높을수록 새로운 개념과 아이디어 / 낮을수록 알려진 개념이나 아이디어
      • Best Of: 여러번 시도 후 최고의 결과 선택
        • 높을수록 품질 높고 처리시간 길어짐
    • RAG (검색 기반 생성, Retrieval Augmented Generation)
      • 환각을 줄이기 위한 방법 중 하나로, '검색'을 GPT가 아니 내가 원하는 데이터 안에서 수행하고 답변 생성만 GPT에게 맡기는 것 
      • 사용자 질문을 언어 모델이 직접 전달하는 대신, 시스템이 질문과 관련된 문서를 '검색' -> 해당 문서들을 원래의 질문과 함께 언어 모델로 전달하여 자연어 답변 '생성'
    • 토큰: 언어 모델이 텍스트를 처리하는 단위
      • 1개의 토큰은 대략 4개의 문자에 해당, 영어는 0.75개의 단어에 해당 
      • GPT 모델은 프롬프트와 생성된 출력을 합친 숫자로 토큰 수 제한 (토큰 1천개 당 가격 제한)
    • 임베딩: 말뭉치들 속에 특정 단어나 문장이 어떤 위치의 무엇과 가장 가까운 지 컴퓨터가 쉽게 찾을 수 있는 형태로 변환 -> 컴퓨터가 단어나 문장 사이의 관계를 이해하고 문장을 생성하거나 분류 가능 (vs. 키워드 기반 검색)
      • 토큰 사이즈대로 문서를 조금씩 잘라,
      • 각 청크(덩어리)마다 임베딩해서(숫자로 바꿔서)
      • 벡터 DB에 저장
      • 이후, 자연어 질문(검색 쿼리) 이 들어오면 질문을 임베딩하여 가장 가까운 내용 찾기  
    • 컴플리션 (문장 그럴듯하게 완료하기) / 인스트럭트 (지시 사항 실행 능력)
    • 할루시네이션
      • 줄이는 방법: 엄하게 지시 / 소스 제한 / 플러그인 사용(인터넷 검색 허용)/ 프로그래밍으로 데이터 전처리로 소스 제한 or 모델 파라미터 설정 or 생성된 답변을 프로그래밍 후처리로 검증 등 
    • few shot: 예시 주기
    • 멀티 모달
    • 랭 체인: LLM 개발을 쉽게 만들어주는 소프트웨어 프레임워크 
      • 개념
        • 다양한 AI 모델, 에이전트, 프롬프트를 구조적으로 만들고 연결할 수 있는 파이썬 라이브러리
      • 활용
        • 여러 모델이 순서대로 상호작용해야하는 복잡한 AI 앱 만들 때 활용
        • 검색엔진, 계산기, 위키피디아 같은 외부 도구를 쓰거나, 인풋 데이터 제한/후처리 데이터 체크 가능 
        • GPT 웹사이트에만 갇혀 질문을 주고받는 제한에서 탈출!
      • 구성요소
        • 프롬프트 템플릿
        • LLM
        • Document Loaders
        • Utills
        • Indexes
        • Chain
        • Memory
        • Agent
    • 확장: GPT Store/플러그인/프롬프트 마켓플레이스 / 코파일럿
      • 코드인터프리터
        • 데이터 분석, 시각화, 데이터 클리닝, GIF이미지 동영상 변환, 이미지 설명, PDF 데이터 추출 등
      • 깃허브 코파일럿
        • IDE 환경에서 개발 시 자동완성 제안 (코드 작성에 필요한 내용 입력하거나 원하는 기능을 주석으로 작성 시, 자동완성 제안)
    • GPT 3.5 vs GPT 4
      • 데이터 22년 1월까지만 학습 vs 23년 4월까지학습 (Turbo)
      • 무료 vs 유료 상품인 ‘ChatGPT 플러스’를 통해 사용 가능  
      • 인터넷 검색 불가 vs 가능 (플러그인)
        • URL 요약, 지정한 사이트에서 검색 불가
      • 토큰 제한 
        • PDF, 책 요약 불가
      • 텍스트 input only vs 멀티모달 
    • 보안: 프롬프트 주입/탈옥/유출
  • 기본 사용 방법
    • 내용이 길땐 구역 확실히 정해주기
      • ex. <문단> 안의 내용을 영어로 번역해줘. <문단> english ~~~ </문단>
    • 답변 방식 확실히 정해주기
      • ex. 표 / JSON 포맷 / HTML 테이블 / 컴퓨터 언어 코드 / CSV /그래프 등 
    • 예시 들어주기 (few-shot examples)
    • 생각의 연결 고리 (Chain of Thought)
    • 생각의 나무 (Tree of Thought)
    • 프롬프트 생성도구
      • AIPRM:크롬 익스텐션/마케팅 특화/무료
      • FlowGPT: 웹/생산성/무료
      • promptbase: 프롬프트 마켓플레이스 / 고퀄리티 SEO, 마케팅, 코딩 및 다양한 LLM 지원/유료
      • PromptGenie: 한국어 지시를 영어 프롬프트로 변환하여 한국어 결과물 출력 
      • GPT for Sheets and Docs: 구글 스프레드시트 요약/편집/포맷팅

 

  • 업무 활용 방법
    • 미팅 녹취록을 주고 Action item, 특정 주제 관련 이야기 도출하기
    • 마케팅 eDM/카피 쓰기
    • 이메일 고치기 
    • 기획 문서 작성하기
    • 테스트용 데이터 만들기 
    • 업무 툴 추천 / 업무 접근 방식 찾기 (데이터 분석 방법, 프로젝트 관리, 개발 요구사항 등)
    • 개발: 코드 설명하기/ 읽기쉽게 다시쓰기 / 코멘트 더하기 / 알고리즘 복잡도 묻기 / 버그 설명하기 / 코드 리뷰 받기
  • 커리어 활용 방법
    • 이력서 엔지니어링
      • 업무 목록을 기재하고, 적절한 직군 요청하기
      • 이력서의 내용 & 원하는 직무의 JD를 주고 이력서 내용 개선 요청하기
      • 내 이력서와 JD에 해당하는 부분과 모자라는 부분을 표로 정리 요청하기
        • 부족한 부분에 대해 보완할 수 있는 방법 묻기 
    • 면접 준비
      • 롤플레잉을 요청하되, 대답은 질문을 명확히하기 위한 설명만 하고 다른 대답은 하지 않게 요청하기
      • 직무소개와 회사소개를 기반으로 마지막으로 면접관에게 할  질문 N개 요청하기