Auto-gpt 맛보기

이두원·2023년 5월 1일
0

저번에는 gpt4에 코딩을 시켜보는 작업을 했었다. 최근에 gpt4를 응용한
Auto gpt라는 물건이 나왔는데, 스스로 결과물을 수정하는 자율반복(autonomous iterations) 기능을 통해 구현되었다고 한다. 즉 사용자가 제시한 목표에 근접할 때 까지 결과를 수정,발전시키는 과정을 반복한다는 것인데, 기존 gpt4를 사용했을 때와 얼마나 차이가 있을 지 확인해보고 싶었다.

1.설치
git clone https://github.com/Significant-Gravitas/Auto-GPT.git

Auto gpt 자체는 git clone으로 간단히 설치된다. 그리고 Docker라는 프로그램을 사용한다는데, 개발 환경을 일치시켜 주는 툴로 하드웨어마다 설치된 개발환경을 일치시켜 종속성 문제를 완화시키는데 많이 사용한다고 한다. 아마 회사에서 팀단위 프로젝트를 한다면 필수적인 프로그램일 것 같으니 지금이라도 써보자.

홈페이지에서 간단히 다운받아 설치한다.

다음은 Auto gpt의 env.template 파일을 env로 바꿔야한다. 이 파일이 뭐냐하면...

gpt4를 사용하기 위한 api key를 입력하는 곳이다. 정확히는 Auto gpt의 작동 환경을 설정하는 곳인데, api key만 입력하고 다른 것을 건들 필요는 없다.

다음은 Docker로 개발환경을 일치시키는 작업을 한다. 프롬프트에
cd Auto-GPT
docker-compose build auto-gpt
를 실행하면 된다.

2. 실행

이제 Auto-GPT를 실행시키자. 명령어는
docker-compose run --rm auto-gpt 이다.

I want Auto-GPT to : program Python code
PyDevGPT has : Tendency to prefer efficient and simple code
Auto gpt에 효율적이고 간단한 코드를 선호하는 파이썬 개발자라는 설정을 입력했다.

마치 TRPG의 직업설명 마냥 역할과 목표가 나온다. 번역하면
역할:
Python 코드 프로그래밍을 전문으로 하며 효율적이고 확장 가능하며 유지 관리가 가능한 소프트웨어 솔루션을 만드는 데 있어 개발자에게 전문가 지원을 제공하는 자율 에이전트입니다.

목표:

  • 프로젝트 요구사항을 분석하고 설계, 개발, 테스트 및 배포를 포함하여 특정 요구사항을 충족하는 맞춤형 솔루션을 제공합니다.
  • 모범 사례, 설계 패턴 및 업계 표준을 적용하여 성능, 확장성 및 유지보수성을 위해 코드를 최적화합니다.
  • 코드 검토, 리팩터링 및 문서화를 포함하여 코드 품질, 가독성 및 유지관리성을 개선하기 위한 피드백과 제안을 적시에 제공합니다.
  • 새로운 기술, 프레임워크 및 라이브러리를 지속적으로 학습하고 적응하여 코드가 최신이며 미래에 대비할 수 있도록 보장합니다.
  • 팀원 및 이해 관계자와 협력하여 코드가 다른 구성 요소와 원활하게 통합되고 전체 프로젝트 목표를 충족할 수 있도록 보장합니다.

생각:
저는 다음에 어떤 일을 해야 할지 결정해야 합니다. 저는 업무 목록을 검토하고 긴급성과 중요도에 따라 우선순위를 정해야 합니다.

추론:
과제의 우선순위를 정하는 것은 시간을 가장 효율적으로 활용할 수 있도록 가장 중요하고 긴급한 과제에 우선적으로 집중하는 데 도움이 될 것입니다.

계획:

  • 작업 목록 검토
  • 긴급성 및 중요도에 따라 작업 우선순위 지정
  • 우선 순위가 가장 높은 작업 시작

비판:
저는 제가 낮은 우선순위의 일에 너무 많은 시간을 보내지 않고 제 시간을 가장 효율적으로 사용하고 있는지 확인할 필요가 있습니다.

설정이 잘 된것 같으니 요청사항을 입력해 진행하자.

Please use the latest model of Yolo for object detection and create a code that explains the results of object detection in natural language.
Yolo의 최신모델을 사용해 객체감지를 하고, 객체감지의 결과를 자연어로 설명하는 코드를 만들어달라는 요청을 했다.

생각:
객체 감지를 위한 코드를 분석하여 최신 버전의 욜로를 사용하고 있는지 확인해야 합니다. 그렇지 않으면 코드를 업데이트해야 합니다. 저는 또한 자연어로 물체 감지 결과를 설명하는 코드를 만들어야 할 것입니다.

