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

tk.lee님의 프로필 이미지

작성한 질문수

Azure Native로 나만의 GPT 만들기

SLM을 이용한 사내 전용 AI

해결된 질문

24.07.29 16:31 작성

·

122

1

안녕하세요 저는 업무 상 필요에 의해 AI 활용 관련해서 이런저런 테스트를 해 보고 있는 중입니다. 개발자가 아니여서 직접적으로 개발을 수행하기에는 어려움이 있습니다.

현재 사내 가이드라인 문서들 (PDF)을 ChatGPT4o에 업로드하여 이해 시킨 후 개인 업무 진행 후 그 결과물들이 가이드라인을 얼마나 준수하는지에 대한 준수율 체크를 해 점수화 해 주는 사내 전용 AI를 도입해 보려고 강의를 듣고 있습니다만 어렵네요

ChatGPT에 pdf 파일을 올려 테스트를 해 보니 상당 수준의 검출 가능성이 있겠다는걸 확인 했습니다만 그 과정을 통해 ChatGPT가 저희 가이드라인을 학습해 다른데 활용이 될 수도 있다는 우려가 있습니다

그래서 덩치가 크고 무거운 LLM 말고 SLM을 이용하여 한정된 분야에만 전문화되고 사내 전용으로 보안도 확보한 상태에서 개발할 수 있는 방법에 대해 문의 드리고 싶은데요

개인 이메일로 연락 부탁드리겠습니다

tk.lee@lge.com

감사합니다

답변 2

0

정동형님의 프로필 이미지
정동형
지식공유자

2024. 07. 30. 14:14

안녕하세요. 

강의를 제작하게 된 정동형 입니다. 

먼저, 저는 AI 엔지니어가 아니라 LLM을 활용하여 서버 개발을 진행하고 있는 백엔드 엔지니어입니다. 따라서 답변이 정확하지 않을 수 있고, 주관적인 내용이라는 점을 말씀드리고 싶습니다.

또한, 개발자가 아니라고 하시니 여러 질문으로 나눠서, 최대한 쉽게 설명드려보겠습니다.

 

Q. ChatGPT가 제 질문을 학습해 다른 곳에 활용할 수 있나요? 이것 때문에 LLM 대신 SLM을 사용하고 싶습니다.

A. Platform OpenAI 공식 문서 Azure OpenAI 공식 문서

Platform OpenAI와 Azure OpenAI의 공식문서 링크를 전달드립니다.

image.png

요약하자면, ChatGPT의 경우 개인 사용자에 대해 모델 학습을 진행하고, 설정 - 모델 개선 옵션에서 해당 옵션을 종료함으로써 학습에 사용되지 않도록 설정할 수 있습니다.

또한, ChatGPT Team, ChatGPT Enterprise 및 Platform OpenAI API 로 사용할 경우 모델 학습에 사용되지 않습니다.

Azure OpenAI의 경우, 사용자의 모든 데이터를 학습, 개선, OpenAI를 제외한 타사 제품 또는 Microsoft 서비스의 개선에 전혀 사용되지 않습니다.

따라서, tk.lee님께서 질문주신 "ChatGPT가 가이드라인을 학습할 것 같아 LLM 대신 SLM을 사용하고 싶다."는 크게 걱정하지 않으셔도 된다고 생각하며, "자원 효율성 및 속도를 위해 SLM을 사용하고 싶다." 혹은 "더 완벽한 보안을 위해 내부서버에 SLM을 띄워놓고 사용하고싶다."가 맞다고 생각합니다.

 

Q. PDF 요약을 위한 SLM을 찾는 방법

A. Hugging Face - Models

다음 사이트는 Hugging Face라는, 여러 LLM 및 SLM이 공개되어있는 오픈소스 사이트입니다.

해당 사이트 내에서 왼쪽의 "Document Question Answering" 을 선택하면, 그에 해당하는 Model이 표시됩니다.

하지만, PDF를 직접적으로 요약해주는 Model은 거의 존재하지 않으며, 이미지 인식 SLM이 대부분입니다. 따라서, 해당 오픈소스 모델들을 사용하기 위해서는 대부분 PDF를 이미지로 변환한 뒤, 이미지를 인식시켜서 요약하는 방식으로 동작시켜야 합니다.

따라서 저는 Azure OpenAI 및 ChatGPT API를 권장드리고 싶습니다. 사용이 간단할 뿐 더러, Azure OpenAI는 당연하고, ChatGPT API의 경우에도 사용자의 파일 및 데이터를 모델의 학습을 위해 사용하지 않습니다. 혹여 꼭 보안을 위해 SLM을 사용해야하는 경우 더 자세한 설명을 위해 답신 부탁드립니다.

 

Q. 그렇다면 LLM을 이용하여 한정된 분야에만 전문화되고, 사내 전용으로 보안도 확보한 상태에서 개발할 수 있는 방법에 대해 문의드리고 싶습니다.

A. 기본 골자는 제 강의를 따라하시면 됩니다. 제 강의를 따라하시되, 강의에 나오는 것 처럼 Agent Function 프로젝트를 적절히 수정하여 사용할 수 있습니다.

개발자가 아니라면 약간 어려울 수 있다고 생각하지만.. 열심히 설명해보겠습니다.

여러 방법들을 설명 드리겠습니다. 

 

Platform OpenAI - API문서 - StoragePlatform OpenAI - API문서 - Assistants

Platform OpenAI의 경우, tk.lee님께서 질문주신 내용을 수행하기 위해서는 Storage에 학습시킬 PDF 파일을 업로드 하고, 해당 PDF파일을 참조하는 Assistants를 만든 뒤, 해당 Assistants에게 질문하는 방식으로 동작하게 됩니다. 다음 두 문서를 적절히 참조하여 개발할 수 있습니다.

 

