23.06.15
DEVOTEE를 활성화 시키면
지금 작성한 커뮤니티 글에 대해 1개의 댓글을 달아줍니다.
버튼을 누르면 글 수정 시 ChatGPT가 작성한 댓글이 수정됩니다.
| 컨텐츠 유형 | 제목 | 저장일 | 삭제 |
|---|
본인인증 로그인에 실패하였습니다.
회원이 아니시거나 본인인증 등록이
완료되지 않은 사용자입니다.
주변에서는 AI 시대가 온다고(이미 와 있지만) 하고 있고, 회사에서도 사내 챗봇을 도입하는 등 많은 변화가 느껴지고 있습니다.
하지만 이 모든 일은 남의 일이려니 하는 생각 이었죠..😅
몇 일전 우연히 Cursor 라는 VS Code 기반의 코드 편집기를 봤는데, 사용자가 입력한 말 몇 마디로 프로그램을 짜 주는 모습을 보고 정말 놀라움을 느끼게 됐습니다.
Chat GPT로 보고서를 요약하고, Cursor 로 코드를 만들고 디버깅 및 실행까지 해주는 이런 일상들이 앞으로 가속화 될 것 같다는 생각에 늦었지만 AI 에 대한 학습을 시작해 보려고 이 글을 작성하게 됐습니다.
여러 전문가분들이 많으시지만 AI 에 대한 관심만 있고 실제 어떻게 사용하는지 모르는 분들과 함께 공부하는 마음으로 시작해 보려고 합니다.
AI에 대해 전혀 경험이 없고, 모르다보니 LLM 이라는 단어는 많이 들어봤는데 도대체 LLM 은 뭐고, Lang Chain 은 어떤 것인지 먼저 알아 보기로 했습니다.
AI 에 대해서 잘 모르시는 분들도 챗 GPT 에 대해서는 아실 거에요. 저도 개인적으로 Chat GPT 유료구독(Chat GPT Plus)를 $20 에 월 구독해서 사용하고 있습니다.
이걸로 영어공부도 하고, 해외 여행가서 번역으로도 사용하고 회사에서도 아주 유용하게 잘 사용을 하고 있어요.
ChatGPT 는 사용자와 대화를 하면서 정보를 주는 아주 훈련이 잘 된(fine-tuning) 채팅용으로 개발한 서비스이고 실제 ChatGPT는 GPT-4, GPT3.5 등 언어 모델을 가지고 있습니다.
이 GPT4, GPT3.5 등이 아주 많은 데이터를 바탕으로 학습을 한 모델이라고 보면 되고, 이 모델을 대화형으로 사용하기 위한 서비스가 ChatGPT 라고 보면 될것 같아요.
GPT4, GPT3.5 등을 LLM(Large Language Model) 이라고 합니다. OpenAI 라는 회사에서 만들었고 이 외에도 다양한 LLM Model 등이 있습니다.
아래 이미지는 Chat GPT 에게 물어본 주요 LLM 모델 들이에요.
(요즘 핫했던 딥시크가 빠져 있네요)
LLM은 방대한 정보를 가지고 있지만 한계가 있습니다.
먼저 기억력이 없는 건데요.. Chat GPT 랑 얘기하다보면 문맥을 계속 이어서 대화할 수 있지만 LLM 은 기억력이 없기 때문에 앞에서 한 대화내용을 뒤에서 이어가지를 못 합니다.
그리고 인터넷 검색을 하지 못하는(옵션을 키면 된다고 들었습니다) 한계가 있기 때문에 말은 그럴싸하게 대답하지만 그 정보가 엉터리 일 수가 있어요.(환각 이라고도 합니다)
오직 텍스트 처리만 가능하기 때문에 문서나 다른 백앤드 정보를 가져오지 못하는 등의 한계점이 있습니다.
그래서 Lang Chain 이라는 프레임워크가 만들어지게 되었고, LLM 을 정말 사람처럼 대화도 하고 실시간 정보 검색도 하고 외부 도우 사용도 가능하게 하는 기능을 제공하게 됩니다.
쉽게 말하면 GPT3.5 를 Lang Chain 을 사용해서 개발해서 Chat GPT 를 만들었다고 보면 될것 같습니다.
사내 콜센터나 헬프데스크 용으로 챗 봇 서비스를 많이 사용하실 거에요.
그러면 Chat GPT를 사용하면 되지 않을까? 라는 생각이 들겠지만 몇 가지 이유에서 Chat GPT 를 바로 사용하지 못합니다.
먼저, 비용적인 문제가 있을 거에요. 개인이 학습용으로 사용하는 것이면 모르겠지만, 많은 임직원들이 사용하게 되면 사용량이 많기 때문에 비용이 발생하게 됩니다.
GPT 모델은 하나의 문자 단위로 처리하지 않고 단어 조각으로 처리하는데 이 조각을 토큰(Token) 이라고 합니다.
영어는 한단어가 1~2토큰 정도 되고, 한글은 자음과 모음이 있어서 조금 더 토큰이 많이 발생 합니다.
그리고 사내에서 사용하는 서비스는 그 분야에 전문적인 응답이 필요한데 GPT-3.5, GPT-4 같은 LLM 은 너무 방대한 내용을 가지고 있기 때문에 사용자가 원하는 답이랑 완전 다른 결과를 낼 수가 있습니다.
그래서 회사 문서, 메뉴얼, 내부 게시판 등을 데이터 화 해서 검색을 할 필요가 있습니다.(RAG)
즉, LLM 이 그럴듯 하게 지어내는 정보가 아닌 "진짜 문서나 정보를 먼저 검색하고 그걸 기반으로 정확하게 답을 생성하는 방식" 이 필요합니다.
회사에서 챗 봇 서비스를 사용하기 위해서는 대략 아래와 같은 기술들이 필요할 수 있습니다.
언어 모델(LLM) : Open A GPT-4, Claude, Gemini...
프레임 워크 : LangChain, RAG 기반
웹 UI : 사용자가 입력하는 웹 화면 필요
DB/문서저장 : Chroma(백터 DB), PostagreSQL
사용자 인증 : 회사 인트라넷에 연동된 사용자 관리, 인증
ChatGPT같은 챗봇을 만드는 것은 무척 어렵고 복잡한 일입니다.
하지만, Open-AI 에서 제공하는 API 를 사용해서 코드 상으로 LLM(gpt 3.5 turbo) 에게 lang chain 을 사용해서 질의를 보내보는 실습(프로그램에서 사용하는 hello world 와 비슷하게)을 해보려고 합니다.
먼저 준비가 몇 개 필요한데요..
Open API 에 회원가입이 되어 있어야 하고, 결재 수단이 등록되어야 합니다. Open API 에 회원가입을 하게 되면 $5 를 기본으로 주게 되는데요, 결재정보를 등록해야지만 API Key 를 사용해서 접근이 가능 합니다.
정말 중요한 점인데요, API 키는 절대 외부에 알려지면 안 됩니다. 그리고 혹시 모르니 Budget 을 최대한 작게 가져가는 것이 좋습니다.
https://colab.google/ 에서 회원가입.
자바스크립트도 사용할 수 있지만, 파이썬을 주로 사용하시니 로컬에 파이썬을 설치하셔서 사용하셔도 되고..
여러가지 설정 등이 복잡하면 구글 colab 에 접속하셔서 사용하셔도 됩니다.
굳이 유료 구독을 사용하지 않아도 무료로도 충분 합니다.
1. Colab 에 접속해서 새로운 노트북을 하나 만들어 줍니다. 저는 LLM실습 이라고 했어요.
2. langchain 과 langchain-openai를 install 해줍니다.
!pip install langchain
!pip install langchain-openai3. API-KEY 를 입력해 줍니다. ''사이에 API-KEY 를 입력해 주세요. 절대 유출되면 안됩니다.
import os
os.environ["OPENAI_API_KEY"] = '여러분이 발급받은 API-KEY를 입력해 주세요'4. 아래 코드를 입력해 주세요. 플레이를 하면 출력이 되는 것을 볼 수 있습니다.
from langchain_openai import ChatOpenAI
from langchain_core.messages import HumanMessage
from langchain.callbacks.streaming_stdout import StreamingStdOutCallbackHandler
chat = ChatOpenAI(model_name="gpt-3.5-turbo", temperature=1, streaming=True, callbacks=[StreamingStdOutCallbackHandler()])
response = chat.predict("why python is the most popular language? answer in Korean")
print(response)첫 번째로 물어 봤던 내용이 상세하게 잘 답변이 되는 것을 볼 수 있습니다.
Hello World 프로그램을 작성을 해본건데요..
Streaming을 사용하고, StreamingStdoutCallbackHandler() 콜백을 사용해서 타이핑 하듯 글자가 입력되는 것을 볼 수 있습니다.
이러면 대답이 좀 늦더라도 애가 뭔가 하고 있구나 라고 생각을 할 수 있겠죠?
이상으로 그 동안 본인조차 궁금해 왔던 LLM, Lang Chain, RAG(가 왜 필요한지) 에 대해서 수박 쳐다보기 과정을 마쳤습니다. 아직 겉 핥기도 못한 셈인데요 😅
AI 에 대한 궁금증을 한번씩 정리해서 풀어볼 생각 입니다.
부족하지만 읽어 주셔서 감사드립니다.
DEVOTEE를 활성화 시키면
지금 작성한 댓글에 AI가 댓글을 달아줍니다.