GPT API를 활용한 논문 내용 정리

이전 포스트에서 chatGPT에 의존해 

arxiv 논문 탐색 과정 코드를 작성 & 발표를 진행했습니다. 

ChatGPT에 Arxiv 논문 서칭 코드 작성 요청하기 | GPTers 그룹

주중과 주말 발표의 피드백으로 논문 내용 정리 관련 요청(?)을 받아

이를 진행했고, 과정에서 시행착오와 느낀점을 공유합니다!



0. 이전 포스트 결과

  • Arxiv API를 활용해 특정 주제와 특정 시기에 나온 논문 리스트 확보 

  • 기존 100여편의 논문을 훑어 봐야 했던 시간을 5배나 감축! 


1. chatGPT 웹 인터페이스 사용 시도

  • 웹 페이지 자동 조작 프로그램을 이용해 (마치 사람이 하는 것처럼) 

  • 리캡챠 block이 있었고 

  • 다양한 우회 방법을 시도했지만 (브라우저 변경, 사용 패키지 변경, 선 로그인 후 접근 등) 

  • 실패했고, 심지어 chatGPT도 하지 말라고... ㅠㅠ 


2. GPT API를 사용

  • 3.5 Turbo 모델 (링크)

    • Max Token : 4,097개

  • Prompt 

    • system message : chatGPT의 custom instruction과 비슷 

    • user massage : 논문의 일부 내용 


3. 세팅

  • 논문 정리 결과 판단을 위해 잘 알고 있는 논문을 활용 

  • 사용하는 모델의 token수 제한으로 전체 논문의 내용을 다 넣지는 못함

    • 전체 논문은 약 5~6만 token 정도 될 것 같네요

    • 그리고 비용도 많이 나오는.. ㅠㅠ

  • abstract와 introduction를 동시에 혹은 개별로 사용 


4. 시도 결과

4-1. Abstract VS Intro VS Both

  • 당연한 말이지만 둘 모두를 넣어준 경우 더욱 풍성한 결과 생성 

  • 개별적으로 제공한 경우, 단순 repeat와 paraphrase에 가까움 

  • 두 경우를 같이 넣어주면 내용을 뽑고 정리 & 정돈

  • Abstract에서 중요하게 다룬 부분을 Intro에서 찾아서 해당 부분을 강조 정리하는 느낌 


4-2. System message engineering 

  • 초기에는 단순히 "정리해봐~"의 느낌으로 제시를 했지만 

'''
You're an incredibly helpful, creative, intelligent, and friendly graduate student. You are assisting me with reading and summarizing papers on the subject of "Deep Learning". I will provide you with a portion of a paper, and then I would like you to summarize it for me.
'''
  • 원하는 정리 구조가 있어서 그 구조를 제공 → 그것에 맞춰 결과 생성 

'''
You're an incredibly helpful, creative, intelligent, and friendly graduate student. You are assisting me with reading and summarizing papers on the subject of "Deep Learning". I will provide you with a portion of a paper, and then I would like you to summarize it for me.
Your summary should follow this structured format, with answers to each question organized as bullet points:

1. What problem(s) is the paper trying to solve? (Existing Issues)
2. What are the contributions?
3. Problem Formulation
3-1. Input:
3-2. Output:
4. Methodology
5. Additional Information
'''
  • 특히 실제 정리했던 예를 보여주니 그 예를 참고하는 방식으로 정리 (Few-shot)

'''
You're an incredibly helpful, creative, intelligent, and friendly graduate student. You are assisting me with reading and summarizing papers on the subject of "Deep Learning". I will provide you with a portion of a paper, and then I would like you to summarize it for me.
Your summary should follow this structured format, with answers to each question organized as bullet points:

1. What problem(s) is the paper trying to solve? (Existing Issues)
2. What are the contributions?
3. Problem Formulation
3-1. Input:
3-2. Output:
4. Methodology
5. Additional Information

For example, your summary could look something like this:

1. What problem(s) is the paper trying to solve? (Existing Issues)
- Existing techniques for understanding human activities have been developed in isolation for different tasks, without a unified, human-centric representation.
- The authors aim to amalgamate various human motion representations from different data resources and handle them in a unified manner across multiple sub-tasks.
- ... (additional details)

2. What are the contributions?
- Introduce a novel perspective by learning Human Motion Representation that is central to video tasks.
- Propose a pre-training method that can learn a generalizable Human Motion Representation.
- Suggest the use of Dual-stream Transformer (DSTformer).
- ... (additional details)

3. Problem Formulation
3-1. Input: 2D joint
3-2. Output: 3D joint

4. Methodology
- Utilize DSTformer as the backbone for pre-training.
- Detailed explanation of the DSTformer's specifics.
- Fine-tuning for additional sub-tasks.
- ... (additional details)

5. Additional Information
- Showed best performance in evaluations on dataset XXX or metric XXX.
- Further improvements could be XXX.
- ... (additional details)

Feel free to modify the structure if needed, and if you find that there's insufficient information to answer a particular section, please indicate by writing "Information is insufficient."
'''


5. 유용성 

  • 1회 call 당 Reponse time : 15~25초 사이 

  • 기존 논문 파악에 필요한 시간 약 10~15분 + 간단 정리 시간 5분 정도를 감안하면 

  • 많은 시간 단축!!


6. 비용 측면 (3.5 Turbo 모델 기준) 

  • 입력 : 1,000 토큰 당 $ 0.0015 (2원) 

  • 출력 : 1,000 토큰 당 $ 0.002 (3원) 

  • 최종 형태 (Abstact + Intro & System Message Engineering)의 경우 

    • 입력 : 1700 토큰 (3.5원) 

    • 출력 : 450 토크 (1.5원) 

    • 전체 : 5원 

  • 논문 20편 정도를 정리한다면 100원?? (작고 귀엽군요 ㅎㅎ) 

  • 단, 논문의 종류, 원하는 정보의 양 등이 상이할 수 있습니다.

  • 또한 Max Token 의 부족으로 새로운 API model을 활용 시 배수적으로 비용 발생 가능성 있어요.


7. 인사이트 

  • 논문을 실제로 살펴 보기 전에 큰 틀을 잡기는 좋아보입니다.

    • 물론 논문의 내용을 알고 보면 부족한 점이 있긴해요.

  • 정보는 많이 주는게 좋지만 (Abstract, Introduction, Method 등) 비용 발생 측면을 고려해야 할 것 같아요.  

    • 정말 필요한 부분을 위주로 

    • 본인이 논문에 주의를 많이 기울이는 곳 (방법론, 배경, 비교 결과 등)

  • 원하는 출력 결과물의 형태가 있다면 예시 (few-shot)을 보여주는게 좋더라구요.

  • 저는 이거 좀 더 정리해서 사용하려고 합니다.

    • 바로 회사 대표님한테 결제 받으러 갑니다~!


감사합니다.


작성자 : 정정민

블로그 : 링크









5
3개의 답글

👉 이 게시글도 읽어보세요

모집 중인 AI 스터디