Jump to content

CLOVA Studio 운영자

Administrators
  • 게시글

    287
  • 첫 방문

  • 최근 방문

  • Days Won

    51

Everything posted by CLOVA Studio 운영자

  1. 안녕하세요, @모바일님, 클로바 스튜디오 담당입니다. 해당 오류는 데이터셋의 T_ID가 잘못 되어 있을때 발생하는 오류입니다. 데이터셋의 T_ID가 모두 0 (싱글턴) 또는 0부터 시작해서 1씩 증가하는(멀티턴) 케이스로 올바르게 작성되었는지 확인 부탁드립니다. 문제가 지속적으로 발생 시, 고객문의 창구를 통해 전달주시면 감사하겠습니다. 감사합니다.
  2. 안녕하세요, @모바일님, 클로바 스튜디오를 이용해주셔서 감사합니다. 언어 모델의 특성상 외부 환경과 연계된 실시간성의 답변을 할 수 없기 때문에, 현재 날짜나 시간을 답할 수 없습니다. 시스템 프롬프트에 {date}와 같은 형태로 구성 후, 날짜 정보를 직접 넣어주는 형태로 구현을 하시는 방법이 있습니다. 프롬프트를 동적 구성을 하시면, 해당 날짜를 바탕으로 답변을 할 수 있을 것입니다. 또는 클로바 스튜디오의 스킬 트레이너를 이용하면, 외부 API를 호출하도록 모델 학습이 가능합니다. 오래전 포스팅이기는한데, 아래 포스팅이 도움이 되실 수도 있을 것 같습니다. 감사합니다.
  3. 안녕하세요, @노지랑님 클로바 스튜디오를 이용해주셔서 감사합니다. 토큰 기반의 언어모델의 특성상 정확한 글자수 기준으로 처리하는 것은 어려운 것으로 보고 있습니다. 하지만 HyperCLOVA X 모델의 경우 시스템 프롬프트를 이용하면 적당한 길이감으로 출력될 수 있도록 제어할 수 있습니다. 아래는 제가 시도해본 결과 입니다. ▼ 200자 이내로 요청한 경우, 실제 결과는 공백 포함 144자입니다. ▼ 400자 이내로 요청한 경으, 241자로 요청. ▼ 700자 이내로 요청한 경우, 392자로 출력. 시스템 프롬프트에 적절한 예제를 구성하시거나, 길이감을 더욱 잘 따르도록 튜닝을 시도해보시는 것도 도움이 될 수 있을 것 같습니다. 감사합니다.
  4. @lily.b.lee님, 안녕하세요. 40100 에러는 권한이 없을 때 발생하는 에러입니다. 작업의 생성자와 요청자의 권한이 동일한지 확인 부탁드립니다. 클로바 스튜디오 우상단 메뉴 > 내 작업 > 플레이그라운드에서 작업을 확인해 주세요. 감사합니다.
  5. @Roadpia 님, 각 chunk의 'text'열이 이중 리스트여서 발생한 이슈 같습니다. for item in chunked_html: item['text'] = ", ".join(item['text']) 실행을 통해 이중 리스트를 풀어야할 것으로 보입니다.
  6. @사리미로님, 서비스 앱 이후의 이용량을 확인하실 수 있도록 이용량 제어 정책 가이드 링크를 전달드립니다. https://guide.ncloud-docs.com/docs/clovastudio-ratelimiting 감사합니다.
  7. 안녕하세요, @모바일님, 네, 플레이그라운드를 통해 만든 작업의 경우, 서비스 앱 승인 이후에도 프롬프트를 변경해서 호출해도 괜찮습니다. 다만 서비스에 새로 적용할 프롬프트는 반드시 미리 테스트를 하여 원하는 결과물이 나오는지 확인 후 적용해주시고, 승인된 서비스 앱을 호출할 때 적절한 프롬프트와 입력값이 전달되도록 서비스 운영/관리 부탁드립니다. 감사합니다.
  8. 안녕하세요, @모바일님, 시스템 프롬프트를 구체적이고 명료하게 작성하는 것이 좋습니다. 예를들어, 답변과 이어지는 질문을 함께 출력하는 것이 중요한 과업이라면, 해당 요청에 대해서 정확하게 명시하는 것이 좋을것 같습니다. 또한 답변 예시를 통해서 few-shot 형태로 프롬프팅 하는 것이 도움이 될 수 있습니다. 아래는 DASH-001 모델과 HCX-003 모델로 수행한 결과입니다. DASH 모델을 가지고 튜닝을 해보시는 것도 접근해볼 수 있는 방안입니다. 답변의 스타일을 커스텀할 수 있어서, 원하시는 형태를 더욱 잘 수행할 수 있을 것으로 예상합니다. <HCX-DASH-001> <HCX-003>
  9. 안녕하세요, @Roadpia 님, Milvus가 2.4.x 버전으로 업데이트되면서 코드에 변화가 생겼습니다. 이로 인해 collections를 만드는 형식도 변경되었습니다. 저희가 확인해보니, Requirements.txt에 기재된 2.4.x 버전은 실제로는 2.2.x 버전이었습니다. Milvus 2.4x 버전에서는 아래 코드로 정상 동작하는 것을 확인하였습니다. 따라서 이 방법으로 진행해 주시기 바랍니다. 본문의 코드 또한 수정하도록 하겠습니다. from pymilvus import connections, FieldSchema, CollectionSchema, DataType, Collection, utility fields = [ FieldSchema(name="id", dtype=DataType.INT64, is_primary=True, auto_id=True), FieldSchema(name="source", dtype=DataType.VARCHAR, max_length=3000), FieldSchema(name="text", dtype=DataType.VARCHAR, max_length=9000), FieldSchema(name="embedding", dtype=DataType.FLOAT_VECTOR, dim=1024) ] schema = CollectionSchema(fields, description="컬렉션 설명 적어넣기") collection_name = "컬렉션 이름" collection = Collection(name=collection_name, schema=schema, using='default', shards_num=2) for item in chunked_html: source_list = [item['source']] text_list = [item['text']] embedding_list = [item['embedding']] entities = [ source_list, text_list, embedding_list ] insert_result = collection.insert(entities) print("데이터 Insertion이 완료된 ID:", insert_result.primary_keys) print("데이터 Insertion이 전부 완료되었습니다")
  10. 안녕하세요, @Jay Ahn님, 클로바 스튜디오에 관심 가져주셔서 감사합니다. 클로바 스튜디오의 HyperCLOVA X, 임베딩 등 여러 모델을 다양한 방식으로 활용할 수 있도록 준비중에 있습니다. 곧 좋은 소식 전해드리겠습니다. 감사합니다.
  11. 안녕하세요, @gentledev10님, input과 output을 합산하여 과금 처리 됩니다. 감사합니다.
  12. 안녕하세요, @scc 님, HCX-DASH-001 모델로도 서비스 앱 신청이 가능합니다. 플레이그라운드 상에서 공유 버튼을 누르시면, 서비스 앱에서 정상적으로 작업을 확인하실 수 있습니다. 감사합니다.
  13. @곳간로지스님, 심사 및 승인에 1~3주 가량 소요될 수 있습니다. https://guide.ncloud-docs.com/docs/clovastudio-playground01#서비스앱신청 감사합니다.
  14. 안녕하세요, @사리미로님, 클로바 스튜디오 담당입니다. 서비스 앱 신청 가능 범위가 실시간 서비스로만 한정되는 것은 아닙니다. 서비스 앱 신청을 진행해주시면 검토하도록 하겠습니다. 감사합니다.
  15. 안녕하세요, @잔퀸신종님, 클로바 스튜디오 담당입니다. 프롬프트, 튜닝, 스킬 트레이너 개별적으로 테스트 앱 신청 또는 서비스 앱 신청을 진행 부탁드립니다. 각각 발급을 진행한 뒤에 서비스 로직에 따라 연동 진행하시면 될 것 같습니다. 감사합니다.
  16. 안녕하세요, @곳간로지스님,클로바 스튜디오 담당입니다. 서비스 신청시 업로드 하는 데이터는 서비스 심사를 위한 목적으로, 학습 엔진에 영향을 끼치지 않습니다. 🙂 학습 데이터의 방향을 파악하기에 5개는 부족하여, 10MB 이하로 충분한 데이터 패턴이 포함되도록 업로드 부탁드립니다. 감사합니다.
  17. 안녕하세요, @Eric.Yoo님, signature의 매개변수(page=&size=) 정의가 잘못되어 오류가 발생한 것으로 보입니다. 아래와 같이 수정 후 요청 부탁드립니다. def _make_signature(self, page_no, size_cnt): 감사합니다.
  18. 지난 RAG 3부작 시리즈에서는 클로바 스튜디오를 활용하여 RAG를 구현하는 방법에 대해 자세히 설명했습니다. 이번 포스팅에서는 LlamaIndex를 이용하여 MS 워드, PDF, HWP, txt 등 다양한 형식의 파일을 불러오는 방법을 소개하고자 합니다. RAG 3부작 시리즈 ✔︎ (1부) RAG란 무엇인가 링크 ✔︎ (2부) RAG 구현 단계 알아보기 링크 ✔︎ (3부) CLOVA Studio를 이용해 RAG 구현하기 Cookbook 링크 RAG(Retrieval-Augmented Generation)를 구현하기 위해서는 문서를 효과적으로 불러오고 처리할 수 있는 작업이 필요합니다. LlamaIndex는 이를 위해 MS 워드, PDF, HWP, txt 등 다양한 형식의 파일을 읽어들여 LLM 모델이 사용할 수 있는 형태로 변환해주는 Loader를 제공합니다. LlamaIndex는 불러올 파일의 개수에 따라 두 가지 방법을 제시합니다. 1. 단일 파일만 불러오는 방식입니다. 데이터 유형에 맞는 parser를 단독으로 사용하여 개별 파일을 불러옵니다. 이 방식은 문서 자체에 대한 메타데이터를 포함하고 있어, 문서 내용뿐만 아니라 문서와 연계된 다른 작업에 용이합니다. 2. 폴더 내 동일한 유형의 여러 파일을 한 번에 불러오는 방식입니다. SimpleDirectoryReader를 통해 폴더를 불러온 뒤, 해당 데이터 유형에 맞는 parser로 폴더 내 모든 파일을 처리할 수 있습니다. 이 방식은 여러 문서의 본문 내용을 빠르게 가져올 수 있어 로딩 속도와 양적인 면에서 강점이 있습니다. 이처럼 LlamaIndex는 사용 목적에 맞게 데이터를 불러오고 처리할 수 있는 모듈들을 하나의 패키지로 제공함으로써, RAG 구현을 보다 쉽고 효율적으로 수행할 수 있게 만들어줍니다. 필요 패키지 설치 pip install llama-index-readers-file 사용할 모듈 한 번에 불러오기 from llama_index.core import SimpleDirectoryReader from llama_index.readers.file import ( DocxReader, HWPReader, PyMuPDFReader, ) from pathlib import Path 1. 개별 문서 파일 불러오기 MS Word 문서 불러오기 : DocxReader MS Word(워드) 파일을 불러올 때, 파일명은 "metadata" 변수에, 문서 전체 내용은 페이지 구분 없이 "text" 변수에 저장됩니다. 아래 실행 코드는 현재는 Deprecated된 이전 페이지와 폴더 단위 불러오기 방식을 참고해 작성했습니다. 각 파일에는 고유 ID가 할당되고, 문서 본문 전체가 "text"에 저장되며, 파일명은 "metadata"의 "file_name"에 저장됩니다. 문서 임베딩 결과는 "embedding" 변수에 정리할 수 있습니다. 이를 통해 Word 파일 내 표 형식과 표 안의 텍스트 정보도 성공적으로 불러올 수 있음을 아래 예시에서 확인할 수 있습니다. loader = DocxReader() documents = loader.load_data(file=Path("/Users/user/Desktop/connector/docx/table2.docx")) print(documents) PDF 불러오기 : PyMuPDFReader PyMuPDFReader를 사용하면 단일 PDF 파일을 간편하게 불러올 수 있습니다. 다음은 LlamaIndex의 공식 깃허브에서 가져온 사용 예제입니다. 파일마다 고유한 ID가 할당되며, 문서의 본문 내용 전체는 "text" 변수에 저장됩니다. 또한, 파일의 이름은 "metadata"의 "file_name"으로 저장되고, 문서 임베딩 결과는 "embedding" 변수에 정리할 수 있습니다. 아래 예시를 통해 PyMuPDFReader가 그림 안의 텍스트뿐만 아니라 경계가 모호한 표 형식의 글자들도 성공적으로 추출할 수 있음을 알 수 있습니다. loader = PyMuPDFReader() documents = loader.load_data(file_path=Path("/Users/user/Desktop/connector/data/korean1.pdf"), metadata=True) print([doc for doc in documents if doc.metadata.get('source') == '8']) # 8쪽만 확인 한글 파일 불러오기: HWPReader 아래의 사용 예제 코드는 LlamaIndex의 공식 깃허브의 사용 예제를 가져왔습니다. 파일마다 고유한 ID가 할당되고, 문서를 불러올 때 각 페이지마다 고유한 Doc ID와 해당 페이지의 내용인 Text가 지정되지만, 이 외에 문서에 대한 추가적인 메타데이터는 별도로 제공되지 않습니다. 아래 예시를 통해 HWPReader가 hwp 파일 내의 표나 박스 형식 안에 있는 텍스트를 효과적으로 추출할 수 있으며, 머릿말과 같은 본문 외의 텍스트도 빠짐없이 가져올 수 있음을 확인할 수 있습니다. hwp_path = Path("/Users/user/Desktop/connector/hwp/report1.hwp") reader = HWPReader() documents = reader.load_data(file=hwp_path) print(documents) 2. 동일한 유형의 txt 파일만 포함된 폴더 전체를 불러오기 : SimpleDirectoryReader LlamaIndex에는 txt 파일 전용 로더(parser)가 별도로 제공되지 않습니다. 그러나 SimpleDirectoryReader를 사용하여 폴더 내의 모든 파일을 한 번에 불러오는 방식으로 txt 파일을 로딩할 수 있습니다. 만약 특정 txt 파일들만 선택적으로 불러오고 싶다면, 해당 파일들을 별도의 폴더에 모아 저장한 후 SimpleDirectoryReader로 그 폴더를 지정하여 불러오면 됩니다. SimpleDirectoryReader의 자세한 사용 방법은 LlamaIndex 홈페이지의 가이드에서 확인할 수 있습니다. SimpleDirectoryReader를 사용하여 txt 파일을 불러올 경우, 메타데이터의 구성이 Parser(docx, pdf, hwp 등)를 사용했을 때와는 차이가 있습니다. 메타데이터에는 파일 저장 경로, 파일 이름, 파일의 형태(text), 파일 크기, 제작 일자, 마지막 수정일이 포함되며, 각 문서마다 고유한 ID가 생성됩니다. reader = SimpleDirectoryReader(input_dir="txt파일이있는/폴더/경로/입력") documents = reader.load_data() print(documents) 3. 폴더에서 특정 문서 통째로 불러오기 폴더에서 특정 파일만을 통째로 불러올 수 있습니다. 문서를 불러올 때, 각 페이지마다 고유한 Doc ID와 해당 페이지의 내용인 Text가 지정됩니다. 이 외에 문서에 대한 추가적인 메타데이터는 별도로 제공되지 않습니다. parser = DocxReader() file_extractor = {".docx": parser} documents = SimpleDirectoryReader( "폴더/경로/입력", file_extractor=file_extractor ).load_data() for doc in documents: print(doc) 맺음말 이상으로 LlamaIndex가 제공하는 다양한 문서 로더(Loader)와 그 사용 방법에 대해 알아보았습니다. LlamaIndex는 단일 파일을 불러올 때는 해당 데이터 유형에 맞는 parser를 사용하고, 여러 파일을 한 번에 불러올 때는 SimpleDirectoryReader와 parser를 조합하여 사용할 수 있도록 합니다. 이를 통해 사용자는 문서의 내용뿐만 아니라 메타데이터까지 효과적으로 추출할 수 있으며, 대량의 문서를 빠르게 처리할 수 있습니다. LlamaIndex의 이러한 기능은 RAG 모델 구현에 필수적인 요소로, 사용자가 보다 쉽고 편리하게 문서를 불러와 모델에 활용할 수 있도록 돕습니다. 앞으로도 LlamaIndex는 다양한 형식의 데이터를 처리할 수 있는 새로운 Loader를 지속해서 개발할 것으로 기대되며, 이는 RAG 모델의 활용 범위를 더욱 확장시킬 것입니다.
  19. 안녕하세요, @데이터 빅님, 아시다시피, 모델마다 성능 차이가 있을 수 있으며, 프롬프트 작업이나 튜닝을 통해, 성능의 전후 평가가 필요합니다. 모델이 다양한 상황에 잘 대응할 수 있도록 프롬프트를 정의할 때는 Few-shot prompting 방식을 활용하는 것이 도움될 수 있습니다. 즉, 프롬프트에 적절한 예시들을 포함시켜 모델이 원하는 방향으로 동작하도록 유도하는 것입니다. 아래는 같은 문장이 주어졌을 때 모델이 어떻게 답변해야 하는지를 예시로 보여주는 프롬프트의 결과물입니다. 감사합니다.
  20. 안녕하세요, @ak68님, 본 Cookbook에서 활용된 html을 로딩하기 위해선 ‘—user-agent=Mozilla/5.0’ 을 추가하면 정상적으로 불러올 수 있습니다. 대상 사이트에서 사용하는 User-Agent 정보와 동일한 형태로 --user-agent 옵션을 설정하면, 요청 차단으로 인해 발생할 수 있는 에러를 방지할 수 있습니다. @hatiolab님, 공유 감사합니다.
  21. 안녕하세요, @Roadpia님, 주소 노출로 인한 부작용 방지를 위해 URL 마스킹이 될 수 있습니다. 아래 링크를 통해 문의주시면, 보다 자세히 안내드리도록 하겠습니다. https://www.ncloud.com/support/question/service 감사합니다.
  22. 안녕하세요, @hatiolab System prompt를 포함한 튜닝 학습 기능이 추가되어 소식을 전합니다. https://clovastudio.ncloud.com/tuning/api# 감사합니다.
  23. 안녕하세요, @jh.kim님, 고객센터를 통해 문의 주신 것으로 확인됩니다. 담당자를 통해서 안내될 수 있도록 하겠습니다. 감사합니다.
  24. 안녕하세요, @데이터 빅님, 말씀하신 내용을 확인하고 재현해 본 결과, 해당 부분은 현재 모델의 부족한 영역으로 판단됩니다. 이를 위해, 시스템 프롬프트에 올바른 문장 부호를 사용해야 한다는 규칙을 추가하였고, 그 결과 모델의 성능이 개선되는 것을 확인하였습니다. 앞으로도 지속적인 모델 개선을 통해 더 좋은 서비스를 제공할 수 있도록 노력하겠습니다. 감사합니다.
  25. 안녕하세요, @Roadpia님, 튜닝한 모델에 추가로 튜닝을 진행하실 수는 없으며 새로 튜닝을 진행하셔야 합니다. 튜닝 가이드의 학습 조회/학습 생성 URI가 잘못 기재된 오류를 확인하여, 수정하도록 하겠습니다. 학습 생성은 POST: /tuning/v2/tasks 학습 조회는 GET: /tuning/v2/tasks/{taskId} 로 진행하실 수 있으며, 가이드 수정 전까지는 우선 튜닝 API의 상세 페이지로 확인 부탁드립니다. https://hyperclova.navercorp.com/tuning/api/create 감사합니다.
×
×
  • Create New...