본문 바로가기

개발

(102)
seq2seq (Sequence to Sequence Learning with Neural Networks) https://programmerk.tistory.com/98 LSTM ( long short term memory )https://programmerk.tistory.com/97 RNNRNN : RNN의 은닉층에 과거 정보를 압축해 저장하는 역할을 하고, 이 정보가 다음 시간 단계로 다시 입력되어 순환되므로 연속된 데이터를 통해 음성, 텍스트, 시계열programmerk.tistory.com 개념기존의 입력과 출력을 고정된 차원의 벡터로 표현할 수 있는 제한을 LSTM(Long Short-Term Memory) 구조를 단순하게 적용하여 해결 하는 모델 이전 번역 형태: 규칙 기반 기계번역(Rule-Based Machine Translation, RBMT) : 언어학자가 직접 문법, 구문, 형태소 등 ..
RabbitMQ와 Apache Kafka RabbitMQ를 사용했던 경험이 있다면 항상 면접시 질문하는 내용이다이번에 정리해보기 RabbitMQ정의 : MSA 등 환경에서 비동기 통신 환경에서 메시지를 큐에 저장하는 오픈소스 기반 소프트웨어 핵심 구성요소 : - Producer : 메시지를 생성하여 전송하는 전송자- Broker: 데이터 라우팅 및 저장 서버Exchange : Direct(1:1 매핑), Topic( 와이드 카드 기반 멀티캐스트 ), Fanout( 브로드 캐스트), Headers( 헤더 속성 기반) 4가지 타입Producer 의메시지를 영구적, 비영구적 저장하는 서버, consumer 요청시 메시지 전달- Consumer : 전송자의 메시지를 수신하는 application 혹은 device 장점 및 활용 이유 :1. 낮은 ..
LSTM ( long short term memory ) https://programmerk.tistory.com/97 RNNRNN : RNN의 은닉층에 과거 정보를 압축해 저장하는 역할을 하고, 이 정보가 다음 시간 단계로 다시 입력되어 순환되므로 연속된 데이터를 통해 음성, 텍스트, 시계열과 같이 순서가 중요한 데이터programmerk.tistory.com RNN 의 한계를 극복하기위하여 Cell State, Input Gate, Output Gate, Forget Gate 를 추가한 모델 LSTM 구조기존 RNN 에서 Input, hidden State, Output 구조에서 Cell State, Forget Gate, Input Gate, Output Gate를 추가하여 불필요한 데이터 최소화, 핵심 내용 Cell State에 저장하여 기울기 소실,..
RNN RNN : RNN의 은닉층에 과거 정보를 압축해 저장하는 역할을 하고, 이 정보가 다음 시간 단계로 다시 입력되어 순환되므로 연속된 데이터를 통해 음성, 텍스트, 시계열과 같이 순서가 중요한 데이터에서 시간에 따른 문맥과 패턴 파악 RNN 문제점 :RNN이 먼 과거의 데이터를 제대로 기억하지 못하고 주로 최신 데이터에만 반응하며, 전통적인 역전파 방식은 가중치 크기에 따라 커지거나( Exploding Gradient )사라지는( Vanishing Gradient ) 문제가 존재함. 이로 인해 긴시간, 오랜 학습을 수행하면 문제가 발생 Vanishing Gradient 문제 이유역전파 과정에 사용되는 활성화 함수가 sigmoid or tahn 함수인데 이의 미분값이 0~1이기때문에 반복할수 지수적..
Vertical AI Prototype # Vertical AI Prototype기업 DB 기반 데이터 조회, 시각화 및 분석을 지원하는 Vertical AI 프로토타입 비전문가도 자연어와 대화형 인터페이스로 쉽게 데이터에 접근하도록 설계되었습니다.---## 📝 프로젝트 개요### 프로젝트 배경기업 내부 또는 클라이언트의 DB 데이터를 효율적으로 활용하기 위한 AI 기반 시각화 어플리케이션입니다. 비전문가가 SQL 등 데이터베이스 언어를 알지 못해도, 자연어로 질의하고 대화처럼 분석 및 시각화할 수 있습니다.### 해결하려는 문제- 기업 내 방대한 데이터 활용의 진입장벽- 데이터 분석에 대한 비전문가의 사용성 부족 - 복잡한 SQL 및 쿼리 작성 한계 - 자연어를 통한 손쉬운 데이터 접근과 분석 제공---## ✨ 주요 기능- **St..
디버깅 - #4 중간 메시지 변경 중간 메시지 변경특정 단계의 메시지를 변경한 후 replay 를 수행하여 답변의 차이를 검증 간능하다 원본 시나리오 Human > 1+10 은?AI > tool calls ( 1+10) Tool > 1+ 10 = 11AI > 11 입니다 메시지 변경 시나리오Human > 1+10 은?AI > tool calls ( 100+1000)Tool > 100+ 1000 = 1100AI > 1100 입니다 핵심 코드@tooldef sum_tools(a:int, b:int)->int: """ get a, b two number add""" return a+b **************중간 생략********** # 그래프 상태 스냅샷 생성snapshot = graph.get_state(con..
디버깅 - #3 replay https://programmerk.tistory.com/93 디버깅 - #2 interruptinterrupt :LangGraph의 진행을 특정 단계에서 중지 기능 구성도chatbot 역할 : 사전 llm.bind_tools 로 제공된 tools 을 사용할지 결정하는 역할tools : 웹 검색 도구 제공,chatbot에서 tool_calls 호출시 사용되는 tooprogrammerk.tistory.com 인터럽트 before 로그https://smith.langchain.com/public/25c69e3d-26ce-4862-834c-b77ab3496fa5/r LangSmith smith.langchain.com 인터럽트 구간부터 이어서 하기 예제events = graph.stream(None, con..
디버깅 - #2 interrupt interrupt :LangGraph의 진행을 특정 단계에서 중지 기능 구성도chatbot 역할 : 사전 llm.bind_tools 로 제공된 tools 을 사용할지 결정하는 역할tools : 웹 검색 도구 제공,chatbot에서 tool_calls 호출시 사용되는 tools 를 가지고 있는 노예제 코드########## 1. 상태 정의 ##########class State(TypedDict): # 메시지 목록 주석 추가 messages: Annotated[list, add_messages]########## 2. 노드 추가 ##########def chatbot(state: State): # 메시지 호출 및 반환 tavily_tool = get_tavily_tool() ..