Экспериментальные привязки Scala 3 для llama.cpp с использованием Slinc.
Добавьте llm4s
в свой build.sbt
:
libraryDependencies + = " com.donderom " %% " llm4s " % " 0.11.0 "
Для JDK 17 добавьте файл .jvmopts
в корень проекта:
--add-modules=jdk.incubator.foreign
--enable-native-access=ALL-UNNAMED
Совместимость версий:
llm4s | Скала | ЯДК | llama.cpp (хеш фиксации) |
---|---|---|---|
0.11+ | 3.3.0 | 17, 19 | 229ffff (8 мая 2024 г.) |
llm4s | Скала | ЯДК | llama.cpp (хеш фиксации) |
---|---|---|---|
0.10+ | 3.3.0 | 17, 19 | 49e7cb5 (31 июля 2023 г.) |
0.6+ | --- | --- | 49e7cb5 (31 июля 2023 г.) |
0.4+ | --- | --- | 70d26ac (23 июля 2023 г.) |
0.3+ | --- | --- | a6803ca (14 июля 2023 г.) |
0.1+ | 3.3.0-RC3 | 17, 19 | 447ccbe (25 июня 2023 г.) |
import java . nio . file . Paths
import com . donderom . llm4s . *
// Path to the llama.cpp shared library
System .load( " llama.cpp/libllama.so " )
// Path to the model supported by llama.cpp
val model = Paths .get( " models/llama-7b-v2/llama-2-7b.Q4_K_M.gguf " )
val prompt = " Large Language Model is "
val llm = Llm (model)
// To print generation as it goes
llm(prompt).foreach : stream =>
stream.foreach : token =>
print(token)
// Or build a string
llm(prompt).foreach(stream => println(stream.mkString))
llm.close()
val llm = Llm (model)
llm.embeddings(prompt).foreach : embeddings =>
embeddings.foreach : embd =>
print(embd)
print( ' ' )
llm.close()