자료를 찾고 글을 쓰는 작은 도구
경력 자료를 모아 이력서와 포트폴리오, 블로그 글에 쓰고 싶었다. 같은 일을 여러 곳에 설명하더라도 내가 맡은 역할과 확인된 결과는 같아야 했다. 나중에 바로잡은 내용도 빠지면 안 됐다.
개인 실험에서는 원문 위치와 사용할 구간, 자료의 역할을 등록하고 키워드로 찾도록 했다. 파일이 바뀌었는지 확인하고, 인용이 등록된 구간에서 왔는지 대조하는 기능도 붙였다. 작은 자료에서 시작해 실제 작성에 무엇이 도움이 되는지 보려 했다.
생각보다 질문이 많았다. 검색이 되면 충분한가. 같은 자료를 여러 번 넘길 필요가 있는가. 벡터 검색이나 그래프를 더하면 지금보다 나아질까.
같은 경험을 다른 말로 물었다
키워드 검색은 등록한 표현을 잘 찾았다. 그런데 교육 경험을 직접 가리키는 말을 쓰면 찾고, 같은 일을 다른 표현으로 물으면 놓치는 경우가 있었다. 검색 기능이 정상적으로 동작하는 것과 필요한 경험을 찾아주는 것은 달랐다.
임베딩 검색은 이런 표현 차이를 다룰 때 검토할 방법이다. 문서와 질문을 벡터로 바꾸고 서로 가까운 자료를 찾는다. 문장에 같은 단어가 들어 있는지만 비교하는 방식과는 다르다. Sentence Transformers의 안내에도 문서와 질문의 임베딩을 만들고 유사도를 비교하는 기본 흐름이 나온다. 의미 기반 검색 설명
그렇다고 비슷한 문장을 찾으면 역할과 결과가 자동으로 맞아지는 것은 아니다. 교육을 진행한 경험과 교육에 참여한 경험은 표현이 비슷해도 내가 한 일이 다르다. 가까운 자료를 찾은 뒤에는 원문을 읽어야 한다.
현재 등록 범위는 작았고, 집중해서 보던 경력 사례도 하나였다. 어느 사례를 써야 할지 이미 아는 질문이라면 그 사례의 원문을 직접 읽는 편이 더 간단했다. 모든 요청이 검색 문제는 아니었다.
같은 원문을 두 번 넘기고 있었다
입력을 살펴보니 원문이 JSON에 한 번 들어가고, 아래의 읽기용 본문에서 다시 반복되고 있었다. 검증 자료로 저장하는 형식과 사람이 읽는 표시를 한꺼번에 전달한 셈이었다.
메모리 안에서 한 질문의 자료를 다시 배열해 봤다. 원문과 출처, 역할, 정정, 제외 사유를 한 번씩 남기는 간단 보기에서는 13,550자가 5,802자로 줄었다. 원문을 잘라내는 대신 같은 내용을 두 번 보내던 부분을 줄인 결과였다.
이것은 문자 수 비교다. 실제 모델에 입력해 토큰이나 요금을 비교한 결과는 아니고, 간단 보기 코드도 아직 적용하지 않았다. 별도 대조에서는 다른 표시 구성을 사용했으므로 그 수치와 한 결과처럼 섞지 않았다.
벡터 검색을 더하는 일보다 먼저 살필 수 있는 부분이 여기에 있었다. 검색이 찾은 근거를 어떻게 전달하는지도 입력량과 읽기 부담에 영향을 줬다.
요약에서 사라지는 경험
이 도구에서 내가 더 필요로 한 것은 새 레퍼런스를 추가하고, 기존 자료에 빠진 질문을 찾고, 답변을 다시 반영하는 일이었다. 완성된 문장을 만드는 앞단의 작업이었다.
경력을 사실 중심으로 정리하는 과정에서도 경험이 축소되거나 빠지는 불편이 있었다. 수치가 없거나 코드로 증명하기 어렵다는 이유로 실제 교육·출시·인계 경험까지 빠지면, 글은 조심스러워져도 내가 한 일을 덜 설명하게 된다.
반대로 요약을 보강한다며 확인하지 않은 효과를 덧붙여도 안 된다. 실제로 수행한 일은 남기고, 얼마나 시간을 줄였는지 모르는 부분은 모른다고 적어야 했다. 후속 답변이 앞의 내용을 보강한 것인지, 잘못된 사실을 정정한 것인지도 구분할 필요가 있었다.
아직 구체적인 삭제 전후 원고를 모아 비교하지는 못했다. 그래서 이 문제를 해결한 도구라고 말할 수는 없다. 지금은 검색 결과가 잘 나오는지만 평가해서는 필요한 기능을 놓칠 수 있겠다는 요구를 정리한 단계다.
필요한 사례부터 읽는 방향
현재는 사용할 사례를 알면 해당 원문과 최신 정정을 직접 읽고, 찾기 어려울 때 목차나 키워드 검색을 쓰는 방향을 검토하고 있다. 자료를 요약한 목차는 길을 알려주고, 최종 문장의 역할과 결과는 원문으로 확인하는 방식이다.
파일 해시도 그중 한 확인 수단이다. 등록할 때와 파일이 달라졌는지는 알려주지만, 원문을 바르게 해석했는지까지 알려주지는 않는다. 인용문이 맞아도 그 문장으로 어떤 주장을 했는지는 사람이 따로 읽어야 한다.
벡터 검색은 같은 경험을 다른 표현으로 찾지 못하는 일이 반복될 때 같은 질문으로 비교해볼 만하다. 먼저 놓친 질문과 정답 근거를 남겨두면, 검색 방식을 바꾼 뒤 무엇을 더 찾았고 무엇을 놓쳤는지 볼 수 있겠다. 새 기술을 넣었다는 사실보다 그 비교 결과가 필요하다.
자료함은 아직 작고 개선안도 적용 전이다. 지금은 검색 기술을 늘리는 것보다 원문을 고르는 일, 중복을 줄이는 일, 새 답변을 기존 경험에 연결하는 일을 나눠 보고 있다. 글을 짧게 만드는 과정에서도 그 글의 바탕이 된 경험은 남아 있어야 한다.
사이트에 글을 쌓는 구조는 이력서 대신 글이 쌓이는 사이트를 만들었다에 적었다. 이번에는 그 파일에 들어갈 문장을 만들기 전에, 어떤 근거를 읽고 남길지 살펴봤다.