Andrej Karpathy开源700行llama.c推理接口
Andrej Karpathy开源了700行的llama.c推理接口,帮助开发者更好地理解如何与大型语言模型(LLMs)进行交互。该项目在GitHub上迅速获得了大量关注,拥有数千个star和fork,并被移植到其他编程语言。
JLama:首个纯Java实现的推理引擎
在llama.c之前,JLama已经开始了其作为首个纯Java实现的推理引擎的旅程。JLama支持从Gemma到Mixtral等Hugging Face模型。该实现利用了Java 21的新特性Vector API和PanamaTensorOperations类,并提供了本地回退功能。JLama是目前Maven Central仓库中唯一的Java推理库。
JLama的开发者与开源许可
JLama由DataStax的首席软件架构师Jake Luciani开发,并采用Apache License开源。项目使用了Java 21和Vector API,承诺提供更快的推理速度。
使用JLama的步骤
开发者可以通过以下步骤使用JLama:
下载模型:使用
run-cli.sh脚本从Hugging Face下载模型。$ ./run-cli.sh download gpt2-medium $ ./run-cli.sh download -t XXXXXXXX meta-llama/Llama-2-7b-chat-hf $ ./run-cli.sh download intfloat/e5-small-v2与模型交互:开发者可以与模型进行对话或完成提示。
$ ./run-cli.sh complete -p "The best part of waking up is " -t 0.7 -tc 16 -q Q4 -wq I8 models/Llama-2-7b-chat-hf $ ./run-cli.sh chat -p "Tell me a joke about cats." -t 0.7 -tc 16 -q Q4 -wq I8 models/Llama-2-7b-chat-hf使用Web UI:JLama还提供了一个简单的Web UI,可以通过以下命令启动:
$ ./run-cli.sh download tjake/llama2-7b-chat-hf-jlama-Q4 $ ./run-cli.sh serve models/llama2-7b-chat-hf-jlama-Q4启动后,可以通过http://localhost:8080/ui/index.html访问。
JLama支持的功能与模型
JLama实现了分布式推理、Flash Attention、混合专家(Mixture of Experts)、Hugging Face的SafeTensors模型和Tokenizer格式等功能。目前支持的模型包括Gemma、Llama、Llama2、Mistral、Mixtral、GPT-2和BERT,支持的Tokenizer包括BPE和WordPiece。未来计划支持更多模型,并加入LoRA和GraalVM支持。
Karpathy的观点
Karpathy在其仓库的文档中指出,即使是小型LLM在特定领域内也能表现出强大的性能,预示着“小型”大型生成模型的时代即将到来。
Java生态系统中的LLM集成
Java生态系统中有多种集成LLM的选项,包括Spring和Quarkus应用的特定集成,以及可以轻松集成到任何普通Java应用中的JLama。此外,新的应用如Devoxx Genie和Podman Desktop的扩展也在帮助开发者更快地开始使用LLM。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。