안녕하세요! 오늘은 가장 발전된 대규모 언어 모델 클로드(Claude) 3 Opus를 활용해서 arxiv 논문을 이해하기 쉽게 요약해 보겠습니다. Opus 모델은 클로드 3 모델 패밀리 Haiku, Sonnet 및 Opus 중 가장 지능적인 모델로, 대학 수준 전문 지식(MMLU), 대학원 수준 전문 추론(GPQA), 기본 수학(GSM8K) 등 인공지능 시스템의 일반적인 평가 기준에서 GPT4나 제미나이 등 다른 모델들을 능가하는 성능을 보여줍니다. 이 블로그에서는 WSL 환경에서 앤트로픽 API와 클로드 3 Opus 모델을 활용해서 arxiv 논문을 요약하는 기능을 구현해 보겠습니다.
"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
논문 다운로드하기
먼저, 내용을 파악하고자 하는 논문을 아래화면과 같이 https://arxiv.org/ 사이트에서 검색해서 다운로드합니다.
검색한 논문페이지 우측 "View PDF"의 pdf 파일 주소를 복사하여 WSL 명령프롬프트에서 아래 명령어와 같이 입력하면 현재 디렉토리에 논문 pdf 파일이 다운로드됩니다.
curl -O https://arxiv.org/pdf/2404.02733.pdf
curl -O https://arxiv.org/pdf/2404.02733.pdf 명령은 curl 명령을 사용하여 웹에서 파일을 다운로드하는 기능을 수행합니다. 여기서 -O 옵션은 다운로드된 파일을 그대로 원본 파일명으로 저장하도록 지시합니다. 따라서 위 명령은 https://arxiv.org/pdf/2404.02733.pdf URL에서 PDF 파일을 다운로드하여 현재 작업 디렉토리에 2404.02733.pdf라는 이름으로 저장합니다.
환경설정 및 라이브러리 설치
논문 pdf 파일을 다운로드한 후에는 파이썬 코드 실행환경을 설정하는 단계입니다. 이 블로그에서 사용한 예제코드의 실행환경은 Windows 11 Pro(23H2), 파이썬 버전 3.11, 코드 에디터는 비주얼 스튜디오 코드(이하 VSC)이며, VSC를 실행하여 "WSL에 연결"을 통해 Windows Subsystem for Linux(WSL)을 사용하여 Linux 환경에 액세스 하도록 구성합니다.
Windows에서 WSL 기능을 활성화하려면 다음 단계를 따라서 실행합니다.
- 시작 메뉴에서 "Windows 기능 켜기/끄기"를 검색하고 선택합니다.
- 나열된 항목 중에서 "Windows Subsystem for Linux"을 찾아서 활성화합니다.
- 컴퓨터를 다시 시작합니다.
다음은 VSC 명령 프롬프트에서 "python3.11 -m venv myenv"와 "source myenv/bin/activate" 명령어를 통해 가상환경을 생성 및 활성화 한 다음, 아래 명령어로 의존성(dependency)을 설치해 줍니다.
pip install pypdf anthropic
위 명령어로 설치되는 파이썬 라이브러리는 다음과 같은 기능을 가집니다.
- pypdf: 이 라이브러리는 PDF 파일을 처리하기 위한 Python 패키지입니다. 주로 PDF 파일에서 텍스트를 추출하거나 PDF 파일의 내용을 분석하는 데 사용됩니다. 이 패키지에는 PDF 파일의 내용을 추출하는 등의 기능이 포함되어 있습니다.
- anthropic: Anthropic은 자연어 처리 및 생성에 사용되는 인공지능 API를 제공하는 플랫폼입니다. 이 라이브러리는 Anthropic API에 연결하여 인증, 텍스트 생성, 요약, 번역 등의 작업을 수행할 수 있습니다.
클로드 모델을 사용하기 위한 Anthropic API Key 발급은 지난 포스트를 참고하시면 되겠습니다.
2024.04.07 - [대규모 언어모델] - 🎨클로드(Claude) 3 Opus로 만드는 놀라운 일러스트!
파이썬 코드실행
환경설정 및 라이브러리 설치가 완료되면 다음은 코드 실행단계인데요. 코드의 출처는 앤트로픽 쿡북이며, 사용자 프롬프트를 수정하였습니다. 코드에 대한 동작설명은 다음과 같습니다.
1. PDF 파일에서 텍스트 추출
from pypdf import PdfReader
reader = PdfReader("2404.02733.pdf")
text = ''.join([page.extract_text() for page in reader.pages])
- `PdfReader`를 사용하여 지정된 PDF 파일을 열고, 각 페이지에서 텍스트를 추출합니다.
- `extract_text()` 메서드는 페이지의 텍스트를 추출하고, 각 페이지의 텍스트를 문자열로 결합합니다.
- 이를 통해 PDF 파일의 텍스트 내용을 문자열 형태로 가져옵니다.
2. Anthropic API를 통한 요약 생성
from anthropic import Anthropic
ANTHROPIC_API_KEY = "Your_Anthropic_API_Key"
CLIENT = Anthropic(api_key=ANTHROPIC_API_KEY)
MODEL_NAME = "claude-3-opus-20240229"
def get_completion(client, prompt):
return client.messages.create(
model=MODEL_NAME,
max_tokens=2048,
messages=[{ "role": 'user', "content": prompt }]
).content[0].text
completion = get_completion(CLIENT, f"""Here is an academic paper: {text}
Please do the following: "초등학교 학년 수준으로 초록을 요약해주세요." (In tags.) """ )
- `Anthropic` 라이브러리를 사용하여 클로드 3 Opus 모델을 호출합니다.
- `get_completion()` 함수는 클로드 모델에 요청을 보내어 요약을 생성합니다.
- 요청에는 논문 텍스트와 요약 방법이 포함됩니다. 여기서는 "초등학교 학년 수준으로 초록을 요약해주세요."라는 지시사항을 전달합니다.
3. 요약 결과 출력
print(completion)
- 생성된 요약 결과를 출력합니다.
이 코드는 위와 같은 방식으로 PDF 파일에서 텍스트를 추출하고, 이를 클로드 3 Opus 모델을 사용하여 지정된 요약 방식으로 요약하는 과정을 자동화합니다.
다음은 비주얼 스튜디오 코드를 실행한 후, 아래 파이썬 코드를 복사해서 새 파이썬 파일로 저장하고 실행합니다. pdf 파일명과 API Key값은 본인의 것으로 수정해서 입력합니다.
from pypdf import PdfReader
from anthropic import Anthropic
ANTHROPIC_API_KEY = "발급받은 API Key" # Anthropic API key goes here
reader = PdfReader("2404.02733.pdf")
text = ''.join([page.extract_text() for page in reader.pages])
CLIENT = Anthropic(api_key=ANTHROPIC_API_KEY)
MODEL_NAME = "claude-3-opus-20240229"
def get_completion(client, prompt):
return client.messages.create(
model=MODEL_NAME,
max_tokens=2048,
messages=[{
"role": 'user', "content": prompt
}]
).content[0].text
completion = get_completion(CLIENT,
f"""Here is an academic paper: <paper>{text}</paper>
Please do the following:
"초등학교 학년 수준으로 초록을 요약해주세요." (In <kindergarten_abstract> tags.)
"""
)
print(completion)
위 코드를 실행하면 아래 화면과 같이 논문 초록 요약이 알기 쉽게 정리되어 출력됩니다. 클로드 3 Opus는 한글을 잘 인식하고 논문 초록을 자연스럽게 잘 요약하였습니다.
맺음말
오늘 블로그에서는 클로드 3 Opus 모델을 활용하여 arxiv 논문의 초록을 이해하기 쉽게 요약하는 기능을 구현해 보았습니다. 우리는 WSL을 사용하여 환경을 설정하고, 필요한 라이브러리를 설치한 후, PDF 파일을 다운로드하고, 앤트로픽 API를 활용하여 논문 초록을 요약하는 파이썬 코드를 작성하였습니다. 여러분도 코드의 사용자 프롬프트를 수정해서 다양한 pdf 문서를 요약해 보시면 어떨까요?
클로드 3 Opus와 같은 언어 모델은 다양한 분야에서 지식을 확장하고, 전문적인 내용을 일반인에게 소개하는데 큰 도움을 줄 수 있습니다. 앞으로도 클로드 3 Opus와 같은 혁신적인 기술을 활용하여 더 많은 새로운 가능성을 탐색하고, 지식을 공유할 수 있기를 기대하면서 이상으로 오늘 블로그 내용을 마치겠습니다. 저는 다음에 더 유익한 내용으로 다시 찾아뵙겠습니다. 감사합니다.
2024.02.29 - [AI 도구] - Groq LPU : 논문 한편 요약하는데 입력-추론-응답까지 2.4초!
'AI 언어 모델' 카테고리의 다른 글
[AI 논문] 올해의 한국어 LLM에 선정된 야놀자 언어 모델, EEVE (0) | 2024.04.13 |
---|---|
Dolphin 2.8: 무엇이든 대답하는 무검열 Mistral 최신 모델과 오프라인 대화(크롬 브라우저 Ollama UI) (1) | 2024.04.10 |
🎨클로드(Claude) 3 Opus로 만드는 놀라운 일러스트! (0) | 2024.04.07 |
🚀 ReALM, 화면 속 정보를 이해하는 애플의 새로운 AI 기술! (0) | 2024.04.05 |
5줄 파이썬 코드로 AI 주식 분석 완료! Hermes 2 Pro의 놀라운 함수 호출 기능 (0) | 2024.03.19 |