기본 콘텐츠로 건너뛰기

GPT Prompt Engineering

아래 프롬프트 예시를 활용해보자. ChatGPT / Gemini 아래 내용을 메모리 업데이트해줘, 앞으로 모든 질문이나 주 제에 모두 적용해 - 아래의 규칙을 엄격히 준수하여 답변해줘. 1) 충분한 근거가 없거나 정보가 불확실한 경우, 절대 임의로 지어내지 말고 “알 수 없습니다" 또는 "잘 모르겠습니다"라고 명시해 주세요. 2) 답변하기 전, 단계별로 가능한 정보를 검증하고, 모호하거나 출처가 불분명한 부분은 "확실하 지 않음"이라고 표시하세요. 3) 최종적으로 확실한 정보만 사용하여 간결한 답변을 완성하세요. 만약 추측이 불가피할 경우"추측입니다"라고 밝혀 주세요. 4) 사용자의 문의가 모호 하거나 추가 정보가 필요하다면, 먼저 사용자의 맥락이나 세부 정보를 더 요청하세요. 5) 확인되지 않은 사실을 확신에 차서 단정 짓지 말고, 필요한 경우 근거를 함께 제시하세요. 6) 각 답변마다 출처나 근거가 있는 경우 해당 정보를 명시하 고, 가능하면 관련 링크나 참고 자료를 간단히 요약해 알려 주세요. — 프롬프팅에 신뢰도 추가하기 7) 만약 추측이 불가피할 경우 추측한 정보의 신뢰도를 0-100% 사이 값이라고 밝혀줘. DALL E 긴단한 일러스트 이미지를 만들때 활용하면 좋은 프롬프트의 예시이다. 활용해보자. (1)일러스트 이미지로, (2)오직 책상 위에 놓인 노트북과 옆에 커피잔 하나만 있는 깨끗한 사무실을 생성해줘. (3)배경 이나 주변에 다른 사물은 전혀 없는, 매우 단순하고 깨끗한 설정을 원한다. 이미지는 오로지 노트북과 커피잔에만 초점을 맞춰야 한다.

Titans: Transformer 2.0의 시작일까?

“The true art of memory is the art of attention!" Transformer에서 context window가 커지면 커질수록 기억을 상실하는 문제를 해결해보자. Transforme 핵심 . Short-term memory . Long-term memory Titans은? . Short-term memory - 현재 작업과 직접적으로 연관된 데이터 저장 - 최신정보 저장, 빠른 검색 기능 - 긴 문맥을 처리하는 어텐션 메커니즘 . Long-term memory - 반복적이거나 중요한 데이터 저장 - 새로운 정보와 과거 데이터를 융합하도록 지원 - 중요도가 낮은 데이터는 제거히는 망각 메커니즘 . Persistent memory - 중요한 데이터는 영구적으로 저장 - 새로운 데이터를 학습할때 영구 데이터를 참조 . Surprise matrix - 새로운 데이터가 기존과 얼마나 다른지 계산 - 차이가 클수록 저장 가치가 높다고 판단 Transformers의 한계점 . 벡터와 행렬 연산 . 병렬 처리 단위 context window 클수록 gpu 기하급수적이고 long-term memory 상실함 . 복잡성 문제 커짐 . gpu 하드웨어간 연결성을 만족하되 메모리 데이터 처리에 문제 발생함 . 어텐션 메커니즘이란 토큰(단어)간의 연결성으로 소수의 정보에만 집중 . Context window 안에서 뭐든 해결하려고 했지만 크기가 커질수록 장기 기억 상실 발생 그래서 Titans은? . Titans은 transforms 의 단점인 long-term memory를 장기 기억하기 위해 따로 독립적으로 neural memory로 구성 . neural memory는 ai 학습괴 테스트 중 벡터를 넣어서 중요한 것들을 기억하는 모듈안에 저장하는 역할 . 즉 테스트 과정(Test-time learning)에서도 계속해서 long-term memory를 저장 - (핵심) 모델이 추론하는 단계에서 새로운 정보를 학습하고 기억할 수 있더록 설계...

