[Tranport Layer 03] TCP의 연결 설정 Flow Control흐름제어란 receiver가 overflow되어 buffer에 넘치게 받은 정보를 받지 않도록 하며 receiver가 자신이 overflow되지 않을 만큼만 sender에게 알려주고, sender가 흘러넘치지 않은 정도의 정보로만 data를 전송하는 것을 목적으로 한다.receiver의 application이 갑자기 다른 일을 하느라 receiver의 buffer 빈 공간이 안만들어질 수 있다. 또는 reciver가 데이터를 받는 속도가 application이 data를 읽어가는 속도보다 빠를때 buffer가 가득 차는 상황이 발생할 수 있다. 이러한 정보는 recieve window라는 필드를 통해서 전송한다. (=rwnd field) TCP Connection management..
썸네일 [paper review] RAG의 시작 Retrieval-Augmented Generation for Knowledge-Intensive NLP TasksRAG Paper Review [link]Abstractpretrained parametic보통 GPT3나 T5같은 Parametric Impricit knowledge기반의 모델들은 모델 내부에 지식을 암시적으로 저장한다. 대형 데이터셋으로 사전 학습된 언어모델로 학습과정에서 획득한 지식은 내부 parameter에 저장된다. 학습 과정을 거쳐 이미 셋팅된 파라미터들이기에 재학습없이 생성과정에서 사용자가 지식 수정이 불가능하고 모델이 학습시에 보지 못한 정보를 추론해야할때 실제 지식과 관련없는 할루시네이션 문제가 발생한다는 문제점이 존재한다.non-parametric그런 반면 DrQA, OR..
썸네일 [Transport Layer 02] TCP TCP의 특징TCP는 하나의 sender당 하나의 receiver가 소통하는 프로토콜이다. 또한 checksum을 통해 reliable을 보장하나, 이는 보안을 위한 목적이라기 보다는 정말 약한 확인정도에 불과하다. TCP는 누적 ACK를 사용해 정확히 받은 가장 마지막 seq numb만 전송하고, stop and wait 기법이 아닌 파이프라인 기법을 사용한다. 또한 연결 설정을 진행하며 data가 buffer의 size를 넘치지 않도록 flow control과 congestion control 을 사용한다. 또한 양방향으로 data전송이 가능한 full duplex data이다.   TCP segment structuresequence number : data부분에 들어가는 첫번째 byte에 들어가는..
썸네일 [Transport Layer 01] Pipelining, Go-Back-N, Selective repeat rdt 2.0, 2.1, 2.2, 3.0 을 배웠다. rdt의 stop and wait protocol의 경우 매우 비효율적이다. 미국의 동부 끝과 서부 끝에서 패킷을 주고받는다고 생각해볼때 하나의 패킷을 보내고, ACK가 올때까지 기다려야한다.다시 말해 물리적인 거리가 매우 긴 곳에서 stop and wait protocol을 이용해서 패킷을 주고받으면 propagation delay가 매우 클 것이기에 RTT가 길어져서 오랜 시간을 기다려야할것이다. 따라서 최악의 performance를 가질 것이다. Pipelining그러면 데이터 패킷을 하나 보내놓고 기다리지 않고 데이터 패킷을 여러 개 보내놓고 기다리면 좀 낫지 않을까?utilization을 구해서 비교해보자. 파이프라인이 적용되지 않는 util..
썸네일 AWS S3에 올린 파일 접근시 AccessDenied 해결 Background - 프로젝트 도중 tts로 음성파일을 만들어 s3 버킷에 올려 프론트로 오디오를 전송해주어야하는 상황. - api 상으로는 s3에 정상적으로 올라간 url이 response body로 전달되는 것을 확인 - 그 url에 접속하면 다음과 같은 AccessDenied 화면이 뜨는 상황 해결방안 - 이미 IAM에 AmazonS3FullAccess 권한을 준 상황. - Amazon S3 > 버킷 > bongabang(해당 버킷 이름) > 권한 > 버킷정책 > 편집 > 정책 생성기 - Select Type of Policy 로는 S3 Bucket Policy 선택 - Add Statements 에서 Effect: Allow, Principal: 아무 이름, Actions: All actions..
썸네일 [NLP] Mistral 7B 정리 arxiv pdf NLP 모델에서는 일반적으로 모델의 크기가 클수록 성능이 향상되는 경향이 있습니다. 하지만, 모델이 커질수록 계산 비용과 추론 시간이 증가하게 되며, 이는 모델을 실제 환경에 배포하는 데에 있어서 큰 장애물이 됩니다. 그렇기 때문에 높은 성능과 함께 효율성을 제공하는 모델이 필요합니다. 그러한 요구사항을 만족시키는 모델로 이 논문에서는 'Mistral 7B'을 제안합니다. Mistral 7B는 잘 설계된 모델로, 13B 크기의 'llama2' 모델보다 모든 테스트 벤치마크에서 우수한 성능을 보여주며, 동시에 효율적인 추론을 유지합니다. 0. Mistral 모델의 핵심 로직은 'Grouped-query attention'과 'Sliding window attention'입니다. Group..
썸네일 [회고글] 2023년 회고 2023년, 정말 많은 일이 담겨있던 해였다. 이 1년을 표현하기에는 너무 많은 수식어들이 필요하다. - Chat GPT와 함께 공부 했던 해 = 공부 mate - 처음으로 나만의 커리큘럼을 가지고 공부했던 해 = 내게 필요로하는 공부만을 하는 즐거움 및 전공공부에 대한 필요성을 느낌 - 처음으로 유럽여행을 갔던 해 = 다른 나라에서는 이런 삶을 살 수 있겠구나, 영어 skill에 대한 욕심 - 처음으로 강의를 했던 해 = 말하기가 이해에 미치는 영향 - 처음으로 면접을 봤던 해 = 자기 PR을 적극적으로 할 줄 아는 사람, 내가 면접관이라면 우리 팀으로 뽑고 싶은 사람, 뽑힌 사람의 특징 - 처음으로 이력서를 작성했던 해 = 쓸 수 있는 프로젝트가 몇 없음, 내 프로젝트에서 내가 했다고 정확히 설명할 ..
썸네일 [ML/DL] 소프트맥스 회귀/다항 로지스틱 회귀 소프트맥스 회귀는 다중 클래스에서 회귀를 사용할때 많이 사용되는 방법이다. 각 특징값에 해당하는 가중치들을 각 특징값과 곱해준 값들을 더해주어 각 클래스 k에 대한 점수를 계산한다. 그러면 점수가 클래스 마다 1개씩 나오므로 총 k개가 나올 것이다. 이 k개의 점수들을 softmax 함수에 넣고 softmax값을 획득한다. 이렇게 되면 k개의 softmax값의 합은 1이 되는 다중 클래스 회귀가 된다. 로지스틱 회귀와 마찬가지로 기본적으로 소프트맥스 회기 분류기는 추정 확률, 즉 softmax값이 가장 높은 클래스를 선택한다.
썸네일 [후기글] 바이오헬스 데이터 경진대회 치의학분야 후기글 본교에서 좋은 데이터 경진대회가 열려서 동기와 함께 참여하였다. 본 대회는 바이오 헬스 데이터와 AI 기술을 활용하여 치의학 분야 내 위험성 평가와 예측 모델 개발을 하는 것이 목표였다. 우리 팀은 본교 재학생이라는 조건하에 Track1에 어금니라는 이름으로 참여하여 치아 파노라마 이미지로부터 Crop 한 사랑니 이미지를 가지고 사랑니 발치 수술 후 위험도 예측을 하는 모델의 성능을 높이는 방식을 생각해 냈다. 1. Data EDA 및 Augmentation 사실 폐쇄형 경진대회라는 점은 알고있었지만 이전에 참여했던 대회들은 이렇게까지 폐쇄형은 아니어서 눈으로 사진을 직접 확인하는 과정이 가능했다. 하지만 이 대회의 경우 사진을 직접 눈으로 볼 수 없기 때문에 데이터들의 특징을 찾아내기가 어려웠다. 그나..
썸네일 [회고글] 코드잇 프로젝트 트랙 11월 회고 1달이 흘렀다. 사실 프로젝트 트랙이 시작한 지는 되게 오래전 일 같기도 하다. 팀원들과 함께 코드잇 Python 풀스택 개발자 커리큘럼에 해당하는 코드잇 장고 강의를 여러 개 듣고 함께 공부하는 시스템인데 혼자 하면 쉽게 포기할 것 같아서 동료학습을 할 수 있는 프로젝트 트랙을 지원했다. 운이 좋게 함께 할 수 있게 되었고 팀원들과의 여정이 시작되었다. 보고있지 팀원들? 우선 아쉬웠던 것은 각자의 삶이 바빴던 이유로 코어타임을 만나서 카공타임으로밖에 쓰지 않았다는 점이다. 사실 이 공부에 정말 미쳐있는 사람이라고는 당연한 결과일 수도 있다. 처음에 팀원들과의 그라운드룰을 정할 때는 내 의지가 활활 타오를 때라 팀원들의 세부목표를 정하고 코드잇강의를 목적이 아닌 과정으로 사용하자라고 이야기를 했지만 한 ..
썸네일 [회고글] GDSC 23-2 기초 인공지능 스터디장 회고 왜 하셨나요 오랜만에 만난 사람들이 휴학 1년 차가 되어가는 내게 묻는 말의 첫 물꼬는 뭐 하고 지내?라는 말이다. 나도 다른 사람들에게 그렇게 물어보곤 했으니까 근황토크의 시작점인 저 큰 의미 없는 말이 사실 내게는 짐같이 느껴진다. 뭐 별거하지 않는다는 말을 내뱉기 싫어서 항상 무언가를 하고 있는 삶을 채우고 있다는 생각도 든다. 23년도 8월 네이버 부스트캠프가 끝나고 유럽여행을 다녀왔다. 유럽여행을 행복하게 마칠 수 있었던 이유는 내가 유럽여행을 갔다 와서 해야 할 무언가가 무척이나 기대되었기 때문이다. 그 무언가가 바로 GDSC 23년도 2학기 스터디였다. 2학년까지 학술동아리 운영진을 2번 정도 하면서도 4번가량의 스터디 모임에 참여하면서도 항상 궁금했다. 스터디장은 왜 저렇게 자신의 시간을 ..
썸네일 [Linux] vi나 vim 에디터 없이 파일 수정 Background 개발 환경이 달라져서 환경세팅을 다시 하던 중에 homebrew는 설치되었으나 zshell에 path가 추가되지 않아서 zshrc에 들어가서 PATH를 추가해줘야 한다. 쉬운 방법으로는 vi ~/.zshrc 로 zshrc에 들어가서 (tmi. 뒤에 붙은 rc는 run commands이다. ) export PATH=/opt/homebrew/bin:$PATH 이 문장을 추가해 주고 ESC를 누르고 :wq를 누르고 엔터를 치고 나오면 된다. 이 오류는 Homebrew가 설치된 곳이 /usr/local/... 이 아니라 /opt/homebrew/ 위치에 설치되었기 때문이라 경로 설정을 해주는 것이다. 그런데 나는 이렇게 하기 싫었다. 까지가 Background이다. 굳이 vi나 vim을 써서..