[00:00]
주말에 허깅페이스에서
[00:01]
오픈소스 딥 리서치 논문을 읽고 있었는데
[00:04]
제 눈을 사로잡은 것이 있었습니다.
[00:07]
그래서 이것에 대해
[00:09]
좀 더 깊이 파고들어 보고 싶었죠.
[00:12]
바로 코드 에이전트를 사용하는 것인데요,
[00:16]
이것을 테스트해보고
[00:19]
제가 발견한 내용을 공유하고 싶었습니다.
[00:22]
보시다시피 이들은 제가
[00:25]
이 채널에서 자주 사용했던
[00:27]
접근 방식과는 다른
[00:29]
도구 호출 방식을 사용하고 있습니다.
[00:32]
여기 보시면... 잘 보이시나요?
[00:34]
조금 확대해보겠습니다.
[00:37]
이정도면 잘 보이실 것 같네요.
[00:39]
이제 보시면,
[00:41]
왼쪽 상단에
[00:42]
스마트폰 모델 코드 액트 원(Code Act One)의
[00:44]
구매하기에 가장 비용 효율적인
[00:45]
국가를 결정하라는 지시사항이 있습니다.
[00:48]
이것이 우리의 목표이고
[00:50]
사용 가능한 API들이 있습니다.
[00:52]
환율 조회, 변환, 세금 계산,
[00:54]
최종 가격 조회, 휴대폰 가격 조회,
[00:56]
배송비 추정 등이 있는데
[00:58]
이것들을 우리의 도구라고 생각하시면 됩니다.
[01:02]
이 채널에서 우리는
[01:04]
텍스트 JSON을 액션으로 사용하는
[01:06]
순차적인 방식을 많이 사용했었죠.
[01:10]
여기서는 국가를
[01:11]
독일로 입력하면 응답을 받습니다.
[01:15]
1.1과
[01:17]
0.19를 받고, 모델과 국가를 다시 입력하면
[01:20]
700이라는 응답을 받습니다.
[01:24]
이제 다른 도구를 호출해서
[01:26]
변환하고 세금을 계산해야 하죠.
[01:28]
이렇게 하나의 국가에 대해서만
[01:31]
세 번의 호출이 필요한 거죠.
[01:35]
꽤 많은 요청이 필요한데,
[01:37]
반면에 오른쪽을 보시면
[01:39]
LLM 에이전트를 사용한
[01:42]
'코드 as 액션' 방식이 있습니다.
[01:45]
이걸 정말 시도해보고 싶었는데요.
[01:47]
여기서는 순차적으로 도구를
[01:50]
호출하는 대신 코드를 작성합니다.
[01:53]
도구를 호출하는 대신
[01:55]
모든 국가를 리스트에 넣고
[01:58]
빈 최종 처리 결과를 설정한 다음
[02:01]
가장 효율적인 국가를 찾기 위해
[02:04]
for 루프를 실행합니다.
[02:08]
이렇게 하면 많은 단계가 필요 없고
[02:11]
한 번의 액션으로
[02:14]
처리할 수 있다는 걸 알 수 있죠.
[02:17]
아래로 스크롤해보면
[02:19]
코드 액션이 JSON보다
[02:21]
훨씬 간단하다는 것을 알 수 있습니다.
[02:24]
JSON에서는 5개의 연속 액션을
[02:26]
4개의 병렬 스트림으로 실행해야 하며
[02:29]
각각 20개의 JSON 블록을 생성해야 하지만
[02:32]
코드에서는 한 단계면 됩니다.
[02:34]
for 루프를 실행하고
[02:36]
국가들이 리스트에 있으니까요.
[02:38]
저는 이게 매우 흥미로웠고
[02:40]
전에 시도해보지 않은 방식이었습니다.
[02:43]
코드를 사용하면 도구들을
[02:46]
공통 라이브러리처럼 재사용할 수 있고
[02:48]
벤치마크에서 더 나은 성능을 보입니다.
[02:50]
액션을 표현하는 더 직관적인 방법과
[02:53]
학습 과정에서 LLM이 코드에 많이 노출된
[02:56]
두 가지 이유 때문인데요.
[02:58]
제가 테스트해본 결과
[03:00]
여기 있는 벤치마크에서
[03:02]
좋은 결과를 얻었습니다.
[03:04]
그래서 이걸 실제로 테스트해보고 싶었고,
[03:08]
다른 문서들도 찾아보았습니다.
[03:10]
여기 스몰 에이전트와
[03:14]
그들이 사용하는 코드 에이전트가 있습니다
[03:17]
오늘은 이것에 대해 몇 가지 테스트를 진행하고
[03:20]
이것이 실제로 어떻게 작동하는지
[03:23]
직접 확인해보려고 합니다
[03:25]
제가 직접 이 위에 도구를 만들어보고 싶은데
[03:28]
커스텀 도구를 추가해서
[03:31]
코딩 에이전트가 제 도구도 활용할 수 있는지
[03:34]
확인해보고 싶습니다. 하지만 그전에
[03:36]
이 채널에서
[03:37]
매우 흥미로운 이벤트를 진행한다는
[03:39]
소식을 전해드리고 싶습니다. 멋진 상품도
[03:42]
준비되어 있어서 이 영상을 보여드리려고 합니다
[03:45]
3월 17일, 엔비디아가 GTC
[03:47]
AI 컨퍼런스를 산호세에서 개최합니다
[03:50]
현장 참석은 제한적이지만
[03:52]
컨퍼런스는 온라인으로도
[03:55]
진행될 예정입니다
[03:56]
올해 이 채널에서는
[03:58]
엔비디아의 GeForce RTX 4080 SUPER
[04:01]
GPU를 받을 수 있는 래플에 참여할 기회를 드립니다
[04:05]
이 래플에 참여하기 위해서는
[04:07]
AI 분야와 그 발전 방향에
[04:09]
관심이 있으면 됩니다
[04:11]
GTC 컨퍼런스에서는
[04:13]
온라인으로 참여할 수 있는 많은 세션이 있는데
[04:16]
생성형 AI, ML, 로보틱스 등
[04:19]
흥미로운 주제들이 많습니다
[04:21]
래플에 참여하기 위해서는
[04:23]
이 세션들에 참여해야 하는데
[04:26]
먼저 등록을 해야 합니다
[04:27]
아래 설명란의 링크를 통해
[04:29]
이 페이지로 이동할 수 있습니다
[04:32]
'지금 등록하기'를 클릭하고
[04:33]
등록 양식을 작성하면
[04:36]
이 등록 양식을 받게 되는데
[04:38]
이것을 작성하면
[04:40]
카탈로그에서 찾을 수 있는
[04:42]
모든 세션에 참여할 수 있습니다
[04:44]
저는 개인적으로
[04:46]
젠슨 황의 기조연설을
[04:48]
가장 기대하고 있습니다
[04:50]
또한 Mistral AI의 CEO인
[04:53]
아서 메나드의 세션도 있고
[04:56]
랭체인의 공동창업자이자 CEO인
[04:59]
해리슨 체이스의 'AI 에이전트 프로덕션' 세션도
[05:02]
기대됩니다
[05:04]
저는 이 세션들을 온라인으로 참여할 예정이고
[05:07]
래플에 참여하고 싶으시다면
[05:10]
여러분도 참여하셔야 합니다
[05:12]
나중에 제가 폼을 공개할 예정인데
[05:14]
여기에 참여한 세션 정보를 입력해야
[05:17]
GeForce 4080 SUPER를
[05:19]
받을 수 있는 자격이 주어집니다
[05:21]
이 상품에 도전할 수 있는 거죠
[05:24]
오늘은 약 한 달 후에 있을
[05:27]
GTC 컨퍼런스와
[05:29]
래플에 대해 알려드리고 싶었습니다
[05:31]
지금부터 등록을 시작하시면
[05:34]
컨퍼런스가 시작될 때
[05:36]
준비가 되어 있을 테니까요
[05:38]
세션도 보시고
[05:40]
래플에도 참여하실 수 있습니다
[05:42]
추가 정보는 나중에 다시 알려드리겠습니다
[05:45]
지금은 설명란의 링크를 통해
[05:48]
등록만 하시면 되고
[05:49]
컨퍼런스 시작이 가까워지면
[05:51]
자세한 정보를 다시 전달해 드리겠습니다
[05:54]
저는 정말 기대되네요
[05:56]
여러분도 그러시길 바랍니다
[05:59]
정말 흥미진진할 것 같고
[06:00]
상품도 정말 좋은데
[06:03]
제가 참여할 수 없다는 게
[06:05]
아쉽네요
[06:08]
제가 참가할 순 없지만, 네, 규칙이 그렇죠
[06:10]
추후에 더 자세한 정보를 가지고 돌아오겠습니다
[06:12]
계속 지켜봐 주세요. 그리고 지금은
[06:15]
여기 커서에 아주 이해하기 쉬운
[06:18]
예제를 준비해 놨습니다
[06:21]
먼저 임포트를 할 건데요, 확대해서 보여드리면
[06:24]
visit_webpage 도구를 임포트 하겠습니다
[06:29]
이 도구는 스몰 에이전트 라이브러리를 사용해서
[06:32]
웹 페이지를 방문하고
[06:36]
마크다운 형식으로 콘텐츠를 가져옵니다
[06:40]
이걸 컨텍스트로 사용할 수 있죠
[06:42]
여기 보시면 웹 에이전트가 있는데
[06:44]
visit_webpage 도구를 사용하고 있습니다
[06:48]
이 도구의 설명을 보면
[06:50]
웹 검색을 실행하는데
[06:53]
인자로 쿼리를 전달하면 됩니다
[06:56]
그리고 아주 중요한 코드 에이전트가 있는데
[06:58]
이것은 웹 에이전트 도구에 접근할 수 있고
[07:01]
코드 에이전트가 코드를 작성할 때
[07:04]
승인된 임포트를 추가할 수 있습니다
[07:07]
이 도구들에서 실행할 코드를 작성할 때요
[07:10]
이건 나중에 다시 살펴볼 내용인데
[07:12]
커스텀 도구를 만들 때 다시 다룰 거고
[07:14]
지금은 웹 에이전트에 대한
[07:17]
쿼리를 작성해 보겠습니다
[07:20]
스몰 에이전트를 사용해서
[07:22]
정보를 검색할 건데요
[07:25]
Anthropic의 Claude API 가격이 얼마인지
[07:29]
알아보고
[07:30]
구글 제미나이 2.0 API 가격도 찾아보겠습니다
[07:34]
그리고 가격 인하에 대해서도 알아볼 건데
[07:36]
지난 2년간 LLM 비용이
[07:40]
얼마나 감소했는지 보겠습니다
[07:43]
이 데이터를 분석해서
[07:46]
이를 기반으로
[07:48]
2025년 가격을 예측해보려고 합니다
[07:52]
에이전트가
[07:54]
이전 데이터와 현재 데이터를 기반으로
[07:57]
계산을 수행해서 앞으로 LLM API
[07:59]
가격이 어떻게 될지 예측하는 걸 보여드리겠습니다
[08:04]
이제 실행해 보겠습니다
[08:05]
manager_agent.run_query를 실행하고
[08:07]
답변을 출력하도록 하겠습니다
[08:10]
이제 시작하면 hopefully
[08:13]
몇 가지
[08:15]
예시들을
[08:17]
어, 좀 이상하네요만
[08:19]
보시면 여기
[08:20]
모든 요청을 첫 단계로 로딩하고 있고
[08:23]
이미 파이썬 코드를 실행하고 있습니다
[08:26]
이 검색 쿼리를 실행할 건데
[08:29]
Claude API 가격이 얼마인지 검색하고 있죠
[08:33]
여기서는 코드를 사용하고 있는데
[08:36]
이전에 했던 것처럼
[08:39]
JSON 텍스트 액션 대신에요
[08:43]
보시면 파이썬 코드를 실행 중이고
[08:45]
여기
[08:46]
쿼리와 함수가 있고 응답을 출력합니다
[08:50]
함수에서 바로
[08:51]
실행되는 걸 볼 수 있습니다
[08:54]
여기 모든 결과가 나오는데
[08:56]
꽤 빠르네요. 그리고 이것도
[08:59]
에러가 발생했을 때
[09:01]
최대 단계 수가 설정되어 있어서
[09:04]
최대 단계를 10으로 설정했죠, 여기 보시면
[09:08]
최대 10단계까지 실행할 수 있고
[09:10]
각 단계마다 에러가 발생할 수 있는데
[09:14]
여기 에러 메시지가 보이죠
[09:17]
그러면 다시 시도하는데
[09:19]
에러를 다음 시도에
[09:22]
피드백으로 전달해서
[09:26]
코드를 다시 생성하고
[09:28]
수정할 수 있습니다
[09:29]
이걸 계속 실행시켜 두고
[09:31]
코드 에이전트를 사용한
[09:33]
좋은 예시들이 나오면
[09:36]
다시 살펴보도록 하겠습니다
[09:37]
자, 에이전트가 작업을 완료했습니다.
[09:40]
여기 최종 결과가 나왔는데요,
[09:42]
실행된 코드의 결과를 보시면
[09:45]
최종 답변은
[09:46]
내년도 Deeps R1 API의 예상 가격이
[09:50]
0.48입니다.
[09:53]
토큰/API의 예상 가격은
[09:57]
0.19입니다.
[10:00]
위로 스크롤해서
[10:03]
어떻게 이런 결과가 나왔는지 살펴보겠습니다.
[10:06]
계산 과정을 보면
[10:08]
여기 있네요, 완벽합니다.
[10:11]
여기서 보시면
[10:13]
코드 에이전트가
[10:16]
가격에 대한 수치를 입력했고
[10:20]
단순화를 위해 백만 단위당 평균 비용을 가정했으며
[10:23]
과거의 비용 감소율을
[10:26]
적용했습니다.
[10:29]
약 50%, 정확히는 49%의 감소율을 적용하고
[10:33]
평균 가격에
[10:36]
이 역사적 감소율을 곱해서
[10:39]
최종 가격을 산출했습니다.
[10:41]
정말 멋진 점은
[10:43]
중간에 여러 요청을 하는 대신
[10:45]
모든 것을 하나의 큰 코드로 통합했다는 겁니다.
[10:48]
이렇게 하나의 코드로 만들어서
[10:52]
결과를 얻을 수 있죠.
[10:53]
한 번에 즉시 처리가 가능하며
[10:56]
여러 번의 요청을 주고받을 필요 없이
[10:58]
이것을 가져오고 저것을 가져오고
[11:01]
이 함수를 사용하고
[11:03]
저 함수로 계산하고,
[11:05]
이해하시죠? 그래서
[11:08]
초기 테스트 결과를 봤을 때
[11:11]
이 글에서 언급한 내용에 동의합니다.
[11:15]
이 시스템을 사용하면
[11:17]
약
[11:19]
30% 더 적은 단계로 처리할 수 있다는 점이죠.
[11:23]
매우 흥미로웠고
[11:24]
전에는 시도해보지 못했던
[11:26]
방식인데, 이제 한 가지 더 시도해보려고 합니다.
[11:29]
이제 코딩 에이전트가 작동하는 것을 확인했으니
[11:32]
새로운 도구를 만들어보겠습니다.
[11:35]
꽤 멋질 것 같은데요.
[11:37]
새로운 도구를 만들어보려고 합니다.
[11:42]
보시다시피 웹 페이지를 방문하는
[11:45]
도구가 있는데
[11:48]
이제 문서를 좀 사용해보겠습니다.
[11:51]
여기 제가 수집한 문서가 있는데
[11:54]
스몰 에이전트에서 가져온 것이고
[11:56]
도구 문서도 있습니다.
[11:59]
matplotlib을 사용해서 도구를 만들어보겠습니다.
[12:04]
API 가격 변화를 시각화하는
[12:08]
꽤 흥미로울 것 같네요.
[12:10]
자, 추가해보겠습니다.
[12:13]
코드 에이전트를 가져오고 도구들도 가져와서
[12:18]
음...
[12:21]
문서를 추가하고 스몰 에이전트도 있고
[12:25]
도구
[12:26]
문서도 있으니
[12:29]
새로운 커스텀 도구를 만들기 위한
[12:31]
프롬프트를 작성해보겠습니다.
[12:33]
자, 여기 프롬프트가 있습니다.
[12:35]
matplotlib을 사용해 데이터를 시각화하는 도구를 만들고
[12:37]
create_plot이라는 함수를 만들어서
[12:40]
생성된 플롯을 PNG 파일로 저장하고
[12:43]
tools.py에 이것을 수정해달라고 하겠습니다.
[12:46]
이 프롬프트로 시도해보죠.
[12:49]
네, 좋습니다. tools.py를
[12:53]
이렇게 업데이트하면 되겠네요. create_plot이 있고
[12:57]
matplotlib을 임포트하고
[13:00]
이것이 우리가 얘기했던
[13:02]
승인된 임포트도 변경해야 한다는 점을
[13:06]
코드 에이전트가 인식하는지
[13:10]
확인해보고 싶네요.
[13:13]
일단은 이것을 코드에
[13:16]
추가해보겠습니다.
[13:20]
임포트가 잘 된 것 같고
[13:23]
새로운 도구도 있네요, create_plot
[13:26]
완벽해요, xi_plot.png
[13:30]
음, 꽤 괜찮아 보이는데
[13:34]
한번 시도해볼게요
[13:36]
꽤 광범위했지만
[13:38]
한번 해보죠. 그리고
[13:41]
이게 잡혔는지 확인하고 싶은데
[13:43]
아직은 아닌 것 같네요. 일단
[13:46]
플롯을 만드는 것부터 시작해볼까요
[13:50]
plot_agent를 만들어서 도구를 호출해보죠
[13:54]
create_plot으로요. 자, 10단계가 있네요
[13:57]
단계가 있고
[13:59]
matplotlib을 사용해서 데이터를 시각화하고 저장하는 거죠
[14:01]
괜찮아 보이네요
[14:04]
음, 설명을 좀 더 자세히 해야 할 것 같지만
[14:07]
일단 한번 보죠
[14:10]
자, 이제 보니
[14:12]
tools에서 임포트를 해야 할 것 같네요
[14:17]
임포트해야 해요
[14:19]
그걸
[14:21]
음, 그래요
[14:24]
스크립트를 개선해야 할 것 같네요
[14:28]
스크립트를
[14:29]
그리고 우리는
[14:31]
matplotlib을 임포트해야 해요
[14:34]
matplotlib, 좋아요. 보시다시피
[14:38]
인증된 임포트를 더 추가했어요
[14:41]
이렇게 함으로써
[14:44]
에이전트가 작성할 수 있는 코드를
[14:47]
더 잘 제어할 수 있게 됐죠
[14:50]
임포트를 제한함으로써
[14:53]
악의적인 코드가 생성되는 것을 방지할 수 있어요
[14:57]
맞죠?
[14:59]
사용할 수 있는 서드파티 라이브러리를
[15:02]
제한함으로써 말이에요
[15:05]
꽤 똑똑한
[15:06]
방법이라고 생각해요. 자, 이제
[15:10]
code_agent에서
[15:12]
tools를 써서 프롬프트를 작성해볼게요
[15:15]
plot_agent에게
[15:17]
create_plot 도구 사용에 대한
[15:19]
더 나은 설명을 요청해보죠
[15:22]
이 설명을 좀 업그레이드해보죠
[15:25]
이게 중요할 것 같아서요
[15:26]
좋아요, 이제 좀 낫네요
[15:28]
보시다시피 설명을
[15:30]
좀 더 확장했어요
[15:34]
이렇게 하면 에이전트가
[15:36]
더 잘 작동할 것 같네요
[15:39]
자, 이제 거의 다 됐어요
[15:41]
여기 아래에 도구를 임포트했고
[15:45]
도구도 잘 작동하는 것 같아요
[15:49]
이제 실행만 하면 될 것 같은데
[15:51]
우리는
[15:52]
뭔가를 추가해야 해요
[15:55]
네 번째 단계를 추가해볼까요
[15:59]
마지막으로 데이터를 시각화하는
[16:02]
플롯을 만들어보죠. 한번 해볼게요
[16:05]
그렇게 자세하진 않지만
[16:08]
데이터를 시각화할 플롯이에요
[16:10]
여기서 에이전트는
[16:12]
어떤 데이터인지 이해해야 해요
[16:14]
괜찮을 것 같네요
[16:17]
자, 이제 실행해볼게요
[16:21]
python code_agent.py를 실행하면
[16:24]
qwen-2.5-coder-32b-instruct를
[16:28]
사용하고 있죠
[16:30]
보시다시피 꽤 빠르네요
[16:33]
그냥 실행시켜 두고
[16:36]
마지막에 우리가 얻게 될 것은
[16:40]
API 가격 변동 예측 그래프예요
[16:46]
자, 여기 나왔네요
[16:48]
그래프를 보시면
[16:50]
왼쪽에는 백만 토큰당 가격이
[16:52]
아래쪽에는 모델이 있고
[16:54]
여기 현재 가격인 2.19가
[16:58]
백만 토큰당 비용으로 나와있고
[17:00]
예상 가격은
[17:02]
여기 아래에 있네요
[17:05]
완벽하진 않지만
[17:07]
그게 중요한 게 아니었어요
[17:11]
이걸 다시 실행했는데
[17:13]
녹화를 깜빡했거든요
[17:16]
여기 보시면 플롯을 만드는
[17:18]
코드가 있고 이게 하나의
[17:21]
액션으로 처리됐어요
[17:24]
여러 단계로 나누지 않고
[17:27]
한 번에 처리한 거죠
[17:29]
이게 바로
[17:31]
이 영상의 핵심이에요
[17:33]
이런 실험을 해보고 싶었어요
[17:37]
AI 에이전트가 이런 코드를
[17:40]
실행하게 함으로써 많은
[17:43]
시퀀스나 요청을
[17:45]
절약할 수 있죠
[17:48]
이를 통해 우리는
[17:51]
요청, 즉 비용과
[17:56]
지연 시간을 절약할 수 있어요
[17:59]
꽤 흥미로웠고
[18:01]
많이 배웠어요
[18:02]
이게 마지막 영상은 아닐 거예요
[18:05]
계속해서 실험하고 시도해볼 거니까요
[18:07]
이 채널에서요
[18:10]
Nvidia GTC 등록 링크도
[18:13]
아래에서 확인해주세요
[18:16]
시청해주셔서 감사하고
[18:18]
며칠 후에 다시 만나요
[18:20]
안녕히 계세요