Cannot load PhoGPT-7B5-Instruct-GGUF using ctransformer

#1
by nobita3921 - opened

Hi, I used ctransformer to load PhoGPT-7B5-Instruct-q5_0.gguf but I got the exception: RuntimeError: Failed to create LLM 'mpt'. I also tried using PhoGPT-7B5-Instruct-q5_k_m.gguf instead but got the same error. Do you know the reason and the way to fix it ?

There are 2 things: (1) llama.cpp supports MPT model but does not fully support phoGPT yet. Some patching is required to make it work (I created a fork of llama.cpp here as an example) (2) ctransformers uses an older implementation of llama.cpp (the latest update is already 4 months ago), which making point #1 impossible to be done correctly. So unless ctransformers updates itself, I'm not able to help you on this one.

Thank you for replying.
I have just used llama-cpp-python but it does not work too.
Have you ever loaded your converted phogpt ? And does it succeed?

Tested on WSL on Windows 10:

python3.10 -m venv venv
source venv/bin/activate
git clone https://github.com/abetlen/llama-cpp-python/
cd llama-cpp-python
git checkout e9bc4c4baf3f121a178dec215770ccd0ac86c28e
cd vendor
git clone https://github.com/nviet/llama.cpp
cd ..
pip install .

The output:

>>> from llama_cpp import Llama
>>> llm = Llama(model_path="PhoGPT-7B5-Instruct-q4_0.gguf", verbose=True)
>>> output = llm("Làm thế nào để cải thiện kỹ năng quản lý thời gian?", max_tokens=1024, echo=True)
Llama.generate: prefix-match hit

llama_print_timings:        load time =    2342.78 ms
llama_print_timings:      sample time =    2019.40 ms /   498 runs   (    4.06 ms per token,   246.61 tokens per second)
llama_print_timings: prompt eval time =       0.00 ms /     1 tokens (    0.00 ms per token,      inf tokens per second)
llama_print_timings:        eval time =  187318.09 ms /   498 runs   (  376.14 ms per token,     2.66 tokens per second)
llama_print_timings:       total time =  198721.88 ms
>>> print(output)
{'id': 'cmpl-8eb1eb96-86eb-43a8-8049-34ed37504371', 'object': 'text_completion', 'created': 1704342181, 'model': 'PhoGPT-7B5-Instruct-q4_0.gguf', 'choices': [{'text': 'Làm thế nào để cải thiện kỹ năng quản lý thời gian? Hãy thử những cách sau đây!\n1. Lập kế hoạch hàng ngày: Hãy xác định các mục tiêu cụ thể và thiết lập một lịch trình chi tiết cho từng ngày trong tuần. Điều này giúp bạn tổ chức công việc hiệu quả hơn và tránh bị áp lực đồng thời tăng cường sự tự giác.\n\n2. Tập trung vào nhiệm vụ hiện tại: Thay vì lo lắng về những việc chưa hoàn thành, hãy tập trung vào các nhiệm vụ đang thực hiện ngay bây giờ. Điều này sẽ giúp bạn giảm thiểu stress do áp lực đồng thời tăng cường sự chủ động và trách nhiệm.\n\n3. Sử dụng công cụ hỗ trợ quản lý thời gian: Các công cụ như lịch hẹn giờ, danh sách công việc hoặc ứng dụng di động có thể giúp bạn theo dõi và quản lý thời gian hiệu quả hơn. Chúng cung cấp cho bạn các tính năng tự động, giúp bạn đặt ra mục tiêu hàng ngày và thiết lập nhắc nhở cho các hoạt động quan trọng.\n\n4. Tận dụng khoảnh khắc rảnh rỗi: Thay vì lãng phí thời gian trong những công việc tĩnh lặng, hãy sử dụng chúng để tạo ra giá trị cho cuộc sống của bạn. Hãy tìm kiếm cơ hội để giải quyết vấn đề nhỏ, tập trung vào điều quan trọng và thư giãn khi rảnh rỗi.\n\n5. Học cách ưu tiên công việc: Hãy học cách xác định các mục tiêu quan trọng và sắp xếp công việc theo mức độ ưu tiên. Điều này giúp bạn giảm thiểu stress do áp lực đồng thời tăng cường sự tự giác và trách nhiệm.\n\n6. Kết hợp công việc khó khăn: Thay vì cố gắng làm mọi thứ cùng một lúc, hãy thử kết hợp các hoạt động quản lý thời gian như đan xen giữa công việc khó khăn và dễ dàng để đạt hiệu quả cao hơn.\n\n7. Học cách đánh giá lại ưu tiên: Hãy học cách đánh giá lại ưu tiên của bạn sau một khoảng thời gian nhất định. Điều này giúp bạn tập trung vào những nhiệm vụ quan trọng nhất và tránh bị áp lực đồng thời tăng cường sự tự giác và trách nhiệm. \n\n8. Tìm kiếm nguồn động lực bên ngoài: Một nguồn động lực mạnh mẽ có thể giúp bạn quản lý thời gian hiệu quả hơn. Hãy tìm kiếm các chương trình đào tạo hoặc cộng đồng trực tuyến nơi bạn có thể học hỏi và chia sẻ kinh nghiệm với những người khác.\n\n9. Tập luyện khả năng quản lý thời gian: Để cải thiện kỹ năng quản lý thời gian, hãy tập luyện khả năng', 'index': 0, 'logprobs': None, 'finish_reason': 'length'}], 'usage': {'prompt_tokens': 14, 'completion_tokens': 498, 'total_tokens': 512}}

I have tried two ways.
first, I followed your steps above and it has worked.
second, I pulled the last commit of llama-cpp-python and did not check out to commit e9bc4c4baf3f121a178dec215770ccd0ac86c28e but It didn't work.
So, it needs to check out to commit e9bc4c4baf3f121a178dec215770ccd0ac86c28e.
Thank u so much.

Yes, because my fork of llama.cpp was made 1 month ago so it's required to check out an older commit of llama-cpp-python for it to work. If you want to use the latest commit of llama-cpp-python, make change to llama.cpp in the same style that I did and it should be fine.

Since the code is working for you now, I'm closing this issue.

nguyenviet changed discussion status to closed

Sign up or log in to comment