2025. 6. 24. 22:32ㆍ데이터분석 인턴일기
오늘의 업무
DeepSeek Bedrock 호출 코드 수정 및 토큰 수 재계산 로직 개선
Claude 3.7과 DeepSeek R1 챗봇 성능 및 비교 보고서 작성
Postman 툴 활용 학습
오늘은 LLM 성능 분석의 마지막 진짜 진짜 마지막 최종 토큰 단위 사용량을 정확하게 측정해보았다.
DeepSeek모델의 응답 토큰 수를 보다 정확하게 계산 할 수 있도록 API호출방식과 출력구조를 개선했고 이를 기반으로 비용산출을 다시 했다.
🛠 1. DeepSeek 호출 구조 및 토큰 계산 로직 수정
기존에는 DeepSeek 응답에서 출력된 텍스트만 가지고 Auto Tokenizer로 토큰 수를 유추하는 방식으로 계산을 했다.
계산결과가 Claude랑 별차이가 없어서 DeepSeek가 가격적인 메리트가 없는 것으로 보여졌고
팀장님께서 Bedrock에서 chat을 켜서 토큰수를 확인해 볼 수도 있다고 하셔서 그렇게 해보니 전혀.. 달랐다 (훨씬 적어야함)
오늘은 Bedrock API의 응답 구조를 정확히 파악하고 이에 맞게 코드 수정을 진행했다.
우선 API Respose 에 Input Token, Output Token이 들어있는데 내가 이걸 몰랐던것
def call_deep_seek(prompt):
client = get_bedrock_client()
#DeepSeek R1 전용 프롬프트 포맷
formatted_prompt = f"<|begin_of_sentence|)<User|>{prompt|<|Assistant|><think>\n"
body = json.dumps({
"prompt" : prompt,
"max_token" : 512,
"temperature" : 0.5,
"top_p" : 0.95
})
try:
respose = client.invoke_model(
modelId = MODEL_ID,
body = body
#응답 텍스트 추출
body_str = reponse["body"].read().decode("utf-8")
result = json.loads(body_str)
#응답에서 텍스트 및 토큰 추출
choice = result.get("choices",[])
answer = choice[0]["text"] if choices else "[NO OUTPUT]"
headers = respose["ResponseMetadata"]["HTTPHeaders"]
input_tokens = int(headers.get("x-amzn-bedrock-input-token-count", -1))
output_tokens = int(headers.get("x-amzn-bedrock-output-token-count",-1))
return answer, input_tokens, output_tokens
except (ClientError, Exception) as e:
print(f" error:Can't invoke'{MODEL_ID}'. Reason:{e}")
return f"[ERROR] DEEPSEEK 호출 실패: {e}", -1, -1
API호출도 참 어려웠는데
1. API호출 성공여부 확인
2. 응답전체를 출력해서 응답 구조 확인
처음부터 두개를 확인하고 시작했다면 훨씬 작업시간이 줄어들었을것 같다.
📑 2. Claude 3.7 vs DeepSeek R1 성능 비교 보고서 작성
성능 평가 실험을 기반으로, 응답 품질, 응답 길이, 토큰 사용량, 예상 비용 등을 종합 비교한 보고서를 작성했다.
비교 기준은 다음과 같다:
- 🧠 의미 유사성 및 정보 정확도
- 🔍 검색 문맥 활용률 (RAG 기반 응답 적절성)
- 💬 응답 길이 및 표현력
- 💸 사용된 입력/출력 토큰 수 및 단가 기반 총 비용
오늘은 DeepSeek R1 Bedrock 토큰 계산을 하다가 하루가 다지나갔다.
LLM에게 코드 수정방법을 문의했는데 비정확한 정보로 오히려 시간을 더 소모했고 팀장님의 도움으로 겨우 힌트를 얻어서
API구조와 응답 방식을 확인해 겨우 해결 할 수 있었다.
처음써본 Postman 툴도 매우 유용했고 앞으로도 API테스트나 디버깅에 적극적으로 활용 할 수 있을 것 같다.
결과는 다행히(?) DeepSeek R1의 비용이 훨씬 적었다.
'데이터분석 인턴일기' 카테고리의 다른 글
| 인턴일기 - 36일차(DeepSeek RAG 챗봇에 대한 히스토리 반영 & 프롬프트 구조개선) (0) | 2025.06.26 |
|---|---|
| 인턴일기 - 35일차(DeepSeek 기반 RAG챗봇 스트리밍 구현) (1) | 2025.06.24 |
| 인턴일기 - 33일차(DeepSeek vs Claude RAG 성능비교 & 토큰 계산실험) (2) | 2025.06.24 |
| 인턴일기 - 32일차(DeepSeek 기반 LLM 성능 비교 & RAG 평가 프롬프트 개선) (0) | 2025.06.23 |
| 인턴일기 - 31일차(RAG 성능평가 : 기술평가 + LLM 기반 평가) (1) | 2025.06.23 |