0.
Replication crisis의 아주 작은 주범 중 하나는 dependency issue일 것이다. 이건 진짜 단언할 수 있다. 어떤 연구자가 데이터와 코드베이스까지 친절하게 공개를 해 놨더라도, 다른 연구자는 환경 구성하다가 암걸려서 사망하면 replicate를 못하게 되고, 그래서 이 사단이 나는 것이다.
진짜 주말 내내 과거 내가 돌렸던 fairseq script 돌리겠다고 붙잡고 있느라 한 글자도 진전을 못 보았다.
나같은 사람 세상에 또 있을런가 모르겠는데 일단 독자 1명 (나자신) 상정하고 메모한다.
목차
1. 문제와 해결
오리지날 fairseq(-py)는 더 이상 개발되지 않는다. 버전은 0.12.2가 최신이다.
Name: fairseq
Version: 0.12.2
Summary: Facebook AI Research Sequence-to-Sequence Toolkit
Home-page: https://github.com/pytorch/fairseq
Author:
Author-email:
License:
Location: /Users/stanley/miniconda3/envs/fairseq_pure/lib/python3.10/site-packages
Requires: bitarray, cffi, cython, hydra-core, numpy, omegaconf, regex, sacrebleu, torch, torchaudio, tqdm
Required-by:
명시되어 나오지 않기에 dependency가 꼬여버리는 문제지점이 몇 가지 있다.
1. python<3.10 이어야한다. (이건 뭐 사실 쉽게 눈치챌 수 있는 것이고 나도 이것때문에 주말을 날린 건 아니었다. 그정도로 바보는 아니다. 그러나 노파심에 적는다) 문제는 colab에서 python 3.12로 버전이 강제되어있다는 것인데, 일단은 뭐 model training 새로 할 일도 없고 기존모델을 로컬로 돌리는 데에는 문제가 없다 (로컬 = MacBook Pro M3 16GB RAM)

2. pip<24.1 이어야한다. 그 이유는 저기 위에 fairseq의 requires에 포함된 바와 같이 fairseq은 omegaconf<2.1를 필요로 하는데, 2.1 버전 이전의 omegaconf는 dependency 명세를 지랄맞게 해놨다. 그래서 pip 25.x.x 부턴 아예 '아저씨 우린 이런거 취급 안해요!' 해버린다.
WARNING: Ignoring version 2.0.6 of omegaconf since it has invalid metadata:
Requested omegaconf<2.1 from https://files.pythonhosted.org/packages/d0/eb/9d63ce09dd8aa85767c65668d5414958ea29648a0eec80a4a7d311ec2684/omegaconf-2.0.6-py3-none-any.whl (from fairseq) has invalid metadata: .* suffix can only be used with `==` or `!=` operators
PyYAML (>=5.1.*)
~~~~~~^
Please use pip<24.1 if you need to use this version.
3. (가장 결정적) numpy 버전을 옛날버전 써야한다. 난 1.26.3 으로 써서 결국 성공했다.
fairseq 코드베이스에는 np.array() 에 argument로 tensor object를 집어넣는다. 이전까지는 lenient하게 argument의 __array__()를 호출해서 처리해줬는데 numpy 2.x.x 이후에서는 안해주고 에러를 낸다. 원래 이렇게 하는 게 맞고 fairseq 코드베이스가 lenient했던 것이다. 어쨌든, 결국 numpy=1.26.3으로 다운그레이드해서 돌릴 수 있었다.
2. commands
결국 정리하면 아래의 순서대로 5줄의 commands를 실행한 셈이다.
conda create -n fairseq_pure python=3.10
conda activate fairseq_pure
python -m pip install --upgrade "pip<24.1"
pip install numpy==1.26.3
pip install fairseq=0.12.2
첫줄, 둘째줄: conda environment 만들고 이동하기 (주변에 보니 요즘엔 conda 안쓰는 분위기인 것 같지만, 난 배운게 도둑질이니까 계속 conda 쓸테다)
셋째줄: pip 버전을 24.0으로 다운그레이드
넷째줄: numpy 아주 특정한 버전으로 설치
다섯째줄: 모든 준비는 끝났다. 이제 주인공인 fairseq 설치.
신경망 이용한 음운론 연구 workflow (feat. Fairseq)
0. 요약그냥 제가 같은 작업 자꾸자꾸 반복하는 거 좀 체계화/단일화 하기 위해서 순서 정리하는 글이에요. "다른 사람은 어떻게 하나"를 알기가 힘들고, 특히 저와 같이 한국에서 명문대를 안 나
linguisting.tistory.com
- 글이 유익했다면 후원해주세요 (최소100원). 투네이션 || BuyMeACoffee (해외카드필요)
- 아래 댓글창이 열려있습니다. 로그인 없이도 댓글 다실 수 있습니다.
- 글과 관련된 것, 혹은 글을 읽고 궁금한 것이라면 무엇이든 댓글을 달아주세요.
- 반박이나 오류 수정을 특히 환영합니다.
- 로그인 없이 비밀글을 다시면, 거기에 답변이 달려도 보실 수 없습니다. 답변을 받기 원하시는 이메일 주소 등을 비밀글로 남겨주시면 이메일로 답변드리겠습니다.
'생각나는대로' 카테고리의 다른 글
| 2026년 CfP 다 모아두기 포스팅 (0) | 2025.11.25 |
|---|---|
| 학부 음운론의 용어사용과 논리 (0) | 2025.10.29 |
| 커리큘럼에 대한 생각 (0) | 2025.10.20 |
| GenAI 시대에 과제내기: hallucination 유도하기 (1) | 2025.10.14 |
| 초청강연했던 이야기 (한글날 기념) (0) | 2025.10.09 |