이유:
코드를 분석하면 최신 버전의 YOLO를 사용하고 있는지 확인하는 데 도움이 됩니다. 코드를 업데이트하면 개체 탐지에 최신 기술을 사용할 수 있습니다. 자연어로 물체 탐지 결과를 설명하는 코드를 만들면 비기술적 이해 관계자가 결과를 더 쉽게 이해할 수 있습니다.

계획:

  • 객체 탐지를 위한 코드 분석
  • 최신 버전의 YOLO가 사용되고 있는지 확인
  • 필요한 경우 코드 업데이트
  • 자연어로 객체 탐지 결과를 설명하는 코드 만들기

비판:
코드가 성능, 확장성 및 유지보수성에 최적화되었는지 확인해야 합니다. 또한 코드가 잘 문서화되어 있고 이해하기 쉽도록 해야 합니다.

요청사항에 따라 뭘 해야할지 잘 이해하고 있는 것 같다. y를 눌러 진행하자.


시스템: analyze_code 명령이 반환되었습니다: 오류: 'gpt-4' 모델이 존재하지 않습니다

생각: analyze_code 명령에서 오류를 반환했습니다. 저는 오류를 조사하고 원인을 파악해야 합니다. gpt-4는 존재하지 않을 가능성이 있습니다. 모델이 있는지 확인하고 없으면 다른 모델을 사용해야 할 것 같습니다.

추론: 오류를 조사하는 것이 원인을 파악하고 해결책을 찾는 데 도움이 될 것입니다. 모델이 존재하는지 확인하는 것이 오류의 원인인지 확인하는 데 도움이 됩니다. 모델이 존재하지 않으면 다른 모델을 사용해야 합니다.

계획:

  • 조사 오류
  • 모델 'gpt-4'가 존재하는지 확인
  • 필요한 경우 다른 모델 사용
    비판: 당면한 과제에 맞는 올바른 모델을 사용하고 있는지 확인해야 합니다. 또한 최신 버전의 모델을 사용하고 있는지 확인해야 합니다.

아마 gpt4를 사용해 자연어 반환을 하려다 gpt4 api가 없다고 나와서 오류가 나온것 같다. 어떻게 해결하는지 다시 y를 눌러 확인해보자.

생각: 'write_to_file' 명령을 사용하여 객체 감지를 위한 코드를 파일에 작성할 것을 제안합니다. 그런 다음 'analyze_code' 명령을 사용하여 코드를 분석하고 잠재적인 문제를 식별할 수 있습니다. 또한 'get_hyperlinks' 명령을 사용하여 최신 GPT 모델과 모델의 가용성에 대한 자세한 정보를 수집할 수 있습니다.

이유: 파일에 코드를 작성하면 필요에 따라 쉽게 액세스하고 수정할 수 있습니다. 코드를 분석하면 코드를 실행하기 전에 잠재적인 문제를 식별하는 데 도움이 됩니다. 최신 GPT 모델에 대한 더 많은 정보를 수집하면 객체 감지에 사용할 수 있는 대안이 있는지 여부를 결정하는 데 도움이 될 것입니다.
계획:

  • 'write_to_file' 명령을 사용하여 파일에 코드 쓰기
  • 'analyze_code' 명령을 사용하여 잠재적인 문제를 식별합니다
  • 최신 GPT 모델에 대한 자세한 정보를 수집하려면 'get_hyperlinks' 명령을 사용하십시오
    비판: GPT-4 모델을 객체 감지 코드에 사용하기 전에 사용 가능 여부를 확인했어야 합니다.

get_hyperlinks 명령으로 gpt-4모델을 쓸 수 있는지 확인해보자.


생각: 최신 GPT 모델과 관련된 하이퍼링크를 얻으려면 'browse_website' 명령을 사용하여 인터넷에서 정보를 검색할 수 있습니다. 그런 다음 'get_hyperlinks' 명령을 사용하여 웹 사이트에서 하이퍼링크를 추출할 수 있습니다.

이유: 인터넷을 검색하면 최신 GPT 모델에 대한 관련 정보를 찾을 수 있습니다. 웹 사이트에서 하이퍼링크를 추출하면 필요한 정보에 쉽게 액세스할 수 있습니다.

계획:

  • 인터넷에서 정보를 검색하려면 'browse_website' 명령을 사용합니다
  • 'get_hyperlinks' 명령을 사용하여 웹 사이트에서 하이퍼링크를 추출합니다
    비판: 객체 감지 코드에서 GPT-4 모델을 사용하기 전에 최신 GPT 모델에 대한 정보를 확인했어야 합니다.

별 성과가 없다. browse_website를 사용해보자.

이것도 같은 결과가 나온다. 일단 코드부터 짜보라고 해봐야 겠다. 다시 y를 눌려 진행한다.

