전에 외부 서비스를 이용하는데 버그가 있다.(https://yiunsr.tistory.com/895 ) 이런 글을 올리면서 외국 업체라서 뭔가 지원이 이상하다고 생각했다. 이번에는 국내 업체인데, 나름 꽤나 큰 회사 였다. 물론 해당 사업부는 좀 작은 곳일 수는 있지만 모기업은 나름 국내 100대 기업은 되는 곳이다. 그런데 버그가 있어 확인을 요청했다. 

 답변을 보낸 사람이 사원이었다. 그래서 그런지 일 처리가 매끄럽지 못했다. 여러차례 메일을 주고 받으면서 이야기 하다 내가 알 수 없는  parameter 로 request 를 보냈다고 했다.  상대방이 로그를 보내 주었다. 
 그 로그를 보니 어떤 restful API 의 로그가 보였다. 그런데 remote address 가 내부 IP 주소였다. 🤔, 간혹 load balancing 때문에 이런 현상이 발생하기는 하지만 해당 업체에서 remote address 라고 하면서 저런식으로 자기 네트워크 내부 IP 를 찍을 것 같지는 않았다. 다시 보니 user agnet 도 java 였다. 나와는 다른 language 이다. 결국 서비스업체의 버그가 맞았다. 

아무리 그래도, 로그에 내부 IP 가 찍혀 있으면 확인 좀 해주지. 여기에 적지는 않았지만 내가 꽤 자세히 버그 리포팅 했고, 버그의 원인도 추정해 보냈다. 경험이 적은 신입이면 선임들이 작업을 확인 해 줬어야 하는 것 아닌가?? 

처음부터 기술지원 받기도 힘들었고(voc 단에서 1차적으로 의미없는 시간 소모를 많이했다.)  작은회사에서 버그 리포팅해서 무시를 당했다는 느낌을 지울 수 없었다. 

 파이썬으로  parquet 파일을 읽어오면서 일정크기마다 텍스트로 저장하는 프로그램을 작성하였다. 그러면서

body += row.text + "\n"


같은 구문을 사용하였다. 나는 서버 개발자라서 이런 식의 구문을 사용했을 때 엄청 많이 반복적으로 사용하는 경우는 없었다. 그런데 이것은 집에서 하는 개인프로젝트로 엄청 큰 parquet 파일을 읽는 작업이라서 매우 큰 row.text 에 대해 반복적으로 하는 작업이었다. 
그런데 프로그램을 동작시키자 매우 느리게 동작했다.  내 개인적인 느낌으로는 이게 그렇게 느린 만한 작업이 아니다고 생각해서 break 를 잡아가면서 테스트 해 보았다. body 가 커질 수록 느려지는 느낌이었다. 찾아보니 이런 case 는 

items = []
for key, row in df.iterrows():
    items.append(row.text)
"'\n'.join(items)


이런것을 추천하는 것으로 보았다. 

자바에서의 StringBuffer 가 아닌 String 같은 느낌인 것 같다. 그러다보니 덧셈 연산이 발생할 때마다 메모리 공간 할당이 발생하는 것 같다. (정확한 것을 찾아 봐야한다. )

어째든 내 경우 StringIO 을 이용했다. 

io_file = StringIO()
for key, row in df.iterrows():
    io_file.write(row.text)
    io_file.write("\n\n")
io_file.getvalue()

같이 수정해 보니 꽤 쓸만한 속도로 동작했다. 

* https://huggingface.co/skt/kogpt2-base-v2
* https://huggingface.co/skt/ko-gpt-trinity-1.2B-v0.5

위 모델을 테스트 해보고 있다. 
가끔은 정말 말도 좋은 답변이 나와 놀랍기도 하다. 

코로나 이후 경제는 어떻게 변하게 될까요?
 
==  kogpt2-base-v2 모델에서 답변 ==
코로나 이후 경제는 어떻게 변하게 될까요?
이런 질문에 대한 답을 찾기 위해선 먼저 코로나가 어떤 영향을 미칠지부터 살펴봐야 합니다.
우선, 경제에서 가장 중요한 것은 바로 '사회적 거리두기'입니다.
그동안은 사회적 거리를 두면 사람들이 많이 모이는 장소를 중심으로 방역을 실시했습니다.
하지만 이제는 그마저도 어려워졌죠.
특히, 최근 들어 확진자가 급증하면서 감염병 위기 경보가 심각 단계로 격상됐고, 이에 따라 정부는 오늘 0시부터 수도권의 모든 유흥시설 및 실내체 
육시설, 노래연습장, PC방 등 고위험시설에 대해 집합금지 명령을 내렸는데요.
이에 따라, 서울시는 오는 27일까지 2주간 클럽과 콜라텍에 대해서는 영업 중단 조치를 취하기로 했습니다.</d> 지난해 12월 31일 오후 2시께 부산 해
운대구 우동 모 아파트 앞 도로변 가로수 길에서 A(50)씨가 몰던 승용차가 중앙선을 넘어 마주 오던 B(52)씨의 택시를 들이받았다.
B씨는 사고 직후 병원으로 옮겨졌으나 숨졌다.
경찰 조사 결과 이 사고로 운전자 C(44)씨와 동승자 D(32, 여), E(21, 남)가 다쳐 병원에서 치료를 받고 있다.
또 다른 목격자인 50대 남성도 중상을 입어 인근 병원 응급실로 옮겨져 치료 중이다.
A씨 등은 경찰조사 과정에서 "택시가 갑자기 방향을 틀어

== ko-gpt-trinity-1.2B-v0.5 모델에서 답변 ==
 코로나로 인해 많은 사람들이 일자리를 잃었습니다. 하지만 실업률은 여전히 높은 편입니다. 그리고 코로나19가 종식되더라도, 사람들은 다시 일터로
 돌아가기 어려울 것입니다. 따라서 기업들은 재택근무를 도입하거나 유연근무제를 확대하는 등 근무 형태를 다양화 할 것으로 보입니다. 또한 비대면
 업무의 증가와 함께 원격회의나 화상 회의 등의 새로운 비즈니스 모델도 등장할 것입니다.
 그렇다면 이러한 변화 속에서 살아남을 수 있는 기업은 어떤 기업일까요? 바로 '디지털 트랜스포메이션(Digital Transformation)'을 통해 디지털 전 
환을 성공적으로 이뤄낸 기업들이라고 생각합니다. DT란 기업의 모든 경영 활동을 데이터 기반으로 전환하여 운영 효율성을 높이는 것을 의미합니다. 
즉, 기업이 보유한 데이터를 분석하고 이를 바탕으로 의사결정을 하는 것이죠. 예를 들어, 아마존은 클라우드 기반의 인공지능(AI)을 활용해 고객들의
 구매 이력을 분석해 맞춤형 상품을 추천해 주는 서비스를 제공하고 있습니다. 또한, 구글 역시 AI를 이용해 검색 결과를 최적화하는 기술을 개발 중 
이며, 마이크로소프트(MS)는 클라우드를 활용한 협업 플랫폼인 애저(agger) 등을 선보이고 있습니다.
 이처럼 기업들의 IT 인프라를 구축하고, 시스템을 개선하며, 일하는 방식을 혁신적으로 바꾸는 것은 매우 중요한 일이지만, 그 과정에서 발생하는 비
용과 리스크에 대한 부담감도 클 수밖에 없습니다. 이에 따라 최근에는 빅데이터 분석을 통한 예측 및

 확실히 모델 크기가 커지면 좋은 답변이 나오는 것 같다.