
1️⃣ 글 제목
- 🐍 Python | Raspberry Pi에서 오픈소스 LLM으로 뉴스 요약기 만들기 ---
2️⃣ 개요 (Intro)
- 오늘은 라즈베리 파이에서 오픈소스 LLM을 활용해 웹 뉴스 요약기를 만드는 프로젝트를 구상했다. - 주요 목표는 Daum 포털에서 뉴스 데이터를 수집하고, 경량 LLM을 통해 300자 이내로 요약하는 기능을 구현하는 것. - 사용한 기술 스택은 Python, BeautifulSoup, Hugging Face Transformers, Phi-3 Mini 모델.
📅 날짜: 2025.11.05 🎯 목표: Raspberry Pi에서 뉴스 요약기 구상 🧰 기술: Python, Hugging Face, BeautifulSoup, Phi-3 Mini
---
3️⃣ 문제 정의 (Problem / Motivation)
- 라즈베리 파이처럼 리소스가 제한된 환경에서 LLM을 실행하려면 경량화된 모델이 필요하다. - 웹에서 뉴스 데이터를 자동으로 수집하고, 이를 요약하는 기능을 구현하려면 크롤링과 자연어 처리 기술이 결합되어야 한다. - Daum 포털의 HTML 구조를 분석해 주요 뉴스 텍스트를 추출하는 방식으로 접근했다.
# Daum 뉴스 헤드라인 수집 예시
soup.select("a.link_txt")
---
4️⃣ 해결 과정 (How I Solved It)
- Hugging Face에서 제공하는 Phi-3 Mini 모델을 선택해 Python 코드로 불러오는 방식으로 구성했다. - BeautifulSoup을 활용해 Daum 메인 페이지에서 주요 뉴스 텍스트를 추출하고, 이를 LLM에 입력해 요약 결과를 생성했다. - 전체 흐름은 뉴스 수집 → 요약 요청 → 결과 출력으로 구성되며, 추후 Streamlit을 통해 UI도 확장 가능하다.
# 요약 처리 예시
def summarize_text(text):
prompt = f"다음 내용을 300자 이내로 요약해줘:\n{text}"
inputs = tokenizer(prompt, return_tensors="pt")
outputs = model.generate(**inputs, max_new_tokens=100)
return tokenizer.decode(outputs[0], skip_special_tokens=True)
---
5️⃣ 결과 (Result)
- 뉴스 헤드라인을 수집하고, LLM을 통해 간결한 요약 결과를 생성하는 데 성공했다. - 라즈베리 파이에서도 실행 가능한 경량 모델을 활용함으로써 저전력 환경에서도 AI 기능을 구현할 수 있다는 가능성을 확인했다.
✅ Daum 뉴스 요약 기능 구현 성공 📉 리소스 사용량 최소화, 실행 속도 안정적
---
6️⃣ 느낀 점 / 회고 (Reflection)
- 오픈소스 LLM의 발전 덕분에 소형 디바이스에서도 자연어 처리 기능을 구현할 수 있다는 점이 인상 깊었다. - 다음에는 Streamlit을 활용해 웹 UI를 추가하고, 요약 결과를 저장하거나 공유할 수 있는 기능을 확장해보고 싶다. - 또한 뉴스 외에도 블로그, 기술 문서 등 다양한 텍스트에 적용해보는 실험도 흥미로울 것 같다. ---
7️⃣ 참고자료 (References)
- [Hugging Face - Phi-3 Mini 모델](https://huggingface.co/microsoft/phi-3-mini) - [BeautifulSoup 공식 문서](https://www.crummy.com/software/BeautifulSoup/bs4/doc/) - [Daum 포털](https://www.daum.net) - [Open Source LLMs in 2025 - GeeksForGeeks](https://www.geeksforgeeks.org/artificial-intelligence/top-10-open-source-llms-in-2025) ---
'파이썬 스크립트' 카테고리의 다른 글
| 🐍 Python | Hugging Face 모델, 왜 요약을 못할까? (Base vs. Instruct 모델, 버전 충돌 해결기) (1) | 2025.11.09 |
|---|---|
| - 🐍 Python | CamelCase를 snake_case로 변환하고 SQLite에서 단일 row 조회하기 --- (0) | 2025.11.07 |
| 🐍 Python | 문자열 처리와 xlwings로 엑셀 데이터 다루기 --- (0) | 2025.11.01 |
| 오늘의 개발일지: 웹 스크래핑 삽질에서 모듈화까지(ft Python) (1) | 2025.10.28 |
| 🐍 Python | PC에 흩어진 .whl 파일, 한 곳으로 모으는 자동화 스크립트 개발기 (1) | 2025.10.26 |