현재 대기업 중심으로 아래와 같은 프로젝트의 개발책임 및 컨설팅을 맡고 있습니다. 현역^^입니다.
더불어, 고려대 대학원에서 인공지능 관련 겸임교수로도 활동하고 있습니다.
저의 목표는 실전에 바로 써먹을 수 있는 현장감 있는 프로그래밍 기술입니다. 앞으로 많은 여러분과 함께 재미난 수업 만들어 나가고 싶습니다.
엔터프라이즈 인공지능 구조 및 서비스 설계
머신러닝 서비스 구현
벡엔드 서비스 개발
클라우드(Azure) Databricks, ETL, Fabric 등 각종 클라우드 환경에서의 데이터베이스 구축 및 서비스 개발
Khóa học
Đánh giá khóa học
main33730814
·
Làm chủ tất tần tật về phát hiện bất thường bằng computer vision, từ phát triển đến triển khaiLàm chủ tất tần tật về phát hiện bất thường bằng computer vision, từ phát triển đến triển khaieverythx
·
Làm chủ tất tần tật về phát hiện bất thường bằng computer vision, từ phát triển đến triển khaiLàm chủ tất tần tật về phát hiện bất thường bằng computer vision, từ phát triển đến triển khaisoykms
·
Làm chủ tất tần tật về phát hiện bất thường bằng computer vision, từ phát triển đến triển khaiLàm chủ tất tần tật về phát hiện bất thường bằng computer vision, từ phát triển đến triển khaicjnyung5173
·
Làm chủ tất tần tật về phát hiện bất thường bằng computer vision, từ phát triển đến triển khaiLàm chủ tất tần tật về phát hiện bất thường bằng computer vision, từ phát triển đến triển khai
Bài viết
Hỏi & Đáp
통합 프레임워크 강의 요청드립니다
안녕하세요,강의가 도움이 되었다니 기쁩니다. MLOps 에 대하여 관심이 많으시군요. 생성형 AI 시대에 간과하기 쉬운 ML의 중요성을 잘 알고 있으셔서, 뛰어난 개발자가 될 것이라 믿습니다. 안그래도 인프런 측에서 MLOps 강의에 대한 요청을 꾸준히 해 와서 어떤 주제를 다룰까 구상중이었는데요. 현재 작업중인 RAG All Master 강의가 완료되는대로 MLOps 강의를 준비해 봐야겠다는 생각이 드네요. 혹시 본인은 물론 학습자의 입장에서 생각하고 있는 좀 더 구체적인 end-to-end MLOps 강의에 대한 의견을 주시면 고맙겠습니다.특히, '실제로 사용하는 모습', '파트당 연결되는 부분', '최종적으로 배운 것들의 융합' 이란 키워드에서 느낀 점은, 학습용 관점이 아닌 '온전히 기능하는 MLOps' 실전 프로젝트 또는 실전 프로젝트와 동일한 스케일의 내용이 담겨졌으면 하는 것으로 읽힙니다.^^ 피드백 주시면 고맙겠습니다~
- 0
- 2
- 28
Hỏi & Đáp
32강 강의가 짤린거 같습니다.
안녕하세요, 불편함을 드려 죄송하네요. 저도 무척 당황했는데요, 강의가 잘린 것이 아니라, 인프런 서버 쪽에 문제인 것 같습니다. 강의 영상은 정상적으로 업로드 되었고, 지금까지 이와 같은 문제는 없었거든요.혹시나, 해서 다시 들어가 봐도 영상에는 문제가 없는 것을 확인하였습니다. 고객센터로 문의를 해 주셔야 할 것 같아요. 만일 일시적인 인프런 서버 장애였다면, 아마 제가 답변을 작성하고 있는 지금쯤 문제가 해결되지 않았을까 싶습니다. 그럼 열공하시구요~감사합니다.
- 0
- 2
- 18
Hỏi & Đáp
체험 계정에서는 End-point 생성이 안 되는걸까요?
안녕하세요,강의 마지막 과정까지 도달하셨군요. 배움의 열정에 격하게 응원합니다! 질문하신 내용을 확인해 보니, 저도 몇 달 만에 databricks 에 들어와 봅니다. 질문하신 내용을 확인해 보니 Legacy serving[deprecated] 라고 나오네요. 아래 캡쳐 화면을 참고하세요.뭐, 그렇다고 databricks 에서 model serving endpoint 라는 기능 자체를 없앨 수는 없구요(왜냐하면, 이 기능이 없다면 누가 databricks 사용하겠습니까^^). 자세히 보면 우측 상단에 'Use model for inference' 메뉴가 대신 생겼네요. 이곳에서 endpoint 를 생성해서 사용하도록 되어 있네요. 내용을 살펴보니, 종전에 legacy serving 에서의 endpoint 와는 달리 Real-time, Streaming, Batch Inference 로 세분화 되엇 모델을 서빙할 수 있도록 되어 있네요. 이 가운데, 실제로 REST API 같은 개념에 해당하는 (종전의 legacy serving) 것은 'Real-time' 이네요. 그럼 끝까지 완강하시고! 열공! Legacy serving 메뉴 더 이상 제공 안함(사진) 새로운 메뉴: Use model for Inference (사진)
- 0
- 1
- 29
Hỏi & Đáp
이상치 데이터 합성 및 기본데이터셋 생성
^^모든 코드는 github 에 있어요.강의 안내에 올라가 있답니다~
- 0
- 2
- 46
Hỏi & Đáp
파티션 이해하기 강의 부분 질문있습니다.
네, 문제 없습니다. Spark 의 동작 핵심 원리에 대한 이해를 위한 부분이며, 개념적인 이해를 돕기위한 선에서 자연스럽게 넘어가면 됩니다. 열공하세요~
- 1
- 2
- 29
Hỏi & Đáp
OrderedDict() 질문
네, 맞습니다. 알고 있는 바 대로, 해당 코드에서는 굳이 OrderedDict() 를 사용할 필요는 없습니다.저의 오랜 습관입니다^^
- 1
- 1
- 39
Hỏi & Đáp
실무 OCR을 위한 심도 질문
깊은 고민과 사색이 담긴 질문에 감동^^이네요. 그만큼 강의 내용을 꼼꼼히 챙겼다는 반증이기도 하겠죠. 열심히 공부하는 수강생분들이 있어서 행복합니다. 각설하고 질문이 방대한 지라 하나 하나 짚어가면 답변을 드려볼게요. 1. 최신 OCR model 성능을 보여주셨는데, 결국은 multi modal LLM을 쓰면 만사 능통한 것처럼 결론이 내려집니다. 그렇다면 OCR model보다는 image처리가 가능한 LLM model 비교하는 게 더 맞다고 생각이 듭니다. 어떻게 생각하시나요?=> 상황에 따라 질문자가 그렇게 느낀 부분도 있을 것 같다는 생각이 드네요. multi-modal LLM 이 만사 능통처럼 느껴졌다면, 현재로서는 단호하게 그렇지 않다고 말할 수 있겠어요. 하지만, 머지 않은 미래 (엄청 빨리 도래할 것 같다는 생각입니다)에 많은 OCR 영역이 LLM을 통해 해결하는 순간이 다가 올 것이니다. 문제는 LLM 이 만능이 된다손 치더라도, 아래 질문에서 언급한 보안 및 네트워크가 불가능한 폐쇄환과 같은 환경에서는 API를 이용할 수 없거나, 이용하더라도 매우 자제해야 하는 상황이 존재합니다. 네트워크 연결없이 사용하는 on-device 에서의 OCR 등등, LLM 자체가 접근이 불가능한 환경이 매우 많습니다. 어찌보면, 만능이라고 하는 LLM은 사실상 API를 던지는 것만으로 대부분 해결되므로, 수준높은 개발자의 역량이 필요없을 겁니다. 개발자로서 무척 위기감을 느낄 수 밖에 없는 환경이 되겠죠. 하지만, 언급한 특수 환경(제조업 등 기술 및 영업보안이 생명인 환경)에서는 역량있는 개발자의 역할이 매우 중요합니다. 그런 의미에서, LLM 이 만능이라는 느낌을 가질 필요는 없다고 생각해요.2. LLM image처리가 좋아짐으로써, 굳이 opencv로 처리하지 않아도 그 결과가 좋을 것 같습니다. 앞으로도 이러한 작업이 필요할까요? (그냥 LLM에 넣는 것과 opencv로 전처리한 것과 비교하는 실험도 첨부해 주셨으면 좋겠습니다.)=> 1번 답변에 첨언해서 담변하도록 할게요.흠, 이 실험은 별도로 정리한 것이 있긴 한데, 결론적으로 말하면 LLM 에 통째로 넣어서 json 추출을 한 결과, accuracy 에 심각한 오류가 많습니다. 전혀, 쓸모가 없을 수준이었습니다. 해당 실험과 개념검증을 제가 직접 E-mart 에게 전달했었었는데요^^, 이 부분을 강의에 직접 담을 수는 없었습니다. 그래서 현재로서는 LLM 에 전적으로 의존하기에는 정보오류가 너무 심해서 opencv 을 가미한 '하이브리드' 접근법을 채택하였답니다.3. 보통 기업에서 OCR을 사용할 때는 개인정보를 포함한 문서가 많습니다. 외부 LLM 사용을 꺼릴 때가 많습니다. sLLM으로 처리하고 싶은데, function calling이나, pydantic과 같은 양식 처리가 어렵습니다. 어떻게 해결할 수 있을까요?=> sLM 의 경우 multi-modal 에서 한글의 인식률은 매우 실망스러운 것이 현실인데요. 영문 인식이 아니라면 당분간 이 영역은 우리가 원하는 수준에 이르기까지는 상당히 오래 걸릴 것으로 예상합니다. 한글은 이 분야에서 참 답답한 속도에 참담하기 짝이 없는데요. 따라서, sLM 보다는 opencv 등을 활용한 OCR 방법론이 더 현실적일 것을 판단됩니다.sLM 에서 multi-modal 모델을 이용할 때는 현재 response format 을 지원하는 것이 없는 것으로 알고 있어요. 이 질문을 한 것으로 보면 multi-modal 이 아닌 sLM 에서의 response format 을 활용하는 법에 대해서는 이미 이해가 있는 것으로 파악되어 답변은 생략하도록 할게요. 4. pipeline을 정리하면,opencv 전처리 -> cropping -> LLM 구조입니다. 원하는 양식대로 만드는 작업은 LLM 성능과 prompt의 역량으로 보입니다. 문제는 문서의 양식이 다양해서 한 문서 양식을 추출할 때마다 복잡한 prompt를 작성해야 하는 것일까요? 또한 문서 종류가 달라질 때마다 수정해야 할까요?=> Microsoft, Amanzon 등에서 제공하는 LLM 을 통한 OCR 서비스를 보면, layout 을 먼저 인식하는 과정이 backend 로 깔려 있음을 알 수 있어요. 즉, 요청하는 문서는 'tax report'야, 라고 API 에 던질 때 아예 layout template 의 형태를 지정해 주는 거죠. 현재에서 지속해서 이렇게 지원되는 양식들의 개수가 업데이트 되는 형태입니다. 결국, LLM 이전에 layout 을 얼마나 정확하게 인식하는가, 그리고 나서 순수 OCR 엔진을 사용하던 LLM 을 사용하든지 하게 됩니다. 이러한 사용환경에서는 prompt engineering 이 불필요하며, layout 에 대한 정보만 넘겨주면 됩니다. 추출한 결과물에 대한 다양한 요리는 사용하가 알아서 하는 부분이라 이 부분은 언급하지 않을게요. 만약 이러한 것이라면 기존 OCR과 같이 문서 종류별로 OCR format이 다 다르게 정해져야 할텐데, 어떻게 해결할 수 있을까요?=> 앞선 답변을 보면 예상하셨겠지만, 한 방에 모든 문서에 대한 OCR을 처리하는 기법은 현재로서는 존재하지 않습니다. 최고의 IT 기업들에서 OCR의 방법론을 접근하는 부분에 대한 내용을 보면 결국 현재로서는 layout 인식률이 높은 모델들을 꾸준히 만들어서 대응하는 것이 최선이라고 판단하는 것 같습니다. 이들 기업이 하는 것이 그렇듯이, 수요가 많은 형태의 document layout 에 대해서는 선택과 집중이 이루어지겠지만, 그렇지 않은 domain-specific 한 document layout 에 대해서는 여전히 가야할 길이 멀겠죠. 숙련된 개발자가 빛을 발휘해야 하는 부분이 되겠습니다.전단지말고 다른 여러 문서들도 똑같이 적용될 수 있는지 다양한 문서들에 대한 OCR 작업 예시 강의를 더 올려주시길 바랍니다.=> 넵, 격려 감사하고요, 참고해서 더 좋은 강의로 만날 수 있길 고대합니다~
- 1
- 2
- 46
Hỏi & Đáp
함수 input 형식 지정 외 추가 raise 구성
^^ 네,혹시 강의 차시 또는 말씀하시는 코드를 함께 제공해 주면 정확한 답변이 가능할 것 같아요^^주신 질문의 의도를 볼 때, typing 에 맞지 않는 경우에 python 은 입력 값을 강제하는 기능이 없기 때문에 별도로 validate_path 를 작성한 것이었을 겁니다. 해당 기능은 production 상황을 위해 필요한 것이며, dev 환경에서는 굳이 중요한 부분은 아닙니다. 하지만, 다른 언어들의 좋은 장점, 즉 variable 의 입력 값의 type 이 강제적으로 선언되고 사전에 통제될 수 있는 수단을 차용하면 에러를 사전에 방지하고 안정적인 production 환경을 가져갈 수 있다는 점에서, 그와 같은 습관을 기르자는 측면에서 아마 코드를 추가했었을 겁니다. 자세한 코드가 없는 상황에서 기억에 의존해 답변하는데는 한계가 있어^^ 혹시 답변이 부족했다면, 추가로 질문주세요~ 열공!
- 1
- 2
- 48
Hỏi & Đáp
전체 코드는 어디에서 볼 수 있나요?
강의내용에 github 주소를 공유했는데 혹시 확인이 안되실까요?
- 1
- 3
- 77
Hỏi & Đáp
라벨링을 통한 데이터 생성
깊은 고민이 담긴 질문을 통해, 제 강의가 도움이 되고 있다고 생각해도 될까요?^^ 배움에 대한 열정에 저까지 흐뭇해 집니다. 실제 현장에서 데이터를 보면, '인간은 언어에 의해, 언어를 통해, 언어를 위해' 소통하고 세상을 이해하고 있구나를 참 많이 느낍니다. scalar 로 된 데이터가 아닌 ML(딥러닝, 생성형 모두 포함)의 대상이 되는 모든 비정형 데이터의 근간은 '인간의 언어'라고 봐도 무방할 정도로 그 이상의 데이터를 사실상 경험하기란 불가능합니다. 이게 우리가 사는 세계이며, 우리가 세계를 이해하고 소통하는 방식이기도 합니다. 따라서, LLM 과 같은 생성형 모델의 경우 이러한 언어를 기반으로 생성된 것으로 인간의 사고로 만들어 낼 수 있는 표현과 관련하여 문맥적 흐름에 가장 적합한 '라벨링'을 할 수 있는 것이 가장 큰 장점입니다. 프로젝트를 하다 보면 '모델의 성능이 왜 이래?' 라는 챌린지를 받게 되는데요, 문제의 핵심을 추적하다 보면 결국 문제는 데이터를 생성한 주체 또는 데이터의 원본 소스가 '불완전' 하거나 '오염'되었거나, 'biased' 되어 있거나, '모호'하거나 한 경우가 100%입니다. 심지어 데이터를 가공하는 주체가 '개념' 을 비롯 taxonomy 의 기준을 잘못 만들어 데이터를 생성한 경우가 대부분이며(저는 사실 100%라고 생각합니다), 그 결과 모델이 제 성능을 내지 못하는 경우가 많습니다. 따라서, LLM 의 도움으로 '라벨링'을 생성하는 것의 가장 큰 장점은 이러한 '온전치 못한' 데이터를 생성할 가능성을 크게 줄여줄 수 있습니다. 심지어 post-processing 의 일환으로 human rating을 가미할 여력이 된다면 최종 데이터의 '완결성'을 효과적으로 달성할 수 있게 되는 거죠. 결국, 비용과 효과를 양팔 저울에 올려놓고 현실을 마주할 때(실제 프로젝트는 결국 돈과 시간이란 기회비용대비 기대효과 어느 중간에서 의사결정이 이루어집니다), LLM은 충분히 숙련된 인력으로 작업하는 것 이상 효과를 얻을 수 있다고 봅니다. 열공하세요!
- 1
- 2
- 67