Slinc를 사용하여 llama.cpp에 대한 실험적인 Scala 3 바인딩입니다.
build.sbt
에 llm4s
추가하세요.
libraryDependencies + = " com.donderom " %% " llm4s " % " 0.11.0 "
JDK 17의 경우 프로젝트 루트에 .jvmopts
파일을 추가합니다.
--add-modules=jdk.incubator.foreign
--enable-native-access=ALL-UNNAMED
버전 호환성:
llm4s | 스칼라 | JDK | llama.cpp(해시 커밋) |
---|---|---|---|
0.11+ | 3.3.0 | 17, 19 | 229ffff (2024년 5월 8일) |
llm4s | 스칼라 | JDK | llama.cpp(해시 커밋) |
---|---|---|---|
0.10+ | 3.3.0 | 17, 19 | 49e7cb5(2023년 7월 31일) |
0.6+ | --- | --- | 49e7cb5(2023년 7월 31일) |
0.4+ | --- | --- | 70d26ac(2023년 7월 23일) |
0.3+ | --- | --- | a6803ca (2023년 7월 14일) |
0.1+ | 3.3.0-RC3 | 17, 19 | 447ccbe (2023년 6월 25일) |
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()