ABOUT ME

chatGPT & generative AI 활용기

Today
Yesterday
Total
  • [ChatGPT & Notion AI로 논문쓰기]Chapter 4. 문헌검색 및 introduction 써보기
    ChatGPT&GenerativeAI 활용법 2023. 7. 26. 23:33

    전공의나 전임의에게 "~~~에 대한 논문을 써라" 라고 하면 그 누구도 한번에 써올 수 없다.

    좋은 선생은 일을 쪼개서 나누어줄 수 있어야 한다. ChatGPT도 마찬가지다. 한번에 많은 요청을 하기 보다는 하나씩 하나씩 일을 나누어서 시켜야 적절한 결과를 얻을 수 있다.

     

    1) Outline 잡기

    주제를 정했으면 이에 대해 논문을 쓰기위한 Outline을 정해달라고 하자.

    의학논문의 경우 Introduction, Materials and Method, Results, Discussion, Conclusion 의 형식을 따른다. 또한 원하는 target journal이 있다면 그 Journal이 원하는 양식을 지정해서 프롬프트를 작성할 수 도 있다. 원하는 세부 내용이 있다면, 문법에 맞지 않더라도 콤마(,)를 이용하여 원하는 양식을 매우 구체적으로 요청할 수도 있다.(어조, 분량, 형식 등)

    간이식 후 graft survival을 예측하기 위한 머신러닝 모델 연구의 outline

    💡 Introduction 에 들어가야할 것들

    논문을 많이 써본 사람들은 익숙하겠지만, introduction session에 들어가야하는 것들을 사실 대부분 정해져 있다.

    • 1)기존 연구의 요약
    • 2)기존 연구결과에서 아직 해결되지 않거나 부족한 점
    • 3)이 연구의 임상적 의미와 중요성
    • 4)때문에 우리가 이 연구를 하려고 한다

    이런 형식으로 전개되게 된다.

    예시와 함께 "간절제술 후 간부전 예측 모델: Hepatic failure prediction model after liver resection" 이라는 연구를 진행해보자

    위 연구의 introduction session의 Outline을 써달라고 해보자. 그 이후 내가 원하는 내용을 추가해서 outline을 다듬는다. 대략 이렇다.

     

    💡 Introduction outline

    • 최근 임상지표를 활용하여 여러가지 예측을 Machine learning model이 잘 하고 있다(여러연구들)
    • 수술 후 간부전의 위험성 임상적 중요성,발생율
    • 기존의 예측모델 예측변수 연구들 요약
    • 그 연구들의 한계점(낮은 예측도?임상적용의 어려움?)
    • 우리가 그래서 하려는 것은 머신러닝모델을 이용하여 간절제술 후 간부전을 예측하는 모델을 만들어 보려는 것이다.

    💡 Make Introduction session” hepatic failure prediction model after liver resection” including [     ], 2000words,  professional english

     

    위에 outline을 꼭지로 삼아 대략적으로 위의 프롬프트처럼 introduction session을 적어보자. 프롬프트는 완벽한 영어가 아니어도 좋다. 글자수, 스타일, 여러가지를 요청해도 좋다. including [     ] 안에 위에 나온 꼭지를 포함하여 글을 쓰도록 한다.(이게 포인트)

    Introduction outline을 기반으로 간략한 Introuction session을 완성해보았다.

    • 제법 그럴싸한 글을 써주었다. 다만 밑줄 친, 기존 예측변수나 모델에 대한 내용이 조금 부족한 것 같은 느낌이 들어서 추가적으로 내가 원하는 내용을 넣어보았다. 기존 예측모델이나 변수들의 장,단점에 대해 기술하자. 다만 글을 쓰는 것보다는 tabular form을 요청하거나 개조식으로 요청하는 것이 글을 블록단위로 완성하는데 도움이 된다.
    • 그리고 우리가 선택하고자 하는 머신러닝 모델이 여러가지가 있는데 각각의 장,단점 그리고 우리가 궁극적으로 어떤 모델을 선택 했는지에 대한 이유에 대해 기술하는 것이 방법론을 기술하는데 용이하므로(이 부분은 method나 discussion에 써도 좋다) 이부분도 함께 요청하자. 역시 tabular form으로 요청하자.

    💡 Pros and cons of previous prediction model, make tabular form.(기존 예측모델이나 변수들의 장,단점)

    💡“Describe several Machine learning models to predict HF after liver resection. With pros and cons. Which model is the best model for predicting hepatic failure. Describe the reason”(어떤 머신러닝방법이 좋은지,여러가지 방법들의 장,단점을 표로 기술)

     

    • 표로 기술된 내용은 Notion 에 붙여넣자. 플러그인이 나온 후에 표를 입력할 수는 있으나, 노션에 표를 붙여 넣으면 깔끔하게 붙여넣을 수 있고, 표를 텍스트로 기술해주는 데 매우 유용하다.
    • Notion AI 기능을 활성화 한후 "Describe this table" 이라고 명령하면 아래와 같이 단락으로 바꿔서 글을 써준다. 
    • 그리고 "Summarize to one paragraph and describe why we choose random forest model" 이란 명령어로 단락별로 기술된 내용을 하나의 단락으로 바꾸고 왜 우리가 이 모델을 선택했는지에 대해 기술하도록 한다.

    (좌)노션에 표를 붙인 뒤 기술해달라고 하면 텍스트형태로 잘 바꿔준다.(우)각 모델의 장,단점을 단락별로 글을 쓰도록 하고,마지막에 한단락으로 요약한다

    💡  마법의 단어 Complete, Develop, Act as, including(__)

    단락을 채워나갈때 유용한 단어들이다.

    Complete

    한 단락에 대한 주제를 주고 완성시키라는 단어이며, 목차를 정하고 한 단락을 완성시키란 의미로 사용하면 된다.

    Introduction secrtion의 첫 항목인 연구배경과 중요성 부분을 500자로 professional english를 사용하여 완성하라는 프롬프트의 결과물과 프롬프트 지니로 자동 번역된 결과다.(참고로 British english, American english 선택도 가능하다)

    Develop

    한 단락을 마치고 조금 더 확장시켜서 내용을 추가할 때 유용한 프롬프트다. 결과물을 한번 요청한 후 글을 발전시켜 나갈 때 유용하다.

    이전에 개발된 예측모델이나 방법에 대한 표와 함께 이 섹션을 develop하라고 요청한 결과다.

    물론 이전에 언급했지만 부정확한 정보가 나오거나, 참조가 없기 때문에 팩트체크는 반드시 필요하다. 팩트 체크나 Reference 문제 해결은 뒤에서 다시 자세히 이야기할 예정이다.

     

    여기까지는 참고문헌에서 기반한게 아니라 본인의 생각을 기술하는 용도로 개요를 작성한 것이다. 대략적으로 이런식으로 벽돌 쌓듯이 논문글을 완성한다는 개념만 잡으면 된다. 하지만 논문의 핵심인 문헌검색과 적절한 주석과 인용이 없기 때문에 많은 연구자들이 chatgpt만으로는 부족함을 느낀다. 아래에서는 문헌검색을 효율적으로 하고 이에 기반한 개요작성하는 법을 알아보자

     

     

    2. 문헌검색

    1)파이썬 크롤링사용하기

    앞서 언급했지만 GPT를 활용하여 논문검색을 한다고 할 때 가장 큰 장애는 논문환각이다.

    GPT에게 논문을 찾아달라고 하면 그럴싸한 제목과 링크를 던져주지만 들어가보면 엉뚱한 논문이 나와 있다. 이런 이유로 많은 연구자들이 GPT를 활용하는 것을 포기하는 경향이 있다. 이를 극복하는 전략은 여러가지가 있고 커뮤니티에서 서로 공유되고 있다. 여기에서는 몇가지 전략을 소개하고자 한다.

    • Python 크롤링 사용하기
      • 저자가 주로 사용하는 방법으로 GPT가 주어진 정보 안에서 요약과 정리를 잘 하는 데에 착안한 방법이다.
      • 우선 python 코드를 활용하여 Pubmed.gov에서 원하는 주제의 논문과 초록을 가져오도록 한다.
      • ChatGPT에게
      💡 pubmed.gov 에서 복강경 간절제술과 개복간절제술을 비교하기 위한 연구를 위해 논문을 검색하고(최대 100개) 크롤링해서 csv파일로 저장하는 파이썬 코드를 짜줘. 내용은 논문제목, 출판연도, 출판잡지, 제1저자, 초록

    논문크롤링을 위한 파이썬 코드를 짠다

    • Colab에 코드를 붙여서 실행해보면 에러가 발생한다. 초록이 없는 경우 어떻게 해야할지에 대한 명령이 빠져서 발생하였으므로, 에러코드를 그대로 복사해서 다시 chatGPT에게 수정해달라고 한다.

    코드를 수정하고 colab에 코드를 입력하면 pubmed_papers.csv 파일이 생성된 것을 확인할 수 있다. 초록이 csv 파일 형태로 저장되었다.

    • 코드를 수정하고 colab에 코드를 입력하면 pubmed_papers.csv 파일이 생성된 것을 확인할 수 있다. 저장해서 확인해보면 초록이 csv 파일 형태로 저장된 것을 확인할 수 있다.
    • 수집된 초록을 바탕으로 논문을 요약하고 introduction 을 쓰는데 참조한다.
    • csv 파일로 정리된 초록을 한꺼번에 정리하는 것은 뒤에 API를 활용하여 자동화하기 파트에서 설명하기로 한다.

    2)ChatPDF 활용하기

    • ChatPDF는 PDF파일을 업로드 하고 그 안에서만 답하도록 할 수 있는 웹사이트다.

    • 이곳에 본인이 원하는 PDF 파일을 올리고 이에 대한 질문을 던진다. 본인이 원하는 논문 리스트를 검색하여 PDF 형태로 저장한 후 small PDF 와 같은 프로그램을 통해 PDF를 하나로 통합한다.
    • ChatPDF는 한 PDF만 읽을 수 있으므로, 하나의 파일로 통합하여 논문들을 올린 후, 위 논문들을 바탕으로 원하는 내용을 질문하여 글을 쓰는데 참고한다.(논문병합은 smallpdf, ilovepdf등 공짜 사이트가 있다)
    • 예를 들어 복강경 간절제 수술에 대한 여러 논문들을 병합하여 올린 후, 복강경 간절제 수술의 증가와 현황에 대해 묻는다면 논문의 introduction section에서 언급된 내용을 참고하여 답을 얻을 수 있다. 또한 각 논문을 참고하여 기존에 알려진 복강경 간절제수술의 장점에 대해서도 요약하여 답을 얻을 수 있다.

    (좌)고령에서 복강경간절제가 개복간절제에 비해 나은점에 대해 물어보았고, 근거를 바탕으로 답을 해주었다. 번호를 클릭하면 해당되는 논문으로 갈 수 있다. 업로드된 pdf에서만 답을 해주기 때문에 논문환각을 줄일수 있다. (우)내용이 부족하면 조금 디테일하게 요청해볼 수 있다.

    3)WebchatGPT 활용하기

    • 앞서 언급한 크롬확장 프로그램인 webchatGPT를 활용하는 방법이 있다. 이제는 chatGPT Plugin이 출시되면서 Browsing 기능이 있지만 속도가 느리고, 생각보다 검색이 잘 안되는 경우가 있다. Plug in 출시 전부터 webchatGPT를 활용해서 질문을 잘 던지면 생각보다 정확한 결과를 도출 할 수 있다.
    • 그냥 검색을 하면 구글 스콜라나 일반 신문기사들도 활용하기 때문에, 특정 사이트를 지정할 수 있다.

    • Web access 버튼을 활성화 시키고, “/”를 치면 위 그림과 같은 추가 팝업이 뜬다. 이때 site: 를 이용하면 특정 웹사이트내 검색결과만 찾을 수 있다. 의학논문이므로 pubmed.gov로 국한 하면 펍메드에서 검색한 결과를 프롬프트에 반영하여 원하는 질문의 답을 해준다.
    • 앞에서 질문한 것과 같은 “고령의 간암 환자에서 복강경 간절제술과 개복 간절제술 비교” 에 대해 질문을 한다.

    Pubmed.gov 웹사이트내에서 검색하도록 제한하고, 글을 요청해서 참고를 달아준 글이 완성된다.링크를 클릭하면 그냥 chatgpt를 쓸때 가짜논문이 나온 것과 달리 실제 논문 원문 사이트가 열리면서 확인할 수 있다.

    위(좌측)와 같은 검색결과를 프롬프트 앞에 자동으로 추가하여 질문을 작성해준다. 답변을 달때 검색한 논문 중 어떤 논문에서 참고하였는지 링크를 붙여주기 때문에(우), reference를 정확히 제공해주는 측면에서 논문환각을 없앨 수 있는 중요한 팁이다.

     

     

    4) ChatGPT Plugin(Webrowser plug-in beta)

    • 책을 집필하는 도중에 Plugin이 출시가 되었다. Browsing plugin이 나오면 이제 논문환각은 사라지겠다고 큰 기대를 했는데, 예상보다 후기나 반응이 좋지는 않다. (*2023년 7월 현재 browsing plugin은 종료되었고 code interpreter가 출시되었다)
    • 이유는 속도와 결과물의 질 차이다. 기본적으로 browsing plugin은 생각보다 속도가 빠르지 않고 결과물도 많이 내주지 않는다. WebchatGPT가 조금 더 빠르게 반응하기 때문에 용도에 따라서 취선택하는 것이 좋다.
    • Plugin의 종류가 다양하기 때문에 이것은 따로 다른 챕터에서 다루도록 하겠다. 논문검색에 유용하다는 Scholar AI, Xpaper등 여러 플러그인들이 있지만 특출나게 뛰어난 것은 아직까지는 없어 보인다. 다양한 prompt engineering을 통해 조금 더 좋은 결과를 도출하는 것이 현재까지의 트렌드다.
    • 하지만 plug-in store에 올라와 있는 몇가지 논문검색용 플러그인은 용도에 따라 유용하게 쓸 수 있다.
    • NextPaper.ai 플러그인은 pubmed.gov에서 검색하는 플러그인으로 소개하고 있지만, 결과가 충실하게 나오지는 않는 편이다. 
    • Xpaper는 머신러닝이나 인공지능관련 논문들이 많이 나오는 프리프린트 사이트인 arXiv의 데이터를 검색하는 사이트다. 하지만 의학논문은 주로 pubmed에서 검색하므로 의학논문용으로는 크게 도움이 되진 않지만, 인공지능연구를 하는 사람에겐 괜찮은 플러그인이다.
    • Scholar AI 플러그인도 정확한 정보를 제공해주지만, 갯수가 많지 않고 속도가 느리다
    • Bilography Crossref 플러그인도 정확하지만 개수가 많지 않다는 단점이 있다.
    • WebchatGPT와 여러 플러그인을 돌려가면서 사용하면 다양한 논문을 검색할 수 있고, 이를 바탕으로 출처가 분명한 글을 쓰는데 도움이 된다

    .

    논문검색용 plug-in : 아직 만족스럽진 않다. 결과 갯수가 적고 속도가 느리기 때문에 조금 더 발전이 필요하다. 하지만 논문환각은 확실히 없앨 수 있다.

    5)Bing chat

    Bing도 역시 Reference를 제공해 준다. 웹검색을 기반으로 하기 때문에 글을 쓰고 그 출처를 주석처럼 달아주긴 하지만, 괜찮은 논문이 여러개 나오지는 않는 편이며, 나는 보통 내가 먼저 글을 쓰고 "분명히 이런 연구가 있을 거 같은데?" 싶을 때 글 먼저 쓰고 출처를 찾는 용도로 사용하긴 한다. 

    다만 edge browser를 써야하고, 생각보다 써주는 글의 양이 많지 않아서 chatGPT에 비해 글을 쓰기 보다는 짧은 글을 쓰고 그와 관련된 팩트체크를 할 때 사용한다.

    결과물이 길지 않고, 출처도 논문보다는 웹사이트를 주로 참고하기 때문에, 일반적인 내용을 확인할 때나 유용하다.

    6)Scite (유료)

    Scite라는 유료서비스가 있는데, UI가 깔끔하고, 속도도 제법 괜찮으며 출처를 밝히면서 논문링크까지 볼 수 있도록 해준다. 다만 논문을 클릭해서 들어가보면 저자 이름이 조금씩 다른 경우가 있다

    이제 막 써보기 시작한 서비스인데 조금 더 써보고 평을 해보도록 하겠다. 일단 결과물 자체는 상당히 괜찮다.

    • 앞에서는 outline에서 부터 글 단락을 완성하는 방법까지 소개하였고, 뒤에서는 문헌검색 방법에 대해 소개하였다. 이를 바탕을 본인의 생각+다른 문헌 요약을 통해 개요을 비교적 쉽게 완성할 수 있겠다.
    • 참고문헌 정리를 비롯해서 글쓰기 자체는 Notion을 사용하고 있다. AI 기능도 있지만 글쓰기에 이만한 툴이 없고 바쁜 외과의사는 죽치고 앉아서 논문을 쓰기보다는 그때그때 산발적으로 쓰는 일이 많기 때문에 언제 어디서나 웹만 있으면 쓸 수 있는 노션이 논문쓰기에 적절한 툴이다. 협업이나 공유, 리퍼런스들을 링크로 저장하기도 쉽기 때문에 한번 쯤 써보길 권한다.

    글쓰기 메모처럼 여러 논문을 관리하기 용이하고 UI도 깔끔해서 글을 쓰는데 용이하다. 개별 노트를 열면 논문 작성을 할 수 있고 협업을 할때도 유용하다

    • 다음 강의는 데이터 정리 및 결과도출을 위한 Code interpreter 활용에 대해 알아보자. 사실 이전에 강의안에 있던 내용 중 상당부분은 code interpreter출시 이후 다 바꿔야할 만큼 센세이션한 기능을 많이 가지고 있다. 통계나 데이터 시각화, 데이터 정리에 유용한 API 활용 및 Code interpreter에 대해 알아보자.

     

Designed by Tistory.