처음으로 돌아왔다. write_to_file를 입력해 코드를 만들어보자.
생각: 이제 코드를 파일에 작성했으므로 'analyze_code' 명령을 사용하여 잠재적인 문제를 식별할 수 있습니다. 또한 'get_hyperlinks' 명령을 사용하여 인터넷에서 더 많은 정보를 검색하고 웹 사이트에서 하이퍼링크를 추출하여 최신 GPT 모델에 대한 더 많은 정보를 얻을 수 있습니다.

추론: 이제 파일에 코드를 작성했으므로 'analyze_code' 명령을 사용하여 코드를 분석하여 잠재적인 문제를 식별할 수 있습니다. 또한 'get_hyperlinks' 명령을 사용하여 인터넷에서 더 많은 정보를 검색하고 웹 사이트에서 하이퍼링크를 추출하여 최신 GPT 모델에 대한 더 많은 정보를 얻을 수 있습니다.

계획:

  • 'analyze_code' 명령을 사용하여 코드 분석
  • 'get_hyperlinks' 명령을 사용하여 인터넷에서 정보 검색
  • 'get_hyperlinks' 명령을 사용하여 하이퍼링크 추출
    비판: 불필요한 단계를 낭비하지 않고 각 작업에 가장 효율적인 명령을 사용하고 있는지 확인해야 합니다.

계획대로 진행하도록 y를 입력한다.

역시 gpt4를 찾을 수 없다는 같은 오류를 해결하지 못한다. 아마 gpt4로 작동을 하지만 gpt4의 데이터는 2021년에 멈춰있어서 정작 gpt4에 대한 데이터가 없어서 오류가 되풀이 되는것이 아닐까 추측한다. 일단 gpt3.5로 진행하라고 요청해보자.

시스템: message_agent 명령이 반환됨: 죄송하지만 AI 언어 모델인 저는 'object_detection.py' 파일에 접근하여 분석할 수 없습니다. 그러나 일반적으로 다음과 같은 몇 가지 잠재적인 문제가 개체 탐지 코드에서 발생할 수 있습니다.
1.과적합: 모형은 교육 데이터에서는 잘 수행되지만 과적합으로 인해 새 데이터에서는 잘 수행되지 않습니다. 이 문제는 데이터 확대 및 정규화와 같은 기술을 사용하여 해결할 수 있습니다.
2. 언더피팅: 모형이 데이터의 뉘앙스를 포착할 수 있을 정도로 복잡하지 않아 성능이 저하될 수 있습니다. 이 문제는 모델의 복잡성을 증가시키거나 보다 강력한 모델을 사용하여 해결할 수 있습니다.
3. 데이터 편향: 훈련 데이터는 실제 데이터를 대표하지 않아 편향된 예측을 초래할 수 있습니다. 이는 다양하고 균형 잡힌 교육 데이터를 사용하여 해결할 수 있습니다.
4. 모델 편향: 모형이 특정 클래스 또는 형상에 치우쳐 부정확한 예측을 초래할 수 있습니다. 클래스 가중치 부여 및 기능 선택과 같은 기술을 사용하여 이 문제를 해결할 수 있습니다.
5. 성능 문제: 객체 감지는 특히 대규모 데이터 세트 및 복잡한 모델에 대해 계산 집약적일 수 있습니다. 이 문제는 코드를 최적화하고 하드웨어 가속을 사용하여 해결할 수 있습니다. 이러한 문제는 개체 탐지 코드에서 발생할 수 있는 몇 가지 잠재적인 문제에 불과합니다. 정확하고 신뢰할 수 있는 결과를 얻으려면 코드를 철저히 테스트하고 검증하는 것이 중요합니다.

AI언어모델이라 파일을 열고 분석할 수 없다며 일반적인 문제해결 방법을 제시해준다. 자율적으로 해결하기에는 권한이 부족해 진행이 안되는 듯하다. 언어모델의 능력 안에서 해결 가능한 요청을 차근차근해야 복잡한 요청을 실행 가능 할 것같다.

  1. 결론
    AI가 요청에 대해 어떻게 생각하고, 어떤 계획을 가지고 행동하는지 보는 것은 상당히 흥미로웠는데, 권한때문에 결과를 못냈지만 계획은 사람이 생각하는 것 처럼 체계적으로 설정하고, 자기 피드백도 어느정도 근거있었다. 코딩이 아니라 언어모델로써 사용한다면, 어느 사람의 성격이나 특징을 설정하고, 주어진 요청에 따른 반응을 보는 용도가 적합해 보인다. 소설이나 미디어에서 등장인물의 성격에 따른 행동방식을 참고 할때도 상당히 유용할 것이다. 하지만 코딩면에서는 기존 gpt4를 사용하는게 아직은 더 간편하다고 느껴졌다. 공학적 활용보다 인문학적 활용이 더 기대되는 Auto GPT 였다.
profile
AI 초보 개발자

0개의 댓글