abetlen / llama-cpp-python

Python bindings for llama.cpp
https://llama-cpp-python.readthedocs.io
MIT License
7.76k stars 932 forks source link

Add additional function calling models #979

Open davidearlyoung opened 9 months ago

davidearlyoung commented 9 months ago

Hello,

This is in regards of the readme at: https://github.com/abetlen/llama-cpp-python#function-calling. I was reading up on your repo in order to get started/familiar with llam-cpp-python. I want to point out that there are other GGUF quantized LLMs other than functionary that do function calling. And that they are decently good at it from what I hear. Check out https://huggingface.co/TheBloke/Airoboros-M-7B-3.1.2-GGUF#agentfunction-calling for example. May be worth checking out and updating the readme if needed. There are a few others, but I don't recall them off the top of my head. I may list them here if I do recall or find them.

davidearlyoung commented 9 months ago

OpenHermes may have partial function calling support. Just bumped into this: https://huggingface.co/teknium/OpenHermes-2.5-Mistral-7B/discussions/11

thiner commented 9 months ago

I tested some mixtral-8x7b models, they are also good alternatives for implementing function calling. I guess all mixtral-8x7b derivative models have the ability.

abetlen commented 9 months ago

@davidearlyoung agreed however what I mean by function calling support is full OpenAI function calling compatibility which is a little more involved.

I started on #957 though to see how this could be done, I'll check out airoboros as well.

davidearlyoung commented 8 months ago

@davidearlyoung agreed however what I mean by function calling support is full OpenAI function calling compatibility which is a little more involved.

I started on #957 though to see how this could be done, I'll check out airoboros as well.

That's a good point in regards of function calling likely being used/done differently/partially from one group/individual/tool/standard to another.

Glad to hear that it seems promising so far with OpenHermes. :-)