데이터에 대한 Azure OpenAI  Azure AI 검색이란?

이 방법은 학습시켜야 할 PDF가 많을 때 주로 사용되며, 상당히 복잡합니다.

Azure OpenAI의 경우 Storage에 PDF를 다량 업로드합니다. 이후 Azure AI Search에서 해당 Storage를 참조하여 문서를 인덱싱합니다. 마지막으로, Azure AI Search에 질문을 보내는 방식으로 동작합니다.

해당 방법은 저도 진행해본적이 없으며, 이론적으로만 알고있는 내용입니다 ㅠㅠ.. 정확하지 않을 수 있습니다.

 

그냥 PDF를 텍스트로 전처리하여 검색

적절히 코드를 작성하여 PDF를 텍스트로 전환시킨 뒤, 해당 내용을 프롬프트로 던져서 검색할 수 있습니다. 제일 쉬운방법이나, 길이에 제한이 존재합니다. GPT-4o의 경우 토큰 제한이 128k입니다. 한글 1글자당 1 Token이라고 가정하면, 최대 12만 8천자의 길이를 가진 PDF까지만 학습시킬 수 있습니다. 제일 쉽지만, 제약조건이 존재합니다.

이 마지막 방법의 경우 제 강의를 쭉 학습하신 뒤, 각 Function들을 파일을 받을 수 있는 형태로 수정하는 방식으로 진행할 수 있습니다. 다만, Service Bus가 기본/표준 요금제일 경우 Queue에 최대 256KB까지의 메시지만을 넣을 수 있어, 프리미엄 요금제로 전환해야할 수 있습니다.

위 세 방법중 아무방법을 선택한 뒤, Azure 내 방화벽 및 AAD를 적절히 설정하여 사내 네트워크에서만 사용할 수 있도록 세팅할 수 있습니다.

0

정동형님의 프로필 이미지
정동형
지식공유자

2024. 07. 29. 16:50

업무시간에 답변 드리기 어려운 내용이라, 업무시간 이외 시간대에 메일 드리겠습니다.

tk.lee님의 프로필 이미지
tk.lee
질문자

2024. 07. 29. 17:17

네 감사합니다 편한 시간에 메일 주시면 좀 더 자세한 논의 드리고 싶습니다

정동형님의 프로필 이미지
정동형
지식공유자

2024. 07. 30. 13:07

반갑습니다. 답신 드렸는데, 확인하시면 인프런 및 메일 답신 등 편하신 방법으로 회신 부탁드립니다.

또한, 메일로 전달드린 내용을 여기에 첨부해도 될까요? 너무 좋은 질문을 주셔서, 공유했을 때 다른 분들께도 도움이 많이 되실 듯 합니다.

tk.lee님의 프로필 이미지
tk.lee
질문자

2024. 07. 30. 13:53

오전에 다른 일정으로 이제 확인했습니다

당연히 공유하셔도 됩니다

이쪽에 관심있는 분들이라면 다들 저 같은 생각을 하지 않을까 합니다

 

LLM 대신 SLM 사용 적용을 문의 드린데는 제 케이스의 경우에는 강의 제목이 나만의 GPT 만들기여서였습니다

크지 않은 용량의 가이드라인 자료들을 학습시킨 후 가이드라인과의 차이점 파악을 위해 요청되는 각종 자료들 (다영한 포맷이지만 비디오는 없음)과 비교하여 불일치되는 부분들을 알려주고 가능하다면 이렇게 해라라는 조언까지 가능한 아주 좁은 범위의 전문 지식을 가진 AI를 만들어 사용하는게 목표입니다

LLM 사용은 마치 자전거정도 타면 될 일을 버스를 동원하는 느낌이라 문의를 드렸습니다

LLM은 너무 아는게 많아 기대하지 않은 답변도 늘어 놓는 등 TMI라는 느낌을 받으면서 뭔가 다른 대안을 찾다 보니 SLM이란게 있다는 것을 알게 되었고 Ollama로 Phi-3 등을 테스트해 보았지만 멀티 모달 입력이 미지원되면서 저 같은 사람들에게는 이미지가 포함된 데이터를 학습 시키는 것에 대한 부담 및 방법을 몰라 아쉬움이 있었습니다

허깅페이스에서 적절한 SLM을 잘 찾을 수 있을지는 모르겠지만 시도는 해 보겠습니다

감사합니다

 

 

 

정동형님의 프로필 이미지
정동형
지식공유자

2024. 07. 30. 14:13

저라면 Azure OpenAI의 AI Search와 Platform OpenAI의 Storage + Assistant로 PoC를 진행해볼 듯 합니다. 그중에서도 Platform OpenAI의 Storage + Assistant 기능이 끌리긴 하네요!

말씀해주신 방향대로 허깅페이스에서 적절한 SLM을 찾은 뒤, 서버에 직접 띄워보는 방식이 보안적으로는 제일 안전할 것 같구요.

화이팅입니다!

정동형님의 프로필 이미지
정동형
지식공유자

2024. 07. 30. 14:17

해당 강의 내에서 Agent는 OpenAI 기반의 LLM을 제외하고도, 다른 모델을 사용하여 진행하셔도 전혀 문제가 되지 않습니다!

"Service Bus와 Azure Functions 연동하기", "OpenAI 연동하기"의 두 강의에서 Agent Function을 다루고있는데, 이 부분에서 내부 구현 코드만 타 모델로 변경하셔서 사용하시면 됩니다 ㅎㅎ

tk.lee님의 프로필 이미지

작성한 질문수

질문하기