인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

Jmob님의 프로필 이미지
Jmob

작성한 질문수

실리콘밸리 엔지니어와 함께하는 OpenAI API (ChatGPT)

Assistants API with Function Calling에 대해 알아보기

assistant에서 file 업로드 하고 쓰레드 사용시 token 사용 및 사용 방법 문의

해결된 질문

작성

·

42

0

Assistant 기능으로 데이터를 tagging 하는 봇을 만들려고 합니다.

tagging에 관한 정보를 file에 업로드 하고

필요한 내용을 bot을 통해 묻고 답으로 tag list를 받아 보려고 하는데요, 이 때 file로 질문 마다 새로운 thtread를 만들어서 질문을 하게 되면 file을 확인할때는 매번 token을 사용한걸로 처리가 되고 비용이 청구 될까요?

이런 목적으로 하는 경우에는 file 보다는 fine-turing이 더 좋을까요?

 

답변 2

0

미쿡엔지니어님의 프로필 이미지
미쿡엔지니어
지식공유자

안녕하세요,

OpenAI API에서는 파일을 업로드한 뒤 file을 참고하는 방식으로 질문을 하면, 파일 내 데이터를 검색하거나 활용하는 데 매번 토큰 사용량이 발생합니다. 이로 인해 요청마다 토큰 비용이 청구될 수 있습니다.

파일을 사용하는 방식은 token 비용이 누적될 가능성이 있으므로, 질문 빈도나 파일 크기에 따라 비용이 증가할 수 있습니다. 특히, 질문의 맥락을 계속 유지하려면 해당 파일의 일부를 매번 호출해야 하므로 비효율적일 수 있습니다.

이럴 경우, Fine-Tuning을 사용하면, 데이터 파일을 모델에 직접 학습시키고 그 데이터를 "지식"으로 내장시킵니다. 이후 모델이 Fine-Tuned 데이터에 기반해 답변을 생성하므로 매번 파일을 참조할 필요가 없습니다.

Fine-Tuning은 다음과 같은 경우에 적합합니다

  • 데이터가 비교적 고정적이며, 자주 변경되지 않는 경우.

  • 모델이 특정 도메인이나 데이터에 대해 깊은 이해를 가져야 하는 경우.

  • API 사용량을 줄이고 싶을 때.

단, Fine-Tuning 과정 자체에도 비용이 발생하며, 데이터가 자주 변경되는 경우 업데이트마다 재학습이 필요해 유지비용이 늘어날 수 있습니다.

 

제 생각에는 Fine-Tuning 없이 embedding을 활용하여 검색 기반으로 시스템을 구축하는 것도 좋은 대안입니다. -> Text Embedding을 사용해 Document Similarity 찾아보기

  • 데이터를 OpenAI API의 text-embedding 모델을 사용해 벡터화(embedding)합니다.

  • 이를 벡터 검색 시스템(e.g., Pinecone, Weaviate, FAISS)에 저장합니다.

사용자가 질문을 할 때, 질문을 embedding으로 변환한 뒤 벡터 검색을 통해 관련 데이터만 검색하여 응답합니다. 이 방식은 데이터를 자주 변경하거나 추가해야 할 때 유리합니다. 파일을 매번 불러오는 것보다 효율적이고, Fine-Tuning보다 유연할 겁니다

Jmob님의 프로필 이미지
Jmob
질문자

오 넵 자세한 설명 감사합니다!

0

안녕하세요, 인프런 AI 인턴입니다. Jmob님.

OpenAI API를 사용하여 Assistant 기능으로 데이터 태깅 봇을 만드는 방법에 대해 궁금하신 점이 있으시군요. 각 질문마다 새로운 스레드를 사용하여 파일을 통해 질문을 할 경우, 파일에 접근할 때마다 토큰을 사용하게 되며, 이 경우 비용이 발생할 수 있습니다. 따라서, 파일을 참조하여 빈번한 질문 및 응답이 필요한 경우 이를 효율적으로 관리하는 방법을 고려해야 합니다.

토큰 사용과 비용

  • 파일 접근 시 토큰 사용: OpenAI API는 입력 및 출력 처리에서 사용하는 토큰 수에 따라 비용이 청구됩니다. 파일에 접근하여 데이터를 불러오는 작업이 처리되는 동안 이러한 토큰이 소모될 수 있으며, 이는 각 요청 시 비용 발생을 의미합니다.

Fine-tuning과의 비교

  • Fine-tuning 장점: 자신의 데이터를 모델에 맞춰 작업하면, 질문마다 데이터를 새로 불러오는 대신 이미 학습된 정보를 사용하여 보다 빠르게 반응할 수 있습니다. 이러한 방식은 특정 작업에 대해 모델의 적응성을 높일 수 있으며, 반복적으로 유사한 태스크를 수행할 때 더 효율적일 수 있습니다.

고려 사항

  • 데이터를 자주 가져와 연산하는 경우, 자주 변경되지 않는 데이터라면 한 번에 불러와 메모리에 유지하거나 fine-tuning을 활용하여 효율성을 높이는 것이 좋습니다.
  • API 및 모델 사용 시 발생하는 토큰 수와 비용을 모니터링하여 운영 비용을 관리하세요.

더 많은 정보를 원하신다면 이러한 주제에 관한 유사한 질문들을 확인해 보시는 것도 좋습니다:

OpenAI API 비용 관리 및 최적화 방법

이러한 설명이 되셨길 바라며, 추가적인 질문이 있다면 언제든지 말씀해 주세요.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

Jmob님의 프로필 이미지
Jmob

작성한 질문수

질문하기