- 기본 개념
- 생성형 AI
- "사람의 언어를 알아듣고 자연어로 대답도 한다!"
- 의도 이해하기: ~~에 대한 이야기를 하는구나
- 의도를 충족하기 위해 뭘 해야하는 지 계획 세우기: ~~에 대한 기록을 찾아보자. 그리고 ~~의 배경으로 나올만한 말뭉치도 찾아보자.
- 계획 실행하기: 이런 정보들을 가져올 수 있었어.
- 결과물을 가져와서 알아듣기 쉽게 대답하기: 이제 가져온 것들로 말을 만들어보자!
- "사람의 언어를 알아듣고 자연어로 대답도 한다!"
- 프롬프트 엔지니어링: AI ㅁ델이 좋은 결과물을 내도록 잘 지시하는 방법
- 파라미터
- temparuture: 텍스트의 창의성/무작위성
- 높을수록 다양하고 예측 불가 / 낮을수록 일관되고 예측 가능
- Frequency Penalty: 자주 사용되는 단어나 문구에 페널티 부여
- 높을수록 창의적인 표현 / 낮을수록 일반적인 표현
- Presence Penalty: 새로운 개념이나 아이디어에 패널티 부여
- 높을수록 새로운 개념과 아이디어 / 낮을수록 알려진 개념이나 아이디어
- Best Of: 여러번 시도 후 최고의 결과 선택
- 높을수록 품질 높고 처리시간 길어짐
- temparuture: 텍스트의 창의성/무작위성
- 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 멀티모달
- 보안: 프롬프트 주입/탈옥/유출
- 생성형 AI
- 기본 사용 방법
- 내용이 길땐 구역 확실히 정해주기
- 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개 요청하기
- 이력서 엔지니어링