목록전체 글 (107)
Post-IT
AWS EC2 인스턴스 생성하기 - 기본편1. 애플리케이션 및 OS 이미지(AMI)AMI는 EC2를 만들 때 사용하는 템플릿이다. AMI안에는 다음과 같은 내용이 포함된다.운영체제(OS)기본 패키지 및 설정보안 업데이트어떤 OS + 기본 설정으로 서버를 시작할 것인지 결정하는 옵션이다. Ubuntu, Linux, Mac뿐만 아니라 TensorFlow, PyTorch, CUDA 같은 딥러닝 AMI도 프리티어로 존재한다.2. 인스턴스 유형EC2 인스턴스 유형은 CPU, 메모리, 스토리지, 네트워크 성능, GPU가 어떻게 구성 될지 결정하는 "서버 사양 패키지"이다.t2.micro -> CPU 1개 + 메모리 1GBc6g.large -> CPU 2개 + 메모리 4GBg5.xlarge -> GPU 포함AWS 인..
프롬프트와 프롬프트 템플릿프롬프트는 AI에게 주는 하나의 요청 메시지 전체를 의미한다."이 문제는 어떻게 해결하는게 좋을까?""이 코딩테스트 문제는 무슨 알고리즘을 써서 구현해야 할까?"즉, 이렇게 AI에게 보내는 메시지 전체를 "프롬프트"라고 정의한다. 그렇다면 프롬프트 템플릿이란 무엇일까? 템플릿이란 일정한 모양의 형태로 미리 만들어진 서식을 말한다. 우리가 PPT자료를 만들때 PPT 템플릿을 받아서 우리의 내용을 채웠던 적이 있을 것이다. 이처럼 미리 만들어진 틀(구조, 형식, 규칙)에 맞춰 입력 혹은 출력을 바꿔넣는 형식을 말한다.너는 코딩테스트 요구사항 분석을 첨삭해주는 시니어 개발자야.입력:- 문제 제목: {{title}}- 문제 설명: {{description}}- 분석 초안:"""{{ana..
트랜잭션은 데이터베이스의 상태를 변화시키기 위해 수행하는 작업의 논리적 단위를 말합니다. 데이터 베이스의 상태가 변한다는 것은 DML(SELECT, INSERT, UPDATE, 등)을 사용하는 행동을 말합니다. 논리적 단위라는 것은 트랜잭션 안에 모든 작업이 모두 성공하거나 모두 실패해야하는 단위를 말합니다.데이터베이스는 여러 사용자가 동시에 읽고/쓰는 환경이기 때문에, 중간에 작업이 끊기면 데이터 자체가 꼬일수가 있습니다. 따라서 데이터의 일관성과 무결성을 보장하기 위해 트랜잭션이라는 단위가 필요합니다. 가장 많이 예로 드는 것이 은행 송금입니다. 우리가 송금을 할때 다음과 같은 과정으로 진행됩니다.A가 B에게 10만원을 송금합니다.A의 계좌에서 10만원이 감소합니다.B의 계좌에서 10만원이 증가합니다..
1. 기본 파일 업로드@app.post("/upload")async def upload_file(file: UploadFile = File(...)): # 파일 저장 contents = await file.read() with open(f"uploaded_{file.filename}", "wb") as f: f.write(contents) return { "filename": file.filename, "content_type": file.content_type, "size": len(contents) }가장 기본적인 파일 업로드입니다. 파일 전체를 메모리에 로드해서 처리속도가 빠릅니다. 작은 파일에는 적합하지만 대용량 파일의 ..
uv는 파이썬 라이브러리를 관리해주는 도구입니다. 우리는 기존에 프로젝트를 시작할때마다, conda 환경을 새로 만들어주고 프로젝트에 맞는 라이브러리들을 설치해 줍니다.pip install torchpip install numpypip install transformers가상환경마다 라이브러리들을 설치해주는 이유는 프로젝트마다 다른 버전의 라이브러리가 필요할 수 있기 때문이죠.A 프로젝트 : PyTorch 1.9B 프로젝트 : PyTorch 2.0기존에는 requirements.txt 파일에 수동으로 라이브러리를 관리했다면 uv 방식은 누가 어디서든 똑같은 환경을 재현하려고 할때 자동으로 같은 환경을 보장해준다고 합니다.pip : 패키지 설치virtualenv : 가상환경pip-toos : 의존성 관리p..
AI 서빙(Model Serving)모델 서빙에는 크게 두가지 방식이 존재한다.Real-time Inference : 사용자 요청이 들어올 때마다 즉시 예측을 반환한다. REST API 형태로 만들어서 POST /predict에 데이터를 보내고 결과를 받습니다. 챗봇이나 이미지 분류 같은 실시간 서비스에 사용합니다. 실시간으로 이루어지기 때문에 레이턴시가 중요합니다.Batch Inferecne : 많은 양의 데이터를 한꺼번에 처리합니다. 예를 들어, 특정 시간마다 전체 사용자의 추천 목록을 미리 계산해둡니다. 결과를 DB에 저장하고 사용하는 방식이고, 처리량이 중요합니다.서빙 시스템을 만들 때 고려할 점:모델 버전 관리 : A 또는 B 테스트를 위해 여러 버전을 동시에 서빙하거나, 새 버전으로 점진적으로..
Agent는 뭘까?에이전트는 사람들마다 정의하는 방식이 조금씩 다릅니다. "혼자 알아서 일하는 AI" 혹은 "정해진 순서대로 일하는 AI"와 같이 다양하게 정의됩니다. Anthropic에서는 이를 Workflows와 Agents 두가지로 분류합니다.Workflows : 요리 레시피처럼 정해진 순서대로 일합니다. 프로그래머가 지시한 대로 따라갑니다.Agents : AI가 스스로 판단하며 일합니다. "이 문제를 해결해줘"라고 지시하면 how를 스스로 결정합니다.Workflow는 주어진 길을 따라간다면, Agent는 스스로 길을 찾아가죠.언제 Agent를 사용해야 할까?LLM 애플리케이션을 만들 때 처음부터 복잡한 에이전트 시스템을 만들 필요는 없습니다. 에이전트 시스템은 좋은 성능을 내기는 하지만, 그만큼 ..