换种思路训练gpt3.5
问题一
我用的是aws的免费服务器,centos,版本比较老旧,想在python3基础上运行openai,可惜怎么都装不了,openai提供的方法,使用pyenv来装,顺利解决。
curl https://pyenv.run | bash
然后配置下环境 ~/.bashrc
export PATH="$HOME/.pyenv/bin:$PATH" eval "$(pyenv init -)" eval "$(pyenv virtualenv-init -)"
最后source ~/.bashrc
开始安装python
pyenv install 3.9.0
如果系统存在更高的python版本,需要设置成你想要的版本号
pyenv global 3.9.0
也还有可能出现这个错误 The `python3' command exists in these Python versions:3.9.0
这个情况下,需要指定shell版本
pyenv shell 3.9.0
问题二
urllib3的库只支持openssl 1.1.1+,奈何系统已经升级了最新版本的openssl,urllib还是报错,只能降级urllib3了
pip3 install urllib3==1.26.6
问题三
openai的关联库sklearn,已安装的情况下,一直报错 ModuleNotFoundError: No module named 'sklearn'
解决方法:
pip install scikit-learn
问题都解决了,那开始进入正题,如何换思路呢?
前面这篇POST已经提到过了,finetunes不理想,我个人已经放弃训练这个3.0版本了,3.5有角色功能,system assistant user,我直接从system角色入手,提前将匹配的答案存入system。实操是有明显效果的,只是会消耗更多的token。
开始,首先思路有了,怎么才能轻松地把匹配的答案找到呢,我们还是使用openai的工具:embeddings_utils,我们先将原县喂给finetunes的资料丢给embeddings,然后get_embedding出最佳答案,最后存入system,发送给api。效果挺好,就是费钱。