Hỏi & Đáp
[ReadMe]영상에 나온거랑 깃이랑 다르네요
안녕하세요! 첫번째 스크린샷은 uv의 GitHub 페이지이고 https://github.com/astral-sh/uv 두번째 올려주신 스크린샷이 강의의 소스코드 레포입니다 https://github.com/jasonkang14/inflearn-langgraph-agent
- Lượt thích
- 0
- Số bình luận
- 2
- Lượt xem
- 9
Hỏi & Đáp
안녕하세요! 첫번째 스크린샷은 uv의 GitHub 페이지이고 https://github.com/astral-sh/uv 두번째 올려주신 스크린샷이 강의의 소스코드 레포입니다 https://github.com/jasonkang14/inflearn-langgraph-agent
Hỏi & Đáp
안녕하세요, 좋은 질문 감사합니다. TL;DR은 저는 파인튜닝은 필요 없다고 생각합니다. 말씀하신 것처럼 파인튜닝 자체도 비용이고, 유지보수 비용도 부담이고, 인프라 관리도 부담이고, 여러모로 관리 포인트가 증가해서 저는 RAG를 구현하고 상용 LLM을 쓰는 것이 합리적이라고 생각합니다. 하지만 팀에서 파인튜닝을 해서 운영하는 것을 기조로 잡고 한다면, 요즘 오픈소스 모델도 성능이 괜찮아서 쓸만합니다. 한국어 모델들은 최근에 테스트를 해보진 않았는데, kimi나 qwen계열 모델들은 정말 훌륭합니다. 이론상 파인튜닝을 해야하는 경우는 프롬프트로 원하는 행동을 "만들어낼 수는 있는데" 5% 확률로 실패하고, 그 5%가 용납 안 되는 경우입니다. 에이전트는 궤적이 곱해지기 때문에 스텝당 95%가 10스텝이면 최종적으로 60%로 무너집니다. 프롬프트는 천장을 정하고, 파인튜닝은 바닥을 끌어올립니다. 에이전트 실무에서 파인튜닝을 하는 가장 흔한 실질적 이유가 이겁니다. 다만 저는 few shot 프롬프팅을 활용하면 대부분의 use case에서 RAG구축으로도 충분하지 않나 생각합니다.
Hỏi & Đáp
안녕하세요! 강의와 책 모두 관심을 가져주셔서 감사합니다. 코드는 책에 작성된 내용이 더 최신 버전의 코드입니다
Hỏi & Đáp
안녕하세요, pull_prompt() 가 동작하지 않는다면, 홈페이지에서 제공되는 프롬프트를 확인하시고 아래와 같이 작성하셔도 됩니다 홈페이지를 확인하면, system prompt와 user prompt의 조합인 것을 확인할 수 있습니다 .이와 같은 경우 아래와 같은 형식으로 변환할 수 있습니다 from langchain_core.prompts import ChatPromptTemplate rag_prompt = ChatPromptTemplate.from_messages([ ('system', '''You are a teacher grading a quiz. You will be given a QUESTION and a set of FACTS provided by the student. Here is the grade criteria to follow: (1) You goal is to identify FACTS that are completely unrelated to the QUESTION (2) If the facts contain ANY keywords or semantic meaning related to the question, consider them relevant (3) It is OK if the facts have SOME information that is unrelated to the question (2) is met Score: A score of 1 means that the FACT contain ANY keywords or semantic meaning related to the QUESTION and are therefore relevant. This is the highest (best) score. A score of 0 means that the FACTS are completely unrelated to the QUESTION. This is the lowest possible score you can give. Explain your reasoning in a step-by-step manner to ensure your reasoning and conclusion are correct. Avoid simply stating the correct answer at the outset.'''), ('human', ''' Retrieved documents: {{input.documents}} User question: {{input.question}}''') ])
Hỏi & Đáp
네네 맞습니다 context에 답변에 필요한 문서가 포함되어있지 않아서인데요, 현재 강의의 구성에서는 chunk_size , chunk_overlap , separators 를 변경해보면서 retriever.invoke()에서 원하는 chunk가 잘 반환되는지 확인해보셔야 합니다
Hỏi & Đáp
안녕하세요, 공식문서를 다시 보니 Annotated[list[AnyMessage], add_messages] 가 맞네요. 소스코드를 수정하고 강의 설명에 업데이트 해두었습니다. 감사합니다 https://reference.langchain.com/python/langgraph/graph/message/MessagesState
Hỏi & Đáp
공유해주셔서 감사합니다! 소스코드에는 2.4.1로 했을 때 문제가 없었는데 라이브러리에 이슈가 있는 것 같네요. 감사합니다!
Hỏi & Đáp
안녕하세요! 좋은 질문 감사합니다. 답변을 드려보자면 별도의 함수를 선언하지 않는다면 lambda를 쓰는게 가장 파이썬스러운게 아닌가 생각합니다. 다만 코드가 오히려 지저분해지지 않을까 싶네요. 공식문서에도 함수를 쓰는 걸로 업데이트가 된 걸 보면, 별도의 함수를 선언하는 것이 가장 적합한 것 같습니다 https://docs.langchain.com/langsmith/evaluate-llm-application#reference-code 저라면 답변의 정확도를 기본적으로 평가하고 대신 평가 데이터셋을 사람의 답변에 따라 여러가지로 구현해서 다양한 시나리오를 평가하는 식으로 구현할 것 같습니다(만약 사람의 답변이 중요하다면) 그리고 human-in-the-loop를 제대로 실행 하는지 (trajectory)를 추가로 평가할 것 같아요 제가 강의 슬라이드를 공유하지 않았군요, 덕분에 강의자료를 수정했습니다 감사합니다. 아마존 링크: https://docs.aws.amazon.com/machine-learning/latest/dg/evaluating_models.html 세일즈포스 논문링크: https://arxiv.org/abs/1806.08730 좋은 피드백 감사합니다!
Hỏi & Đáp
안녕하세요 좋은 질문 감사합니다. node로 별도로 선언하지는 않았지만 그래프 온톨로지에는 포함된다고 보시는게 맞습니다. 코드를 다시 보시면 retireve node를 generate 와 rewrite node들과 edge로 연결시키지 않는 것을 보실 수 있습니다. 하지만 그래프를 보면 점선으로 연결되어 있는 것을 확인할 수 있습니다. 여기서 check_doc_relevance 가 node이면서 다음 node 들을 정의하는 edge 의 역할을 하기 때문인데요(위에서 온톨로지에 포함된다고 보시는게 맞다고 설명한 이유입니다). 그림으로 표현하자면 아래와 같은 느낌입니다. 그래프에 명시적으로 보이게 하려면 check_doc_relevance 를 node로 작성하고, check_doc_relevance 에서 add_conditional_edges() 를 선언해도 됩니다. 저는 불필요하게 코드양을 늘리는 것 같아서 강의에서 보시는 것과 같이 진행했는데, 에이전트의 흐름을 파악하는데 있어서는 오히려 가독성이 떨어질 수도 있겠다는 생각이 드네요. 그리고 State를 반환하지 않아도 node에 추가시킬 수 있습니다. 공식문서에서는 안된다고 되어있지만 {} 를 리턴시키면 node로 추가할 수 있습니다. 또 설명이 부족한 부분이 있다면 언제든지 질문으로 올려주세요! 최대한 빠르게 답변 드리겠습니다
Hỏi & Đáp
안녕하세요! 파일 오류인가 싶어서 다양한 방법들을 시도해봤는데, 깃허브 차원의 에러인 것 같습니다. 해결되기 전까지는 clone후에 로컬에서 확인 부탁드립니다 https://github.com/orgs/community/discussions/197350