유피터랩은 언제나 환영이죠 제가 제일 좋아하는 곳이에요
지금은 5주 차 폴더에 있죠
이건 5주 차에 작성된 첫째 날 주피터 노트예요 오늘 우리가 지낼 곳이죠 아주
단순한 방식으로 DIY 래그 구현을 구축할 겁니다 하지만 이게 어떻게 작동하는지
통찰력을 줄 거예요
우선 쇼어햄에 있는 우리 보험 기술 회사에 대해 말씀드리죠
회사 공유 폴더에 엑세스 권한이 있어요 노웨어 베이스라는 거죠 같은 주에 여기 5개
폴더에 넣어뒀어요 여러분이 정독하세요
열어보면 4개의 폴더가 있어요 회사 계약서, 직원과 제품 4개의
다른 부서나 4개의 분야를 나타내는 것들이죠
한 가지 언급할 것은 이미 짐작하셨겠지만 여기 회사 데이터가 꽤 많이
있습니다 전부 완전히 허구예요
이건 LLM이 만든 거예요
몇 주 전에 했던 운동을 그대로 하면서 데이터 생성기를 작성해서 데이터 일부를 만드는 데 사용했어요
몇몇 문서와 기타 등등의 관계를 유지하기 위해서요
저도 몇 가지 수정을 추가하긴 했지만 거의 모든 것은
GPT 4나 클로드가 생성했어요
회사에서 이걸 잠깐 보죠 회사에 관한 게 몇 가지 있어요
마크다운 문서라면 꽤 짧은 문서라고 생각해요
이렇게 열 수 있으면 INurer Elmlm에 대한 평가서를 볼 수 있어요
2015년에 에이버리 랭커스터가 설립한 것으로 알려져 있죠
에이버리 이름을 쓸 거예요
몇 번 만날 거예요
원본 문서도 보여 드릴게요
우리가 잘 아는 마크다운처럼 보여요
그럼 계약의 지식 기반으로 돌아가 보죠
계약에 관해 보다 실질적인 정보를 얻었는데요 계약 조건 갱신과 계약에 포함된
기능은 나중에 중요하게 다루게 될 텐데요
그러니 기억해 두세요
다른 것들도요
다시 지식 기반으로 돌아가서 직원들을 살펴보면 이건 다양한 직원들의 직원 인사
기록이에요
CEO인 에이버리 랭커스터도 인사팀의 기록이 있어요
모두 인사 서류를 갖고 있고 제품에는 인큐어 엘름에서 제안한 다양한
공지 사항이 적혀 있어요 자동차 보험에 대한 카 엘름도 있고 홈 엘름 등도 있죠
이 문서들을 훑어보면 정말 사실적이라는 게 놀라워요
프론티어 모델스 협찬이죠
로드맵을 가지고도 훌륭한 제품 요약이에요
좋아요
네
그 시절 첫날부터요
그럼 어떻게 하죠?
이 회사에 대한 질문을 하는 뭔가를 지금 작성하겠습니다 인위적으로
찾아보고 프롬프트에 컨텍스트를 삽입하는 거죠
수입도 좀 하고요
이번에는 GPT 4 미니를 사용할 거예요
이제 주스 얘기를 해보죠 get it get it
그래서 여기서 하는 건 이건 Python 함수입니다 이 폴더 안에서 모든 콘텐츠를
취해 리스트에 넣는 거죠
직원들요
따라서 직원은 이제 지식 기반/직원 파일명 목록이 되겠죠
각각의 파일은 엉성한 코드인데 해킹을 당해서 파일의 이름을 취해요
사실 직원의 플로이드 이름인데 거기에 성을 취하죠
성을 분할해 파일을 열고 사전에 넣죠 키는 직원 이름이고
문서는 문서예요
이걸 실행해 보죠 이걸 보세요
사전이 나올 거라고 기대해요
미안해요
문맥이나 사전이라고 하죠
모든 키를 문맥 안에서 살펴보죠
여기 열쇠요
예상하셨겠지만 열쇠는 직원들의 성이에요
그중 한 명은 CEO인 랭커스터예요
랭커스터를 간단히 살펴보죠
랭커스터 사전에서 간단히 찾아볼 수 있죠
뱀이 인사 기록에서 하락 문서를 떼는 걸 봐야 해요
마법 같은 일은 전혀 없어요 파일을 읽고 사전에 쑤셔 넣는 거요
그게 다예요
이제 이걸 확장해보죠 여기서 하려는 건 제품에 대해 정확히 같은 걸 하는 거예요
제품 폴더를 보세요, 각각의 파일을 반복해 이름을 빼내고 같은 컨텍스트
사전에 밀어 넣어요
이제 보면∙∙∙ 먼저 실행하면∙∙∙ 잊지 않도록 하세요
됐어요
이제 건반을 보세요
직원들의 성과 제품명을 조합한 게 보일 거예요
이게 그 회사 성이랑 시장이에요
다녀왔어요
진정했어요
제품명은 괜찮아요?
준비됐죠?
시스템 메시지예요
보험 회사인지 아닌지 묻는 질문에 정확하게 대답하는 전문가죠
간결하고 정확하게 대답하세요
모르면 모른다고 하세요
지어내지 마세요
관련 맥락을 제공받지 못했다면요
매우 신뢰할 만한 설명을 시스템에 입력하면 아무것도 발명하지 말라고
경고하는 효과가 있어서 환각 증상을 막고 정확도를 높일 수 있죠
나중에 다시 살펴보겠지만 기억해두실 가치가 있어요 이걸 여러분 노트북에
두시거나 유용한 것 목록에 두시길 바랍니다 정확성이 필수적일 땐 프롬프트도 유용하거든요
그걸 추가해 관련 컨텍스트 get이라는 함수를 만들 거예요
이 함수가 하는 일은 아주 중요해요
이건 메시지가 될 거예요 어떤 종류의 메시지든요
컨텍스트를 반복할 거예요 컨텍스트에 있는 각각의 아이템에서 제목과 세부 사항을
가져오는 거죠
그리고 타이틀인지 아닌지 직원의 성인지 제품인지를 봅니다
제품이라면요 메시지 어딘가에 있다면요
랭커스터라는 단어가 메시지의 어디에 있든 간에 이 관련 컨텍스트 리스트에
밀어넣을 것입니다 그리고 리스트를 반환하죠
그게 무슨 뜻인지 보여드리죠
관련 컨텍스트를 get 하고 완전히 무관한 걸 넘긴다면 고양이 같은 거요 아무것도 못 얻어요
고양이는 보장 문제와 관련이 없어요
그래서 에이버리 랭커스터가 누구인지를 입력하면, 만세! Tipet up! Tipet up! Tipet up! Tipet up! Tipet up! Tipet up!
사실 아주 확실한 답이 나올 겁니다 우리가 기대하는 바로 그 답이죠 get it get it get it
에이버리 랭커스터가 누구고 누가 차분한지 물으면 한번 보죠
포함할 수 있는 두 가지 목록이 get을 받게 되죠
네, 두 번째가 시작되는 게 보이시죠
저게 기둥이에요
에이버리의 문서와 열 문서가 담긴 목록을 받았죠 get it get it
물론 아주 잘 부서지죠
Avery 성을 빼고 Avery라고만 쓸게요 대문자 C 없이요 대소문자 구분이
안 되는 매치도 아직 안 했거든요
Get을 해도 얻는 게 없다는 걸 알게 되겠죠
잘 부서져요
기본 케이스에만 적용될 거예요
이제 한 단계 더 나아가서 함수 추가 컨텍스트를 만들어 메시지를
받죠
간단히 어떤 관련 컨텍스트든 get이 되는 거죠
뭔가를 찾으면 그걸 메시지에 추가하죠
다음의 추가적인 컨텍스트가 이 질문에 대답하는 데 관련 있을 수 있다고 할 거예요
지나간 것 위에 뭔가를 쌓는 거예요
예를 들어보죠 질문을 다시 해보죠
에이버리 랭커스터부터 시작할게요 긍정적인 예죠 나쁜 예도
있어요
에이버리 랭커스터가 누구고 감방을 운영해야 한다고요
에이버리 랭커스터가 누구죠?
뭐가 보이죠?
그렇군요
시작할게요
에이버리 랭커스터가 누구죠?
다음의 추가적인 맥락은 이 질문에 대답하는 데 관련이 있을 수 있죠
세세한 부분까지 신경 써야 해요
제가 반대 예시를 들어볼게요
또 다른 문제요
알렉스 랭커스터가 누구냐고 물으면 랭커스터라고 쓰여 있을 거예요
물론 여전히 관련 컨텍스트라고 하죠
물론 거기서 묘기를 놓쳤죠
그래서 조잡해요
문자열만 살펴보는 거예요
하지만 최애 채팅 함수를 쓰려면 그 정도면 충분하죠
이게 그라디오가 기대하는 함수라는 걸 기억하세요
사용자 인터페이스를 빠르게 만들려면 현재 메시지와 메시지의 이력을 취해야 합니다
이제 이게 여러분께 제2의 본성이 됐으면 좋겠네요
히스토리를 OpenAI가 기대하는 형식으로 변환합니다 특정 구조의 독재 목록이죠
그리고 이 멋진 전화를 걸죠
메시지에 컨텍스트를 추가해 오픈AI에 보냈어요
오픈AI 채팅 완료 역시 여러분께 제2의 본성이 되어 응답을 스트림으로
보내드리죠
실행해 보죠
이제 마지막 단계는 그래디오에서 이걸 불러오는 한 줄 대사예요
시작할게요
어떤지 보죠
이렇게 말해 보죠
안녕하세요
무엇을 도와드릴까요?
에이버리 랭커스터가 누구냐고 물어보죠
맞아요
네
랭커스터요
물론 좋은 답변이 나왔죠 에이버리 랭커스터 정보가 입력된 정보를 오픈라이에 보냈다는 걸 알고
있었으니까요 get it
이제 뭐가 평온한지 말해 볼까요?
혁신적인 자동차 보험 상품도 있죠
다 됐어요
제품에 대해 중점을 두고 있는 큰 컨텍스트에서 요약되는 정보가 엄청나게
많아요
로드맵을 통해 계속 개선할 수 있다고도 하죠
좋아요
누더기인 거 보이시죠?
단순하지만 이게 바로 핵심이에요
잠깐 끊고 얘기하죠
내가 뭘 할지 알죠?
에이버리가 누군지 물어볼게요
사실 예전에 했던 대화가 들어 있어요 다시 시작해야겠네요
새로운 대화를 해요
안 그러면 에이버리가 누군지 알 거예요 아까 물어봤잖아요
새로운 사용자 인터페이스를 가져와서 처음부터 시도해보죠 그런 장점은 주지 말고 그냥 물어보세요
에이버리가 누구죠?
죄송하지만 에이버리에 대한 정보가 없어요
잘 부러지는 게 보이죠?
성을 따야 해요
성 철자를 틀려도 대문자 L이 없는 랭커스터는 망가지기 마련이니 이해하시죠?
Get it
추가 정보를 추가하는 효과적인 방법이죠
더 정확한 답을 얻지만 글자가 정확히 일치해야 해요
유연하지도 확장성도 낮은 해결책이죠
더 잘할 수 있어요
내일 우리가 할 일이 바로 그거예요
이제 슬라이드로 돌아가죠