[General] CI/CD의 기본개념

요즘 AI시대와 더불어 많은 기업에서 업무 등 다방면의 디지털전환(DX, Digital Transformation) 추세이다. 각 기업마다 전문 소프트웨어 직군이 아닌 시민 개발자(Citizen Developer)의 수가 폭발적으로 증가하며 애플리케이션 등을 직접 코팅하며 업무의 혁신을 만들어가고 있다.  프로 혹은 시민 개발자가 코드를 수정하고 빌드와 테스트를 하고 배포까지 하는데 보통 상당한 시간이 소요 되어, 적기에 고객에 납품하는데 어려움이 있을 것이다. (물론 프로는 시민보단 능숙하게 잘 할 것 이다. 하지만 요즘 시민 개발자도 많이 양성하고 있는 추세임) 만약 git에만 코드를 올리는 것으로 이러한 빌드와 테스트 및 배포 행위를 단축시켜준다면 , 개발에 더 많은 시간을 투자할 수 있을 것입니다. 이러한 시간 단축을 통해 데이터 분석과 인공지능 모델 개발에 시간을 투자하는 것이 더 이득일 듯 하다. 앞서 말한 행위를 단축하는 CI/CD의 개념에 대해 간략하게 정리하겠습니다. 본격적으로 시작하기 앞서 간단한 내용부터 정리하고 시작하겠습니다. Code : 개발자가 코드를 원격 코드 저장소인 GitHub repository에 push하는 단계 Build : 원격 코드 저장소로부터 코드를 가져와 유닛 테스트 후 빌드하는 단계 Test : 코드 빌드의 결과물이 디른 컴포넌트와 잘 통합되는지 확인하는 과정 CI(지속적인 통합, Continuous Integration) CI는 지속적인 통합입니다. 간단히 요약하자면 빌드와 테스트를 자동화하는 과정 임 CI를 성공적으로 구현할 경우 애플리케이션에 대한 새로운 코드 변경 사항이 정기적으로 빌드 및 테스트됨 Git과 같은 공유 리포지토리에 통합하여 여러 명의 개발자가 동시에 애플리케이션 개발과 관련된 코드 작업을 할 경우 서로 충돌할 수 있는 문제를 해결 할 수 있음 지속적 통합의 실행은 소스와 버전 관리 시스템에 대한 변경 사항을 정기적으로 커밋하여 과제에 참여하는 모든 사람에게 동일 작업 기반을 제공 하는 ...

[Machine Learning] 합성곱 신경망(Convolution Neural Network)

