개발/인공지능
-
chat gpt function, langchain개발/인공지능 2023. 11. 27. 20:14
Browsing Chat GPT(4.0) 한테 서울 날씨에 대해서 물어보자. Chat GPT는 특정 시점의 데이터를 기준으로 학습했기 때문에 현재 서울 날씨에 대한 데이터는 알 수 없다. 그래서 Chat GPT 는 Browsing 기술을 활용해 외부 사이트에서 날씨를 읽어와서 대신 답을 해준다. 사진의 예제에선 네이트 날씨를 참조해서 답변했다. 로직을 다이어그램으로 그려보면 위와 같다. APP 에서 받은 질문으로 외부에 날씨 API 를 조회하고 답변하는 식이다. 오픈되지 않은 데이터에 대한 요청 그런데 요청이 오픈된 데이터가 아니라면 어떨까? 위의 그림처럼 APP 에서 GameDB 에 유저가 몇명 있냐고 물어보자. 그러면 Chat GPT는 GameDB 가 뭔지 모르기 때문에 답변할 수 없다. 함수 정보 ..
-
Embedding, LangChain개발/인공지능 2023. 11. 13. 20:36
ChatGPT 에게 학습 데이터 전달하기 일반적으로 우리가 ChatGPT 에게 질문을 하는 것은 이미 정보를 학습한 LLM 모델에게 질문을 하는 것이다. 그런데 어떤 LLM 이든 모든 정보를 미리 학습하고 있을수는 없다 없다. 이럴 때는 LLM에서 응용할 수 있도록 정보를 미리 알려줘야 예상했던 답변을 얻을 수 있다. 예를 들어 올해 개봉한 영화 오펜하이머에 대해서 알려달라고 하면 Chat GPT 3.5 는 2004년도에 개봉된 “Eternal Sunshine of the Spotless Mind” 라는 영화에 대해서 알려준다. 원래 필요한 내용과 완전히 다른 내용을 말하고 있다. 하지만 프롬프트를 적절하게 사용해서 오펜하이머에 대한 내용을 전달하면 만족할만한 답변을 받을 수 있다. Embedding 오..
-
세이노 GPT 개발 후기개발/인공지능 2023. 11. 12. 11:27
최근 OpenAI 에서 제공하는 자기만의 GPT를 만들 수 있는 기능을 활용해서 세이노 GPT 를 만들었다. 학습자료는 세이노 PDF 를 사용했다. 처음에는 세이노 PDF 를 통째로 넣었는데 용량이 너무 커서 ChatGPT 에서 읽는데만 시간이 오래 걸렸고 노이즈가 많아서 그런지 답변도 정확하지 않았다. 그래서 사진 파일을 제외하고 변호사, 의사 상대하는 법처럼 부자가 되는 방법과 관련 없는 내용에 대해서는 생략하고 필요한 부분만 남겨 파일 사일즈를 400kb 이하로 줄였다. 튜닝 작업을 조금 거치고 나니까 만족할만한 답변이 나오기 시작했다. 어조까지 츤데레 스타일로 맞추니까 실제 저자가 내게 조언을 해주는 느낌이 난다. Public 에 공개를 했으니 사용하고 싶으신 분은 아래 링크로 들어가서 사용할 수..
-
Q-Network개발/인공지능 2018. 9. 12. 22:10
Q-Network 앞선 포스트에서 다룬 Q-Learning은 초기 학습 데이터 없이 주변을 탐사해가며 보상값을 최대화 하는 방향으로 환경 데이터의 파라미터의 값을 지속적으로 업데이트 하는 알고리즘이다. 그런데 만약 4x4처럼 작고 단순한 환경이 아니라 5000x5000이고 각 환경별로 선택 할 수 있는 경우의 수가 수십가지가 된다면 기존 알고리즘으로는 시간도 오래 걸릴 뿐만 아니라 모든 환경 데이터 값을 관리하는 것도 불가능하다. 이 문제는 Linear/Logical Regression에서도 겪어보았다. 학습에 사용되는 이미지의 크기가 커질수록 Feature의 값이 많아지게돼 기존의 방식 대로는 학습이 불가능했었다. 당시엔 이 문제를 해결하기 위해 Feature단위로 값을 분석하지 않고 인간의 뇌 구조를..
-
Q-Learning in Non-Deterministic World개발/인공지능 2018. 8. 19. 13:11
그림 1. Non Deterministic은 한가지 행동이 여러가지 결과를 만들 수 있는 환경을 의미한다. 그림1에서 빨간선은 Agent가 이동하기로 의도한 방향이고 파란선은 에이전트가 실제로 이동한 방향이다. Deterministic한 상황에서는 에이전트가 의도한 대로 항상 오른쪽으로만 이동한다. 그런데 그림 1과 같은 상황에서는 에이전트가 그림처럼 오른쪽으로도 이동할 수도 있고 위로도 이동할 수도 있다. 이처럼 한가지의 행동(Action)이 여러가지 결과를 내는 환경을 Non-Deterministic이라 부른다. 앞선 포스트에서 설명한 Q-Learning은 예전에 알고리즘 시간에 배웠던 Dynamic Programming(이하 DP)과 여러모로 유사한데 DP는 에이전트가 취한 행동이 항상 고정된 결과..
-
Q-Learning개발/인공지능 2018. 8. 19. 09:50
강화학습은 주변의 상태를 지속적으로 탐사해가며 미래에 주어지는 '보상' 값을 활용해 최적의 알고리즘을 찾는 학습법이다. 초기 학습데이터가 필요한 딥러닝과는 달리 초기의 학습데이터가 필요 없으며(물론 학습 데이터를 활용해서 성능을 높이기도 한다) 대신 어떤 조건에서 보상을 줄 것인지에 대한 정책과 탐사할 환경이 필요한 알고리즘이다. 국내에선 이세돌과 커제를 무참히 무찌른 알파고의 학습 알고리즘으로 알려져있다. Q-Learning은 대표적인 강화 학습 알고리즘으로 '특정 상태에서 어떤 결정을 내리는 것이 미래 보상을 가장 높여줄 것'인지에 대한 정책 데이터를 지속적으로 업데이트 하는 알고리즘이다. 강화학습을 배울 때 가장 먼저 접하는 알고리즘이며 수학 수식들이 난무해 이해하고 싶지 않고 할 수도 없을 것 같..
-
파이썬으로 AI 개발할 때 유용한 패키지 모음개발/인공지능 2018. 8. 7. 22:01
파이썬으로 인공지능을 개발할 때 자주 사용하는 패키지 세가지를 정리해봤다. 1. Pandas csv형태로 된 데이터 파일을 일어올 수 있는 라이브러리를 제공. 엑셀 파일을 함수 호출 한번으로 파이썬에서 사용할 수 있는 객체로 변환할 수 있다. 데이터 셋이 엑셀의 형태로 되어있는 경우가 많아 데이터 분석을 할 때 자주 사용하는 패키지중에 하나다. import pandas pd df_data = pd.read_excel('data.xlsx', encoding='utf-8') # 엑셀 데이터 읽어오기 리턴된 객체인 df_data에는 행을 추가하거나 삭제할 수 있는 기본적인 기능뿐만 아니라 새로운 속성을 추가하고 다른 데이터와 합칠 수 있는 기능도 제공한다. 꽤 많은 기능이 있으니 직접 사용하면서 익혀보는게 좋..
-
뉴럴네트워크(Neural Network)개발/인공지능 2017. 8. 18. 20:45
숫자 인식 코드를 분석 할 때 이미지 사이즈의 크기는 28x28이라서 총 784개의 feature를 두어서 구할 수 있었습니다. 그런데 실제로 사용하는 이미지는 이것보다 훨씬 크기가 큽니다. 바탕화면 해상도는 1920x1020이고 여기에 색깔을 넣기 위해 3차원까지 넣어서 총 요소(Element)들의 개수는 5,875,200(1920*1020*3)개가 됩니다. 요소들의 개수만큼 feature로 놓고 학습을 시킨다면 매우 시간이 오래 걸리겠죠? 그래서 인공지능 과학자들은 다른 방법을 고안했습니다. 과학자들은 연구에서 어려움이 있을 때마다 주로 자연에서 해답을 얻곤 하는데요 인공지능 뇌과학자들은 인간의 뇌의 뉴런구조를 본따서 이 문제를 해결하기로 했습니다. 인간의 뇌가 생각하는 방식을 컴퓨터에 이식 할 수 ..