본문 바로가기

반응형

IT/개발

OpenAI API 이용 개발 기초(소개, API 사용준비, 기본모델들, ChatGTP) 1. Open AI API 소개 OpenAI API는 거의 모든 작업에 적용 가능 . 다양한 기능과 가격대의 다양한 모델을 제공할 뿐만 아니라 맞춤형 모델을 미세 조정할 수 있는 기능도 제공함 OpenAI에서는 현재 API를 이용하여 개발 가능한 다양한 응용을 제시한다  참고 : Introduction - OpenAI API 2. 사용가능한 Open AI 모델들 24/05/21 updateMODELDESCRIPTIONGPT-4o 가장 빠르고 경제적인 플래그십 모델 GPT-4 and GPT-4 TurboGPT-4 및 GPT-4 터보 GPT-3.5를 개선하여 자연어 또는 코드를 이해하고 생성할 수 있는 모델 세트GPT-3.5 Turbo간단한 작업을 위한 빠르고 저렴한 모DALL·EDALL-E 자연어 프롬프트.. 더보기
오디오 raw PCM 데이터에 wav header 생성 하기(파이썬) 미디어를 다루다보면 raw pcm data를 처리하는 경우가 많이 있습니다. pcm 자체는 헤더 정보가 없기 때문에 재생을 하기 위해서는 sample rate와 sample 당 byte 수 channel 정보등을 알아야 합니다. 따라서 raw pcm을 플레이어에서 바로 재생하기 위해 wav header를 추가하여 wav 파일로 만들어 주어야 합니다. 이때 wav header는 단순히 오디오의 재생정보를 포함하고 있습니다. 기본적으로 44 byte이고 이외 확장형태들도 있습니다. https://www.mmsp.ece.mcgill.ca/Documents/AudioFormats/WAVE/WAVE.html Wave File Specifications Audio File Format Specifications F.. 더보기
ICMP, Ping을 구현하여 RTT 검사하기(C code) ICMP (Internet Control Message Protocol)은 프로토콜 중 하나로 네트워크 상황을 모니터링하는 기본적인 프로토콜입니다. ICMP는 주로 네트워크 장치 간 통신 문제를 해결하고 네트워크 상태 정보를 전송하는 데 사용됩니다. ICMP 메시지의 몇 가지 일반적인 용도는 다음과 같습니다: 에코 요청 및 응답 (Ping): ICMP를 사용하여 호스트 간 연결성을 테스트하고 대상 호스트로 데이터 패킷을 보내고 응답을 확인합니다. 목적지 불능 알림: ICMP 메시지를 사용하여 목적지 호스트 또는 네트워크가 도달 불능 상태인 것을 확인 할 수 있습니다. TTL 초과: ICMP를 사용하여 IP 패킷이 목적지에 도달하지 못하고 TTL (Time To Live) 값이 0으로 감소할 때 TTL 초.. 더보기
LLM 학습에 사용되는 공개 데이터 (말뭉치, ChatGPT, PaLM, LLaMA 등) 학습에 사용되는 공개 말뭉치 데이터 실제로는 일반적으로 하나의 말뭉치 대신 다양한 데이터 소스를 혼합하여 LLM을 사전 훈련하는 방식 - GPT-3 (175B)는 CommonCrawl, WebText2, Books1, Books2, Wikipedia를 포함한 300B 토큰의 혼합 데이터셋으로 훈련 - PaLM(540B)은 소셜 미디어 대화, 필터링된 웹페이지, 책, Github, 다국어 위키백과, 뉴스에서 가져온 780억 개의 토큰으로 구성된 사전 학습 데이터 세트로 훈련 - LLaMA는 CommonCrawl, C4, 깃허브, 위키피디아, 서적, 아카이브, 스택익스체인지 등 다양한 소스에서 트레이닝 데이터를 추출함. LLaMA(6B) 및 LLaMA(13B)의 훈련 데이터 크기는 1.0T 토큰이며, LLa.. 더보기
(9) Langchain에서 VectorStore에 저장된 사용자 데이터를 재사용해보자(user data, embedding) 이제 저장된 embedding vector db를 사용해 보겠습니다. 아래 글에 이어서 VectorStore를 이용해서 저장한 사용자 데이터 Vector DB를 로드하고 사용해보는 예제 입니다. https://yongeekd01.tistory.com/100 (8) Langchain에서 사용자 데이터를 VectorStore에 저장해보자(user data, embedding) LLM의 막강한 자연어 처리 기능에 자신만의 데이터를 추가하여 서비스를 구성하기 위해서 prompt에 사용자 데이터를 함께 보내주는 방식을 통해 이를 해결하고자 하는 다양한 시도들이 진행 되고 yongeekd01.tistory.com 1. VectoreStore를 이용하여 저장된 데이터 사용하기 HuggingFace의 embedding.. 더보기
(8) Langchain에서 사용자 데이터를 VectorStore에 저장해보자(user data, embedding) LLM의 막강한 자연어 처리 기능에 자신만의 데이터를 추가하여 서비스를 구성하기 위해서 prompt에 사용자 데이터를 함께 보내주는 방식을 통해 이를 해결하고자 하는 다양한 시도들이 진행 되고 있습니다. 물론 LangChain도 쉽게 사용자 데이터를 처리하는 여러가지 방법을 제공하고 있습니다. LangChain에서 사용자데이터를 다루기 위해서는 기본적으로 다음과 같은 절차가 필요합니다. - 사용자 데이터 확보(pdf, web, csv.... 등등) - documeent load를 통해 사용자 데이터 로드 - LLM에서 처리 가능한 크기로 데이터 분할 - 문자나 워드 등을 모델이 분석 가능한 vector data로 임베딩 - 임베딩벡터와 문자열을 verctor store에 저장 - 임베딩된 사용자 데이터와.. 더보기
(8) Langchain에서 사용자 데이터를 이용해보자 (user data, summarize) chatGPT 3.5는 2021년까지의 정보만을 사용하여 학습되었기 때문에 최신 정보를 알지 못합니다. 대부분의 개발자들은 chatGPT의 막강한 자연어 처리 기능에 자신만의 데이터를 추가하여 새로운 서비스를 만들고 싶을 것이라고 생각합니다. 예전에는 이러한 접근을 할때 OpenAI의 fine tunning을 통해서 비용을 지불하고 재학습을 수행하고 사용하는 방식만을 생각할 수 있었는데요. 현재는 prompt에 사용자 데이터를 함께 보내주는 방식을 통해 이를 해결하고자 하는 다양한 시도들이 진행 되고 있습니다. LangChain도 이 방법을 제공합니다. 다양한 종류의 사용자 데이터를 읽어 들여서 정보화 하는 방법을 제공하고 있는데요. 엄청나게 유용합니다. 다음은 지원 가능한 문서 종류 입니다. https.. 더보기
(7) Langchain에서 memory를 사용해보자(conversation chain) LangChain에서 memory는 체인 실행 사이에 이전 상황을 기억하여 애플리케이션 상태를 유지하는데 사용됩니다. 대부분의 LLM 애플리케이션에는 대화형 인터페이스가 있습니다. 메모리는 이전 대화에 소개된 정보를 참조할 수 있도록 지원합니다. 대화형 시스템은 과거 메시지의 일부에 직접 액세스할 수 있어야 하고 더 복잡한 시스템이라면 지속적으로 이를 업데이트 하며 정보를 유지하는 등의 작업을 수행할 수 있어야 합니다. memory의 종류는 여러가지가 있지만 여기서는 ConversationBufferMemory를 예제로 확인해보겠습니다. (ConversationChain은 default로 ConversationBufferMemory를 사용) 1. chat model 지정 import os import a.. 더보기

반응형