본문 바로가기
AI · 인공지능/AI 뉴스

「Gorilla」가 API 갱신을 실시간 팔로우, 오픈 소스 모델의 트레이닝 데이터도 공개

by 두우우부 2023. 6. 16.
반응형

 

GPT-4와 같은 고성능 모델에서도 API 호출 코드를 생성하면 상당한 확률로 잘못된 코드를 생성합니다. Gorilla는 API를 호출하는 코드 생성에 특화시켜 파인 튜닝이 이루어지고 있어, 정밀도가 높은 호출 코드를 생성할 수 있을 뿐만 아니라 정보 검색기(Information Retriever)와 함께 이용하면 API 업데이트를 실시간으로 추종할 수 있는 경이적인 모델입니다.

Gorilla
https://shishirpatil.github.io/gorilla/

 

Gorilla

Abstract Large Language Models (LLMs) have seen an impressive wave of advances recently, with models now excelling in a variety of tasks, such as mathematical reasoning and program synthesis. However, their potential to effectively use tools via API calls

shishirpatil.github.io

 


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' 공개

 

1600개 이상의 API를 적절히 호출하여 AI의 '환각'을 대폭 줄이는 언어 모델 'Gorilla' 공개

대화형 AI는 때로는 진실이 아닌 일을 진실처럼 말하는 'hallucination(환각)'을 일으킬 수 있습니다. 이에, 방대한 수의 API 중 적절한 호출을 통해 환각을 대폭 줄일 수 있는 언어 모델 「Gorilla」를

doooob.tistory.com

 

반응형