일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- LangChain
- Python
- 강화학습
- conditional_edge
- 강화학습의 수학적 기초와 알고리듬 이해
- 추천시스템
- tool_calls
- 강화학습의 수학적 기초와 알고리듬의 이해
- humannode
- Ai
- tool_binding
- update_state
- langgrpah
- RecSys
- conditional_edges
- REACT
- human-in-the-loop
- removemessage
- langgraph
- 밑바닥부터시작하는딥러닝 #딥러닝 #머신러닝 #신경망
- toolnode
- pinecone
- rag
- lcel
- rl
- summarize_chat_history
- add_subgraph
- chat_history
- subgraph
- 밑바닥부터 시작하는 딥러닝
- Today
- Total
목록분류 전체보기 (41)
타임트리
프로그램의 사전적 정의는 어떤 문제를 해결하기 위해 컴퓨터에게 주어지는 처리 방법과 순서를 기술한 일련의 명령문의 집합체이다. 즉, 간단히 말해 개발자가 작성한 코드들을 의미한다.이러한 프로그램은 보조메모리(HDD, SDD)와 같은 저장장치에 보관되고 있다가 사용자가 실행하면 해당 프로그램 코드들이 주메모리(RAM)에 적재되어 작업이 진행된다. 이때 프로그램이 RAM에 올라온 상태가 되면 이를 프로세스(process) 라고 한다.프로그램: 명령문이 저장장치에 저장된 정적인 상태프로세스: 실행을 위해 프로그램이 RAM에 올라온 동적인 상태이처럼 프로그램을 실행하여 프로세스가 생성되면, CPU는 프로세스가 해야할 작업을 수행한다. 이때, CPU가 처리하는 프로세스의 작업 단위를 스레드(thread) 라고 한..
먼저 코루틴을 보기 전에, 루틴을 정의하고 이로부터 파생되는 메인 루틴과 서브 루틴을 살펴보자.루틴: 일련의 명령 즉, 코드의 흐름메인 루틴: 프로그램의 메인 코드 흐름서브 루틴: 하나의 진입점(args)과 하나의 탈출점(return)이 있는 루틴으로, 흔히 아는 함수나 메서드 (메인 루틴의 보조)그럼 메인 루틴과 서브 루틴의 관점에서 이전에 작성했던 코드를 다시 살펴보자. 아래 코드에서 메인 루틴은 if __name__=="__main__" 절의 내용이며, 여기서 main()과 delivery() 두 개의 서브 루틴이 존재한다.import time# 서브 루틴 1def delivery(name, mealtime): print(f"{name}에게 배달 완료") time.sleep(mealtim..
동기와 비동기동기(Sync)와 비동기(Async)코드가 동기적으로 동작한다는 말은, 코드가 반드시 작성된 순서대로 실행되는 것을 말한다. 반대로 코드가 비동기적으로 동작한다는 말은, 코드가 반드시 작성된 순서 그대로 실행되는 것이 아니라는 것을 의미한다.이해를 위해 짜장면을 배달하는 배달원의 예시를 들어보자. 하나의 주문에서 배달원이 처리해야 하는 일은 아래와 같이 두 가지가 있다.짜장면을 주문자에게 배달주문자가 다 먹은 그릇을 현관 앞에 놔두면 그릇을 수거만약 주문자가 3명(A, B, C)의 주문이 접수되어 배달부가 A, B, C의 짜장면을 음식점으로부터 받은 상황이라고 하자. 이때, 위 작업을 동기 방식과 비동기 방식의 관점으로 바라보자. 동기 방식의 경우, 순차적으로 작업이 진행되기 때문에 A에게 ..
바운드CPU 바운드프로그램이 실행될 때, 실행 속도가 CPU 속도에 의해 제한되는 것을 CPU 바운드라고 한다. 즉, 프로그램이 실행될 때 I/O wating보다 CPU의 계산 시간이 길어 프로그램이 잠시 멈추게 되는 것을 의미한다. 아주 복잡한 수학 수식을 계산하는 경우 컴퓨터 실행속도가 느려지게 되는 현상을 말한다. 알고리즘을 공부할 때 마주치는 시간복잡도를 생각해보면 이해하기 쉽다.예를 들어, 아래와 같이 1부터 100까지 for문이 3번 중첩된 아래 코드를 실행한다고 해보자.def cpu_bound(num: int): total = 1 arrange = range(1, num+1) for i in arrange: for j in arrange: fo..
직장과 집, 휴대용 이런저런 키보드를 바꿔가며 코딩하는 편인데, 다른 키배열에 가끔 버벅일 때가 있다. 특히 대학원 생활 내내 사용한 로지텍 k380은 fn + 방향키 조합으로 주피터 노트북에서 Home, End의 기능을 할 수 있으며, (매우매우매우매우) 익숙해졌다. 지금은 k380은 가끔 비상용으로 사용하고 주로 회사에선 아래와 같은 68배열 키보드를 쓰고, 집에서는 aigo브랜드의 좀 특이한 배열인 100키 배열 키보드를 쓰고 있다(방향키랑 숫자 0이랑 구분감이 없어서 우측 숫자 0 키캡은 빼고 쓰고 있다ㅜ 어차피 우측 숫자는 많이 사용하지 않기 때문에). 배열이 특이해서(+저렴해서) 사봤는데 다음에는 그냥 87키 배열로 사야겠다.. 주피터 노트북에서 Home, End와 같은 기능을 하는 단축키는 ..
평가함수를 다양하게 알아야 하는 이유평가함수는 추천시스템의 모델을 생성한 뒤, 해당 모델이 얼마나 추천을 잘 진행하고 있는지에 대해서 평가를 도와주는 함수목적에 따라 적합한 평가함수를 사용하는 것이 중요예를 들어 영화 평점에 추천에서 다음의 두 가지 형태는 분명히 다름추천해준 영화를 고객이 보았는가?추천한 영화를 고객이 높은 점수로 평점을 주었는가? 첫 번째 평가의 경우 단순히 고객이 영화를 본 경우 추천 성공이라고 보지만, 실제 만족도는 낮을 수 있다. 반대로 두 번째의 경우는 고객의 만족도까지 고려하여 평가를 진행했다. 일반적으로 두 번째 평가 방법의 사용이 더 좋아보이지만, 실제 그 이후의 데이터를 얻을 수 있는지 등 주어진 상황에 알맞은 평가함수를 선택하는 것이 중요하다. 평가 함수Accuracy..
정의사용자의 구매 패턴이나 평점을 이용해 다른 사람들의 구매 패턴, 평점을 통해 추천하는 방법추가적인 사용자의 개인정보나 아이템의 정보 없이도 추천할 수 있는 것이 장점 종류최근접 이웃기반(KNN)잠재요인기반(Latent Factor Collaborative Filtering)이웃기반의 협업 필터링(Neighborhood Based Method)정의Neighborhood based Collaborative Filtering은 메모리 기반 알고리즘으로 협업 필터링을 위해 개발된 초기 알고리즘알고리즘User-based collaborative filtering사용자의 구매 패턴(평점)과 유사한 사용자를 찾아서 추천 리스트 생성Item-based collaborative filtering특정 사용자가 준 점수..
정의사용자가 이전에 구매한 상품 중에서 좋아하는 상품과 유사한 상품을 추천하는 방법협업 필터링(Collaborative Filtering)과 차이점협업 필터링: 유사한 User 혹은 Item을 평점 기반으로 찾아내어 그들을 이용한 추천컨텐츠 기반 모델: 유사한 Item을 Item 자체의 Featrue를 통해 찾아내어 추천 유사한 상품을 어떻게 찾을까?상품을 벡터로 표현 - 도메인마다 다른 방법을 적용Text: TD-IDF, Beat, Word2Vec, CounterVectorizer etcImage: CNN, ResNet, VGG etc자신을 제외한 나머지 벡터 중 유사한 벡터를 추출(유사도 계산) 유사도 함수유클리디안 유사도 (Euclidean Similarity) Euclidean Similarity..