GPT-4와 같은 고성능 모델에서도 API 호출 코드를 생성하면 상당한 확률로 잘못된 코드를 생성합니다. Gorilla는 API를 호출하는 코드 생성에 특화시켜 파인 튜닝이 이루어지고 있어, 정밀도가 높은 호출 코드를 생성할 수 있을 뿐만 아니라 정보 검색기(Information Retriever)와 함께 이용하면 API 업데이트를 실시간으로 추종할 수 있는 경이적인 모델입니다.
Gorilla
https://shishirpatil.github.io/gorilla/
Gorilla 교육에서 'Torch Hub', 'TensorFlow Hub', 'HuggingFace'라는 3개의 소스에서 수집한 1645개의 API 호출 코드를 바탕으로 AI가 1 만 6450개의 명령과 API 세트를 작성해, 그 1만 6450개의 명령 세트로 파인 튜닝을 실시했다고 합니다. 추론 시에는 정보 검색기를 사용하여 API의 데이터베이스에서 관련 API를 보완함으로써 환각을 막아 정밀도를 향상할 수 있다고 합니다.
API의 호출 코드를 생성하는 테스트를 「GPT-4」, 「Claude」, 「Gorilla」의 3개로 시험했는데, GPT-4는 환각을 보았고, Claude는 잘못된 라이브러리를 선택하는 한편, Gorilla는 적절한 라이브러리로 적절한 호출 코드를 기술할 수 있었다고 합니다.
Gorilla는 파인 튜닝의 기초가 된 베이스마다 「LLaMA 판」, 「MPT 판」, 「Falcon 판」의 3개가 존재하고 있습니다. 이 중 MPT 판과 Falcon 판은 Apache 2.0 라이센스로 공개되어 있으며 모델 교육 데이터를 다운로드할 수 있으며 상용으로 이용도 가능합니다.
◆ 데모를 사용해 보았다
바로 실행 가능한 데모도 준비되어 있었으므로 즉시 사용해 보겠습니다. "Try Gorilla in 60s"라는 메시지 옆에 있는 "Open in Colab"을 클릭합니다.
https://shishirpatil.github.io/gorilla/
테스트 코드가 Google Colaboratory에서 열리므로 '드라이브에 복사'를 클릭합니다.
이제 파일을 편집할 수 있습니다. 데모판은 캘리포니아 주립대학 버클리교의 Sky lab에서 호스팅 되고 있다는 것. 연구용이므로 상용이용은 안된다고 주의사항이 적혀 있습니다. 이 주의 바로 아래에 있는 실행 버튼을 클릭합니다.
이제 준비가 되었습니다. 'get_gorilla_response' 함수를 실행하면 Gorilla의 답변을 볼 수 있습니다. 화면에서 "코드"를 클릭하여 코드 블록을 추가하고 get_gorilla_response 함수의 결과를 표시하고 왼쪽 재생 버튼을 클릭하여 실행합니다. 프롬프트는 "영어를 중국어로 하고 싶다"라는 내용을 기술했습니다(한국어는 아직 안 되는 듯...)
prompt = "I would like to translate from English to Chinese."
print(get_gorilla_response(prompt, model="gorilla-7b-hf-v0"))
10초 만에 대답이 돌아왔습니다. 위의 응답받은 전문을 그대로 옮겨 보면...
<<<domain>>>: Natural Language Processing Text2Text Generation
<<<api_call>>>: M2M100ForConditionalGeneration.from_pretrained('facebook/m2m100_1.2B') <<<api_provider>>>: Hugging Face Transformers
<<<explanation>>>: 1. Import the necessary libraries from the transformers package, including M2M100ForConditionalGeneration and M2M100Tokenizer.\n2. Load the pre-trained M2M100 model and tokenizer using the from_pretrained method.\n3. Set the input text in English and use the tokenizer to convert it into a format that the model can understand. In this case, the input text is \"translate English to Chinese: I would like to translate this text\".\n4. Generate the translated text using the model's `generate()` method and the input format tokenized text.\n5. Decode the output tokens using the tokenizer to obtain the translated Chinese text.\n<<<code>>>: from transformers import M2M100ForConditionalGeneration, M2M100Tokenizer\nmodel = M2M100ForConditionalGeneration.from_pretrained('facebook/m2m100_1.2B')\ntokenizer = M2M100Tokenizer.from_pretrained('facebook/m2m100_1.2B')\ninput_text = \"translate English to Chinese: I would like to translate this text\"\ninputs = tokenizer(input_text, return_tensors=\"pt\")\noutputs = model.generate(**inputs)\ntranslated_text = tokenizer.batch_decode(outputs, skip_special_tokens=True)[0]"
「facebook/m2m100_1.2B」라고 하는 모델이 지정되었고, 그 사용 방법을 설명하고 있습니다. 위의 GPT-4와 Claude를 비교한 이미지처럼, 코드가 직접 생성될 것이라 생각했습니다만, 그 대답은 해설뿐이었으므로, 이 해설을 참고하여 인간이 직접 코드를 작성하는 것 같습니다. 덧붙여, M2M100의 문서를 보고 검증해 보았습니다만, 아마도 올바른 해설을 하고 있는 것 같습니다.
관련글
1600개 이상의 API를 적절히 호출하여 AI의 '환각'을 대폭 줄이는 언어 모델 'Gorilla' 공개
'AI · 인공지능 > AI 뉴스' 카테고리의 다른 글
AI에 의한 인류존망 가능성, 기업 CEO의 약 절반이 위기라고(예일대 조사) (2) | 2023.06.19 |
---|---|
AI가 가짜 연구를 양산하는 '페이퍼 밀(논문 공장)'과의 싸움이 격화되고 있다 (3) | 2023.06.19 |
Xbox에서 Stable Diffusion을 동작시킨 용자가 등장 (2) | 2023.06.19 |
Meta의 수석 AI 과학자, 얀 르쿤이 "생성 AI는 구식"이라고 지적 (2) | 2023.06.19 |
개발자는 AI에 흥미를 갖고 있으면서도 회의적인 경향을 유지한다는 것이 판명 (2) | 2023.06.15 |
"LLaMA"에 입력한 문장이 어떤 토큰으로 인식되는지 확인하는 "LLaMA-Tokenizer" (2) | 2023.06.15 |
화웨이, 개발자 대회에서 ChatGPT에 필적하는 대규모 모델 '반고 Chat'을 발표 예정 (3) | 2023.06.15 |
OpenAI가 GPT-4의 개량, 비용 절감 등 API의 대폭적인 업데이트를 발표 (3) | 2023.06.15 |