연구자료실
설비 연결, 품질 검사, 생산 분석과 제조 업무에 관련된 외부 논문입니다.
연구자료 검색
논문 목록
T02. Recursive Language Model과 긴 문맥 처리
- T02-4후보
MemGPT: Towards LLMs as Operating Systems
한국어 검토 보기
해결 문제
- 문맥창이 작아서 긴 대화와 큰 문서를 다루지 못하는 문제.
핵심 구조
- 운영체제의 메모리 계층을 흉내 낸다. 빠른 메모리(문맥창)와 느린 메모리(외부 저장소)를 나눈다.
- 모델이 스스로 무엇을 문맥창에 올리고 무엇을 내릴지 결정한다.
- 인터럽트로 제어 흐름을 관리한다.
주요 결과
- 문맥창을 훨씬 넘는 대용량 문서를 분석했다.
- 여러 회차에 걸친 대화에서 이전 내용을 기억하고 갱신하는 에이전트를 만들었다.
한계
- 심사를 거친 학회 발표본이 아니다.
- 메모리를 옮기는 판단 자체를 모델이 하므로, 판단이 틀리면 정보가 사라진다.
- 호출 횟수가 늘어 지연과 비용이 커진다.
우리 기능과의 연결
- 업무 실행 에이전트가 며칠에서 몇 주에 걸친 작업 맥락을 유지해야 할 때 쓸 수 있는 메모리 계층 구조 후보다.
- T02-8후보
LongLLMLingua: Accelerating and Enhancing LLMs in Long Context Scenarios via Prompt Compression
한국어 검토 보기
해결 문제
- 긴 프롬프트는 비용과 지연이 크다. 위치에 따라 성능이 흔들리는 문제도 있다.
핵심 구조
- 질문과 관련된 정도를 재서 중요한 토막과 토큰만 남긴다. 나머지는 지운다.
- 문서 순서를 다시 배치해 중요한 내용이 좋은 위치에 오게 한다.
주요 결과
- NaturalQuestions에서 토큰을 4분의 1로 줄이고도 성능이 최대 21.4% 올랐다.
- LooGLE에서 비용을 94% 줄였다.
- 1만 토큰 정도를 2배에서 6배로 압축할 때 전체 지연이 1.4배에서 2.6배 빨라졌다.
한계
- 압축을 하려면 작은 모델을 한 번 더 돌려야 한다.
- 지워진 토큰은 복구되지 않는다. 정확한 수치나 코드값이 날아갈 위험이 있다.
우리 기능과의 연결
- QFactory MES에서 뽑은 대량 이력을 AI 보고서에 넣기 전 비용을 줄이는 전처리 후보다. 다만 수치 정확도 검증이 먼저다.
- T02-10후보
Efficient Streaming Language Models with Attention Sinks (StreamingLLM)
한국어 검토 보기
해결 문제
- 대화가 계속 이어지거나 입력이 끝없이 들어오는 상황에서 모델이 메모리를 감당하지 못한다.
- 앞쪽 토큰을 그냥 버리면 성능이 무너진다.
핵심 구조
- 관심 싱크(attention sink) 현상을 찾아냈다. 모델이 맨 앞 토큰 몇 개에 뜻과 무관하게 높은 가중치를 준다.
- 그래서 맨 앞 토큰 몇 개는 계속 남겨두고, 나머지는 최근 구간만 유지한다.
- 다시 학습시키지 않고도 무한히 긴 입력을 흘려보낼 수 있다.
주요 결과
- Llama-2, MPT, Falcon, Pythia를 수백만 토큰까지 처리하게 만들었다.
- 창을 밀며 매번 다시 계산하는 방식 대비 최대 22.2배 빨랐다.
- 사전학습 때 전용 싱크 토큰을 두면 더 좋아졌다.
한계
- 오래된 구간은 실제로 버린다. 긴 입력 전체를 기억하는 것이 아니다.
- 앞뒤로 멀리 떨어진 내용을 이어 붙여야 하는 질문에는 맞지 않는다.
- 모델 내부 구현을 손대야 한다. 상용 API 모델에는 그대로 적용할 수 없다.
우리 기능과의 연결
- 이 목록에서 검색과 에이전트가 아니라 모델 자체가 긴 입력을 어떻게 버티는지 다루는 첫 항목이다.
- 설비 데이터가 끊임없이 들어오는 실시간 감시 쪽에 붙일 수 있는 후보다.
- T02-12후보
Ring Attention with Blockwise Transformers for Near-Infinite Context
한국어 검토 보기
해결 문제
- 트랜스포머는 입력이 길어지면 메모리가 급격히 늘어 장치 한 대에 담기지 않는다.
- 근사나 정보 손실 없이 문맥 길이를 늘리고 싶다.
핵심 구조
- 입력을 블록으로 잘라 여러 장치에 나눠 올린다.
- 각 장치가 자기 블록을 계산하는 동안, 옆 장치로 키값 블록을 고리처럼 돌려보낸다.
- 통신과 계산을 겹쳐서 돌리므로 추가 지연이 거의 없다.
주요 결과
- 이전의 메모리 절약 기법 대비 장치 수만큼 긴 입력을 다룰 수 있다고 보고한다.
- 수백만 토큰 규모 문맥으로 언어모델링과 강화학습 실험을 했다.
- 계산을 근사하지 않는다. 결과가 원래 attention과 같다.
한계
- 심사를 거친 학회 발표본이 아니다.
- 장치를 여러 대 붙여야 효과가 난다. 하드웨어 비용이 든다.
- 모델 학습과 추론 구현을 직접 손대야 한다. API로 쓰는 모델에는 적용할 수 없다.
우리 기능과의 연결
- 10번 StreamingLLM과 함께 모델 구조 쪽 공백을 메우는 항목이다. 10번은 오래된 구간을 버리고 가고, 이쪽은 나눠서 다 들고 간다.
- 우리가 모델을 직접 학습하거나 사내 서버에 올릴 경우의 후보다. 지금처럼 API 모델을 쓰는 동안은 배경 지식에 가깝다.
- T02-13후보
Extending Context Window of Large Language Models via Positional Interpolation
한국어 검토 보기
해결 문제
- 회전 위치 인코딩(RoPE)을 쓰는 모델은 학습한 길이를 넘어가면 성능이 무너진다.
- 검색이나 요약으로 우회하지 말고 문맥창 자체를 늘리고 싶다.
핵심 구조
- 위치 번호를 학습 범위 밖으로 밀어내지 않는다. 입력 위치 번호를 원래 문맥창 범위 안으로 선형 축소한다. 이것이 위치 보간이다.
- 축소한 상태로 아주 짧게 추가 학습을 한다.
주요 결과
- LLaMA 7B에서 65B까지 문맥창을 32768 토큰으로 늘렸다. 추가 학습은 1000스텝 이내다.
- 보간의 오차 상한이 그냥 밖으로 늘리는 방식보다 약 600배 작다는 이론 분석을 붙였다.
- 암호 찾기, 언어 모델링, 문서 요약에서 잘 동작했고 원래 길이 과제 성능도 대체로 지켰다.
한계
- 심사를 거친 학회 발표본이 아니다.
- 모델 가중치를 직접 손봐야 한다. API로 쓰는 모델에는 적용할 수 없다.
- 문맥창을 늘려도 6번 Lost in the Middle이 지적한 가운데 구간 무시 문제는 따로 남는다.
우리 기능과의 연결
- 이 목록에서 문맥창을 실제로 늘리는 갈래를 대표하는 항목이다. 나머지는 대부분 우회하거나 버리거나 압축한다.
- 사내 서버에 모델을 직접 올릴 경우의 후보다.
- T02-14후보
Leave No Context Behind: Efficient Infinite Context Transformers with Infini-attention
한국어 검토 보기
해결 문제
- 끝없이 긴 입력을 정해진 메모리 안에서 처리하고 싶다.
- 오래된 구간을 그냥 버리면 뒤에서 필요할 때 되살릴 수 없다.
핵심 구조
- 기존 attention 블록 안에 압축 메모리를 넣는다.
- 한 블록에서 가까운 구간을 보는 지역 attention과 오래된 구간을 보는 장기 attention을 같이 돌린다.
- 밀려난 키값을 버리지 않고 압축 메모리에 눌러 담아 계속 쓴다.
주요 결과
- 1B에서 8B 모델로 100만 토큰 암호 찾기와 50만 토큰 책 요약을 처리했다.
- 메모리 사용량이 길이와 무관하게 일정 수준에 묶인다.
- 흘려보내는 방식의 추론이 가능하다.
한계
- 심사를 거친 학회 발표본이 아니다.
- 압축이므로 원문을 그대로 복원하지 못한다. 숫자나 코드값 같은 정확한 항목은 뭉개질 수 있다.
- 모델 구조와 학습을 직접 손봐야 한다.
우리 기능과의 연결
- 10번 StreamingLLM은 오래된 구간을 버리고, 12번 Ring Attention은 장치를 늘려 다 들고 가고, 이쪽은 눌러 담아 들고 간다. 같은 모델 구조 갈래의 세 번째 답이다.
- 설비 데이터가 끊임없이 들어오는 실시간 감시에서, 오래된 이력을 완전히 버리기 곤란할 때의 후보다.
- T02-15후보
H2O: Heavy-Hitter Oracle for Efficient Generative Inference of Large Language Models
한국어 검토 보기
해결 문제
- 글을 생성하는 동안 모델은 앞서 계산한 키값(KV) 캐시를 계속 쌓아둔다. 입력이 길수록 이 캐시가 메모리를 다 잡아먹는다.
핵심 구조
- attention 점수의 대부분을 아주 적은 수의 토큰이 차지한다는 것을 관찰했다. 이 토큰을 자주 등장하는 큰손(heavy hitter)이라 부른다.
- 최근 토큰과 큰손 토큰만 캐시에 남기고 나머지는 버린다.
- 무엇을 버릴지 고르는 문제를 동적 최적화 문제로 정리해 푼다.
주요 결과
- OPT, LLaMA, GPT-NeoX에서 처리량이 기존 추론 시스템 대비 최대 29배 늘었다.
- 지연은 최대 1.9배 줄었다.
한계
- 버린 캐시는 되살릴 수 없다. 뒤에서 그 구간이 필요해지면 답이 나빠진다.
- 추론 엔진 내부를 손봐야 한다. API로 쓰는 모델에는 적용할 수 없다.
우리 기능과의 연결
- 8번 LongLLMLingua는 모델에 넣기 전 입력 글자 수를 줄인다. 이쪽은 모델 안에서 캐시를 줄인다. 압축이라는 말은 같지만 층이 다르다.
- 사내 GPU 서버로 긴 이력을 돌릴 때 추론 비용을 줄이는 후보다.
연구에서 제품 적용까지
운영 중인 기능, 시범 적용과 개발 중인 기술을 구분해 정리했습니다.
보유기술 보기