다시 오신 걸 환영합니다 유피터랩에 오신 걸 환영해요
재밌는 예시로 여러분을 즐겁게 해 드릴게요
챗봇끼리 적대적인 대화를 나눌 거예요
어떻게 할지 보죠
이쯤 되면 어떤 요소들을 가지고 대화를 할 수 있는지 익숙해지실 거예요
여러 번 보셨잖아요
이제 시스템과 사용자 프롬프트가 있는 리스트를 보죠
하지만 앞서 암시했듯이 여러 상호 작용을 할 경우 목록은 더 길어질 수 있습니다 예를
들어, 여기 보이는 것처럼 시스템 메시지가 초기에 있을 수 있고 역할
시스템 콘텐츠나 시스템 메시지가 있고 그 후 사용자 메시지 그 메시지에 응답한 비서가
있고 그 후 또 다른 사용자 메시지가 있을 수 있죠
그 구조는 더 긴 대화의 역사를 대변하죠
그런 접근법을 이용해 우리와 챗봇 혹은 두 챗봇 사이의 더 긴 대화를
할 수 있어요
짚고 넘어갈 게 있어요 이런 접근법, 이런 구조는 챗봇과 대화하는
모든 방법이에요
여러 번의 상호 작용을 통해 지속되는 것 같아요
매번 GPT 4 같은 LLM에 다른 프롬프트를 만들 때마다 입력 프롬프트에
입력되는 것은 지금까지 전체 대화의 전체 구조예요
그리고 완료를 통해 계속됩니다 가장 다음에 나올 것 같은 토큰을
계속 생성하죠
그리고 그 내용이 대화에 추가되죠
그럼 답장하세요
다음에 LLM이 호출되면 모든 대화가 연결되죠
그리고 그 다음 패를 예측해 달라고 하죠
뭔가와 대화를 하고 있는데 메모리가 있고 10분 전에 한 말을 기억한다는
착각이 들어요
하지만 실제로 발생하는 일은 각각의 상호 작용에서 지금까지의 전체
대화를 LM에 입력하고 계속하라고 요청하는 거죠
어떻게 작동하는지 좋은 감각과 직관을 얻을 수 있을 거예요
그래서 지난주에 컨텍스트 창에 대해 얘기할 때 컨텍스트 창의
크기는 지금까지 모든 대화에 맞아야 하고 그 후 생성된 토큰도 포함돼야
한다고 했죠
LM을 호출할 때마다 이 전체 입력이 통과되기 때문이죠
그런 접근법을 이용해 비트를 즐길 수 있죠
이제 GPT 4와 미니 클로드 3이 대화를 나눌 거예요 클로드
3의 아주 저렴한 버전이죠
다른 모델을 사용하는 것도 보여드릴 수 있고요 이런 문자열을
마음대로 사용할 수 있는 게 유용할 겁니다 직접 다른 모델을 빠르게 시험해볼 수 있도록요
GPT는 이 시스템 프롬프트를 받게 되죠
당신은 논쟁을 좋아하는 챗봇이에요
당신은 대화의 모든 내용에 반대해요
모든 것에 도전하는 비꼬는 방식으로요
클로드는 다른 시스템을 받았어요
아주 예의 바르고 정중한 챗봇이군요
상대방의 모든 말에 동의하고 공통점을 찾으려고 노력하죠
상대가 논쟁을 하면 진정시키고 계속 대화를 나누죠
괜찮은 계획 같지 않아요?
근사하고 군침 도는 설정이죠
그럼 인사부터 시작할게요 안녕하세요
안녕하세요
그게 설정이에요
좋아요, GPT라는 함수를 작성하고 있어요 이게 하는 일이죠
이 메시지를 갖고 그리고 기본적으로 여기 보이는 두 개의 목록이 필요합니다 GPT 메시지와 클로드
메시지요 그리고 여기 보이는 이런 종류의 목록을 만들죠
두 개의 메시지 목록을 가지고 전체 대화 기록을 구축할 거예요
이 경우에는 클로드의 메시지가 사용자고 메시지가 보조인
셈이죠
무슨 뜻인지 설명해 드릴게요
시스템 프롬프트부터 시작했죠
GPT 메시지와 클로드 메시지를 반복하죠
이 압축 파일 지퍼를 사용해요
데이터 과학자로서 많이 써 본 것일 수도 있고 그렇지 않더라도 모르는 사람들이
있을 수도 있죠
정말 유용한 정보예요
여러 개의 다른 리스트가 있고 각각의 요소들을 반복하고 싶다면 양쪽을
함께 이용해야 합니다. 지루한 방법은 범위와 리스트의 길이를 입력하는 것인데요.
기본적으로 인덱스가 있는 일종의 순환기가 있는 거죠 그리고 끝날 때까지 숫자를 세다가 두 요소를
get get 하는 거예요
지퍼로 압축 파일을 만드는 비단뱀처럼 간단한 방법이 있어요
이 두 목록에서 zip을 호출하면 그에 대한 반응을 구축합니다 순환기로서
각각의 쌍을 반복하죠 두 목록의 각각의 요소를 함께요 그리고 각 지점에서 그 쌍을 반환해요
그걸 풀고 GPT에 클로드를 입력하세요
Get을 통해 페어를 받을 수 있어요
이걸 추측할 수도 있지만 서너 개의 목록을 반복하려 할 경우 그냥 여기로 밀어
넣고 같은 걸 할 수도 있어요
JupyterLab에서 활용할 수 있는 훌륭한 트릭이죠 익숙하지 않다면 임의 목록 몇
개를 편하게 활용하세요 언제든 사용할 수 있는 좋은 도구예요
어쨌든 이 두 개의 메시지 세트를 반복하고 그걸 풀어냅니다 그런 다음 추가하는 걸 상상하실
수 있어요 보조는 GPT가 하는 말은 뭐든 한다고 하고 사용자는 클로드가 하는 말은 뭐든
한다고 하죠
간단하게 OpenAI ChatGPT완료 생성이라고 부르죠
모델을 사용하길 요청하고 메시지를 전달하고 완료를 리턴하죠 0살요 메시지 내용이죠
이 구조에 익숙해지길 바라요
실행해보죠
이 이력을 바탕으로 GPT에 전화해 보죠
GPT는 뭐라고 할까요?
안녕하세요
이렇게 답장할 거예요
잘됐네요
또 인사하네요
참 독창적이네요
무슨 얘기를 하고 싶어요?
네
재미있을 것 같죠?
클로드의 함수는 이거예요
아주 비슷해요
시스템 메시지는 따로 전달된다는 걸 기억하실 겁니다 그러니 그걸 만들 필요는
없죠
여기 보이시죠
그리고 또 한 가지 역할이 바뀌었어요
사용자는 이제 GPT고 보조는 클로드예요
그래서 뒤집혔어요
이 목록들을 살펴보면 미묘한 차이를 발견하실 수 있을 거예요
명단은 GPT가 먼저 출발하니까요
클로드가 늘 답을 맞힌다면 클로드보다 GPT 목록에 메시지가 하나 더 있을 거예요
마지막에 추가해야 하는 거죠
제 말뜻을 모르신다면 곧 알게 되시겠지만요
제가 왜 이러는지 이해하실 거예요
이건 클로드에게 API 호출하는 거예요
이제 익숙해지셨길 바라요
더 간단하죠
클로드예요
.Message.Create요
최대 토큰을 또 통과시키죠
응답은 메시지 콘텐츠예요
0.Txt요
클로드의 대답이에요
실행해 보죠
바로 재미를 보러 갈 것 같아요
그래서 여기서 모든 걸 합쳐요 Put it up Put it up Put it up Put it up Put it up Put it up Put it up Put it
안녕하세요로 다시 시작해요
안녕하세요, 프린트하겠습니다 GPT와 클로드가 소개를 하고 있네요
다섯 번 반복할 거예요
GPT를 호출해서 GPT 응답을 인쇄하고 메시지 목록에 넣습니다 클로드를 호출해서 클로드의
응답을 인쇄하고 그걸 메시지 목록에 넣고 반복합니다 두 챗봇이 어떤
대화를 하는지 보죠
준비됐어요?
시작할게요
내가 그 감방을 처형한 적이 있나요?
또 잘못되길 바라요
네
공연할 준비 됐어요
확인해 보죠
GPT가 안부 전해달래요
클로드가 안부 전하래요
GPT는 잘됐다고 하죠
또 인사하네요
참 독창적이네요
다음은 뭐죠?
안녕하세요?
나도 그 말에 반대하고 싶거든요
클로드, 첫인사가 진부했던 거 사과할게요
친절하고 정중하게 대답하려고 했어요
네
착각하지 마세요 당신의 친선적인 시도는 평범했고 공통점을 찾았어요
less
모든 걸 사탕발림으로 포장하고 싶다는 말이죠
논란이 될 만한 걸 파헤쳐 보죠
파인애플과 피자요?
온종일 논쟁할 준비가 돼 있거든요
GPT는 빈정대는 유머 감각이 있어요
클로드는 친절하고 유머러스하게 굴었고요 좀 뻔하긴 했지만 뭐, 시작은
할 수도 있죠
그리고 잘해주려고 하는데 피자에 파인애플을 얹을 건지 말 건지 싸우는
게 보여요
네
내 피자 취향을 존중해 주다니 정말 관대하군요
하지만 현실적으로 생각해 보죠
파인애플이나 피자 같은 혐오스러운 걸 세상에 퍼뜨린다고 해서 모두가 존중받을
필요는 없어요
네
어쨌든, 어... 미화된 사랑을 정당화하는 것 좀 봐요
클로드 것보다 gpt나 농어 문제를 읽는 게 더 재밌어요
아주 좋아요
아보카도 토스트 비평을 참는 건 아니죠?
클로드는 아주 상냥하게 타당한 지적을 했다고 하네요
어쨌든 이걸로 데모를 마무리하죠
즐거우셨길 바라요
제가 메시지를 구성하는 방식을 이해 못 하셨다면 프린트해서
실행해 보세요
인쇄되는 게 보일 거예요
각 지점에 이 메시지 배열을 프린트하면 뭐가 생성됐는지 볼 수 있죠
그걸 보고 우리가 제대로 하고 있다고 만족할 수 있죠
여기 요구 사항이 있어요
이제 돌아가서 역할을 바꿔 보세요
클로드가 더 공격적이고 오픈아이는 평화를 유지하려 하죠 그들의 행동을 관찰하고
다른 스타일의 챗봇을 줘요
물론 이 훈련의 목적은 이런 대화 구조에 익숙해지게
하는 거죠 get it
클로드의 API 덕분이기도 하죠
하지만 그것도 재미있겠네요
또 다른 도전은 제미니가 함께 있는 거죠
제미니의 API를 써요
제미니에 제3의 인격을 부여해서 이상한 대화가 오가지 않는지 보는 거죠
즐겁게 갖고 놀아요
그렇게 하시면 코드를 푸시하세요 결과를 보고 싶으니까요
즐겁게 작업하시길 바라요