업데이트 #4: Yandex/AliceAI-80B-A3B [instruct!] 모델 처음부터 학습하기
Update #4: Post training yandex/AliceAI-80B-A3B [instruct!] from scratch
핵심 요약
AliceAI-80B-A3B 모델의 instruct 파인튜닝 과정에서 데이터 부족 문제를 겪고, 데이터 생성 속도를 높여 추가 학습을 진행 중입니다.
- 모델 학습 현황 — 1차 SFT 결과 모델이 추론 능력은 갖췄으나 데이터 부족으로 범용성이 떨어져 추가 학습을 결정함
- 데이터 생성 최적화 — sftmill을 활용해 데이터 생성 속도를 80tps에서 240tps로 개선함
- 오픈소스 기여 — 프로젝트에 사용된 오프폴리시 증류 엔진인 sftmill을 깃허브에 공개함
- 커뮤니티 협업 — 데이터 생성 가속화를 위해 커뮤니티의 컴퓨팅 자원 기여 가능성을 타진함
팔로우하는 사람들을 위한 마지막 업데이트: https://www.reddit.com/r/LocalLLaMA/comments/1wvyc3e/update_3_post_training_yandexaliceai80ba3b/
한 문장 요약: 에이전트 작업과 대화가 가능한 ALiceAI-80B-A3B-Base의 인스트럭트 파인튜닝 프로젝트임. 모델한테 생각의 사슬(Chain of Thought) 추론이랑 대화를 가르치려고 qwen 3.8 27b를 미디엄 모델로 얕게 증류(distill)하는 중이다. 학습은 전부 로컬에서 32GB V100 3장으로 돌리고 있고, 학습 데이터도 전부 sftmill 써서 같은 V100에서 직접 뽑아내고 있음. 지금까지는 학습 돌리면서 진행 상황을 라이브 스트리밍으로 보여줬다.
일단 1차 SFT는 성공적으로 끝냈고 테스트도 해봤음.
좋은 소식: 모델이 생각의 사슬 추론을 제대로 습득했고 대화도 자연스럽게 잘함.
나쁜 소식: 인스트럭트 SFT가 부족함 / 과소적합(underfit)이 너무 심함. 체크포인트 #1이 기술적으로는 돌아가긴 하는데, 사실상 쓸모가 없음. 내가 처음에 500만 토큰으로 학습시켰는데, 모델한테 일반적인 대화 능력을 가르치기엔 데이터 범위가 너무 좁았음. 학습 데이터랑 딱 맞아떨어지지 않는 모호한 질문이나 프롬프트를 던지면, 학습된 데이터가 부족해서 그런지 횡설수설함.
다음 계획은?
체크포인트 #1은 사실상 쓰레기라 배포 안 하기로 했다(이건 1.0 알파 정도로 부를 예정). 그래도 제대로 된 첫 번째 버전은 조만간 내놓을 거임. 로컬 합성 데이터 생성기 속도를 기존 80tps에서 240tps 정도로 올렸음. 여러 베이스 URL에서 데이터를 긁어올 수 있게 옵션을 추가했거든. 그래서 증류 데이터가 더 많이 들어올 예정임 [현재 3개의 개별 인스턴스에서 각각 4개의 병렬 워커를 돌리면서 생성 중].
500만 토큰짜리 데이터셋을 새로 만들고 있는데, 이번에는 처음에 했던 코딩 위주가 아니라 훨씬 넓은 범위의 일반적인 인스트럭트 방향으로 잡았음. 체크포인트 1.0 알파 위에다가 학습률 낮춰서 다시 돌릴 생각이고, 그러면 훨씬 쓸만한 버전이 나올 것 같다. 학습 진행 상황은 계속 올릴 거고, 원하면 라이브 스트리밍도 다시 할 수 있음. 근데 아직 보여줄 게 별로 없어서, 제대로 된 초기 체크포인트 나올 때까지는 이게 마지막 업데이트가 될 듯. 그래도 다들 관심 있으면 뭐든 공유할 의향은 있다.
전에 언급한 적 있는데, 관심 있는 사람들을 위한 리소스 하나 공유함. 프로젝트 시작할 때 행동 목표(예: 일반 인스트럭트 모델을 만들고 싶다 -> 원시 학습 데이터 생성)만 입력하면 학습 데이터를 쉽게 뽑아낼 수 있는 오프 폴리시 증류 엔진을 만들었음. 오픈 소스로 포크 떠서 공개해 놨으니 참고해라: https://github.com/jackjusko/sftmill
팔로우해줘서 다들 고맙다!
