본문 바로가기

전체 글

[AI] Local LLM model Agent Loop Example # Local LLM Tool Calling Agent Loop 전체 예제이 문서는 최초 사용자 요청부터 최종 답변까지 실제로 실행한 Agent Loop 전체를 기록한다. 기존 문서의 `SYSTEM`, `MESSAGE`, `CONTINUE_MESSAGE`, `TOOLS`, 누적 `history`, `jq`, `curl`, `tool_call_id` 연결 방식을 유지했다.> 실행 환경: 2026-08-17, Ollama `gemma4:26b`, `http://127.0.0.1:11434/api/chat`>> 기존 루트 문서에 설정된 `...:1421/tool`은 실행 당시 TCP 연결이 반복해서 timeout 되었다. 따라서 같은 Mac에서 실행 중인 로컬 LLM을 Ollama Tool Calling AP.. 더보기
[AI] 코드전문 """toy_llm.pyPyTorch nn.Module만으로 구현한 아주 작은 nanoGPT 스타일 Toy LLM 예제입니다.실행: python3 toy_llm.py전체 실행 순서: 1. build_dummy_conversation_data() - ": ...\n: ..." 형식의 아주 작은 대화 말뭉치를 만듭니다. 2. CharTokenizer - 말뭉치에 등장한 모든 문자를 vocabulary로 삼습니다. - 문자열을 정수 token id로 바꾸고, 다시 문자열로 복원합니다. 3. ModelConfig - context 길이(block_size), embedding 차원, head 수, layer 수 같은 Transform.. 더보기
[AI] LLM from scratch (LLM 밑바닥부터 만들어보기) #1 어떤것이든 설명하고 만들수 없으면 이해한것이 아니다. 직접 만들어보고 이해한 자만이 AI를 올바로 쓰고 본인만의 Tool 로 만들 수 있다. 적당히 사용법만 알고 그럴듯한 프로토타입만 만드는건 장기적 관점에서 전혀 도움이 되지 않는다. 개발자로서 LLM은 무엇이고 어떻게 활용할 수 있으며 근본적인 이해를 바탕으로 파인튜닝까지 하는것을 목표로 한다. 실습 환경 - 하드웨어 : GB10 (MSI) - 개인 용도로 활용하기엔 최적으로 생각한다. 엔터프라이즈 급 GPU 로서 여러 사람이 들어와 모델을 사용할 순 없지만 개인 홈 리서치나 개인 연구 용도로는 최적이라고 생각함. 자바 개발자로써 이해할 내용 Q. PyTorch? 더보기A. PyTorch는 "딥러닝 모델을 만들고, GPU에서 계산하고, 학습시키는.. 더보기
[AI]행렬곱의 근원 행렬곱을 가로줄 × 세로줄로 하는 근원은 한마디로 이거다.행렬은 원래 “숫자표”가 아니라, 어떤 값을 다른 값으로 바꾸는 계산법, 즉 선형변환의 압축표였고, 행렬곱은 “계산법을 연달아 적용한 결과”를 한 번에 표현하려고 만든 규칙이다.1. 역사적으로 먼저 있었던 것: “숫자표로 연립방정식 풀기”행렬 비슷한 것은 아주 오래전부터 있었다. 고대 중국의 『구장산술』에서는 여러 미지수가 들어간 연립방정식을 풀기 위해 숫자들을 네모난 표에 놓고 조작했다. 현대식으로 말하면 행렬 계산과 거의 같은 방식이었다. 다만 그때는 “행렬곱”이라는 현대적 개념보다는 계수들을 표로 정리해서 없애가며 푸는 방식이었다. MAA 설명에 따르면 중국의 계산판은 숫자의 행과 열을 저장·조작하는 데 쓰였고, 계수들을 열에 저장한 뒤 열끼.. 더보기
[AI] 학습과정 원리 좋다. sigmoid 빼고, 숫자만 넣어서 설명해볼게.실제 Word2Vec은 sigmoid/softmax를 쓰지만, 원리는 아래 예제와 거의 같다.핵심은 이것이다.“학교”와 “선생님”의 점수가 목표보다 낮으면,“학교” 벡터의 각 숫자를 얼마나 바꿔야 점수가 올라가는지 계산한다.1. 64차원은 복잡하니까 2차원으로 줄여보자실제로는 64차원이라면:학교 = [w1, w2, w3, ..., w64]선생님 = [t1, t2, t3, ..., t64]인데, 설명을 위해 2차원만 쓰자.학교 = [0.20, -0.10]선생님 = [0.50, 0.30]두 단어가 얼마나 가까운지는 일단 내적 점수로 계산한다고 하자.점수 = 학교 · 선생님계산하면:점수 = 0.20 × 0.50 + (-0.10) × 0.30 =.. 더보기
[AI] 수학 미적분학-JAMES STEWART CALCULUS-고등 미적분 수학교과서 미래엔 선형대수학-LINEAR ALGEBRA-> GILBERT STRANG immersive linear algebra ( https://immersivemath.com/ila/index.html ) 더보기
[RDMS] PK/UK 성능 클러스터드 인덱스 vs 논클러스터드 인덱스PK는 대부분의 RDBMS에서 클러스터드 인덱스로 생성됩니다.→ 테이블의 실제 데이터가 PK 인덱스 순서대로 저장됨→ 인덱스 탐색 후 바로 데이터 접근 가능UK는 일반적으로 논클러스터드 인덱스입니다.→ 인덱스와 데이터가 분리되어 저장됨→ 인덱스 탐색 후 데이터 위치를 다시 찾아야 함데이터 접근 및 조인PK 조합은 인덱스 탐색과 데이터 접근이 한 번에 이루어져 빠름UK 조합은 인덱스에서 PK(ROWID 등)를 찾아 다시 데이터에 접근해야 하므로 추가 I/O 발생정렬 성능PK 조합은 데이터가 이미 PK 순서로 정렬되어 있어 정렬 연산이 빠름UK 조합은 데이터가 UK 순서로 정렬되어 있지 않으므로, 정렬 시 추가 작업 필요I/O 및 캐싱PK 조합은 데이터 접근 경로가 .. 더보기
[java] RateLimiter MultiThread 예제 plugins { id("java")}group = "org.example"version = "1.0-SNAPSHOT"repositories { mavenCentral()}dependencies { testImplementation(platform("org.junit:junit-bom:5.9.1")) testImplementation("org.junit.jupiter:junit-jupiter") runtimeOnly("mysql:mysql-connector-java:8.0.25") implementation("com.google.guava:guava:31.1-jre") implementation("com.googlecode.json-simple:json-simple:.. 더보기