묻고 답해요
160만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결RAG를 활용한 LLM Application 개발 (feat. LangChain)
mac으로 hugging face 양자화 공유합니다.(질문도 있습니다)
안녕하세요.강의에서 나오는 BitsAndBytesConfig를 통한 양자화 예시에서 CUDA가 필수로 요구되어 macbook에서 진행할 수 있는 방안을 찾다가 mlx_lm을 통해서 MPS(mac의 gpu)를 활용하여 양자화가 가능하단 사실을 알게되어 공유드리고자 합니다. 아마 맥북 사용자도 꽤 많을 것으로 예상됩니다. langchain에서 MLXPipeline을 제공하지만 이를 사용했을 때 현재 invoke시 호출되는 _call 메서드 내부에서 generate_step이 mlx_lm에서 제공은 하지만 MLXPipeline에서 제대로 불러올 수 없어 RunnableLambda를 통해서 에러를 우회해봤습니다.(Q? 강사님은 혹시 해결 방법을 알고 계실까요? 공홈 코드가 다 안 되네요 ㅜㅜ 오류 코드는 맨 아래 첨부하겠습니다.) 먼저 양자화 진행하는 방식입니다. cli를 통한 command 또는 python-api를 활용하는 방법 두 가지가 있습니다. 자세한건 링크 첨부하겠습니다. 양자화 개념에 대해서 자세히 나오니 참고하면 좋으실 듯 합니다.링크: [quantization with xlm_lm](https://developer.apple.com/kr/videos/play/wwdc2025/298/?time=187) mlx_lm을 통한 양자화먼저 양자화한 model을 local path에 저장합니다. 그 전에 apple의 gpu를 확인할 수 있는 코드 부분은 처음 부분에서 확인하실 수 있습니다.사실 python코드를 싸는 것보다 command로 양자화 진행하는게 편한 것 같습니다. 전 projection layer와 embedding layer는 다른 layer보다 높은 bit로 해주는게 좋다고 하여 python으로 진행했습니다. dequantize on-the-fly(게산 추론)시 더 좋다고 합니다. # mac에서 mps를 사용한 예제 import torch from mlx_lm.convert import convert print("MPS available on this device =>", torch.backends.mps.is_available()) # projection layer & embedding layer는 6bit, 양자화 가능한 layer는 4bit, 양자화 불가능은 False return def mixed_quantization(layer_path, layer): if "lm_head" in layer_path or 'embed_tokens' in layer_path: return {"bits": 6, "group_size": 64} elif hasattr(layer, "to_quantized"): return {"bits": 4, "group_size": 64} else: return False # quantization 진행 convert( hf_path="microsoft/Phi-3-mini-4k-instruct", mlx_path="./models/microsoft-Phi-3-mini-4k-instruct-mixed-4-6-bit", dtype="float16", quantize=True, q_bits=4, q_group_size=64, quant_predicate=mixed_quantization )$) mlx_lm.convert --hf-path "mistralai/Mistral-7B-Instruct-v0.3" \ --mlx-path "./mistral-7b-v0.3-4bit" \ --dtype float16 \ --quantize --q-bits 4 --q-group-size 64 --upload-repo "my-name/mistral-7b-v0.3-4bit" Langchain과 연계하기 from functools import wraps from langchain_core.runnables import RunnableLambda from langchain_core.output_parsers import StrOutputParser from mlx_lm import generate, load quantized_model_path = "./models/microsoft-Phi-3-mini-4k-instruct-mixed-4-6-bit" model, tokenizer = load(quantized_model_path) def runnable_wrapper(func): """RunnableLambda wrapper function""" @wraps(func) def wrapper(*args, **kwargs): return RunnableLambda(func) return wrapper @runnable_wrapper def create_chat_prompt(question): messages = [ { "role": "system", "content": """ You are an expert in information retrieval and summarization. Your job is to read the provided text and produce a precise, faithful, and concise summary. Prioritize the author’s main claim, key evidence, and conclusions. Use plain English and avoid filler. Do not invent facts that aren’t present in the input. """ }, { "role": "user", "content": f""" Question: {question} """ } ] prompt_without_tokenized = tokenizer.apply_chat_template(messages, add_generation_prompt=True, tokenize=False) prompt_with_tokenized = tokenizer.apply_chat_template(messages, add_generation_prompt=True) print("생성된 prompt👇\n", prompt_without_tokenized) return prompt_with_tokenized @runnable_wrapper def run_llm_with_mlx(prompt): return generate(model=model, tokenizer=tokenizer, prompt=prompt) @runnable_wrapper def output_parser(answer): return answer.replace("<|end|>", "") chain = create_chat_prompt() | run_llm_with_mlx() | output_parser()오류 코드llm.invoke에서 에러가 발생하며 TypeError: generate_step() got an unexpected keyword argument 'formatter'라는 에러가 발생합니다.from langchain_community.llms.mlx_pipeline import MLXPipeline from mlx_lm import load model_path = "./models/microsoft-Phi-3-mini-4k-instruct-mixed-4-6-bit" model, tokenizer = load(model_path) llm = MLXPipeline( model=model, tokenizer=tokenizer ) llm.invoke("what's my name?")
-
미해결RAG를 활용한 LLM Application 개발 (feat. LangChain)
강병진 강사님 반갑습니다. RAG 추가 전략에 아이디어에 대해서 질문드립니다.
강병진 강사님 안녕하세요 우선 저와 같은시기쯤? 울산에 있으셨다고 하니 반갑습니다. 저는 병진강사님과 인연이 많은것 같습니다. 강사님 전 회사? 정유회사 바로 옆에 제련회사에서 딥러닝 이미지 처리 프로젝트를 개발하고 있었습니다.병진강사님 덕분에 생성형 AI도 따로 학습을 하고 있고 개별적인 프로젝트도 하고 있습니다. 감사합니다. 질문.1RAG를 구성하고 문서를 벡터DB에 지속하여 업데이트를 위해서 PDF 텍스트·이미지 분석 → RAG용 JSON/JSONL 생성 → Pinecone 적재가능하도록 PyQt GUI 프로그램 만들었는데 여기서 추가적으로 생성되는 문서를 지속적으로 업데이트를 해야할 경우 25년 10월 초에 새로나온 Open AI에 에이전트 툴을 이용해서 일정 시간에 자동으로 Pinecone에 업데으트 해주는 에이전트를 만들어서 자동화를 하려고 하는데 이런 전략을 구성할 경우 문제가 될 부분이 있을까요?질문.2 모델을 만들고 회사가 가지고 있는 특허 문서 파일을 RAG로 구성을 완료한 후 외부 사이트 >> 각 국가의 특허청에 파일을 검색해서 유사도를 분석하거나 하려고 할 때 전략은 어떻게 가져가면 좋을지? 입니다.
-
미해결RAG를 활용한 LLM Application 개발 (feat. LangChain)
커널 시작 에러
주피터 노트북에서 %pip install langchain-openai python-dotenv이 코드를 실행 하면 아래 에러가 자꾸 뜹니다.커널을 시작하지 못했습니다. 커널 'venv (3.11.9) (Python 3.11.9)'을(를) 시작하지 못했습니다. 자세한 내용은 Jupyter 로그을 참조하세요. listen EFAULT: bad address in system call argument 192.168.30.146:9001 참고로 저는 윈도우 유저고 가상환경은 venv를 사용하고 있습니다.
-
해결됨회사에서 바로 쓰는 업무자동화 AI 에이전트 (w. n8n, LangGraph)
18강 제공되는 스크립트가 어디있을까요?
안녕하세요. 너무 좋은 강의 감사합니다. 다름이 아니오라, 18강 까지 진행중인데 강의에서 말씀하시는 제공했다는 스크립트 (create_table_for_test_sql.ipnb) 는 어디서 받을 수 있나요? 자료제공이나 강의자료를 봐도 해당 스크립트가 없네요 ㅠㅠ
-
미해결graphRAG - Neo4J로 구현하는 지식 그래프 기반 RAG 시스템 (feat. LangChain)
프로젝트 4 법률 실습데이터 존재하지 않음
프로젝트 4번에서 제공해주는 실습데이터의 zip안에 파일이 존재하지 않습니다. 그래서 법령 사이트 들어가서 pdf로 다운받아서 실습을 진행했는데 결과가 다르게 나옵니다.
-
해결됨회사에서 바로 쓰는 업무자동화 AI 에이전트 (w. n8n, LangGraph)
신입 역량
AI 관련 직군이 아니더라도 AI에 대한 능력을 가지고 있어야 하는 추세같은데 여기서 말하는 AI에 대한 능력이 무엇을 말하는 것일까요? n8n을 사용해서 AI를 도입한다던지,, 필요시 랭체인 개발을 할 수 있는 능력이라던지,, AI지식이 없어 추상적으로 여쭤보는 점 죄송합니다.
-
미해결회사에서 바로 쓰는 업무자동화 AI 에이전트 (w. n8n, LangGraph)
데이터 전처리 작업을 진행할 때는 어떠한 워크플로우로 진행하나요?
현업에서 보통 n8n 워크플로우를 Python 노드로 어느 정도 수준까지 전처리를 진행하나요? Python 환경과 n8n 환경을 sync를 맞춰서 연동하는 좋은 꿀팁 혹은 구조가 있는지 궁금합니다.
-
미해결회사에서 바로 쓰는 업무자동화 AI 에이전트 (w. n8n, LangGraph)
데이터 전처리 작업 구성관련 질문
안녕하세요!!n8n으로 데이터 자동화 워크플로를 만들고 있는데데이터 전처리 작업을 어떻게 구성하는 게 좋을지 고민이 됩니다. 실무에서는 보통 n8n 내부 Python 노드로 어느 정도 수준까지 전처리를 하고복잡한 전처리가 필요한 경우에 외부 Python 환경과 연동하는 좋은 방법이 있을까요?n8n과 Python을 함께 쓰는 효율적인 구조가 있다면 조언 부탁드립니다.
-
해결됨RAG를 활용한 LLM Application 개발 (feat. LangChain)
RAG와 파인튜닝 접근 전략
안녕하세요 너무 유익한 강의 잘 듣고 있습니다 :) 강의를 듣다보니 RAG와 파인튜닝은 LLM의 할루시네이션을 줄이고 특정 도메인에 대한 지식을 주입하면서 더 적절한 답변을 낼 수 있다는 측면에서 닮아 보인다는 느낌을 받았습니다.물론 두 방법의 차이나 적용 사례는 구글링하면서 쉽게 찾을 수 있지만 만약 강사님이 특정 도메인에 특화된 LLM을 개발하신다면 어떤 기준과 절차로 RAG와 파인튜닝을 선택하고 활용하시는지 강사님의 개인적인 생각이 궁금합니다 :)
-
미해결RAG를 활용한 LLM Application 개발 (feat. LangChain)
RAG 및 AI Agent 개발을 위한 Python 학습
기존 자바 스프링 백엔드로 학습하고 있는데, 인공지능 분야 학습을 하려고하는데, Python을 어느정도로 학습해야할지 궁금합니다.기본적인 개념은 이해하겠는데, 문법 등이 낯선 부분들이 많이 있습니다.혹시 추천해주실만한 강의가 있으신지 궁금합니다.
-
미해결RAG를 활용한 LLM Application 개발 (feat. LangChain)
LangChain에서 프롬프트 품질을 개선하기 위해 A/B 테스트를 수행한 사례가 있을까요?
서로 다른 PromptTemplate를 구성하고, LangSmith나 사용자 만족도를 기반으로 점수를 비교하여 더 나은 프롬프트를 도출하는 케이스가 있는지 궁금합니다!
-
미해결회사에서 바로 쓰는 업무자동화 AI 에이전트 (w. n8n, LangGraph)
실무 Text-to-SQL 구현 시 도메인별 모델 분리 vs 통합 모델
실무에서 Text-to-SQL 시스템을 구축하면서 고민이 생겼습니다.현재 상황: 간단한 단일 테이블 조회는 잘 동작하는데, 실제 업무 데이터로 넘어가니 여러 도메인을 JOIN해야 하는 복잡한 쿼리에서 정확도가 많이 떨어집니다.고려 중인 해결 방안: 도메인별로 AI 모델을 분리하는 구조를 생각하고 있습니다. 사용자 질문이 들어오면 라우터가 적절한 도메인 모델로 연결하고, 해당 모델이 쿼리를 생성하는 방식입니다. 이렇게 하면 각 도메인에 특화되어 정확도가 올라갈 것 같습니다.걸림돌: 문제는 여러 도메인(예: A, B, C)의 데이터를 함께 조회해야 하는 경우입니다. 예를 들어 "지난 분기 매출 상위 고객들의 최근 주문 배송 현황"처럼 매출(A), 고객(B), 배송(C) 도메인이 모두 엮인 질문이 들어오면 어떻게 처리해야 할까요?질문:이런 크로스 도메인 쿼리는 실무에서 보통 어떻게 해결하나요?도메인별 분리 구조가 맞는 방향인지, 아니면 전체를 아우르는 통합 모델이 나은지 조언 부탁드립니다.
-
미해결graphRAG - Neo4J로 구현하는 지식 그래프 기반 RAG 시스템 (feat. LangChain)
LangChain 질문
지식그래프(KG) 검색 - Text2Cypher 기법지식그래프(KG) 검색 - Text2Cypher 기법 여기 커리큘럼에서 갑자기 LangChain smith 관련 내용이 나오는데 이거 관련한 설정이나 Langchain이 LLM(GPT, Gen) 과 같은 설명이 좀 있었으면 좋겠어요그리고 한글에 대한 정보를 이해하기 위해서, 좀더 부가적인 설정이 필요한지 궁금해요~
-
미해결RAG를 활용한 LLM Application 개발 (feat. LangChain)
upstage 사용
4강 부터 upstage 관련해서 업데이트가 안된것 같네요 openai -> upstage로 바꾸는 방법이나 샘플 코드가 있으면 좋을것 같습니다. docs나 지피티 참고해가면서 바꾸고 있는데 굉장히 힘드네요
-
미해결RAG를 활용한 LLM Application 개발 (feat. LangChain)
성능 측정 방식
강의를 듣다보면 임베딩 및 프롬프트의 성능에 대해서 "어떤것이 좋다" 라고 말씀십니다. 혹시 그런 성능들은 직접 모두 수행해봐야 하는건가요? 아니면 어떤 상황에서는 어떤것의 성능이 더 좋다라는 데이터가 존재할까요?
-
미해결회사에서 바로 쓰는 업무자동화 AI 에이전트 (w. n8n, LangGraph)
openAi api 토큰 소진이나 토큰 제한일때
에이전트를 실행시키는 와중에Open Ai에서 토큰이 모두 소진되거나 제한됬을때개인적으로 알람이 오게하는 서비스는 따로 구축을 해놔야하는건가요?
-
해결됨맞춤형 LLM 만들기 : 처음 시작하는 분을 위한 RAG 기초 개념부터 멀티모달·Agent 실습까지
제공해준 ipynb 소스에
강사님의 api 키가 노출되는 거 같습니다호출은 안해봤는데
-
미해결회사에서 바로 쓰는 업무자동화 AI 에이전트 (w. n8n, LangGraph)
n8n기반 프로젝트 소스코드 히스토리 문서화 모델
프로젝트 소스 코드의 개발 히스토리 또는 문서화를 위해 도움을 줄 수 있는 모델을 생성 할 수 있을까요?코드에 주석을 다는 것이 아닌 개발 중인 프로젝트 코드에 특정 시간 또는 날짜를 기준으로 개발 히스토리를 개별 자동 생성 및 관리화 해서 추후에 개발자가 문서화를 위해 참고 할 수 있는 정보를 얻고 싶어요
-
미해결회사에서 바로 쓰는 업무자동화 AI 에이전트 (w. n8n, LangGraph)
Webhook 사용 시 AI Agent Memory 동작 관련 질문
안녕하세요 강사님, 강의 잘 보고 있습니다."n8n API와 Streamlit으로 만드는 이메일 작성 봇" 강의 중 9분 04초쯤 AI Agent 노드의 Memory(Simply Memory) 설정 부분에서 질문이 있습니다.강의 초반에는 "When chat message received" 노드를 사용하셨는데, 이 경우 워크플로우가 지속적으로 실행되면서 세션이 유지되므로 AI Agent가 이전 대화 내용을 기억할 수 있습니다.그런데 강의 후반부에서 "When chat message received" 노드를 "Webhook" 노드로 변경하셨습니다(Streamlit 사용을 위해). Webhook을 사용하면 사용자의 각 질문마다 워크플로우가 새롭게 실행되고, 실행이 끝나면 세션이 종료되는 것으로 알고 있습니다.이런 구조에서는 Simple Memory가 각 Webhook 호출 간 대화 내용을 유지하지 못해, AI Agent가 이전 대화를 참고할 수 없는 것 아닌가요?Webhook 방식에서도 대화 맥락을 유지하려면 Simple Memory 대신 Redis Chat Memory나 Postgres Chat Memory 같은 영구 저장소 기반 메모리를 사용해야 하는 것이 맞는지 궁금합니다.감사합니다.
-
미해결한시간으로 끝내는 LangChain 기본기
RAG 강의 안듣고 AGENT 강의 먼저 들어도 되나요?
안녕하세요 선생님RAG 강의 안듣고 AGENT 강의 먼저 들어도 되나요?