합성곱 신경망(Convolution Neural Network) 이란 무엇일까요? 먼저 들어가기 전 간단한 요약을 보고 들어가겠습니다. 해당 요약을 잘 숙지해주시고 본문의 내용을 관심있게 뵈주시길 부탁드립니다.     ⓐ 인간의 시신경을 모방(다중 퍼셉트론)하여 만든 딥러닝 구조 중 하나     ⓑ 합성곱을 이용하여 이미지의 공간적 특징을 유지 본 글을 시작하기 앞서 알아두면 좋은 내용을 추천한다. 경사 하강법 (Gradient descent) 오차역전파 (Back propagation) 합성곱 신경망(CNN)의 필요성 1998년 Yann LeCun, et. al.가 손 글씨 숫자를 인식하는 딥러닝 구조 LeNet-5를 발표하며 현재 합성곱 신경망의 초석이 되었습니다. 관련해서 자세한 내용은 논문 을 참고 부탁드리며, 향후 본 블로그에서 자세히 설명하도록 하겠습니다. 오늘은 합성곱 신경망의 핵심이 되는 합성곱(convolution)과 풀링(pooling), 플래튼에 대해서 살펴보도록 하겠습니다. 마지막으로 keras MNIST(Modified National Institute of Standards and Technology) 이미지 데이터를 활용한 파이썬 예제 코드를 공부하도록 하겠습니다. 우리가 알고 있는 일반적인 신경망의 학습은 입력층에서 은닉층을 거쳐갈수록 점점 복잡한 특징들을 학습해나갑니다. 일반적인 신경망의 학습과 별반 다르지 않게 합성곱 신경망 또한 모델(함수) 계수의 오차를 계산하고 오차 만큼 역 전파( 오차역전파 )하여 가중치를 조정해가는 학습 과정입니다. 여기서 다른 점은 일반 신경망에서는 특정 학습을 전 결합층(MLP, Fully-Connected Layer)에서 했다면, 합성곱 신경망에서는 합성곱층(convolution layer)에서 오차를 계산하고 오차만큼 역 전파하여 가중치를 조정하는 점 입니다. 이미지를 벡터로 변환한 결과 ( 출처 ) 그런데 이미지 학습에 있어서 전 결합층(MLP,...

[AI] RAG란 무엇인가?

자고 일어나면 인공지능 관련 기사와 내용이 참 많습니다. 소위 AI시대 대격변 속에서 무엇을 해야할지 고민이 많습니다. AI의 기본적인 이론도 중요하지만, 최근 트렌드를 잘 알고 잘 써먹을 수 있는 것도 개인의 역량이 아닐까 싶습니다. 즉 AI를 하나의 도구로 생각하고 도구를 잘 써먹으면 좋지 않을까요? 오늘은 RAG(검색-증강-생성)이란 무엇인지 간략하게 끄적여보겠습니다. 3줄 요약 ⓐ 검색(Retrieval)은 요청된 외부 지식 을 가져온다. ⓑ 증강(Augmented)은 질문 것에 요청된 것을 더한다 . ⓒ 생성(Generation)은 사용자의 질문에 더한 것을 받아 텍스트로 생성 한다.   ⅰ RAG(검색-증강-생성)이란 무엇인가? 최근 인공지능 기술의 발전은 다양한 분야에서 혁신을 일으키고 있으며, 그 중에서도 텍스트 기반의 생성형 AI는 특히 주목받고 있습니다. 하지만 이러한 인공지능 기술이 가진 정확성과 신뢰성의 문제는 사용자와 개발자 모두에게 중요한 과제로 남아 있습니다. 이 문제를 해결하기 위해 등장한 기술 중 하나가 바로 RAG(Retrieval-Augmented Generation)입니다. 자세한 기술적 내용은 RAG 용어가 등장한 2020년 아래의 논문을 참고하기 바랍니다. Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks(2020) (본지는 간단한 내용 만을 기술할 목적이기 때문에 IT 기업의 설명 자료를 참고하여 본인이 이해한 내용을 작성 하였습니다. 혹시나 잘못된 정보가 있다면 알려주세요.) RAG(Retrieval-Augmented Generation)는 단어 풀이 그대로 '검색 증강 생성'이란 뜻 입니다. 먼저 Retrieval 이란 의미는 검색이란 뜻보다는 외부 지식 데이터베이스에서 가져오는 것, 어딘가에서 요청된 무엇인가를 가져오는 것 을 이야기합니다. 그리고 Augmented 는 증강이란 뜻으로 원래 것에 뭔가를 더하거나 보태어 더 실해졌다 는 ...

[Machine Learning] 데이터 증강 (Data Augmentation) 이란?

데이터 증강 (Data Augmentation)이란? 본격적으로 들어가기전 내용을 간략하게 요약하자면 다음과 같다. 요약을 바탕으로 본문에서는 좀더 깊이있게 설명하도록 하겠다. 이미지 데이터의 증강은 회전, 크기 조절, 색생 변화 등 다양한 변환을 통해 학습데이터의 다양성을 인위적으로 늘려 모델의 성능을 형상 시키는 방법 시계열 데이터의 증강은 시간 축 변환, 크기 조절, 시간 이동 등 다양한 기법을 통해 원본 데이터를 변형하여 학습 데이터의 다양성을 높이고 모델의 일반화를 향상 시키는 기법 CNN, R-CNN, YOLO 등 모델의 성능을 높이고 오버피팅을 극복할 수 있는 가장 좋은 방법은 다양한 유형의 학습 이미지 불균형 극복을 위한 데이터 양을 늘리는 것입니다. 하지만 사진, 동영상과 같은 이미지 데이터의 경우 학습 데이터 량을 늘리는 것은 쉽지가 않다. 이미지 데이터의 양을 늘리긴 위해서는 결국 클라스(라벨링)의 수도 증가하며, 이는 곧 엄청난 노가다가 필요하기 때문이다. 데이터 증강은 학습 이미지의 개수를 늘리는 것이 아니고 학습 시(epoch) 마다 개별 원본 이미지를 변형해서 학습하는 것 이다. 아래 첨부의 그림과 같이 학습 이미지를 변형할 수 있다. (출처:  https://blog.insightdatascience.com/automl-for-data-augmentation-e87cf692c366) 데이터 증강을 우리 일상생활로 쉽게 설면하자면 우리가 핸드폰 카메라를 통해 사진을 촬영하고 사진의 밝기, 크기, 좌우반전 등을 행하는 것을 이미지 데이터의 증강으로 이해하면 쉽다. tensorflow 에서 간단한 예제를 활용하여 이미지 데이터의 증강을 설명하고 있다. 본 블로그에서는 몇 가지 대표적인 데이터 증강 종류를 간단히 설명하고 마무리 하겠다. 기회가 된다면 텍스트 및 시계열 데이터의 증강 방법도 간략히 소개 후 마무리 하겠다. 이미지 데이터의 증강 (출처:  https://www.invivoo.com/ ) 이미지에 아래와 같이...

[CUDA] 딥러닝의 필수 GPU와 CUDA

들어가기전 본문을 요약하면 아래와 같습니다. 요약을 숙지하고 본문의 내용을 관심있게 봐주시길 부탁드립니다. CUDA는 GPU를 사용한 병렬 컴퓨팅 을 위해 제공되는 S/W  플랫폼이자 API 이다. 또 Nvidia에서 생산한 GPU를 잘 돌리기위한 H/W 아키텍처이다. Tensor Core는 AI/Deep Learning 작업을 가속화 하기 위해 행렬 연산에 최적화된 GPU내의 특수한 연산 유닛 이다. RT Core는 실시간 레이트레이싱 을 가속화하기 위해 광선 추적 계산을 전용 으로 처리하는 GPU 내의 하드웨어 유닛 이다. 본 블로그에서 소개한 오차역전파 를 각 노드 별로 많은 단순 연산을 필요로 한다. 이때 흔히 직렬 연산에 강점을 둔 중앙 처리 장치 (CPU, Central Processing Unit)를 활용하면 굉장히 비효율 적이다. 대신 그래픽 처리 장치 (GPU, Graphics Processing Unit)를 사용하면 병렬 계산이 가능합니다. GP GPU 본격적인 AI시대 이전 GPU를 이용한 범용 계산(매트릭스, 벡터 연산 등)외 다른 부분은 기술적으로 많은 부분이 제한적이였다. 하지만 이제 OpenGL, DirectXL과 같은 그래픽 가속 API가 나오면서 NVIDIA, ARM등 GPU를 잘 제어할 수 있게 됬다. 단순한 연산 작업이 아니라 범용 목적의 병렬 계산 프로세서를 활용 하게 되었고 이것을 범용 목적 그래픽 처리 장치 (GP GPU, General Purpose computing on Graphics Processing Units)라고 말한다. 이런 범용 목적의 병렬 계산 프로세스를 무료로 사용할 수 있는 기술이 NVIDIA사의 쿠다(CUDA)라는 것이다. 여기서 ALU는 덧샘, 뺄샘 같은 두 숫자의 산술 연산과 배타적 논리합, 논리곱, 논리합 같은 논리연산을 계산하는 디지털 회로이며, 흔히 산술 논리 장치를 말합니다. CUDA 2006년 NVIDIA는 Fermi Architecture를 발표하며 CUDA(Computed U...